From 96b4b7f57ce7e8b7d527adb5831b719bdd761366 Mon Sep 17 00:00:00 2001 From: lharnaldi <lharnaldi@gmail.com> Date: Thu, 21 Jun 2018 17:59:32 -0300 Subject: [PATCH] First commit of this repository. --- GPSNFIFO.FMT | 1123 ++++ GPSNFIFO.VHD | 274 + GPS_n_fifo.vhd | 441 ++ HP03_par_control.vhd | 347 + HP_LAGO.FMT | 735 +++ HP_LAGO.VHD | 274 + Makefile | 94 + baseline.vhd | 142 + baseline_control.prj | 1 + baseline_control.xst | 5 + bbfifo_16x8.vhd | 281 + clk_40mhz.v | 66 + clock_divider.v | 64 + dcm_200mhz.v | 92 + interfaz_spi.prj | 1 + interfaz_spi.vhd | 214 + interfaz_spi.xst | 5 + ipcore_dir/DCM_33.v | 77 + ipcore_dir/DCM_33.vhd | 96 + ipcore_dir/DCM_33.xaw | 3 + ipcore_dir/DCM_33_arwz.ucf | 17 + ipcore_dir/DCM_33_flist.txt | 4 + ipcore_dir/DCM_33_readme.txt | 19 + ipcore_dir/DCM_33_xmdf.tcl | 48 + ipcore_dir/_xmsgs/cg.xmsgs | 21 + ipcore_dir/_xmsgs/pn_parser.xmsgs | 15 + ipcore_dir/coregen.cgc | 167 + ipcore_dir/coregen.cgp | 9 + ipcore_dir/coregen.log | 63 + ipcore_dir/coregen.rsp | 2 + ipcore_dir/edit_fifo.tcl | 37 + ipcore_dir/fifo.asy | 45 + ipcore_dir/fifo.gise | 33 + ipcore_dir/fifo.ncf | 0 ipcore_dir/fifo.ngc | 3 + ipcore_dir/fifo.sym | 39 + ipcore_dir/fifo.v | 175 + ipcore_dir/fifo.veo | 52 + ipcore_dir/fifo.vhd | 178 + ipcore_dir/fifo.vho | 97 + ipcore_dir/fifo.xco | 91 + ipcore_dir/fifo.xco.bak | 84 + ipcore_dir/fifo.xise | 386 ++ ipcore_dir/fifo_flist.txt | 14 + ipcore_dir/fifo_generator_readme.txt | 165 + ipcore_dir/fifo_generator_ug175.pdf | Bin 0 -> 8003 bytes .../HierarchicalDesign/HDProject/HDProject | Bin 0 -> 251 bytes .../HDProject/HDProject_StrTbl | Bin 0 -> 88 bytes .../__stored_object_table__ | Bin 0 -> 60 bytes .../PnAutoRun/Scripts/RunOnce_tcl | Bin 0 -> 27 bytes .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin 0 -> 3817 bytes .../dpm_project_main/dpm_project_main | Bin 0 -> 25 bytes .../dpm_project_main/dpm_project_main_StrTbl | Bin 0 -> 10 bytes .../tmp/ise/__REGISTRY__/Autonym/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 24 + .../ise/__REGISTRY__/ProjectNavigator/regkeys | 3 + .../__REGISTRY__/ProjectNavigator11/regkeys | 6 + .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 3 + .../__REGISTRY__/_ProjRepoInternal_/regkeys | 21 + .../tmp/ise/__REGISTRY__/bitgen/regkeys | 3 + .../tmp/ise/__REGISTRY__/bitinit/regkeys | 3 + .../tmp/ise/__REGISTRY__/common/regkeys | 15 + .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 3 + .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 3 + .../tmp/ise/__REGISTRY__/fuse/regkeys | 3 + .../tmp/ise/__REGISTRY__/hprep6/regkeys | 3 + .../tmp/ise/__REGISTRY__/idem/regkeys | 3 + .../tmp/ise/__REGISTRY__/libgen/regkeys | 3 + .../tmp/ise/__REGISTRY__/map/regkeys | 3 + .../tmp/ise/__REGISTRY__/netgen/regkeys | 3 + .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 3 + .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 3 + .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 3 + .../tmp/ise/__REGISTRY__/par/regkeys | 3 + .../tmp/ise/__REGISTRY__/platgen/regkeys | 3 + .../tmp/ise/__REGISTRY__/runner/regkeys | 3 + .../tmp/ise/__REGISTRY__/simgen/regkeys | 3 + .../tmp/ise/__REGISTRY__/taengine/regkeys | 3 + .../tmp/ise/__REGISTRY__/trce/regkeys | 3 + .../tmp/ise/__REGISTRY__/tsim/regkeys | 3 + .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 3 + .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 3 + .../tmp/ise/__REGISTRY__/xpwr/regkeys | 3 + .../tmp/ise/__REGISTRY__/xst/regkeys | 3 + ipcore_dir/fifo_usb_if_xdb/tmp/ise/version | 10 + ipcore_dir/fifo_xmdf.tcl | 79 + ipcore_dir/iseconfig/fifo_usb_if.projectmgr | 103 + .../ISimEngine-DesignHierarchy.dbg | Bin 0 -> 35628 bytes .../fifo_usb_if_isim_beh.exe | Bin 0 -> 303008 bytes .../isimcrash.log | 0 .../isimkernel.log | 29 + .../libPortability.dll | Bin 0 -> 1033728 bytes .../fifo_usb_if_isim_beh.exe.sim/netId.dat | Bin 0 -> 92 bytes .../fifo_usb_if_isim_beh.exe.sim/tmp_save/_1 | Bin 0 -> 18697 bytes .../work/a_1176593161_2718564866.c | 31 + .../work/a_1176593161_2718564866.didat | Bin 0 -> 9520 bytes .../work/a_1176593161_2718564866.nt64.obj | Bin 0 -> 679 bytes .../work/fifo_usb_if_isim_beh.exe_main.c | 48 + .../fifo_usb_if_isim_beh.exe_main.nt64.obj | Bin 0 -> 2092 bytes .../xilinxcorelib/a_1848741551_3212880686.c | 1090 ++++ .../a_1848741551_3212880686.didat | Bin 0 -> 31612 bytes .../a_1848741551_3212880686.nt64.obj | Bin 0 -> 5937 bytes .../xilinxcorelib/a_3173924170_3212880686.c | 2229 +++++++ .../a_3173924170_3212880686.didat | Bin 0 -> 13772 bytes .../a_3173924170_3212880686.nt64.obj | Bin 0 -> 17809 bytes .../xilinxcorelib/a_4048593843_3212880686.c | 5654 +++++++++++++++++ .../a_4048593843_3212880686.didat | Bin 0 -> 30484 bytes .../a_4048593843_3212880686.nt64.obj | Bin 0 -> 32216 bytes ipcore_dir/isim/isim_usage_statistics.html | 16 + .../ieee/p_0017514958.didat | Bin 0 -> 3620 bytes .../ieee/p_0774719531.didat | Bin 0 -> 2120 bytes .../ieee/p_1242562249.didat | Bin 0 -> 8376 bytes .../ieee/p_1367372525.didat | Bin 0 -> 15964 bytes .../ieee/p_2592010699.didat | Bin 0 -> 5664 bytes .../ieee/p_2717149903.didat | Bin 0 -> 12072 bytes .../ieee/p_3039841270.didat | Bin 0 -> 5400 bytes .../ieee/p_3499444699.didat | Bin 0 -> 4232 bytes .../ieee/p_3564397177.didat | Bin 0 -> 4624 bytes .../ieee/p_3620187407.didat | Bin 0 -> 2232 bytes .../ieee/p_3972351953.didat | Bin 0 -> 8004 bytes .../ieee/p_4165608084.didat | Bin 0 -> 4604 bytes .../isim/precompiled.exe.sim/std/textio.didat | Bin 0 -> 2368 bytes ipcore_dir/isim/temp/fifo_usb_if.vdb | Bin 0 -> 8343 bytes ipcore_dir/isim/work/fifo_usb_if.vdb | Bin 0 -> 8338 bytes ipcore_dir/tmp/_xmsgs/ngcbuild.xmsgs | 9 + ipcore_dir/tmp/_xmsgs/pn_parser.xmsgs | 15 + ipcore_dir/tmp/_xmsgs/xst.xmsgs | 2274 +++++++ ipcore_dir/xaw2verilog.log | 1 + ipcore_dir/xaw2vhdl.log | 1 + kcpsm3.vhd | 1901 ++++++ kcuart_rx.vhd | 352 + kcuart_tx.vhd | 394 ++ lago_fpga_vhdl.prj | 19 + lago_fpga_vhdl.ucf | 179 + lago_fpga_vhdl.vhd | 578 ++ lago_fpga_vhdl.vhd_orig | 699 ++ lago_fpga_vhdl.xise | 404 ++ lago_fpga_vhdl.xst | 57 + lago_fpga_vhdl_1200.ucf | 183 + nexys2_1200.batch | 6 + nexys2_500.batch | 7 + rampa_hv.vhd | 107 + spi_dac.vhd | 178 + trigger.vhd | 455 ++ uart_rx.vhd | 146 + uart_tx.vhd | 148 + usb_if_ctrl.vhd | 1144 ++++ 147 files changed, 24789 insertions(+) create mode 100644 GPSNFIFO.FMT create mode 100755 GPSNFIFO.VHD create mode 100644 GPS_n_fifo.vhd create mode 100644 HP03_par_control.vhd create mode 100644 HP_LAGO.FMT create mode 100755 HP_LAGO.VHD create mode 100755 Makefile create mode 100644 baseline.vhd create mode 100644 baseline_control.prj create mode 100644 baseline_control.xst create mode 100644 bbfifo_16x8.vhd create mode 100755 clk_40mhz.v create mode 100755 clock_divider.v create mode 100755 dcm_200mhz.v create mode 100644 interfaz_spi.prj create mode 100644 interfaz_spi.vhd create mode 100644 interfaz_spi.xst create mode 100755 ipcore_dir/DCM_33.v create mode 100755 ipcore_dir/DCM_33.vhd create mode 100755 ipcore_dir/DCM_33.xaw create mode 100755 ipcore_dir/DCM_33_arwz.ucf create mode 100755 ipcore_dir/DCM_33_flist.txt create mode 100755 ipcore_dir/DCM_33_readme.txt create mode 100755 ipcore_dir/DCM_33_xmdf.tcl create mode 100644 ipcore_dir/_xmsgs/cg.xmsgs create mode 100644 ipcore_dir/_xmsgs/pn_parser.xmsgs create mode 100644 ipcore_dir/coregen.cgc create mode 100644 ipcore_dir/coregen.cgp create mode 100644 ipcore_dir/coregen.log create mode 100755 ipcore_dir/coregen.rsp create mode 100644 ipcore_dir/edit_fifo.tcl create mode 100644 ipcore_dir/fifo.asy create mode 100644 ipcore_dir/fifo.gise create mode 100644 ipcore_dir/fifo.ncf create mode 100644 ipcore_dir/fifo.ngc create mode 100644 ipcore_dir/fifo.sym create mode 100644 ipcore_dir/fifo.v create mode 100644 ipcore_dir/fifo.veo create mode 100644 ipcore_dir/fifo.vhd create mode 100644 ipcore_dir/fifo.vho create mode 100644 ipcore_dir/fifo.xco create mode 100644 ipcore_dir/fifo.xco.bak create mode 100644 ipcore_dir/fifo.xise create mode 100644 ipcore_dir/fifo_flist.txt create mode 100644 ipcore_dir/fifo_generator_readme.txt create mode 100644 ipcore_dir/fifo_generator_ug175.pdf create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/common/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/fuse/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/idem/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/libgen/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/map/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/netgen/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/par/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/platgen/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/runner/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/simgen/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/taengine/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/trce/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/tsim/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xst/regkeys create mode 100755 ipcore_dir/fifo_usb_if_xdb/tmp/ise/version create mode 100644 ipcore_dir/fifo_xmdf.tcl create mode 100755 ipcore_dir/iseconfig/fifo_usb_if.projectmgr create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/ISimEngine-DesignHierarchy.dbg create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/fifo_usb_if_isim_beh.exe create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimcrash.log create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimkernel.log create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/libPortability.dll create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/netId.dat create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/tmp_save/_1 create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.c create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.didat create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.nt64.obj create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.c create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.nt64.obj create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.c create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.didat create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.nt64.obj create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.c create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.didat create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.nt64.obj create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.c create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.didat create mode 100755 ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.nt64.obj create mode 100755 ipcore_dir/isim/isim_usage_statistics.html create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_0017514958.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_0774719531.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_1242562249.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_1367372525.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_2592010699.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_2717149903.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_3039841270.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_3499444699.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_3564397177.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_3620187407.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_3972351953.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/ieee/p_4165608084.didat create mode 100755 ipcore_dir/isim/precompiled.exe.sim/std/textio.didat create mode 100755 ipcore_dir/isim/temp/fifo_usb_if.vdb create mode 100755 ipcore_dir/isim/work/fifo_usb_if.vdb create mode 100644 ipcore_dir/tmp/_xmsgs/ngcbuild.xmsgs create mode 100644 ipcore_dir/tmp/_xmsgs/pn_parser.xmsgs create mode 100644 ipcore_dir/tmp/_xmsgs/xst.xmsgs create mode 100755 ipcore_dir/xaw2verilog.log create mode 100755 ipcore_dir/xaw2vhdl.log create mode 100644 kcpsm3.vhd create mode 100644 kcuart_rx.vhd create mode 100644 kcuart_tx.vhd create mode 100644 lago_fpga_vhdl.prj create mode 100755 lago_fpga_vhdl.ucf create mode 100644 lago_fpga_vhdl.vhd create mode 100644 lago_fpga_vhdl.vhd_orig create mode 100755 lago_fpga_vhdl.xise create mode 100644 lago_fpga_vhdl.xst create mode 100755 lago_fpga_vhdl_1200.ucf create mode 100644 nexys2_1200.batch create mode 100644 nexys2_500.batch create mode 100644 rampa_hv.vhd create mode 100644 spi_dac.vhd create mode 100644 trigger.vhd create mode 100644 uart_rx.vhd create mode 100644 uart_tx.vhd create mode 100644 usb_if_ctrl.vhd diff --git a/GPSNFIFO.FMT b/GPSNFIFO.FMT new file mode 100644 index 0000000..e7c0fd4 --- /dev/null +++ b/GPSNFIFO.FMT @@ -0,0 +1,1123 @@ + ;************************************************************** + ;Copyright (c) 2011 + ;Title: GPS_Oncore_ctrl + ;Current version: v1r1 + ;Function: Control for Oncore GPS receiver to function together + ; with new electronics from Lago Project. + ; It comunicates whit GPS receiver at 9600 bps and + ; writes external registers. + ; + ;Core: KCPSM3 (Spartan3E version) + ;Clock: 50MHz Crystal (Nexys2 clock) + ;Author: Horacio Arnaldi + ;Company: CAB - IB (CNEA) + ;Contact: (+54)-2944-445500 + ;e-mail: lharnaldi@cab.cnea.gov.ar + ;Date: 2011-09-18 + ; + ;************************************************************** + ;************************************************************** + ; Port definitions + ;************************************************************** + ; + ; + ; + CONSTANT status_port, 40 ;UART and USB status input + CONSTANT tx_half_full, 01 ; Transmitter half full - bit0 + CONSTANT tx_full, 02 ; FIFO full - bit1 + CONSTANT rx_data_present, 04 ; Receiver data present - bit2 + CONSTANT rx_half_full, 08 ; FIFO half full - bit3 + CONSTANT rx_full, 10 ; full - bit4 + CONSTANT tx_usb_empty, 20 ; USB FIFO status port bit5 + CONSTANT tx_usb_full, 40 ; bit6 + CONSTANT spare, 80 ; - bit7 + ; + ;Ports to write data acquired from GPS receiver + CONSTANT month_port, 00 + CONSTANT day_port, 01 + CONSTANT year1_port, 02 + CONSTANT year2_port, 03 + CONSTANT hours_port, 04 + CONSTANT minutes_port, 05 + CONSTANT seconds_port, 06 + CONSTANT fract_sec1_port, 07 + CONSTANT fract_sec2_port, 08 + CONSTANT fract_sec3_port, 09 + CONSTANT fract_sec4_port, 0A + CONSTANT latitude1_port, 0B + CONSTANT latitude2_port, 0C + CONSTANT latitude3_port, 0D + CONSTANT latitude4_port, 0E + CONSTANT longitude1_port, 0F + CONSTANT longitude2_port, 10 + CONSTANT longitude3_port, 11 + CONSTANT longitude4_port, 12 + CONSTANT ellipsoid1_port, 13 + CONSTANT ellipsoid2_port, 14 + CONSTANT ellipsoid3_port, 15 + CONSTANT ellipsoid4_port, 16 + CONSTANT velocity1_port, 17 + CONSTANT velocity2_port, 18 + CONSTANT heading1_port, 19 + CONSTANT heading2_port, 1A + CONSTANT geometry2_port, 1B + CONSTANT DOP_type_port, 1C + CONSTANT num_vis_sat_port, 1D + CONSTANT num_track_sat_port, 1E + CONSTANT sat_ID1_port, 1F ; Sat ID + CONSTANT chtm1_port, 20 ; Channel tracking mode + CONSTANT CNo1_port, 21 ; Carrier to noise density ratio + CONSTANT chsf1_port, 22 ; Channel status flag + CONSTANT sat_ID2_port, 23 ; Sat ID + CONSTANT chtm2_port, 24 ; Channel tracking mode + CONSTANT CNo2_port, 25 ; Carrier to noise density ratio + CONSTANT chsf2_port, 26 ; Channel status flag + CONSTANT sat_ID3_port, 27 ; Sat ID + CONSTANT chtm3_port, 28 ; Channel tracking mode + CONSTANT CNo3_port, 29 ; Carrier to noise density ratio + CONSTANT chsf3_port, 2A ; Channel status flag + CONSTANT sat_ID4_port, 2B ; Sat ID + CONSTANT chtm4_port, 2C ; Channel tracking mode + CONSTANT CNo4_port, 2D ; Carrier to noise density ratio + CONSTANT chsf4_port, 2E ; Channel status flag + CONSTANT sat_ID5_port, 2F ; Sat ID + CONSTANT chtm5_port, 30 ; Channel tracking mode + CONSTANT CNo5_port, 31 ; Carrier to noise density ratio + CONSTANT chsf5_port, 32 ; Channel status flag + CONSTANT sat_ID6_port, 33 ; Sat ID + CONSTANT chtm6_port, 34 ; Channel tracking mode + CONSTANT CNo6_port, 35 ; Carrier to noise density ratio + CONSTANT chsf6_port, 36 ; Channel status flag + CONSTANT sat_ID7_port, 37 ; Sat ID + CONSTANT chtm7_port, 38 ; Channel tracking mode + CONSTANT CNo7_port, 39 ; Carrier to noise density ratio + CONSTANT chsf7_port, 3A ; Channel status flag + CONSTANT sat_ID8_port, 3B ; Sat ID + CONSTANT chtm8_port, 3C ; Channel tracking mode + CONSTANT CNo8_port, 3D ; Carrier to noise density ratio + CONSTANT chsf8_port, 3E ; Channel status flag + CONSTANT rsf_port, 3F ; Reciver status flag + ; + CONSTANT UART_read_port, 80 ;UART Rx data input + ; + CONSTANT UART_write_port, C0 ;UART Tx data output + ; + ;CONSTANT USB_write_port, 40 + ; + ; + ;*************************************************************** + ;data constants + ;*************************************************************** + ; + CONSTANT delay_1us_constant, 0B + ; + CONSTANT CMD_MASK, E0 + CONSTANT STATUS_MASK, 1F + CONSTANT CLR_XCLR_MASK, FB + ; + ; + ;************************************************************************************** + ; Special Register usage + ;************************************************************************************** + ; + NAMEREG sF, UART_data ;used to pass data to and from the UART + NAMEREG s5, USB_data ;used to pass data to the USB + NAMEREG s6, USB_port ;used to pass data to the USB + ; + ; + ; + ;************************************************************************************** + ;Scratch Pad Memory Locations + ;************************************************************************************** + ; + ;Values read from receiver + ; + CONSTANT month, 00 + CONSTANT day, 01 + CONSTANT year1, 02 + CONSTANT year2, 03 + CONSTANT hours, 04 + CONSTANT minutes, 05 + CONSTANT seconds, 06 + CONSTANT fract_sec1, 07 + CONSTANT fract_sec2, 08 + CONSTANT fract_sec3, 09 + CONSTANT fract_sec4, 0A + CONSTANT latitude1, 0B + CONSTANT latitude2, 0C + CONSTANT latitude3, 0D + CONSTANT latitude4, 0E + CONSTANT longitude1, 0F + CONSTANT longitude2, 10 + CONSTANT longitude3, 11 + CONSTANT longitude4, 12 + CONSTANT ellipsoid1, 13 + CONSTANT ellipsoid2, 14 + CONSTANT ellipsoid3, 15 + CONSTANT ellipsoid4, 16 + CONSTANT velocity1, 17 + CONSTANT velocity2, 18 + CONSTANT heading1, 19 + CONSTANT heading2, 1A + CONSTANT geometry2, 1B + CONSTANT DOP_type, 1C + CONSTANT num_vis_sat, 1D + CONSTANT num_track_sat, 1E + CONSTANT sat_ID1, 1F ; Sat ID + CONSTANT chtm1, 20 ; Channel tracking mode + CONSTANT CNo1, 21 ; Carrier to noise density ratio + CONSTANT chsf1, 22 ; Channel status flag + CONSTANT sat_ID2, 23 ; Sat ID + CONSTANT chtm2, 24 ; Channel tracking mode + CONSTANT CNo2, 25 ; Carrier to noise density ratio + CONSTANT chsf2, 26 ; Channel status flag + CONSTANT sat_ID3, 27 ; Sat ID + CONSTANT chtm3, 28 ; Channel tracking mode + CONSTANT CNo3, 29 ; Carrier to noise density ratio + CONSTANT chsf3, 2A ; Channel status flag + CONSTANT sat_ID4, 2B ; Sat ID + CONSTANT chtm4, 2C ; Channel tracking mode + CONSTANT CNo4, 2D ; Carrier to noise density ratio + CONSTANT chsf4, 2E ; Channel status flag + CONSTANT sat_ID5, 2F ; Sat ID + CONSTANT chtm5, 30 ; Channel tracking mode + CONSTANT CNo5, 31 ; Carrier to noise density ratio + CONSTANT chsf5, 32 ; Channel status flag + CONSTANT sat_ID6, 33 ; Sat ID + CONSTANT chtm6, 34 ; Channel tracking mode + CONSTANT CNo6, 35 ; Carrier to noise density ratio + CONSTANT chsf6, 36 ; Channel status flag + CONSTANT sat_ID7, 37 ; Sat ID + CONSTANT chtm7, 38 ; Channel tracking mode + CONSTANT CNo7, 39 ; Carrier to noise density ratio + CONSTANT chsf7, 3A ; Channel status flag + CONSTANT sat_ID8, 3B ; Sat ID + CONSTANT chtm8, 3C ; Channel tracking mode + CONSTANT CNo8, 3D ; Carrier to noise density ratio + CONSTANT chsf8, 3E ; Channel status flag + CONSTANT rsf, 3F ; Reciver status flag + ; + ; + ;************************************************************************************** + ;Useful data constants + ;************************************************************************************** + ; + ; + ;ASCII table + ; + CONSTANT character_a, 61 + CONSTANT character_b, 62 + CONSTANT character_c, 63 + CONSTANT character_d, 64 + CONSTANT character_e, 65 + CONSTANT character_f, 66 + CONSTANT character_g, 67 + CONSTANT character_h, 68 + CONSTANT character_i, 69 + CONSTANT character_j, 6A + CONSTANT character_k, 6B + CONSTANT character_l, 6C + CONSTANT character_m, 6D + CONSTANT character_n, 6E + CONSTANT character_o, 6F + CONSTANT character_p, 70 + CONSTANT character_q, 71 + CONSTANT character_r, 72 + CONSTANT character_s, 73 + CONSTANT character_t, 74 + CONSTANT character_u, 75 + CONSTANT character_v, 76 + CONSTANT character_w, 77 + CONSTANT character_x, 78 + CONSTANT character_y, 79 + CONSTANT character_z, 7A + CONSTANT character_A, 41 + CONSTANT character_B, 42 + CONSTANT character_C, 43 + CONSTANT character_D, 44 + CONSTANT character_E, 45 + CONSTANT character_F, 46 + CONSTANT character_G, 47 + CONSTANT character_H, 48 + CONSTANT character_I, 49 + CONSTANT character_J, 4A + CONSTANT character_K, 4B + CONSTANT character_L, 4C + CONSTANT character_M, 4D + CONSTANT character_N, 4E + CONSTANT character_O, 4F + CONSTANT character_P, 50 + CONSTANT character_Q, 51 + CONSTANT character_R, 52 + CONSTANT character_S, 53 + CONSTANT character_T, 54 + CONSTANT character_U, 55 + CONSTANT character_V, 56 + CONSTANT character_W, 57 + CONSTANT character_X, 58 + CONSTANT character_Y, 59 + CONSTANT character_Z, 5A + CONSTANT character_0, 30 + CONSTANT character_1, 31 + CONSTANT character_2, 32 + CONSTANT character_3, 33 + CONSTANT character_4, 34 + CONSTANT character_5, 35 + CONSTANT character_6, 36 + CONSTANT character_7, 37 + CONSTANT character_8, 38 + CONSTANT character_9, 39 + CONSTANT character_arroba, 40 ;'@' + CONSTANT character_CR, 0D ;carriage return + CONSTANT character_LF, 0A ;line feed + CONSTANT character_colon, 3A + CONSTANT character_stop, 2E + CONSTANT character_semi_colon, 3B + CONSTANT character_minus, 2D + CONSTANT character_divide, 2F ;'/' + CONSTANT character_plus, 2B + CONSTANT character_comma, 2C + CONSTANT character_less_than, 3C + CONSTANT character_greater_than, 3E + CONSTANT character_equals, 3D + CONSTANT character_space, 20 + CONSTANT character_question, 3F ;'?' + CONSTANT character_dollar, 24 + CONSTANT character_exclaim, 21 ;'!' + CONSTANT character_BS, 08 ;Back Space command character + CONSTANT character_underscore, 5F ;_ + ; + ; + ; + ;*************************************************************** + ;Initialise the system + ;*************************************************************** + ; Send command to set receiver to send every second status + ; data + cold_start: CALL delay_20ms ;initial delay + CALL delay_20ms ;5 x 20ms = 100ms + CALL delay_20ms + CALL delay_20ms ; + CALL delay_20ms + CALL mess_PSD ; Set data output for 1s + ; ;repetition + CALL mess_TRAIM ; Set 1PPS signal + CALL mess_PPSOFF ; Set 1PPS Offset + CALL mess_PPSCD ; Set 1PPS Cable Delay + CALL mess_PM ; Set Pulse Mode + CALL mess_GMTOFF ; Set GMT Offset + CALL mess_TM ; Set Time Mode + ; + ; + ;*************************************************************** + ;main program + ;*************************************************************** + ; It wait for a new data, save data into scratch pad memory + ; and then writes it into external FIFO if it is empty else + ; wait for an empty condition. + ; + loop: CALL read_char + COMPARE s0, character_arroba ; command init (@) + JUMP NZ, loop + CALL read_char ; read next character + COMPARE s0, character_arroba ; command test + JUMP NZ, loop + CALL read_char ; read next character + COMPARE s0, character_E ; command test + JUMP NZ, loop + CALL read_char ; read next character + COMPARE s0, character_a ; command test + JUMP NZ, loop + CALL read_char + LOAD USB_data, s0 ; read next character + LOAD USB_port, month_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, day_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, year1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, year2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, hours_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, minutes_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, seconds_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, fract_sec1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, fract_sec2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, fract_sec3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, fract_sec4_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, latitude1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, latitude2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, latitude3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, latitude4_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, longitude1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, longitude2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, longitude3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, longitude4_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, ellipsoid1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, ellipsoid2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, ellipsoid3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, ellipsoid4_port + CALL USB_write + CALL read_char ; The nexy four characters are + CALL read_char ; not used, so we just read + CALL read_char ; them but not save. + CALL read_char ; read next character + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, velocity1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, velocity2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, heading1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, heading2_port + CALL USB_write + CALL read_char ; This character is disregarded + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, geometry2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, DOP_type_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, num_vis_sat_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, num_track_sat_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf1_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf2_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf3_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID4_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm4_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo4_port + CALL USB_write + CALL read_char ; read next character + STORE s0, chsf4 ; save data + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID5_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm5_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo5_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf5_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID6_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm6_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo6_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf6_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID7_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm7_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo7_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf7_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, sat_ID8_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chtm8_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, CNo8_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, chsf8_port + CALL USB_write + CALL read_char ; read next character + LOAD USB_data, s0 ; read next character + LOAD USB_port, rsf_port + CALL USB_write + CALL read_char ; read checksum character + CALL read_char ; read CR character + COMPARE s0, character_CR + JUMP NZ, loop ; return to loop if not CR + CALL read_char ; read LF character + COMPARE s0, character_LF + JUMP NZ, loop ; return to loop if not LF + JUMP loop ; Try again! + ; + ; + read_char: CALL read_from_UART + LOAD s0, UART_data + RETURN + ; + ; + USB_write: OUTPUT USB_data, (USB_port) + RETURN + ; + ; + ; + ;*********************************************************** + ; Software delay Routines + ;*********************************************************** + ; + ; Delay of 1us. + ; + ; Constant value defines reflects the clock applied to KCPSM3. Every instruction + ; executes in 2 clock cycles making the calculation highly predictable. The '6' in + ; the following equation even allows for 'CALL delay_1us' instruction in the initiating code. + ; + ; delay_1us_constant = (clock_rate - 6)/4 Where 'clock_rate' is in MHz + ; + ; Register used sA + ; + delay_1us: LOAD sA, delay_1us_constant + wait_1us: SUB sA, 01 + JUMP NZ, wait_1us + RETURN + ; + ; Delay of 10 us + ; + ; Registers used sA, sB + ; + delay_10us: LOAD sB, 0A ;10 x 1us = 10us + wait_10us: CALL delay_1us + SUB sB, 01 + JUMP NZ, wait_10us + RETURN + ; + ; Delay of 40us. + ; + ; Registers used sA, sB + ; + delay_40us: LOAD sB, 28 ;40 x 1us = 40us + wait_40us: CALL delay_1us + SUB sB, 01 + JUMP NZ, wait_40us + RETURN + ; + ; + ; Delay of 1ms. + ; + ; Registers used sA, sB, sC + ; + delay_1ms: LOAD sC, 19 ;25 x 40us = 1ms + wait_1ms: CALL delay_40us + SUB sC, 01 + JUMP NZ, wait_1ms + RETURN + ; + ; Delay of 20ms. + ; + ; Registers used sA, sB, sC, sD + ; + delay_20ms: LOAD sD, 14 ;20 x 1ms = 20ms + wait_20ms: CALL delay_1ms + SUB sD, 01 + JUMP NZ, wait_20ms + RETURN + ; + ; Delay of approximately 1 second. + ; + ; Registers used sA, sB, sC, sD, sE + ; + delay_1s: LOAD sE, 14 ;50 x 20ms = 1000ms + wait_1s: CALL delay_20ms + SUB sE, 01 + JUMP NZ, wait_1s + RETURN + ; + ; + ; + ;*********************************************************** + ;UART communication routines + ;*********************************************************** + ; + ;Read one character from the UART + ; + ;Character read will be returned in a register called 'UART_data'. + ; + ;The routine first tests the receiver FIFO buffer to see if data is present. + ;If the FIFO is empty, the routine waits until there is a character to read. + ;As this could take any amount of time the wait loop could include a call to a + ;subroutine which performs a useful function. + ; + ; + ; + ;Registers used s0 and UART_data + ; + read_from_UART: INPUT s0, status_port ;test Rx_FIFO buffer + TEST s0, rx_data_present ;wait if empty + JUMP NZ, read_character + JUMP read_from_UART + read_character: INPUT UART_data, UART_read_port ;read from FIFO + RETURN + ; + ; + ; + ; + ;Transmit one character to the UART + ; + ;Character supplied in register called 'UART_data'. + ; + ;The routine first tests the transmit FIFO buffer is empty. + ;If the FIFO currently has any data, the routine waits until it is empty. + ;Ultimately this means that only one character is sent at a time which + ;could be important if the PC at the other end of the link transmits + ;an XOFF and needs the flow of data to terminate as soon as possible. + ; + ;Registers used s0 + ; + send_to_UART: INPUT s0, status_port ;test Tx_FIFO buffer + TEST s0, tx_full + JUMP Z, UART_write + JUMP send_to_UART + UART_write: OUTPUT UART_data, UART_write_port + RETURN + ; + ;Convert value provided in register s0 into ASCII characters + ; + ;The value provided must in the range 0 to 99 and will be converted into + ;two ASCII characters. + ; The number of 'tens' will be represented by an ASCII character returned in register s1. + ; The number of 'units' will be represented by an ASCII character returned in register s0. + ; + ;The ASCII representations of '0' to '9' are 30 to 39 hexadecimal which is simply 30 hex added to + ;the actual decimal value. + ; + ;Registers used s0 and s1. + ; + decimal_to_ASCII: LOAD s1, 30 ;load 'tens' counter with ASCII for '0' + test_for_ten: ADD s1, 01 ;increment 'tens' value + SUB s0, 0A ;try to subtract 10 from the supplied value + JUMP NC, test_for_ten ;repeat if subtraction was possible without underflow. + SUB s1, 01 ;'tens' value one less ten due to underflow + ADD s0, 3A ;restore units value (the remainder) and convert to ASCII + RETURN + ; + ; + ; + ;Convert character to upper case + ; + ;The character supplied in register s0. + ;If the character is in the range 'a' to 'z', it is converted + ;to the equivalent upper case character in the range 'A' to 'Z'. + ;All other characters remain unchanged. + ; + ;Registers used s0. + ; + upper_case: COMPARE s0, 61 ;eliminate character codes below 'a' (61 hex) + RETURN C + COMPARE s0, 7B ;eliminate character codes above 'z' (7A hex) + RETURN NC + AND s0, DF ;mask bit5 to convert to upper case + RETURN + ; + ; + ;Convert character '0' to '9' to numerical value in range 0 to 9 + ; + ;The character supplied in register s0. If the character is in the + ;range '0' to '9', it is converted to the equivalent decimal value. + ;Characters not in the range '0' to '9' are signified by the return + ;with the CARRY flag set. + ; + ;Registers used s0. + ; + 1char_to_value: ADD s0, C6 ;reject character codes above '9' (39 hex) + RETURN C ;carry flag is set + SUB s0, F6 ;reject character codes below '0' (30 hex) + RETURN ;carry is set if value not in range + ; + ; + ;Determine the numerical value of a two character decimal string held in + ;scratch pad memory such the result is in the range 0 to 99 (00 to 63 hex). + ; + ;The string must be stored in two consecutive memory locations and the + ;location of the first (tens) character supplied in the s1 register. + ;The result is provided in register s2. Strings not using characters in the + ;range '0' to '9' are signified by the return with the CARRY flag set. + ; + ;Registers used s0, s1 and s2. + ; + 2char_to_value: FETCH s0, (s1) ;read 'tens' character + CALL 1char_to_value ;convert to numerical value + RETURN C ;bad character - CARRY set + LOAD s2, s0 + SL0 s2 ;multiply 'tens' value by 10 (0A hex) + SL0 s2 + ADD s2, s0 + SL0 s2 + ADD s1, 01 ;read 'units' character + FETCH s0, (s1) + CALL 1char_to_value ;convert to numerical value + RETURN C ;bad character - CARRY set + ADD s2, s0 ;add units to result and clear CARRY flag + RETURN + ; + ; + ;Convert hexadecimal value provided in register s0 into ASCII characters + ; + ;The value provided must be any value in the range 00 to FF and will be converted into + ;two ASCII characters. + ; The upper nibble will be represented by an ASCII character returned in register s2. + ; The lower nibble will be represented by an ASCII character returned in register s1. + ; + ;The ASCII representations of '0' to '9' are 30 to 39 hexadecimal which is simply 30 hex + ;added to the actual decimal value. The ASCII representations of 'A' to 'F' are 41 to 46 + ;hexadecimal requiring a further addition of 07 to the 30 already added. + ; + ;Registers used s0, s1 and s2. + ; +hex_byte_to_ASCII: LOAD s1, s0 ;remember value supplied + SR0 s0 ;isolate upper nibble + SR0 s0 + SR0 s0 + SR0 s0 + CALL hex_to_ASCII ;convert + LOAD s2, s0 ;upper nibble value in s2 + LOAD s0, s1 ;restore complete value + AND s0, 0F ;isolate lower nibble + CALL hex_to_ASCII ;convert + LOAD s1, s0 ;lower nibble value in s1 + RETURN + ; + ;Convert hexadecimal value provided in register s0 into ASCII character + ; + ;Register used s0 + ; + hex_to_ASCII: SUB s0, 0A ;test if value is in range 0 to 9 + JUMP C, number_char + ADD s0, 07 ;ASCII char A to F in range 41 to 46 + number_char: ADD s0, 3A ;ASCII char 0 to 9 in range 30 to 40 + RETURN + ; + ; + ;Send the two character HEX value of the register contents 's0' to the UART + ; + ;Registers used s0, s1, s2 + ; + send_hex_byte: CALL hex_byte_to_ASCII + LOAD UART_data, s2 + CALL send_to_UART + LOAD UART_data, s1 + CALL send_to_UART + RETURN + ; + ; + ; + ;Send the four character HEX value of the register contents [s9, s8] to the UART + ; + ;Registers used s0, s9, s8 + ; + send_hex_2bytes: LOAD s0, s9 + CALL send_hex_byte + LOAD s0, s8 + CALL send_hex_byte + RETURN + ; + ; + ;Convert the HEX ASCII characters contained in 's3' and 's2' into + ;an equivalent hexadecimal value in register 's0'. + ; The upper nibble is represented by an ASCII character in register s3. + ; The lower nibble is represented by an ASCII character in register s2. + ; + ;Input characters must be in the range 00 to FF hexadecimal or the CARRY flag + ;will be set on return. + ; + ;Registers used s0, s2 and s3. + ; +ASCII_byte_to_hex: LOAD s0, s3 ;Take upper nibble + CALL ASCII_to_hex ;convert to value + RETURN C ;reject if out of range + LOAD s3, s0 ;remember value + SL0 s3 ;multiply value by 16 to put in upper nibble + SL0 s3 + SL0 s3 + SL0 s3 + LOAD s0, s2 ;Take lower nibble + CALL ASCII_to_hex ;convert to value + RETURN C ;reject if out of range + OR s0, s3 ;merge in the upper nibble with CARRY reset + RETURN + ; + ; + ;Routine to convert ASCII data in 's0' to an equivalent HEX value. + ; + ;If character is not valid for hex, then CARRY is set on return. + ; + ;Register used s0 + ; + ASCII_to_hex: ADD s0, B9 ;test for above ASCII code 46 ('F') + RETURN C + SUB s0, E9 ;normalise 0 to 9 with A-F in 11 to 16 hex + RETURN C ;reject below ASCII code 30 ('0') + SUB s0, 11 ;isolate A-F down to 00 to 05 hex + JUMP NC, ASCII_letter + ADD s0, 07 ;test for above ASCII code 46 ('F') + RETURN C + SUB s0, F6 ;convert to range 00 to 09 + RETURN + ASCII_letter: ADD s0, 0A ;convert to range 0A to 0F + RETURN + ; + ; + ; + ;Send Carriage Return to the UART + ; + send_CR: LOAD UART_data, character_CR + CALL send_to_UART + RETURN + ; + ;Send a space to the UART + ; + send_space: LOAD UART_data, character_space + CALL send_to_UART + RETURN + ; + ; + ;**************************************************************** + ;Text messages + ;**************************************************************** + ; + ; Position/Status/Data message + ; Send @@Ea01C<CR><LF> + ; 01 is for setting the response mode (once per second) + ; C is checksum for this message (25 hex) + ; + mess_PSD: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_E + CALL send_to_UART + LOAD UART_data, character_a + CALL send_to_UART + LOAD UART_data, 01 + CALL send_to_UART + LOAD UART_data, 25 + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; Time Raim Setup and Status Message (page 94 of man) + ; Send @@En000000030100000100000000000000C<CR><LF> + ; 03 is for Time RAIM Algoritm (3..65535) + ; 01 is for setting (enable every time) the 1PPS signal + ; C is checksum for this message (28 hex) + ; + mess_TRAIM: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_E + CALL send_to_UART + LOAD UART_data, character_n + CALL send_to_UART + CALL send_zero + CALL send_zero + CALL send_zero + LOAD UART_data, 03 + CALL send_to_UART + LOAD UART_data, 01 + CALL send_to_UART + CALL send_zero + CALL send_zero + LOAD UART_data, 01 + CALL send_to_UART + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + LOAD UART_data, 28 ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; + ; 1PPS Offset message + ; Send @@Ay00000000C<CR><LF> + ; + ; C is checksum for this message (38 hex) + ; + mess_PPSOFF: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_A + CALL send_to_UART + LOAD UART_data, character_y + CALL send_to_UART + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + LOAD UART_data, 38 ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; 1PPS Cable delay message + ; Send @@Az00000000C<CR><LF> + ; + ; C is checksum for this message (3B hex) + ; + mess_PPSCD: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_A + CALL send_to_UART + LOAD UART_data, character_z + CALL send_to_UART + CALL send_zero + CALL send_zero + CALL send_zero + CALL send_zero + LOAD UART_data, 3B ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; Pulse Mode message + ; Send @@AP00C<CR><LF> + ; + ; C is checksum for this message (11 hex) + ; + mess_PM: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_A + CALL send_to_UART + LOAD UART_data, character_P + CALL send_to_UART + CALL send_zero + LOAD UART_data, 11 ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; GMT Offset message + ; Send @@Ab000000C<CR><LF> + ; + ; C is checksum for this message (23 hex) + ; + mess_GMTOFF: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_A + CALL send_to_UART + LOAD UART_data, character_b + CALL send_to_UART + CALL send_zero + CALL send_zero + CALL send_zero + LOAD UART_data, 23 ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; Time Mode message + ; Send @@Aw01C<CR><LF> + ; + ; C is checksum for this message (37 hex) + ; + mess_TM: CALL send_arroba + CALL send_arroba + LOAD UART_data, character_A + CALL send_to_UART + LOAD UART_data, character_w + CALL send_to_UART + LOAD UART_data, 01 + CALL send_to_UART + LOAD UART_data, 37 ; Checksum + CALL send_to_UART + CALL send_EOM + RETURN + ; + ; + ; EOM End Of Message + ; + send_EOM: LOAD UART_data, character_CR + CALL send_to_UART + LOAD UART_data, character_LF + CALL send_to_UART + RETURN + ; + ; + send_arroba: LOAD UART_data, character_arroba + CALL send_to_UART + RETURN + ; + ; + send_zero: LOAD UART_data, 00 + CALL send_to_UART + RETURN + ; + ; + ;************************************************************************************** + ; Interrupt Service Routine (ISR) + ;************************************************************************************** + ; + ; Interrupts are not used in this design. This is a place keeper only. + ; + ADDRESS 3FE + ISR: RETURNI ENABLE + ; + ; + ;************************************************************************************** + ; Interrupt Vector + ;************************************************************************************** + ; + ADDRESS 3FF + JUMP ISR + ; + ; diff --git a/GPSNFIFO.VHD b/GPSNFIFO.VHD new file mode 100755 index 0000000..0a5f396 --- /dev/null +++ b/GPSNFIFO.VHD @@ -0,0 +1,274 @@ +-- +-- Definition of a single port ROM for KCPSM3 program defined by gpsnfifo.psm +-- +-- Generated by KCPSM3 Assembler 08Feb2012-16:15:03. +-- +-- Standard IEEE libraries +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library unisim; +use unisim.vcomponents.all; +-- +-- +entity gpsnfifo is + Port ( address : in std_logic_vector(9 downto 0); + instruction : out std_logic_vector(17 downto 0); + clk : in std_logic); + end gpsnfifo; +-- +architecture low_level_definition of gpsnfifo is +-- +-- Attributes to define ROM contents during implementation synthesis. +-- The information is repeated in the generic map for functional simulation +-- +attribute INIT_00 : string; +attribute INIT_01 : string; +attribute INIT_02 : string; +attribute INIT_03 : string; +attribute INIT_04 : string; +attribute INIT_05 : string; +attribute INIT_06 : string; +attribute INIT_07 : string; +attribute INIT_08 : string; +attribute INIT_09 : string; +attribute INIT_0A : string; +attribute INIT_0B : string; +attribute INIT_0C : string; +attribute INIT_0D : string; +attribute INIT_0E : string; +attribute INIT_0F : string; +attribute INIT_10 : string; +attribute INIT_11 : string; +attribute INIT_12 : string; +attribute INIT_13 : string; +attribute INIT_14 : string; +attribute INIT_15 : string; +attribute INIT_16 : string; +attribute INIT_17 : string; +attribute INIT_18 : string; +attribute INIT_19 : string; +attribute INIT_1A : string; +attribute INIT_1B : string; +attribute INIT_1C : string; +attribute INIT_1D : string; +attribute INIT_1E : string; +attribute INIT_1F : string; +attribute INIT_20 : string; +attribute INIT_21 : string; +attribute INIT_22 : string; +attribute INIT_23 : string; +attribute INIT_24 : string; +attribute INIT_25 : string; +attribute INIT_26 : string; +attribute INIT_27 : string; +attribute INIT_28 : string; +attribute INIT_29 : string; +attribute INIT_2A : string; +attribute INIT_2B : string; +attribute INIT_2C : string; +attribute INIT_2D : string; +attribute INIT_2E : string; +attribute INIT_2F : string; +attribute INIT_30 : string; +attribute INIT_31 : string; +attribute INIT_32 : string; +attribute INIT_33 : string; +attribute INIT_34 : string; +attribute INIT_35 : string; +attribute INIT_36 : string; +attribute INIT_37 : string; +attribute INIT_38 : string; +attribute INIT_39 : string; +attribute INIT_3A : string; +attribute INIT_3B : string; +attribute INIT_3C : string; +attribute INIT_3D : string; +attribute INIT_3E : string; +attribute INIT_3F : string; +attribute INITP_00 : string; +attribute INITP_01 : string; +attribute INITP_02 : string; +attribute INITP_03 : string; +attribute INITP_04 : string; +attribute INITP_05 : string; +attribute INITP_06 : string; +attribute INITP_07 : string; +-- +-- Attributes to define ROM contents during implementation synthesis. +-- +attribute INIT_00 of ram_1024_x_18 : label is "0123540C40400123020701FA01EF01E101D301B701AB013B013B013B013B013B"; +attribute INIT_01 of ram_1024_x_18 : label is "01260601150001230126060015000123540C40610123540C40450123540C4040"; +attribute INIT_02 of ram_1024_x_18 : label is "0126060515000123012606041500012301260603150001230126060215000123"; +attribute INIT_03 of ram_1024_x_18 : label is "0126060915000123012606081500012301260607150001230126060615000123"; +attribute INIT_04 of ram_1024_x_18 : label is "0126060D150001230126060C150001230126060B150001230126060A15000123"; +attribute INIT_05 of ram_1024_x_18 : label is "012606111500012301260610150001230126060F150001230126060E15000123"; +attribute INIT_06 of ram_1024_x_18 : label is "0126061515000123012606141500012301260613150001230126061215000123"; +attribute INIT_07 of ram_1024_x_18 : label is "0126061815000123012606171500012301230123012301230126061615000123"; +attribute INIT_08 of ram_1024_x_18 : label is "061C150001230126061B1500012301230126061A150001230126061915000123"; +attribute INIT_09 of ram_1024_x_18 : label is "0620150001230126061F150001230126061E150001230126061D150001230126"; +attribute INIT_0A of ram_1024_x_18 : label is "0624150001230126062315000123012606221500012301260621150001230126"; +attribute INIT_0B of ram_1024_x_18 : label is "0628150001230126062715000123012606261500012301260625150001230126"; +attribute INIT_0C of ram_1024_x_18 : label is "062C150001230126062B150001230126062A1500012301260629150001230126"; +attribute INIT_0D of ram_1024_x_18 : label is "012301260630150001230126062F15000123E02E01230126062D150001230126"; +attribute INIT_0E of ram_1024_x_18 : label is "0123012606341500012301260633150001230126063215000123012606311500"; +attribute INIT_0F of ram_1024_x_18 : label is "0123012606381500012301260637150001230126063615000123012606351500"; +attribute INIT_10 of ram_1024_x_18 : label is "01230126063C150001230126063B150001230126063A15000123012606391500"; +attribute INIT_11 of ram_1024_x_18 : label is "0123540C400D012301230126063F150001230126063E150001230126063D1500"; +attribute INIT_12 of ram_1024_x_18 : label is "552DCB0101280B0AA0005529CA010A0BA000D560A00010F00145400C540C400A"; +attribute INIT_13 of ram_1024_x_18 : label is "A000553CCD0101360D14A0005537CC0101310C19A0005532CB0101280B28A000"; +attribute INIT_14 of ram_1024_x_18 : label is "CFC0414B514F20024040A0004F804145554920044040A0005541CE01013B0E14"; +attribute INIT_15 of ram_1024_x_18 : label is "B80080C6A000A0DFBC00407BB8004061A000803AC1015D52C00A81010130A000"; +attribute INIT_16 of ram_1024_x_18 : label is "A0009200B800015E7010810102069200020602061200B800015E7010A000C0F6"; +attribute INIT_17 of ram_1024_x_18 : label is "803A8007597FC00AA0001100017CA00F10101200017C000E000E000E000E1100"; +attribute INIT_18 of ram_1024_x_18 : label is "1300B80001991030A0000181108001811090A000014B1F10014B1F200170A000"; +attribute INIT_19 of ram_1024_x_18 : label is "80075DA3C011B800C0E9B80080B9A000D030B800019910200306030603060306"; +attribute INIT_1A of ram_1024_x_18 : label is "0F61014B0F4502180218A000014B0F20A000014B0F0DA000800AA000C0F6B800"; +attribute INIT_1B of ram_1024_x_18 : label is "021B021B021B014B0F6E014B0F4502180218A0000213014B0F25014B0F01014B"; +attribute INIT_1C of ram_1024_x_18 : label is "0F28021B021B021B021B021B021B021B014B0F01021B021B014B0F01014B0F03"; +attribute INIT_1D of ram_1024_x_18 : label is "0213014B0F38021B021B021B021B014B0F79014B0F4102180218A0000213014B"; +attribute INIT_1E of ram_1024_x_18 : label is "0218A0000213014B0F3B021B021B021B021B014B0F7A014B0F4102180218A000"; +attribute INIT_1F of ram_1024_x_18 : label is "014B0F62014B0F4102180218A0000213014B0F11021B014B0F50014B0F410218"; +attribute INIT_20 of ram_1024_x_18 : label is "0F37014B0F01014B0F77014B0F4102180218A0000213014B0F23021B021B021B"; +attribute INIT_21 of ram_1024_x_18 : label is "00000000A000014B0F00A000014B0F40A000014B0F0A014B0F0DA0000213014B"; +attribute INIT_22 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_23 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_24 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_25 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_26 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_27 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_28 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_29 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2F of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_30 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_31 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_32 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_33 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_34 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_35 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_36 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_37 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_38 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_39 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3F of ram_1024_x_18 : label is "43FE800100000000000000000000000000000000000000000000000000000000"; +attribute INITP_00 of ram_1024_x_18 : label is "C3C3FFC3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3DF7DF7FFFFFF"; +attribute INITP_01 of ram_1024_x_18 : label is "F0F0F0F0F0F0F0F0F0F0EF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FC3C3"; +attribute INITP_02 of ram_1024_x_18 : label is "5D8C0EA89B19A2C998999752BD23D2DCB72DCB72DCB4A8FDF7F0F0F0F0F0F0F0"; +attribute INITP_03 of ram_1024_x_18 : label is "CCFBCF33EF3FF33EF3FF33EF3FFFCFCCFF33EF3333ECB26676662CAA2CB32CCE"; +attribute INITP_04 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000B2CB32F3333EF3F"; +attribute INITP_05 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_06 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_07 of ram_1024_x_18 : label is "F000000000000000000000000000000000000000000000000000000000000000"; +-- +begin +-- + --Instantiate the Xilinx primitive for a block RAM + ram_1024_x_18: RAMB16_S18 + --synthesis translate_off + --INIT values repeated to define contents for functional simulation + generic map ( INIT_00 => X"0123540C40400123020701FA01EF01E101D301B701AB013B013B013B013B013B", + INIT_01 => X"01260601150001230126060015000123540C40610123540C40450123540C4040", + INIT_02 => X"0126060515000123012606041500012301260603150001230126060215000123", + INIT_03 => X"0126060915000123012606081500012301260607150001230126060615000123", + INIT_04 => X"0126060D150001230126060C150001230126060B150001230126060A15000123", + INIT_05 => X"012606111500012301260610150001230126060F150001230126060E15000123", + INIT_06 => X"0126061515000123012606141500012301260613150001230126061215000123", + INIT_07 => X"0126061815000123012606171500012301230123012301230126061615000123", + INIT_08 => X"061C150001230126061B1500012301230126061A150001230126061915000123", + INIT_09 => X"0620150001230126061F150001230126061E150001230126061D150001230126", + INIT_0A => X"0624150001230126062315000123012606221500012301260621150001230126", + INIT_0B => X"0628150001230126062715000123012606261500012301260625150001230126", + INIT_0C => X"062C150001230126062B150001230126062A1500012301260629150001230126", + INIT_0D => X"012301260630150001230126062F15000123E02E01230126062D150001230126", + INIT_0E => X"0123012606341500012301260633150001230126063215000123012606311500", + INIT_0F => X"0123012606381500012301260637150001230126063615000123012606351500", + INIT_10 => X"01230126063C150001230126063B150001230126063A15000123012606391500", + INIT_11 => X"0123540C400D012301230126063F150001230126063E150001230126063D1500", + INIT_12 => X"552DCB0101280B0AA0005529CA010A0BA000D560A00010F00145400C540C400A", + INIT_13 => X"A000553CCD0101360D14A0005537CC0101310C19A0005532CB0101280B28A000", + INIT_14 => X"CFC0414B514F20024040A0004F804145554920044040A0005541CE01013B0E14", + INIT_15 => X"B80080C6A000A0DFBC00407BB8004061A000803AC1015D52C00A81010130A000", + INIT_16 => X"A0009200B800015E7010810102069200020602061200B800015E7010A000C0F6", + INIT_17 => X"803A8007597FC00AA0001100017CA00F10101200017C000E000E000E000E1100", + INIT_18 => X"1300B80001991030A0000181108001811090A000014B1F10014B1F200170A000", + INIT_19 => X"80075DA3C011B800C0E9B80080B9A000D030B800019910200306030603060306", + INIT_1A => X"0F61014B0F4502180218A000014B0F20A000014B0F0DA000800AA000C0F6B800", + INIT_1B => X"021B021B021B014B0F6E014B0F4502180218A0000213014B0F25014B0F01014B", + INIT_1C => X"0F28021B021B021B021B021B021B021B014B0F01021B021B014B0F01014B0F03", + INIT_1D => X"0213014B0F38021B021B021B021B014B0F79014B0F4102180218A0000213014B", + INIT_1E => X"0218A0000213014B0F3B021B021B021B021B014B0F7A014B0F4102180218A000", + INIT_1F => X"014B0F62014B0F4102180218A0000213014B0F11021B014B0F50014B0F410218", + INIT_20 => X"0F37014B0F01014B0F77014B0F4102180218A0000213014B0F23021B021B021B", + INIT_21 => X"00000000A000014B0F00A000014B0F40A000014B0F0A014B0F0DA0000213014B", + INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3F => X"43FE800100000000000000000000000000000000000000000000000000000000", + INITP_00 => X"C3C3FFC3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3DF7DF7FFFFFF", + INITP_01 => X"F0F0F0F0F0F0F0F0F0F0EF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FC3C3", + INITP_02 => X"5D8C0EA89B19A2C998999752BD23D2DCB72DCB72DCB4A8FDF7F0F0F0F0F0F0F0", + INITP_03 => X"CCFBCF33EF3FF33EF3FF33EF3FFFCFCCFF33EF3333ECB26676662CAA2CB32CCE", + INITP_04 => X"0000000000000000000000000000000000000000000000000B2CB32F3333EF3F", + INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_07 => X"F000000000000000000000000000000000000000000000000000000000000000") + --synthesis translate_on + port map( DI => "0000000000000000", + DIP => "00", + EN => '1', + WE => '0', + SSR => '0', + CLK => clk, + ADDR => address, + DO => instruction(15 downto 0), + DOP => instruction(17 downto 16)); +-- +end low_level_definition; +-- +------------------------------------------------------------------------------------ +-- +-- END OF FILE gpsnfifo.vhd +-- +------------------------------------------------------------------------------------ diff --git a/GPS_n_fifo.vhd b/GPS_n_fifo.vhd new file mode 100644 index 0000000..43d875a --- /dev/null +++ b/GPS_n_fifo.vhd @@ -0,0 +1,441 @@ +-- +-- Copyright (C) 2011 Horacio Arnaldi +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +-- +------------------------------------------------------------------------------------ +-- +-- +entity Oncore_ctrl is + Port ( + clk : in std_logic; + tx_female : out std_logic; + rx_female : in std_logic; + UTCnGPS : in std_logic; + + -- Costants data output + month_port : out std_logic_vector(7 downto 0); + day_port : out std_logic_vector(7 downto 0); + year1_port : out std_logic_vector(7 downto 0); + year2_port : out std_logic_vector(7 downto 0); + hours_port : out std_logic_vector(7 downto 0); + minutes_port : out std_logic_vector(7 downto 0); + seconds_port : out std_logic_vector(7 downto 0); + fract_sec1_port : out std_logic_vector(7 downto 0); + fract_sec2_port : out std_logic_vector(7 downto 0); + fract_sec3_port : out std_logic_vector(7 downto 0); + fract_sec4_port : out std_logic_vector(7 downto 0); + latitude1_port : out std_logic_vector(7 downto 0); + latitude2_port : out std_logic_vector(7 downto 0); + latitude3_port : out std_logic_vector(7 downto 0); + latitude4_port : out std_logic_vector(7 downto 0); + longitude1_port : out std_logic_vector(7 downto 0); + longitude2_port : out std_logic_vector(7 downto 0); + longitude3_port : out std_logic_vector(7 downto 0); + longitude4_port : out std_logic_vector(7 downto 0); + ellipsoid1_port : out std_logic_vector(7 downto 0); + ellipsoid2_port : out std_logic_vector(7 downto 0); + ellipsoid3_port : out std_logic_vector(7 downto 0); + ellipsoid4_port : out std_logic_vector(7 downto 0); + velocity1_port : out std_logic_vector(7 downto 0); + velocity2_port : out std_logic_vector(7 downto 0); + heading1_port : out std_logic_vector(7 downto 0); + heading2_port : out std_logic_vector(7 downto 0); + geometry2_port : out std_logic_vector(7 downto 0); + DOP_type_port : out std_logic_vector(7 downto 0); + num_vis_sat_port : out std_logic_vector(7 downto 0); + num_track_sat_port : out std_logic_vector(7 downto 0); + + sat_ID1_port : out std_logic_vector(7 downto 0); + chtm1_port : out std_logic_vector(7 downto 0); + CNo1_port : out std_logic_vector(7 downto 0); + chsf1_port : out std_logic_vector(7 downto 0); + + sat_ID2_port : out std_logic_vector(7 downto 0); + chtm2_port : out std_logic_vector(7 downto 0); + CNo2_port : out std_logic_vector(7 downto 0); + chsf2_port : out std_logic_vector(7 downto 0); + + sat_ID3_port : out std_logic_vector(7 downto 0); + chtm3_port : out std_logic_vector(7 downto 0); + CNo3_port : out std_logic_vector(7 downto 0); + chsf3_port : out std_logic_vector(7 downto 0); + + sat_ID4_port : out std_logic_vector(7 downto 0); + chtm4_port : out std_logic_vector(7 downto 0); + CNo4_port : out std_logic_vector(7 downto 0); + chsf4_port : out std_logic_vector(7 downto 0); + + sat_ID5_port : out std_logic_vector(7 downto 0); + chtm5_port : out std_logic_vector(7 downto 0); + CNo5_port : out std_logic_vector(7 downto 0); + chsf5_port : out std_logic_vector(7 downto 0); + + sat_ID6_port : out std_logic_vector(7 downto 0); + chtm6_port : out std_logic_vector(7 downto 0); + CNo6_port : out std_logic_vector(7 downto 0); + chsf6_port : out std_logic_vector(7 downto 0); + + sat_ID7_port : out std_logic_vector(7 downto 0); + chtm7_port : out std_logic_vector(7 downto 0); + CNo7_port : out std_logic_vector(7 downto 0); + chsf7_port : out std_logic_vector(7 downto 0); + + sat_ID8_port : out std_logic_vector(7 downto 0); + chtm8_port : out std_logic_vector(7 downto 0); + CNo8_port : out std_logic_vector(7 downto 0); + chsf8_port : out std_logic_vector(7 downto 0); + + rsf_port : out std_logic_vector(7 downto 0)); +end Oncore_ctrl; +-- +------------------------------------------------------------------------------------ +-- +-- Start of test architecture +-- +architecture rtl of Oncore_ctrl is +-- +------------------------------------------------------------------------------------ + +-- +-- declaration of KCPSM3 +-- + component kcpsm3 + Port ( address : out std_logic_vector(9 downto 0); + instruction : in std_logic_vector(17 downto 0); + port_id : out std_logic_vector(7 downto 0); + write_strobe : out std_logic; + out_port : out std_logic_vector(7 downto 0); + read_strobe : out std_logic; + in_port : in std_logic_vector(7 downto 0); + interrupt : in std_logic; + interrupt_ack : out std_logic; + reset : in std_logic; + clk : in std_logic); + end component; +-- +-- declaration of program ROM +-- + component gpsnfifo + Port ( address : in std_logic_vector(9 downto 0); + instruction : out std_logic_vector(17 downto 0); + clk : in std_logic); + end component; +-- +------------------------------------------------------------------------------------ +-- +-- +-- declaration of UART transmitter with integral 16 byte FIFO buffer. +-- + component uart_tx + Port ( data_in : in std_logic_vector(7 downto 0); + write_buffer : in std_logic; + reset_buffer : in std_logic; + en_16_x_baud : in std_logic; + serial_out : out std_logic; + buffer_full : out std_logic; + buffer_half_full : out std_logic; + clk : in std_logic); + end component; +-- +-- declaration of UART Receiver with integral 16 byte FIFO buffer +-- + component uart_rx + Port ( serial_in : in std_logic; + data_out : out std_logic_vector(7 downto 0); + read_buffer : in std_logic; + reset_buffer : in std_logic; + en_16_x_baud : in std_logic; + buffer_data_present : out std_logic; + buffer_full : out std_logic; + buffer_half_full : out std_logic; + clk : in std_logic); + end component; +-- +-- Signals used to connect KCPSM3 to program ROM and I/O logic +-- +signal address : std_logic_vector(9 downto 0); +signal instruction : std_logic_vector(17 downto 0); +signal port_id : std_logic_vector(7 downto 0); +signal out_port : std_logic_vector(7 downto 0); +signal in_port : std_logic_vector(7 downto 0); +signal swrite_strobe : std_logic; +signal sread_strobe : std_logic; +signal interrupt : std_logic; +signal interrupt_ack : std_logic; +signal kcpsm3_reset : std_logic; +-- +-- Signals for connection of peripherals +-- +signal status_port : std_logic_vector(7 downto 0); +-- +-- Signals for interrupt generation +-- +--signal interrupt_count : integer range 0 to 1526 :=0; +--signal interrupt_event : std_logic; +-- +-- Signals for UART connections +-- +signal baud_count : integer range 0 to 325 :=0; +signal en_16_x_baud : std_logic; +signal write_to_uart : std_logic; +signal tx_full : std_logic; +signal tx_half_full : std_logic; +signal read_from_uart : std_logic; +signal rx_data : std_logic_vector(7 downto 0); +signal rx_data_present : std_logic; +signal rx_full : std_logic; +signal rx_half_full : std_logic; +-- +-- +-- +begin + + ---------------------------------------------------------------------------------------------------------------------------------- + -- KCPSM3 and the program memory + ---------------------------------------------------------------------------------------------------------------------------------- + -- + + processor: kcpsm3 + port map( address => address, + instruction => instruction, + port_id => port_id, + write_strobe => swrite_strobe, + out_port => out_port, + read_strobe => sread_strobe, + in_port => in_port, + interrupt => interrupt, + interrupt_ack => interrupt_ack, + reset => kcpsm3_reset, + clk => clk); + + program_rom: gpsnfifo + port map( address => address, + instruction => instruction, + clk => clk); + + -- + -- + -- Interrupt is not used in this version of the design. + -- + interrupt <= interrupt_ack; + -- + -- + -- + ---------------------------------------------------------------------------------------------------------------------------------- + -- KCPSM3 input ports + ---------------------------------------------------------------------------------------------------------------------------------- + -- + -- + -- UART FIFO status signals to form a bus + -- + + status_port <= UTCnGPS & "00" & rx_full & rx_half_full & rx_data_present & tx_full & tx_half_full; + + -- + -- + -- The inputs connect via a pipelined multiplexer + -- + input_ports: process(clk) + begin + if clk'event and clk='1' then + + case port_id(7 downto 6) is + + + -- read status signals at address 00 hex + when "01" => in_port <= status_port; + + -- read UART receive data at address 01 hex + when "10" => in_port <= rx_data; + + -- Don't care used for all other addresses to ensure minimum logic implementation + when others => in_port <= "XXXXXXXX"; + + end case; + + -- Form read strobe for UART receiver FIFO buffer at address 01 hex. + -- The fact that the read strobe will occur after the actual data is read by + -- the KCPSM3 is acceptable because it is really means 'I have read you'! + + if (sread_strobe='1' and port_id(7 downto 6)="10") then + read_from_uart <= '1'; + else + read_from_uart <= '0'; + end if; + + end if; + + end process input_ports; + + -- + ---------------------------------------------------------------------------------------------------------------------------------- + -- KCPSM3 output ports + ---------------------------------------------------------------------------------------------------------------------------------- + -- + + -- adding the output registers to the processor + + output_ports: process(clk) + begin + + if clk'event and clk='1' then + if swrite_strobe='1' then + + case port_id is--(5 downto 0) is + + when x"00" => month_port <= out_port; + when x"01" => day_port <= out_port; + when x"02" => year1_port <= out_port; + when x"03" => year2_port <= out_port; + when x"04" => hours_port <= out_port; + when x"05" => minutes_port <= out_port; + when x"06" => seconds_port <= out_port; + when x"07" => fract_sec1_port <= out_port; + when x"08" => fract_sec2_port <= out_port; + when x"09" => fract_sec3_port <= out_port; + when x"0A" => fract_sec4_port <= out_port; + when x"0B" => latitude1_port <= out_port; + when x"0C" => latitude2_port <= out_port; + when x"0D" => latitude3_port <= out_port; + when x"0E" => latitude4_port <= out_port; + when x"0F" => longitude1_port <= out_port; + when x"10" => longitude2_port <= out_port; + when x"11" => longitude3_port <= out_port; + when x"12" => longitude4_port <= out_port; + when x"13" => ellipsoid1_port <= out_port; + when x"14" => ellipsoid2_port <= out_port; + when x"15" => ellipsoid3_port <= out_port; + when x"16" => ellipsoid4_port <= out_port; + when x"17" => velocity1_port <= out_port; + when x"18" => velocity2_port <= out_port; + when x"19" => heading1_port <= out_port; + when x"1A" => heading2_port <= out_port; + when x"1B" => geometry2_port <= out_port; + when x"1C" => DOP_type_port <= out_port; + when x"1D" => num_vis_sat_port <= out_port; + when x"1E" => num_track_sat_port <= out_port; + when x"1F" => sat_ID1_port <= out_port; + when x"20" => chtm1_port <= out_port; + when x"21" => CNo1_port <= out_port; + when x"22" => chsf1_port <= out_port; + when x"23" => sat_ID2_port <= out_port; + when x"24" => chtm2_port <= out_port; + when x"25" => CNo2_port <= out_port; + when x"26" => chsf2_port <= out_port; + when x"27" => sat_ID3_port <= out_port; + when x"28" => chtm3_port <= out_port; + when x"29" => CNo3_port <= out_port; + when x"2A" => chsf3_port <= out_port; + when x"2B" => sat_ID4_port <= out_port; + when x"2C" => chtm4_port <= out_port; + when x"2D" => CNo4_port <= out_port; + when x"2E" => chsf4_port <= out_port; + when x"2F" => sat_ID5_port <= out_port; + when x"30" => chtm5_port <= out_port; + when x"31" => CNo5_port <= out_port; + when x"32" => chsf5_port <= out_port; + when x"33" => sat_ID6_port <= out_port; + when x"34" => chtm6_port <= out_port; + when x"35" => CNo6_port <= out_port; + when x"36" => chsf6_port <= out_port; + when x"37" => sat_ID7_port <= out_port; + when x"38" => chtm7_port <= out_port; + when x"39" => CNo7_port <= out_port; + when x"3A" => chsf7_port <= out_port; + when x"3B" => sat_ID8_port <= out_port; + when x"3C" => chtm8_port <= out_port; + when x"3D" => CNo8_port <= out_port; + when x"3E" => chsf8_port <= out_port; + when x"3F" => rsf_port <= out_port; + + -- Don't care used for all other addresses to + -- ensure minimum logic implementation + when others => + + end case; + + end if; + + end if; + + end process output_ports; + + -- + -- write to UART transmitter FIFO buffer at address 20 hex. + -- This is a combinatorial decode because the FIFO is the 'port register'. + -- + + write_to_uart <= '1' when (swrite_strobe='1' and port_id(7 downto 6) ="11") else '0'; + + + -- + ---------------------------------------------------------------------------------------------------------------------------------- + -- UART + ---------------------------------------------------------------------------------------------------------------------------------- + -- + -- Connect the 8-bit, 1 stop-bit, no parity transmit and receive macros. + -- Each contains an embedded 16-byte FIFO buffer. + -- + + transmit: uart_tx + port map ( data_in => out_port, + write_buffer => write_to_uart, + reset_buffer => '0', + en_16_x_baud => en_16_x_baud, + serial_out => tx_female, + buffer_full => tx_full, + buffer_half_full => tx_half_full, + clk => clk ); + + receive: uart_rx + port map ( serial_in => rx_female, + data_out => rx_data, + read_buffer => read_from_uart, + reset_buffer => '0', + en_16_x_baud => en_16_x_baud, + buffer_data_present => rx_data_present, + buffer_full => rx_full, + buffer_half_full => rx_half_full, + clk => clk ); + + -- + -- Set baud rate to 9600 for the UART communications + -- Requires en_16_x_baud to be 153600Hz which is a single cycle pulse every 326 cycles at 50MHz + -- + + baud_timer: process(clk) + begin + if clk'event and clk='1' then + if baud_count=325 then + baud_count <= 0; + en_16_x_baud <= '1'; + else + baud_count <= baud_count + 1; + en_16_x_baud <= '0'; + end if; + end if; + end process baud_timer; + + -- + -- + ---------------------------------------------------------------------------------------------------------------------------------- + +end rtl; diff --git a/HP03_par_control.vhd b/HP03_par_control.vhd new file mode 100644 index 0000000..dff5910 --- /dev/null +++ b/HP03_par_control.vhd @@ -0,0 +1,347 @@ +-- +-- Copyright (C) 2011 Horacio Arnaldi +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +-- +------------------------------------------------------------------------------------ +-- +-- +entity HP03_cntrl is + Port ( clk : in std_logic; + -- I2C and HP03 related signals + SDA : inout std_logic; + SCL : out std_logic; + XCLR : out std_logic; + MCLK : out std_logic; + -- Costants data output + C1 : out std_logic_vector(15 downto 0); + C2 : out std_logic_vector(15 downto 0); + C3 : out std_logic_vector(15 downto 0); + C4 : out std_logic_vector(15 downto 0); + C5 : out std_logic_vector(15 downto 0); + C6 : out std_logic_vector(15 downto 0); + C7 : out std_logic_vector(15 downto 0); + A : out std_logic_vector(7 downto 0); + B : out std_logic_vector(7 downto 0); + C : out std_logic_vector(7 downto 0); + D : out std_logic_vector(7 downto 0); + -- ADC data output + -- Pressure data + D1 : out std_logic_vector(15 downto 0); + -- Temperature data + D2 : out std_logic_vector(15 downto 0)); + end HP03_cntrl; +-- +------------------------------------------------------------------------------------ +-- +-- Start of test architecture +-- +architecture rtl of HP03_cntrl is +-- +------------------------------------------------------------------------------------ + +-- +-- declaration of KCPSM3 +-- + component kcpsm3 + Port ( address : out std_logic_vector(9 downto 0); + instruction : in std_logic_vector(17 downto 0); + port_id : out std_logic_vector(7 downto 0); + write_strobe : out std_logic; + out_port : out std_logic_vector(7 downto 0); + read_strobe : out std_logic; + in_port : in std_logic_vector(7 downto 0); + interrupt : in std_logic; + interrupt_ack : out std_logic; + reset : in std_logic; + clk : in std_logic); + end component; +-- +-- declaration of program ROM +-- + component hp_lago + Port ( address : in std_logic_vector(9 downto 0); + instruction : out std_logic_vector(17 downto 0); + clk : in std_logic); + end component; +-- +------------------------------------------------------------------------------------ +-- +-- Signals used to connect KCPSM3 to program ROM and I/O logic +-- +signal address : std_logic_vector(9 downto 0); +signal instruction : std_logic_vector(17 downto 0); +signal port_id : std_logic_vector(7 downto 0); +signal out_port : std_logic_vector(7 downto 0); +signal in_port : std_logic_vector(7 downto 0); +signal swrite_strobe : std_logic; +signal sread_strobe : std_logic; +signal interrupt : std_logic; +signal interrupt_ack : std_logic; +signal kcpsm3_reset : std_logic; +-- +-- Signals for connection of peripherals +-- +-- Signals for mclk generation +-- +signal mclk_count : integer range 0 to 763 :=0; --32khz +signal mclk_int : std_logic; +-- +signal sC1_msb, sC1_lsb : std_logic_vector(7 downto 0); +signal sC2_msb, sC2_lsb : std_logic_vector(7 downto 0); +signal sC3_msb, sC3_lsb : std_logic_vector(7 downto 0); +signal sC4_msb, sC4_lsb : std_logic_vector(7 downto 0); +signal sC5_msb, sC5_lsb : std_logic_vector(7 downto 0); +signal sC6_msb, sC6_lsb : std_logic_vector(7 downto 0); +signal sC7_msb, sC7_lsb : std_logic_vector(7 downto 0); +signal sA, sB : std_logic_vector(7 downto 0); +signal sC, sD : std_logic_vector(7 downto 0); +signal sD1_msb, sD1_lsb : std_logic_vector(7 downto 0); +signal sD2_msb, sD2_lsb : std_logic_vector(7 downto 0); +-- Signal to connect to HP03 SDA interface +-- +signal drive_hp_wire, sSCL, sXCLR : std_logic; +-- +-- +begin + -- + ---------------------------------------------------------------------------------------------------------------------------------- + -- Open Collector Bidirectional data interface to HP03 + ---------------------------------------------------------------------------------------------------------------------------------- + -- + -- The I2C interface is an open collector interface with an external pull-up resistor + -- fitted on the board. + -- + -- To transmit a Low signal, the output buffer must be enabled with a data value of '0'. + -- To transmit a High, the output buffer is disabled (tri-state) and the external + -- pull-up generates the '1'. + -- Receiving a bit is again performed with the output buffer disabled. + -- + -- + SDA <= '0' when (drive_hp_wire='0') else 'Z'; + SCL <= sSCL; + XCLR <= sXCLR; + -- + C1 <= sC1_msb & sC1_lsb; + C2 <= sC2_msb & sC2_lsb; + C3 <= sC3_msb & sC3_lsb; + C4 <= sC4_msb & sC4_lsb; + C5 <= sC5_msb & sC5_lsb; + C6 <= sC6_msb & sC6_lsb; + C7 <= sC7_msb & sC7_lsb; + A <= sA; + B <= sB; + C <= sC; + D <= sD; + D1 <= sD1_msb & sD1_lsb; + D2 <= sD2_msb & sD2_lsb; + -- + ------------------------------------------------------------------------------------------- + -- KCPSM3 and the program memory + ------------------------------------------------------------------------------------------- + -- + processor: kcpsm3 + port map( address => address, + instruction => instruction, + port_id => port_id, + write_strobe => swrite_strobe, + out_port => out_port, + read_strobe => sread_strobe, + in_port => in_port, + interrupt => interrupt, + interrupt_ack => interrupt_ack, + reset => kcpsm3_reset, + clk => clk); + + program_rom: hp_lago + port map( address => address, + instruction => instruction, + clk => clk); + -- + -- + ------------------------------------------------------------------------------------------- + -- Interrupt + ------------------------------------------------------------------------------------------- + -- + -- + -- Interrupt is not used in this version of the design. + -- + interrupt <= interrupt_ack; + -- + ------------------------------------------------------------------------------------------- + -- KCPSM3 input ports + ------------------------------------------------------------------------------------------- + -- + input_ports: process(clk) + begin + if clk'event and clk = '1' then + if port_id(5) = '1' then + in_port <= "0000000" & SDA; + else + in_port <= "XXXXXXXX"; + end if; + end if; + + end process input_ports; + -- + ------------------------------------------------------------------------------------------- + -- KCPSM3 output ports + ------------------------------------------------------------------------------------------- + -- + -- adding the output registers to the processor + + output_ports: process(clk) + begin + + if clk'event and clk='1' then + if swrite_strobe='1' then + if port_id(6) = '1' then + drive_hp_wire <= out_port(0); + sSCL <= out_port(1); + sXCLR <= out_port(2); + end if; + + case port_id(4 downto 0) is + -- Write C1_msb constant at address 01 hex + when "00001" => + sC1_msb <= out_port +; + -- Write C1_lsb constant at address 02 hex + when "00010" => + sC1_lsb <= out_port; + + -- Write C2_msb constant at address 03 hex + when "00011" => + sC2_msb <= out_port; + + -- Write C2_lsb constant at address 04 hex + when "00100" => + sC2_lsb <= out_port; + + -- Write C3_msb constant at address 05 hex + when "00101" => + sC3_msb <= out_port; + + -- Write C3_lsb constant at address 06 hex + when "00110" => + sC3_lsb <= out_port; + + -- Write C4_msb constant at address 07 hex + when "00111" => + sC4_msb <= out_port; + + -- Write C4_lsb constant at address 08 hex + when "01000" => + sC4_lsb <= out_port; + -- Write C5_msb constant at address 09 hex + when "01001" => + sC5_msb <= out_port; + -- Write C5_lsb constant at address 0A hex + when "01010" => + sC5_lsb <= out_port; + -- Write C6_msb constant at address 0B hex + when "01011" => + sC6_msb <= out_port; + -- Write C6_lsb constant at address 0C hex + when "01100" => + sC6_lsb <= out_port; + -- Write C7_msb constant at address 0D hex + when "01101" => + sC7_msb <= out_port; + -- Write C7_lsb constant at address 0E hex + when "01110" => + sC7_lsb <= out_port; + -- Write A constant at address 0F hex + when "01111" => + sA <= out_port; + -- Write B constant at address 10 hex + when "10000" => + sB <= out_port; + -- Write C constant at address 11 hex + when "10001" => + sC <= out_port; + -- Write D constant at address 12 hex + when "10010" => + sD <= out_port; + -- Write ADC data D1_msb at address 13 hex + when "10011" => + sD1_msb <= out_port; + -- Write ADC data D1_lsb at address 14 hex + when "10100" => + sD1_lsb <= out_port; + -- Write ADC data D2_msb at address 15 hex + when "10101" => + sD2_msb <= out_port; + -- Write ADC data D2_lsb at address 16 hex + when "10110" => + sD2_lsb <= out_port; + -- Don't care used for all other addresses to + -- ensure minimum logic implementation + when others => + sC1_msb <= "XXXXXXXX"; + sC1_lsb <= "XXXXXXXX"; + sC2_msb <= "XXXXXXXX"; + sC2_lsb <= "XXXXXXXX"; + sC3_msb <= "XXXXXXXX"; + sC3_lsb <= "XXXXXXXX"; + sC4_msb <= "XXXXXXXX"; + sC4_lsb <= "XXXXXXXX"; + sC5_msb <= "XXXXXXXX"; + sC5_lsb <= "XXXXXXXX"; + sC6_msb <= "XXXXXXXX"; + sC6_lsb <= "XXXXXXXX"; + sC7_msb <= "XXXXXXXX"; + sC7_lsb <= "XXXXXXXX"; + sA <= "XXXXXXXX"; + sB <= "XXXXXXXX"; + sC <= "XXXXXXXX"; + sD <= "XXXXXXXX"; + sD1_msb <= "XXXXXXXX"; + sD1_lsb <= "XXXXXXXX"; + sD2_msb <= "XXXXXXXX"; + sD2_lsb <= "XXXXXXXX"; + + end case; + + end if; + + end if; + + end process output_ports; + + -- Set MCLK to drive HP03 + -- + mclk_timer: process(clk) + begin + if clk'event and clk='1' then + if mclk_count=763 then + mclk_count <= 0; + mclk_int <= not mclk_int; + else + mclk_count <= mclk_count + 1; + mclk_int <= mclk_int; + end if; + end if; + end process mclk_timer; + MCLK <= mclk_int; + -- + --------------------------------------------------------------------------------- + +end rtl; diff --git a/HP_LAGO.FMT b/HP_LAGO.FMT new file mode 100644 index 0000000..bdfecc1 --- /dev/null +++ b/HP_LAGO.FMT @@ -0,0 +1,735 @@ + ;*********************************************************** + ;copyright (c) 2011 + ;Title: HP03 simple example based on PicoBlaze MCU + ;Current version: v1r2 + ;Function: Calculate pressure, altitude and temperature + ;Core: KCPSM3 (Spartan3E version) + ;Clock: 50MHz Crystal (Nexys2 clock) + ;Author: Horacio Arnaldi + ;Company: CAB - IB (CNEA) + ;Contact: (+54)-2944-445500 + ;e-mail: lharnaldi@cab.cnea.gov.ar + ;Date: 2011-05-23 v1r1 + ; 2011-09-14 v1r2 + ; + ;*********************************************************** + ; + ;*********************************************************** + ;Routine declarations + ;*********************************************************** + ; IIC_ReadCalData ; + ; ReadTPAD + ; Read_Tempreture + ; Read_Pressure + ; CalculatePressTemp + ; CalculateAltitude + ; IIC_ReadByte + ; IIC_WriteByte + ; IIC_Start + ; IIC_Stop + ; IIC_ACK + ; IIC_NoAck + ; IIC_SDA_HIGH + ; IIC_SDA_LOW + ; IIC_SCL_HIGH + ; IIC_SCL_LOW + ; IIC_XCLR_LOW + ; IIC_XCLR_HIGH + ; + ;*************************************************** + ;port definitions + ;*************************************************** + CONSTANT C1_msb_port, 01 ; + CONSTANT C1_lsb_port, 02 ; + CONSTANT C2_msb_port, 03 ; + CONSTANT C2_lsb_port, 04 ; + CONSTANT C3_msb_port, 05 ; + CONSTANT C3_lsb_port, 06 ; + CONSTANT C4_msb_port, 07 ; + CONSTANT C4_lsb_port, 08 ; + CONSTANT C5_msb_port, 09 ; + CONSTANT C5_lsb_port, 0A ; + CONSTANT C6_lsb_port, 0B ; + CONSTANT C6_msb_port, 0C ; + CONSTANT C7_lsb_port, 0D ; + CONSTANT C7_msb_port, 0E ; + CONSTANT A_port, 0F ; + CONSTANT B_port, 10 ; + CONSTANT C_port, 11 ; + CONSTANT D_port, 12 ; + CONSTANT D1_msb_port, 13 ; + CONSTANT D1_lsb_port, 14 ; + CONSTANT D2_msb_port, 15 ; + CONSTANT D2_lsb_port, 16 ; + ; + CONSTANT IIC_in_port, 20 ; Read signal from HP03 device + CONSTANT IIC_out_port, 40 ; Drive signal to HP03 device (open collector) + CONSTANT SDA_wire, 01 ; Signal is bit0 in both cases + CONSTANT SCL_wire, 02 + CONSTANT XCLR, 04 + ; + ; + ;************************************************************************************** + ; Special Register usage + ;************************************************************************************** + ; + NAMEREG sF, UART_data ;used to pass data to and from the UART + ; + ; + ; + ;************************************************** + ;scratch pad memory locations + ;************************************************** + ;Values read from EEPROM + ;Compensations coefficients and ADC values + ; + CONSTANT C1_msb, 00 ;Sensitivity coefficient + CONSTANT C1_lsb, 01 + CONSTANT C2_msb, 02 ;Offset coefficient + CONSTANT C2_lsb, 03 + CONSTANT C3_msb, 04 ;Temperature Coefficient of Sensitivity + CONSTANT C3_lsb, 05 + CONSTANT C4_msb, 06 ;Temperature Coefficient of Offset + CONSTANT C4_lsb, 07 + CONSTANT C5_msb, 08 ;Reference Temperature + CONSTANT C5_lsb, 09 + CONSTANT C6_msb, 0A ;Temperature Coefficient of Temperature + CONSTANT C6_lsb, 0B + CONSTANT C7_msb, 0C ;Offset Fine Tuning + CONSTANT C7_lsb, 0D + CONSTANT A_A, 0E ;Sensor Specific Parameter + CONSTANT B_B, 0F ;Sensor Specific Parameter + CONSTANT C_C, 10 ;Sensor Specific Parameter + CONSTANT D_D, 11 ;Sensor Specific Parameter + CONSTANT D1_msb, 12 ;ADC pressure measured MSB and LSB + CONSTANT D1_lsb, 13 ; + CONSTANT D2_msb, 14 ;ADC temperature meassured MSB and LSB + CONSTANT D2_lsb, 15 ; + ; + CONSTANT IIC_control_status, 16 ;control status bits + ; + ;*************************************************** + ;data constants + ;*************************************************** + ;chip addresses + CONSTANT eeprom_addr_A0, A0 + CONSTANT eeprom_addr_A1, A1 + CONSTANT eeprom_start_addr, 10 + CONSTANT AD_addr_EE, EE + CONSTANT AD_addr_FF, FF + CONSTANT AD_addr_F0, F0 + CONSTANT AD_addr_E8, E8 + CONSTANT AD_addr_FD, FD + CONSTANT AD_addr_EF, EF + ; + CONSTANT delay_1us_constant, 0B + ; + CONSTANT CLR_SCL_MASK, FD + CONSTANT CLR_SDA_MASK, FE + CONSTANT CLR_XCLR_MASK, FB + ; + ;******************************************************************* + ;main program + ;******************************************************************* + ; It is in an infinity loop. + ; Read constants, send them just once, read ADC values, + ; wait a minute and read ADC values again and so on. + ; It continuoulsy update external registers to be read from + ; other logic. + ;****************************************************************** + cold_start: CALL IIC_init + CALL delay_20ms ;initial delay + CALL delay_20ms + CALL delay_20ms + CALL delay_20ms + CALL delay_20ms + CALL IIC_ReadCalData ;read calibration data + ; + ; + ;Main loop + ; + warm_start: CALL send_constants ; first of all, send constants + loop: CALL read_PTADC ; read AD values + CALL delay_1s ; wait for 10 seconds + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + CALL delay_1s + JUMP loop ; do it again! + ; + ; + ; + ;*********************************************************** + ; Initialize IIC bus + ;*********************************************************** + ; + ;This routine should be used to initialise the IIC bus. + ;The SCL clock is made high. + ;Device selections are made inactive as follows + ; SDA = 1 + ; SCL = 1 + ; XCLR = 0 Initially low + ; + ; + IIC_init: LOAD s0, 03 ;normally 03 + OUTPUT s0, IIC_out_port + STORE s0, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;routine: IIC_ReadCalData + ; function: read calibration data from eeprom chip + ; output register: + ; + ; temp register: s0 + ;******************************************************************* + ; + ; + IIC_ReadCalData: CALL IIC_Start ;perform a start condition + LOAD s0, eeprom_addr_A0 + CALL IIC_WriteByte + LOAD s0, eeprom_start_addr + CALL IIC_WriteByte + CALL IIC_Start + LOAD s0, eeprom_addr_A1 + CALL IIC_WriteByte + ; + CALL IIC_ReadByte + STORE s0, C1_msb ;save C1 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C1_lsb ;save C1 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C2_msb ;save C2 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C2_lsb ;save C2 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C3_msb ;save C3 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C3_lsb ;save C3 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C4_msb ;save C4 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C4_lsb ;save C4 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C5_msb ;save C5 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C5_lsb ;save C5 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C6_msb ;save C6 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C6_lsb ;save C6 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C7_msb ;save C7 msb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C7_lsb ;save C7 lsb to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, A_A ;save A_A to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, B_B ;save B_B to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, C_C ;save C_C to mem + CALL IIC_ACK + ; + CALL IIC_ReadByte + STORE s0, D_D ;save D_D to mem + CALL IIC_NoACK ;no ack + CALL IIC_Stop ;stop receibing data + ; + RETURN + ; + ; + ;******************************************************************* + ;Routine: ReadPTADC + ; Function: Read D1 and D2 from HP03 + ; Input regicter: + ; Output register: + ;******************************************************************* + ; + read_PTADC: CALL IIC_XCLR_HIGH ;set XCLR + CALL delay_1ms + CALL delay_1ms + CALL read_pressure ;data in D1_msb, D1_lsb + CALL read_temperature ;data in D2_msb, D2_lsb + CALL IIC_XCLR_LOW + ; + send_pressure: FETCH s9, D1_msb + OUTPUT s9, D1_msb_port + FETCH s8, D1_lsb + OUTPUT s8, D1_lsb_port + ; + ; +send_temperature: FETCH s9, D2_msb + OUTPUT s9, D2_msb_port + FETCH s8, D2_lsb + OUTPUT s8, D2_lsb_port + RETURN + ; + ; + send_constants: FETCH s0, C1_msb + OUTPUT s0, C1_msb_port + FETCH s0, C1_lsb + OUTPUT s0, C1_lsb_port + ; + ; + FETCH s0, C2_msb + OUTPUT s0, C2_msb_port + FETCH s0, C2_lsb + OUTPUT s0, C2_lsb_port + ; + ; + FETCH s0, C3_msb + OUTPUT s0, C3_msb_port + FETCH s0, C3_lsb + OUTPUT s0, C3_lsb_port + ; + ; + FETCH s0, C4_msb + OUTPUT s0, C4_msb_port + FETCH s0, C4_lsb + OUTPUT s0, C4_lsb_port + ; + ; + FETCH s0, C5_msb + OUTPUT s0, C5_msb_port + FETCH s0, C5_lsb + OUTPUT s0, C5_lsb_port + ; + ; + FETCH s0, C6_msb + OUTPUT s0, C6_msb_port + FETCH s0, C6_lsb + OUTPUT s0, C6_lsb_port + ; + ; + FETCH s0, C7_msb + OUTPUT s0, C7_msb_port + FETCH s0, C7_lsb + OUTPUT s0, C7_lsb_port + ; + ; + FETCH s0, A_A + OUTPUT s0, A_port + ; + ; + FETCH s0, B_B + OUTPUT s0, B_port + ; + ; + FETCH s0, C_C + OUTPUT s0, C_port + ; + ; + FETCH s0, D_D + OUTPUT s0, D_port + ; + ; + RETURN + ; + ; + ;******************************************************************* + ;Routine: Read_pressure + ; Function: read pressure value from HP03 + ; Store result in D1_msb and D1_lsb registers + ; Output register: D1_msb, D1_lsb + ; Temp register: s0 + ;******************************************************************* + ; + read_pressure: CALL IIC_Start ;perform start condition + LOAD s0, AD_addr_EE ;write EE address + CALL IIC_WriteByte + LOAD s0, AD_addr_FF ;write FF address + CALL IIC_WriteByte + LOAD s0, AD_addr_F0 ;write F0 address + CALL IIC_WriteByte + CALL IIC_Stop + CALL delay_20ms ; + CALL delay_20ms + CALL IIC_Start + LOAD s0, AD_addr_EE ;write EE address + CALL IIC_WriteByte + LOAD s0, AD_addr_FD ;write FD address + CALL IIC_WriteByte + CALL IIC_Start + LOAD s0, AD_addr_EF ;write EF address + CALL IIC_WriteByte + CALL IIC_ReadByte ;read pressure MSB + STORE s0, D1_msb ;save MSB in D1_msb register + CALL IIC_ACK + CALL IIC_ReadByte ;read pressure LSB + STORE s0, D1_lsb ;save LSB in D1_lsb register + CALL IIC_NoACK + CALL IIC_Stop + RETURN + ; + ; + ;******************************************************************* + ;Routine: Read_temperature + ; Function: read pressure value from HP03 + ; Store result in D2_msb and D2_lsb registers + ; Output register: D2_msb, D2_lsb + ; Temp register: s0 + ;******************************************************************* + ; +read_temperature: CALL IIC_Start ;perform start condition + LOAD s0, AD_addr_EE ;write EE address + CALL IIC_WriteByte + LOAD s0, AD_addr_FF ;write FF address + CALL IIC_WriteByte + LOAD s0, AD_addr_E8 ;write E8 address + CALL IIC_WriteByte + CALL IIC_Stop + CALL delay_20ms ; + CALL delay_20ms ; + CALL IIC_Start + LOAD s0, AD_addr_EE ;write EE address + CALL IIC_WriteByte + LOAD s0, AD_addr_FD ;write FD address + CALL IIC_WriteByte + CALL IIC_Start + LOAD s0, AD_addr_EF ;write EF address + CALL IIC_WriteByte + CALL IIC_ReadByte ;read temperature MSB + STORE s0, D2_msb ;save MSB in D2_msb register + CALL IIC_ACK + CALL IIC_ReadByte ;read temperature LSB + STORE s0, D2_lsb ;save LSB in D2_lsb register + CALL IIC_NoACK + CALL IIC_Stop + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_ReadByte + ; function: Read a byte from iic chips + ; output register: s0 + ; + ; temp register: s2, s3 + ;******************************************************************* + ; + IIC_ReadByte: CALL IIC_SDA_HIGH ;set SDA + CALL delay_10us ;wait 10 us + LOAD s3, 08 ;load index for 8 bits + IIC_Read_Next: INPUT s2, IIC_in_port + TEST s2, SDA_wire ;test SDA state, status -> carry + SLA s0 ;Carry shifted into LSBit + CALL IIC_SCL_LOW ; + CALL delay_10us ;wait 10 us + CALL IIC_SCL_HIGH ; + CALL delay_10us ;wait 10 us + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + SUB s3, 01 + JUMP NZ, IIC_Read_Next + RETURN + ; + ; + ;************************************************************************ + ;Routine: IIC_WriteByte + ; function: write a byte to iic chips + ; input register: s0 + ; + ; temp register: s2 + ;******************************************************************* + IIC_WriteByte: LOAD s2, 08 ;initialize loop index to 8 + ; + IIC_Write_Next: CALL IIC_SCL_LOW + CALL delay_10us + SL0 s0 ; Move data bit -> carry + JUMP C, IIC_Send1 ; Jump if bit high + ; + IIC_Send0: CALL IIC_SDA_LOW ; Set to output, data low so SDA = 0 + CALL delay_10us ; reflect in output + JUMP I2C_Sx ; Jump over next instruction + ; + IIC_Send1: CALL IIC_SDA_HIGH ; Set to input, SDA = 1 due to pull-up + CALL delay_10us ; reflect in output + ; + I2C_Sx: CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SCL_LOW + SUB s2, 01 ; Decrement I2C bit counter + JUMP NZ, IIC_Write_Next ; Loop until 8 bits are sent + ; + CALL IIC_SDA_HIGH + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_Start + ; function: perform a start condition + ;******************************************************************* + IIC_Start: CALL IIC_SDA_HIGH + CALL delay_10us + CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SDA_LOW + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_Stop + ; function: perform a stop condition + ;******************************************************************* + IIC_Stop: CALL IIC_SCL_LOW + CALL delay_10us + CALL IIC_SDA_LOW + CALL delay_10us + CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SDA_HIGH + CALL delay_10us + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_ACK + ; function: perform an ack condition + ;******************************************************************* + IIC_ACK: CALL IIC_SDA_LOW + CALL delay_10us + CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_NoACK + ; function: perform an nack condition + ;******************************************************************* + IIC_NoACK: CALL IIC_SDA_HIGH + CALL delay_10us + CALL IIC_SCL_HIGH + CALL delay_10us + CALL IIC_SCL_LOW + CALL delay_10us + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_SDA_HIGH + ; function: set SDA + ; input register: IIC_control_status + ; output register: IIC_port + ; + ; temp register: s1 + ;******************************************************************* + IIC_SDA_HIGH: FETCH s1, IIC_control_status ;read control status bits + OR s1, SDA_wire ;set SDA pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_SDA_LOW + ; function: clear SDA + ; input register: IIC_control_status + ; output register: IIC_out_port + ; + ; temp register: s1 + ;******************************************************************* + IIC_SDA_LOW: FETCH s1, IIC_control_status ;read control status bits + AND s1, CLR_SDA_MASK ;clear SDA pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_SCL_HIGH + ; function: set SCL + ; input register: s0 + ; output register: + ; + ; temp register: i + ;******************************************************************* + IIC_SCL_HIGH: FETCH s1, IIC_control_status ;read control status bits + OR s1, SCL_wire ;set SCL pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_SCL_LOW + ; function: set SDA + ; temp register: s1 + ;******************************************************************* + IIC_SCL_LOW: FETCH s1, IIC_control_status ;read control status bits + AND s1, CLR_SCL_MASK ;clear SCL pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_XCLR_HIGH + ; function: set XCLR + ; input register: s0 + ; output register: + ; + ; temp register: i + ;******************************************************************* + IIC_XCLR_HIGH: FETCH s1, IIC_control_status ;read control status bits + OR s1, XCLR ;set XCLR pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;******************************************************************* + ;Routine: IIC_XCLR_LOW + ; function: clear XCLR + ; input register: s0 + ; output register: + ; + ; temp register: i + ;******************************************************************* + IIC_XCLR_LOW: FETCH s1, IIC_control_status ;read control status bits + AND s1, CLR_XCLR_MASK ;clear SCL pin + OUTPUT s1, IIC_out_port + STORE s1, IIC_control_status ;preserve status + RETURN + ; + ; + ;************************************************************************************** + ; Software delay Routines + ;************************************************************************************** + ; + ; Delay of 1us. + ; + ; Constant value defines reflects the clock applied to KCPSM3. Every instruction + ; executes in 2 clock cycles making the calculation highly predictable. The '6' in + ; the following equation even allows for 'CALL delay_1us' instruction in the initiating code. + ; + ; delay_1us_constant = (clock_rate - 6)/4 Where 'clock_rate' is in MHz + ; + ; Register used sA + ; + delay_1us: LOAD sA, delay_1us_constant + wait_1us: SUB sA, 01 + JUMP NZ, wait_1us + RETURN + ; + ; Delay of 10 us + ; + ; Registers used sA, sB + ; + delay_10us: LOAD sB, 0A ;10 x 1us = 10us + wait_10us: CALL delay_1us + SUB sB, 01 + JUMP NZ, wait_10us + RETURN + ; + ; Delay of 40us. + ; + ; Registers used sA, sB + ; + delay_40us: LOAD sB, 28 ;40 x 1us = 40us + wait_40us: CALL delay_1us + SUB sB, 01 + JUMP NZ, wait_40us + RETURN + ; + ; + ; Delay of 1ms. + ; + ; Registers used sA, sB, sC + ; + delay_1ms: LOAD sC, 19 ;25 x 40us = 1ms + wait_1ms: CALL delay_40us + SUB sC, 01 + JUMP NZ, wait_1ms + RETURN + ; + ; Delay of 20ms. + ; + ; Registers used sA, sB, sC, sD + ; + delay_20ms: LOAD sD, 14 ;20 x 1ms = 20ms + wait_20ms: CALL delay_1ms + SUB sD, 01 + JUMP NZ, wait_20ms + RETURN + ; + ; Delay of approximately 1 second. + ; + ; Registers used sA, sB, sC, sD, sE + ; + delay_1s: LOAD sE, 14 ;50 x 20ms = 1000ms + wait_1s: CALL delay_20ms + SUB sE, 01 + JUMP NZ, wait_1s + RETURN + ; + ; + ; + ;************************************************************************************** + ; Interrupt Service Routine (ISR) + ;************************************************************************************** + ; + ; Interrupts are not used in this design. This is a place keeper only. + ; + ADDRESS 3FE + ISR: RETURNI ENABLE + ; + ; + ;************************************************************************************** + ; Interrupt Vector + ;************************************************************************************** + ; + ADDRESS 3FF + JUMP ISR + ; + ; diff --git a/HP_LAGO.VHD b/HP_LAGO.VHD new file mode 100755 index 0000000..abcfb17 --- /dev/null +++ b/HP_LAGO.VHD @@ -0,0 +1,274 @@ +-- +-- Definition of a single port ROM for KCPSM3 program defined by hp_lago.psm +-- +-- Generated by KCPSM3 Assembler 03Oct2011-14:33:25. +-- +-- Standard IEEE libraries +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library unisim; +use unisim.vcomponents.all; +-- +-- +entity hp_lago is + Port ( address : in std_logic_vector(9 downto 0); + instruction : out std_logic_vector(17 downto 0); + clk : in std_logic); + end hp_lago; +-- +architecture low_level_definition of hp_lago is +-- +-- Attributes to define ROM contents during implementation synthesis. +-- The information is repeated in the generic map for functional simulation +-- +attribute INIT_00 : string; +attribute INIT_01 : string; +attribute INIT_02 : string; +attribute INIT_03 : string; +attribute INIT_04 : string; +attribute INIT_05 : string; +attribute INIT_06 : string; +attribute INIT_07 : string; +attribute INIT_08 : string; +attribute INIT_09 : string; +attribute INIT_0A : string; +attribute INIT_0B : string; +attribute INIT_0C : string; +attribute INIT_0D : string; +attribute INIT_0E : string; +attribute INIT_0F : string; +attribute INIT_10 : string; +attribute INIT_11 : string; +attribute INIT_12 : string; +attribute INIT_13 : string; +attribute INIT_14 : string; +attribute INIT_15 : string; +attribute INIT_16 : string; +attribute INIT_17 : string; +attribute INIT_18 : string; +attribute INIT_19 : string; +attribute INIT_1A : string; +attribute INIT_1B : string; +attribute INIT_1C : string; +attribute INIT_1D : string; +attribute INIT_1E : string; +attribute INIT_1F : string; +attribute INIT_20 : string; +attribute INIT_21 : string; +attribute INIT_22 : string; +attribute INIT_23 : string; +attribute INIT_24 : string; +attribute INIT_25 : string; +attribute INIT_26 : string; +attribute INIT_27 : string; +attribute INIT_28 : string; +attribute INIT_29 : string; +attribute INIT_2A : string; +attribute INIT_2B : string; +attribute INIT_2C : string; +attribute INIT_2D : string; +attribute INIT_2E : string; +attribute INIT_2F : string; +attribute INIT_30 : string; +attribute INIT_31 : string; +attribute INIT_32 : string; +attribute INIT_33 : string; +attribute INIT_34 : string; +attribute INIT_35 : string; +attribute INIT_36 : string; +attribute INIT_37 : string; +attribute INIT_38 : string; +attribute INIT_39 : string; +attribute INIT_3A : string; +attribute INIT_3B : string; +attribute INIT_3C : string; +attribute INIT_3D : string; +attribute INIT_3E : string; +attribute INIT_3F : string; +attribute INITP_00 : string; +attribute INITP_01 : string; +attribute INITP_02 : string; +attribute INITP_03 : string; +attribute INITP_04 : string; +attribute INITP_05 : string; +attribute INITP_06 : string; +attribute INITP_07 : string; +-- +-- Attributes to define ROM contents during implementation synthesis. +-- +attribute INIT_00 of ram_1024_x_18 : label is "00DFA000E016C040000340080135004F005E000F01300130013001300130000B"; +attribute INIT_01 of ram_1024_x_18 : label is "00F1E00200B700F1E00100B700F1E00000B700C700A100DF00C7001000C700A0"; +attribute INIT_02 of ram_1024_x_18 : label is "00B700F1E00700B700F1E00600B700F1E00500B700F1E00400B700F1E00300B7"; +attribute INIT_03 of ram_1024_x_18 : label is "E00D00B700F1E00C00B700F1E00B00B700F1E00A00B700F1E00900B700F1E008"; +attribute INIT_04 of ram_1024_x_18 : label is "0113A00000E800F8E01100B700F1E01000B700F1E00F00B700F1E00E00B700F1"; +attribute INIT_05 of ram_1024_x_18 : label is "C0016000A000C8166815C9156914C8146813C91369120118009D0083012B012B"; +attribute INIT_06 of ram_1024_x_18 : label is "C0096008C0086007C0076006C0066005C0056004C0046003C0036002C0026001"; +attribute INIT_07 of ram_1024_x_18 : label is "C0116010C010600FC00F600EC00D600DC00E600CC00B600BC00C600AC00A6009"; +attribute INIT_08 of ram_1024_x_18 : label is "00C700EE00DF0130013000E800C700F000C700FF00C700EE00DFA000C0126011"; +attribute INIT_09 of ram_1024_x_18 : label is "00C700EE00DFA00000E800F8E01300B700F1E01200B700C700EF00DF00C700FD"; +attribute INIT_0A of ram_1024_x_18 : label is "00B700C700EF00DF00C700FD00C700EE00DF0130013000E800C700E800C700FF"; +attribute INIT_0B of ram_1024_x_18 : label is "01090121010E0000220142200308012100FFA00000E800F8E01500B700F1E014"; +attribute INIT_0C of ram_1024_x_18 : label is "00FF40D10121010458CF00060121010E0208A00054BAC3010121010E01210121"; +attribute INIT_0D of ram_1024_x_18 : label is "00FFA0000121010E012101090121010E012100FF54C8C201010E012101090121"; +attribute INIT_0E of ram_1024_x_18 : label is "012100FF01210109012101040121010EA0000121010E01210104012101090121"; +attribute INIT_0F of ram_1024_x_18 : label is "6116A0000121010E01210109012100FFA0000121010E0121010901210104A000"; +attribute INIT_10 of ram_1024_x_18 : label is "A1FD6116A000E116C140C1026116A000E116C140A1FE6116A000E116C140C101"; +attribute INIT_11 of ram_1024_x_18 : label is "551ECA010A0BA000E116C140A1FB6116A000E116C140C1046116A000E116C140"; +attribute INIT_12 of ram_1024_x_18 : label is "A000552CCC0101260C19A0005527CB01011D0B28A0005522CB01011D0B0AA000"; +attribute INIT_13 of ram_1024_x_18 : label is "000000000000000000000000A0005536CE0101300E14A0005531CD01012B0D14"; +attribute INIT_14 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_15 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_16 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_17 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_18 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_19 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_1F of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_20 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_21 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_22 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_23 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_24 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_25 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_26 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_27 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_28 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_29 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_2F of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_30 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_31 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_32 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_33 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_34 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_35 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_36 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_37 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_38 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_39 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INIT_3F of ram_1024_x_18 : label is "43FE800100000000000000000000000000000000000000000000000000000000"; +attribute INITP_00 of ram_1024_x_18 : label is "88888888888888888A2223FFEFBEFBEFBEFBEFBEFBEFBEFBEFBEF3CCEA3FFFFF"; +attribute INITP_01 of ram_1024_x_18 : label is "2FFFBFFEFFFFBFFFEFFFFDFFFFEF2DFFFE43EFBEF3CCFFCCCEFBEF3CCFFCCCE8"; +attribute INITP_02 of ram_1024_x_18 : label is "00000000000000000000000000000000000B72DCB72DCB72D2A0A82A0A82A0A8"; +attribute INITP_03 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_04 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_05 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_06 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000"; +attribute INITP_07 of ram_1024_x_18 : label is "F000000000000000000000000000000000000000000000000000000000000000"; +-- +begin +-- + --Instantiate the Xilinx primitive for a block RAM + ram_1024_x_18: RAMB16_S18 + --synthesis translate_off + --INIT values repeated to define contents for functional simulation + generic map ( INIT_00 => X"00DFA000E016C040000340080135004F005E000F01300130013001300130000B", + INIT_01 => X"00F1E00200B700F1E00100B700F1E00000B700C700A100DF00C7001000C700A0", + INIT_02 => X"00B700F1E00700B700F1E00600B700F1E00500B700F1E00400B700F1E00300B7", + INIT_03 => X"E00D00B700F1E00C00B700F1E00B00B700F1E00A00B700F1E00900B700F1E008", + INIT_04 => X"0113A00000E800F8E01100B700F1E01000B700F1E00F00B700F1E00E00B700F1", + INIT_05 => X"C0016000A000C8166815C9156914C8146813C91369120118009D0083012B012B", + INIT_06 => X"C0096008C0086007C0076006C0066005C0056004C0046003C0036002C0026001", + INIT_07 => X"C0116010C010600FC00F600EC00D600DC00E600CC00B600BC00C600AC00A6009", + INIT_08 => X"00C700EE00DF0130013000E800C700F000C700FF00C700EE00DFA000C0126011", + INIT_09 => X"00C700EE00DFA00000E800F8E01300B700F1E01200B700C700EF00DF00C700FD", + INIT_0A => X"00B700C700EF00DF00C700FD00C700EE00DF0130013000E800C700E800C700FF", + INIT_0B => X"01090121010E0000220142200308012100FFA00000E800F8E01500B700F1E014", + INIT_0C => X"00FF40D10121010458CF00060121010E0208A00054BAC3010121010E01210121", + INIT_0D => X"00FFA0000121010E012101090121010E012100FF54C8C201010E012101090121", + INIT_0E => X"012100FF01210109012101040121010EA0000121010E01210104012101090121", + INIT_0F => X"6116A0000121010E01210109012100FFA0000121010E0121010901210104A000", + INIT_10 => X"A1FD6116A000E116C140C1026116A000E116C140A1FE6116A000E116C140C101", + INIT_11 => X"551ECA010A0BA000E116C140A1FB6116A000E116C140C1046116A000E116C140", + INIT_12 => X"A000552CCC0101260C19A0005527CB01011D0B28A0005522CB01011D0B0AA000", + INIT_13 => X"000000000000000000000000A0005536CE0101300E14A0005531CD01012B0D14", + INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", + INIT_3F => X"43FE800100000000000000000000000000000000000000000000000000000000", + INITP_00 => X"88888888888888888A2223FFEFBEFBEFBEFBEFBEFBEFBEFBEFBEF3CCEA3FFFFF", + INITP_01 => X"2FFFBFFEFFFFBFFFEFFFFDFFFFEF2DFFFE43EFBEF3CCFFCCCEFBEF3CCFFCCCE8", + INITP_02 => X"00000000000000000000000000000000000B72DCB72DCB72D2A0A82A0A82A0A8", + INITP_03 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_04 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_05 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_06 => X"0000000000000000000000000000000000000000000000000000000000000000", + INITP_07 => X"F000000000000000000000000000000000000000000000000000000000000000") + --synthesis translate_on + port map( DI => "0000000000000000", + DIP => "00", + EN => '1', + WE => '0', + SSR => '0', + CLK => clk, + ADDR => address, + DO => instruction(15 downto 0), + DOP => instruction(17 downto 16)); +-- +end low_level_definition; +-- +------------------------------------------------------------------------------------ +-- +-- END OF FILE hp_lago.vhd +-- +------------------------------------------------------------------------------------ diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..c5f3e51 --- /dev/null +++ b/Makefile @@ -0,0 +1,94 @@ +#======================================================== +# Makefile para crear firmwares para las placas Nexys2 = +# = +# Es necesario correr al menos una vez el proyecto en = +# soft ISE de Xilinx y luego, a partir de allà realizar = +# proyectos con este make. = +# Para seleccionar si se quiere grabar el firmware en = +# la FPGA o en la memoria EEPROM, es necesario correr = +# = +# make STARTUP_CLK=x = +# Donde x puede ser jtag o cclk = +# = +# Horacio Arnaldi = +# DPR Lab = +# 05/12/2011 = +# Última revisión: 19/01/2012 = +# = +#======================================================== +TOP_LEVEL = lago_fpga_vhdl +GATES = 500 +PLATFORM = nexys2_$(GATES) +STARTUP_CLK = jtag + +ifeq ($(PLATFORM),nexys2_500) + FPGA = xc3s500e-fg320-4 +endif +ifeq ($(PLATFORM),nexys2_1200) + FPGA = xc3s1200e-fg320-4 +endif +ifeq ($(STARTUP_CLK),jtag) + CLOCK = JtagClk + +endif +ifeq ($(STARTUP_CLK),cclk) + CLOCK = CClk +endif + +all: $(TOP_LEVEL).xsvf + +report: $(TOP_LEVEL).twr + +# This assumes that the "XILINX" environment variable is set +$(TOP_LEVEL).xsvf: $(PLATFORM).batch $(TOP_LEVEL).bit + cat $< | sed s#\$${XILINX}#$(subst \,/,$(XILINX))#g > temp.batch + impact -batch temp.batch + rm -f temp.batch + +$(TOP_LEVEL).bit: $(TOP_LEVEL).ut $(TOP_LEVEL).ncd + bitgen -intstyle ise -f $+ + +$(TOP_LEVEL).twr: $(TOP_LEVEL).ncd $(TOP_LEVEL).ucf + trce -intstyle ise -v 3 -s 4 -n 3 -fastpaths -xml ${TOP_LEVEL}.twx $< -o $@ ${TOP_LEVEL}.pcf -ucf $(TOP_LEVEL).ucf + +$(TOP_LEVEL).ncd: $(TOP_LEVEL)_map.ncd + par -w -intstyle ise -ol high -t 1 $< $@ ${TOP_LEVEL}.pcf + +$(TOP_LEVEL)_map.ncd: $(TOP_LEVEL).ngd + map -intstyle ise -p $(FPGA) -cm area -ir off -pr off -c 100 -o $@ $< ${TOP_LEVEL}.pcf + +$(TOP_LEVEL).ngd: $(TOP_LEVEL).ngc $(TOP_LEVEL).ucf + ngdbuild -intstyle ise -dd _ngo -sd ipcore_dir -nt timestamp -uc $(TOP_LEVEL).ucf -p $(FPGA) $< $@ + +$(TOP_LEVEL).ngc: $(TOP_LEVEL).xst $(TOP_LEVEL).prj + mkdir -p xst/projnav.tmp + xst -intstyle ise -ifn $< -ofn $(TOP_LEVEL).syr + +$(TOP_LEVEL).ut: + echo "-w" > $@ + echo "-g DebugBitstream:No" >> $@ + echo "-g Binary:no" >> $@ + echo "-g CRC:Enable" >> $@ + echo "-g ConfigRate:1" >> $@ + echo "-g ProgPin:PullUp" >> $@ + echo "-g DonePin:PullUp" >> $@ + echo "-g TckPin:PullUp" >> $@ + echo "-g TdiPin:PullUp" >> $@ + echo "-g TdoPin:PullUp" >> $@ + echo "-g TmsPin:PullUp" >> $@ + echo "-g UnusedPin:PullDown" >> $@ + echo "-g UserID:0xFFFFFFFF" >> $@ + echo "-g DCMShutdown:Disable" >> $@ + echo "-g StartUpClk:$(CLOCK)" >> $@ + echo "-g DONE_cycle:4" >> $@ + echo "-g GTS_cycle:5" >> $@ + echo "-g GWE_cycle:6" >> $@ + echo "-g LCK_cycle:NoWait" >> $@ + echo "-g Security:None" >> $@ + echo "-g DonePipe:No" >> $@ + echo "-g DriveDone:No" >> $@ + +clean: FORCE + rm -rf *.ut *.xsvf *.csvf _ngo *.bgn *.drc *.ncd *.ntrc_log *.twr *.csv *.html fx2fpga_xdb _xmsgs *.bit *.gise *.ngc *.pad *.ptwx *.twx *.ngm *.txt *.xml *.xrpt *.bld *.ise *.ngd *.par *.stx *.map *.twr auto_project_xdb *.cmd_log *.lso *.ngr *.pcf *.syr *.unroutes *.xpi *.mrp xst *.log *.cmd *.xwbt iseconfig xlnx_auto_0_xdb + +FORCE: diff --git a/baseline.vhd b/baseline.vhd new file mode 100644 index 0000000..43ab3ae --- /dev/null +++ b/baseline.vhd @@ -0,0 +1,142 @@ +library ieee; +use ieee.std_logic_1164.ALL; +use ieee.numeric_std.all; +-- +entity baseline_control is + generic( + W : natural; --:=5; -- numero de bits de direcciones. 2**W = 32 direcciones para W=5 + ADCBITS : natural; -- := 10; -- numero de bits en los datos + RBITS : natural; -- := 12; -- numero de bits de los registros + REFRESH_RATE : natural; -- := 80000; -- 80000 clk implican un refresh rate de 2ms (80000 * 25 ns = 2ms) + NCH : natural --:= 3 -- numero de canales de la electronica + ); + + port( + clk_40mhz : in std_logic; + reset : in std_logic; + ptick_2ms : out std_logic; + data_adc1 : in std_logic_vector(ADCBITS-1 downto 0); + data_adc2 : in std_logic_vector(ADCBITS-1 downto 0); + data_adc3 : in std_logic_vector(ADCBITS-1 downto 0); + baseline1 : out std_logic_vector(RBITS-1 downto 0); + baseline2 : out std_logic_vector(RBITS-1 downto 0); + baseline3 : out std_logic_vector(RBITS-1 downto 0) + ); +end baseline_control; + +architecture rtl of baseline_control is + + signal cont_promedio_reg, cont_promedio_next : unsigned((2**W-1) downto 0); + signal adc1_sum_reg, adc1_sum_next : unsigned((2**W-1) downto 0); + signal adc2_sum_reg, adc2_sum_next : unsigned((2**W-1) downto 0); + signal adc3_sum_reg, adc3_sum_next : unsigned((2**W-1) downto 0); + signal adc1_prom_reg, adc1_prom_next : unsigned((2**W-1) downto 0); + signal adc2_prom_reg, adc2_prom_next : unsigned((2**W-1) downto 0); + signal adc3_prom_reg, adc3_prom_next : unsigned((2**W-1) downto 0); + signal baseline1_buff_reg, baseline1_buff_next : unsigned((RBITS-1) downto 0); + signal baseline2_buff_reg, baseline2_buff_next : unsigned((RBITS-1) downto 0); + signal baseline3_buff_reg, baseline3_buff_next : unsigned((RBITS-1) downto 0); + signal max_tick : std_logic; + +begin + + ptick_2ms <= max_tick; + --registers + process(clk_40mhz, reset) + begin + if (reset = '1') then + cont_promedio_reg <= (others => '0'); + adc1_sum_reg <= (others => '0'); + adc2_sum_reg <= (others => '0'); + adc3_sum_reg <= (others => '0'); + adc1_prom_reg <= (others => '0'); + adc2_prom_reg <= (others => '0'); + adc3_prom_reg <= (others => '0'); + baseline1_buff_reg <= (others => '0'); + baseline2_buff_reg <= (others => '0'); + baseline3_buff_reg <= (others => '0'); + elsif (clk_40mhz'event and clk_40mhz = '1') then + cont_promedio_reg <= cont_promedio_next; + adc1_sum_reg <= adc1_sum_next; + adc2_sum_reg <= adc2_sum_next; + adc3_sum_reg <= adc3_sum_next; + adc1_prom_reg <= adc1_prom_next; + adc2_prom_reg <= adc2_prom_next; + adc3_prom_reg <= adc3_prom_next; + baseline1_buff_reg <= baseline1_buff_next; + baseline2_buff_reg <= baseline2_buff_next; + baseline3_buff_reg <= baseline3_buff_next; + end if; + end process; + + --next state logic + cont_promedio_next <= (others => '0') when (cont_promedio_reg = (REFRESH_RATE-1)) else + cont_promedio_reg + 1; + + max_tick <= '1' when (cont_promedio_reg = (REFRESH_RATE-1)) else '0'; + + adc1_sum_next <= (others => '0') when (max_tick = '1') else + adc1_sum_reg + unsigned(data_adc1); + adc2_sum_next <= (others => '0') when (max_tick = '1') else + adc2_sum_reg + unsigned(data_adc2); + adc3_sum_next <= (others => '0') when (max_tick = '1') else + adc3_sum_reg + unsigned(data_adc3); + + adc1_prom_next <= adc1_sum_reg when (max_tick = '1') else + adc1_prom_reg; + adc2_prom_next <= adc2_sum_reg when (max_tick = '1') else + adc2_prom_reg; + adc3_prom_next <= adc3_sum_reg when (max_tick = '1') else + adc3_prom_reg; + + process(max_tick, adc1_prom_reg) + begin + if (max_tick = '1') then + if (adc1_prom_reg > 4000000) then --4000000 = 50*80000, con 50 el nivel de baseline buscado + baseline1_buff_next <= baseline1_buff_reg + 1; + elsif (adc1_prom_reg < 4000000) then + baseline1_buff_next <= baseline1_buff_reg - 1; + else + baseline1_buff_next <= baseline1_buff_reg; + end if; + else + baseline1_buff_next <= baseline1_buff_reg; + end if; + end process; + + process(max_tick, adc2_prom_reg) + begin + if (max_tick = '1') then + if (adc2_prom_reg > 4000000) then + baseline2_buff_next <= baseline2_buff_reg + 1; + elsif (adc2_prom_reg < 4000000) then + baseline2_buff_next <= baseline2_buff_reg - 1; + else + baseline2_buff_next <= baseline2_buff_reg; + end if; + else + baseline2_buff_next <= baseline2_buff_reg; + end if; + end process; + + process(max_tick, adc3_prom_reg) + begin + if (max_tick = '1') then + if (adc3_prom_reg > 4000000) then + baseline3_buff_next <= baseline3_buff_reg + 1; + elsif (adc3_prom_reg < 4000000) then + baseline3_buff_next <= baseline3_buff_reg - 1; + else + baseline3_buff_next <= baseline3_buff_reg; + end if; + else + baseline3_buff_next <= baseline3_buff_reg; + end if; + end process; + + -- output + baseline1 <= std_logic_vector(baseline1_buff_reg); + baseline2 <= std_logic_vector(baseline2_buff_reg); + baseline3 <= std_logic_vector(baseline3_buff_reg); + +end architecture; diff --git a/baseline_control.prj b/baseline_control.prj new file mode 100644 index 0000000..17d52a9 --- /dev/null +++ b/baseline_control.prj @@ -0,0 +1 @@ +vhdl work "baseline.vhd" diff --git a/baseline_control.xst b/baseline_control.xst new file mode 100644 index 0000000..e87063a --- /dev/null +++ b/baseline_control.xst @@ -0,0 +1,5 @@ +set -tmpdir "/home/horacio/work/lago/lago-fpga-vhdl/xst/projnav.tmp" +set -xsthdpdir "/home/horacio/work/lago/lago-fpga-vhdl/xst" +elaborate +-ifn baseline_control.prj +-ifmt mixed diff --git a/bbfifo_16x8.vhd b/bbfifo_16x8.vhd new file mode 100644 index 0000000..8ef61e6 --- /dev/null +++ b/bbfifo_16x8.vhd @@ -0,0 +1,281 @@ +-- 'Bucket Brigade' FIFO +-- 16 deep +-- 8-bit data +-- +-- Version : 1.10 +-- Version Date : 3rd December 2003 +-- Reason : '--translate' directives changed to '--synthesis translate' directives +-- +-- Version : 1.00 +-- Version Date : 14th October 2002 +-- +-- Start of design entry : 14th October 2002 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2002. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Futhermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for BBFIFO_16x8 +-- +entity bbfifo_16x8 is + Port ( data_in : in std_logic_vector(7 downto 0); + data_out : out std_logic_vector(7 downto 0); + reset : in std_logic; + write : in std_logic; + read : in std_logic; + full : out std_logic; + half_full : out std_logic; + data_present : out std_logic; + clk : in std_logic); + end bbfifo_16x8; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for BBFIFO_16x8 +-- +architecture low_level_definition of bbfifo_16x8 is +-- +------------------------------------------------------------------------------------ +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in BBFIFO_16x8 +-- +------------------------------------------------------------------------------------ +-- +signal pointer : std_logic_vector(3 downto 0); +signal next_count : std_logic_vector(3 downto 0); +signal half_count : std_logic_vector(3 downto 0); +signal count_carry : std_logic_vector(2 downto 0); + +signal pointer_zero : std_logic; +signal pointer_full : std_logic; +signal decode_data_present : std_logic; +signal data_present_int : std_logic; +signal valid_write : std_logic; +-- +-- +------------------------------------------------------------------------------------ +-- +-- Attributes to define LUT contents during implementation +-- The information is repeated in the generic map for functional simulation-- +-- +------------------------------------------------------------------------------------ +-- +attribute INIT : string; +attribute INIT of zero_lut : label is "0001"; +attribute INIT of full_lut : label is "8000"; +attribute INIT of dp_lut : label is "BFA0"; +attribute INIT of valid_lut : label is "C4"; +-- +------------------------------------------------------------------------------------ +-- +-- Start of BBFIFO_16x8 circuit description +-- +------------------------------------------------------------------------------------ +-- +begin + + -- SRL16E data storage + + data_width_loop: for i in 0 to 7 generate + -- + attribute INIT : string; + attribute INIT of data_srl : label is "0000"; + -- + begin + + data_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => data_in(i), + CE => valid_write, + CLK => clk, + A0 => pointer(0), + A1 => pointer(1), + A2 => pointer(2), + A3 => pointer(3), + Q => data_out(i) ); + + end generate data_width_loop; + + -- 4-bit counter to act as data pointer + -- Counter is clock enabled by 'data_present' + -- Counter will be reset when 'reset' is active + -- Counter will increment when 'valid_write' is active + + count_width_loop: for i in 0 to 3 generate + -- + attribute INIT : string; + attribute INIT of count_lut : label is "6606"; + -- + begin + + register_bit: FDRE + port map ( D => next_count(i), + Q => pointer(i), + CE => data_present_int, + R => reset, + C => clk); + + count_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"6606") + --synthesis translate_on + port map( I0 => pointer(i), + I1 => read, + I2 => pointer_zero, + I3 => write, + O => half_count(i)); + + lsb_count: if i=0 generate + begin + + count_muxcy: MUXCY + port map( DI => pointer(i), + CI => valid_write, + S => half_count(i), + O => count_carry(i)); + + count_xor: XORCY + port map( LI => half_count(i), + CI => valid_write, + O => next_count(i)); + + end generate lsb_count; + + mid_count: if i>0 and i<3 generate + begin + + count_muxcy: MUXCY + port map( DI => pointer(i), + CI => count_carry(i-1), + S => half_count(i), + O => count_carry(i)); + + count_xor: XORCY + port map( LI => half_count(i), + CI => count_carry(i-1), + O => next_count(i)); + + end generate mid_count; + + upper_count: if i=3 generate + begin + + count_xor: XORCY + port map( LI => half_count(i), + CI => count_carry(i-1), + O => next_count(i)); + + end generate upper_count; + + end generate count_width_loop; + + + -- Detect when pointer is zero and maximum + + zero_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0001") + --synthesis translate_on + port map( I0 => pointer(0), + I1 => pointer(1), + I2 => pointer(2), + I3 => pointer(3), + O => pointer_zero ); + + + full_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"8000") + --synthesis translate_on + port map( I0 => pointer(0), + I1 => pointer(1), + I2 => pointer(2), + I3 => pointer(3), + O => pointer_full ); + + + -- Data Present status + + dp_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"BFA0") + --synthesis translate_on + port map( I0 => write, + I1 => read, + I2 => pointer_zero, + I3 => data_present_int, + O => decode_data_present ); + + dp_flop: FDR + port map ( D => decode_data_present, + Q => data_present_int, + R => reset, + C => clk); + + -- Valid write signal + + valid_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"C4") + --synthesis translate_on + port map( I0 => pointer_full, + I1 => write, + I2 => read, + O => valid_write ); + + + -- assign internal signals to outputs + + full <= pointer_full; + half_full <= pointer(3); + data_present <= data_present_int; + +end low_level_definition; + +------------------------------------------------------------------------------------ +-- +-- END OF FILE BBFIFO_16x8.VHD +-- +------------------------------------------------------------------------------------ + + diff --git a/clk_40mhz.v b/clk_40mhz.v new file mode 100755 index 0000000..a38a628 --- /dev/null +++ b/clk_40mhz.v @@ -0,0 +1,66 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 09:14:13 05/06/2011 +// Design Name: +// Module Name: clk_40mhz +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module clk_40mhz(clk_50mhz,clk_40mhz); + +//Entradas +input wire clk_50mhz; + +//Salidas +output reg clk_40mhz; + +//Variables Internas +wire clk_200mhz; +reg [7:0] contador; + +//Inicio +initial +begin + clk_40mhz=0; + contador = 8'b00000000; +end + +//instanciacion del DCM +dcm_200mhz i_dcm_200mhz (.CLKIN_IN(clk_50mhz),.RST_IN(1'b0),.CLKFX_OUT(clk_200mhz),.CLKIN_IBUFG_OUT(),.CLK0_OUT(),.CLK2X_OUT(),.LOCKED_OUT()); + +always @(posedge clk_200mhz) +begin + contador = contador + 1; + if(contador == 5) + contador = 0; + //if(contador >= 3) + //begin + // contador = 0; + // clk_40mhz = ~clk_40mhz; + //end +end + +always @(posedge clk_200mhz) +begin + case(contador) + 8'b00000001: clk_40mhz=1; //1 + 8'b00000010: clk_40mhz=1; //2 + 8'b00000011: clk_40mhz=1; //3 + 8'b00000100: clk_40mhz=0; //4 + 8'b00000101: clk_40mhz=0; //5 + default: clk_40mhz = 0; + endcase +end +endmodule diff --git a/clock_divider.v b/clock_divider.v new file mode 100755 index 0000000..77ae403 --- /dev/null +++ b/clock_divider.v @@ -0,0 +1,64 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: Laboratorio de Particulas - Centro Atomico Bariloche +// Engineer: Miguel Sofo Haro +// +// Create Date: 14:13:56 10/29/2010 +// Design Name: +// Module Name: clock_divider +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +// A partir del clock global de la FPGA, el proposito del modulo es generar +// una señal de clock de frecuencia inferior (< frecuencia del clock global) +// +////////////////////////////////////////////////////////////////////////////////// +module clock_divider +( + input wire global_clock, + output reg clock +); + +//Parameters, +parameter o_freq_MHz = 10; //Output clock frecuency in MHz +parameter gc_freq_MHz = 50; //Global clock frecuency in MHz + +//Local Paramters +localparam first_trigger = ((gc_freq_MHz/o_freq_MHz)+1)/2; +localparam second_trigger = (gc_freq_MHz/o_freq_MHz)+1; + +//Internal Variables +reg [31:0] counter; + +//Initial Variables Values +initial +begin + counter = 0; + clock = 0; +end +//Circuit +always @(posedge global_clock) +begin + counter = counter + 1; + if(counter == first_trigger) + begin + clock = ~clock; + end + else + begin + if(counter == second_trigger) + begin + counter = 0; + clock = ~clock; + end + end +end +endmodule diff --git a/dcm_200mhz.v b/dcm_200mhz.v new file mode 100755 index 0000000..7b82f17 --- /dev/null +++ b/dcm_200mhz.v @@ -0,0 +1,92 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 1995-2008 Xilinx, Inc. All rights reserved. +//////////////////////////////////////////////////////////////////////////////// +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version : 10.1.03 +// \ \ Application : xaw2verilog +// / / Filename : dcm_200mhz.v +// /___/ /\ Timestamp : 05/05/2011 18:51:54 +// \ \ / \ +// \___\/\___\ +// +//Command: xaw2verilog -st C:\Xilinx\10.1\ISE\dcm_200mhz.xaw C:\Xilinx\10.1\ISE\dcm_200mhz +//Design Name: dcm_200mhz +//Device: xc3s500e-fg320-4 +// +// Module dcm_200mhz +// Generated by Xilinx Architecture Wizard +// Written for synthesis tool: XST +// Period Jitter (unit interval) for block DCM_SP_INST = 0.14 UI +// Period Jitter (Peak-to-Peak) for block DCM_SP_INST = 0.70 ns +`timescale 1ns / 1ps + +module dcm_200mhz(CLKIN_IN, + RST_IN, + CLKFX_OUT, + CLKIN_IBUFG_OUT, + CLK0_OUT, + CLK2X_OUT, + LOCKED_OUT); + + input CLKIN_IN; + input RST_IN; + output CLKFX_OUT; + output CLKIN_IBUFG_OUT; + output CLK0_OUT; + output CLK2X_OUT; + output LOCKED_OUT; + + wire CLKFB_IN; + wire CLKFX_BUF; + wire CLKIN_IBUFG; + wire CLK0_BUF; + wire CLK2X_BUF; + wire GND_BIT; + + assign GND_BIT = 0; + assign CLKIN_IBUFG_OUT = CLKIN_IBUFG; + assign CLK2X_OUT = CLKFB_IN; + BUFG CLKFX_BUFG_INST (.I(CLKFX_BUF), + .O(CLKFX_OUT)); + assign CLKIN_IBUFG = CLKIN_IN; + //IBUFG CLKIN_IBUFG_INST (.I(CLKIN_IN),.O(CLKIN_IBUFG)); + BUFG CLK0_BUFG_INST (.I(CLK0_BUF), + .O(CLK0_OUT)); + BUFG CLK2X_BUFG_INST (.I(CLK2X_BUF), + .O(CLKFB_IN)); + DCM_SP DCM_SP_INST (.CLKFB(CLKFB_IN), + .CLKIN(CLKIN_IBUFG), + .DSSEN(GND_BIT), + .PSCLK(GND_BIT), + .PSEN(GND_BIT), + .PSINCDEC(GND_BIT), + .RST(RST_IN), + .CLKDV(), + .CLKFX(CLKFX_BUF), + .CLKFX180(), + .CLK0(CLK0_BUF), + .CLK2X(CLK2X_BUF), + .CLK2X180(), + .CLK90(), + .CLK180(), + .CLK270(), + .LOCKED(LOCKED_OUT), + .PSDONE(), + .STATUS()); + defparam DCM_SP_INST.CLK_FEEDBACK = "2X"; + defparam DCM_SP_INST.CLKDV_DIVIDE = 2.0; + defparam DCM_SP_INST.CLKFX_DIVIDE = 1; + defparam DCM_SP_INST.CLKFX_MULTIPLY = 4; + defparam DCM_SP_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; + defparam DCM_SP_INST.CLKIN_PERIOD = 20.000; + defparam DCM_SP_INST.CLKOUT_PHASE_SHIFT = "NONE"; + defparam DCM_SP_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; + defparam DCM_SP_INST.DFS_FREQUENCY_MODE = "LOW"; + defparam DCM_SP_INST.DLL_FREQUENCY_MODE = "LOW"; + defparam DCM_SP_INST.DUTY_CYCLE_CORRECTION = "TRUE"; + defparam DCM_SP_INST.FACTORY_JF = 16'hC080; + defparam DCM_SP_INST.PHASE_SHIFT = 0; + defparam DCM_SP_INST.STARTUP_WAIT = "FALSE"; +endmodule diff --git a/interfaz_spi.prj b/interfaz_spi.prj new file mode 100644 index 0000000..f8c7001 --- /dev/null +++ b/interfaz_spi.prj @@ -0,0 +1 @@ +vhdl work "interfaz_spi.vhd" diff --git a/interfaz_spi.vhd b/interfaz_spi.vhd new file mode 100644 index 0000000..04a8162 --- /dev/null +++ b/interfaz_spi.vhd @@ -0,0 +1,214 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity interfaz_spi is + generic( + iCLK : boolean := false; + iCNV : boolean := false; + iDIN : boolean := false; + iDOU : boolean := false; + NB : positive := 16; -- number of bits of DAC + NDIV : positive := 10 -- divide the clock to get the spi clock + ); + port ( + --Entradas + clk : in std_logic; -- global clock input. 40 MHz en este caso, para estar en orden con baseline_ctrl + reset : in std_logic; + ptick_2ms : in std_logic; -- Con esta señal se sincroniza todo cada 2ms + data_dac1 : in std_logic_vector(11 downto 0); + data_dac2 : in std_logic_vector(11 downto 0); + data_dac3 : in std_logic_vector(11 downto 0); + data_dac4 : in std_logic_vector(11 downto 0); + --Señales a la E2PROM + cs_e2prom : out std_logic; + --Señales al DAC MAX5501 + spi_sdo : out std_logic; + spi_clk : out std_logic; + spi_csn : out std_logic + ); +end entity interfaz_spi; + +architecture rtl of interfaz_spi is + + type state_type is (STATE_IDLE, + STATE_INIT_TX, + STATE_SPI_IDLE, + STATE_SPI_CLK0, + STATE_SPI_CLK1, + STATE_SPI_FINISH); + signal state_reg, state_next : state_type; + + signal rdy : std_logic; + signal busy : std_logic; + signal load_reg, load_next : std_logic; + signal spi_conv : std_logic; + signal spi_clk_i : std_logic; + signal start_reg, start_next : std_logic; + signal shift_out : std_logic; + + signal dac1_buff_reg, dac1_buff_next : unsigned(11 downto 0); + signal dac2_buff_reg, dac2_buff_next : unsigned(11 downto 0); + signal dac3_buff_reg, dac3_buff_next : unsigned(11 downto 0); + signal dac4_buff_reg, dac4_buff_next : unsigned(11 downto 0); + + signal sel_reg, sel_next : std_logic_vector(1 downto 0); + signal mux_signal : std_logic_vector(NB-1 downto 0); + constant DAC1 : std_logic_vector(1 downto 0) := "00"; -- selector de DAC1 + constant DAC2 : std_logic_vector(1 downto 0) := "01"; -- selector de DAC2 + constant DAC3 : std_logic_vector(1 downto 0) := "10"; -- selector de DAC3 + constant DAC4 : std_logic_vector(1 downto 0) := "11"; -- selector de DAC4 + + signal bits_reg, bits_next : integer range 0 to NB-1; + signal bcnt_reg, bcnt_next : integer range 0 to NDIV-1; + signal data_reg, data_next : std_logic_vector(NB-1 downto 0); + signal count_reg, count_next : unsigned(1 downto 0); + +begin + + dac1_buff_next <= unsigned(data_dac1) when (ptick_2ms = '1') else dac1_buff_reg; + dac2_buff_next <= unsigned(data_dac2) when (ptick_2ms = '1') else dac2_buff_reg; + dac3_buff_next <= unsigned(data_dac3) when (ptick_2ms = '1') else dac3_buff_reg; + dac4_buff_next <= unsigned(data_dac4) when (ptick_2ms = '1') else dac4_buff_reg; + + --regusters + process(clk, reset) + begin + if (reset ='1') then + state_reg <= STATE_IDLE; + data_reg <= (others => '0'); + dac1_buff_reg <= (others => '0'); + dac2_buff_reg <= (others => '0'); + dac3_buff_reg <= (others => '0'); + dac4_buff_reg <= (others => '0'); + count_reg <= (others => '0'); + sel_reg <= (others => '0'); + start_reg <= '0'; + load_reg <= '0'; + bcnt_reg <= 0; + bits_reg <= 0; + elsif rising_edge(clk) then + state_reg <= state_next; + data_reg <= data_next; + dac1_buff_reg <= dac1_buff_next; + dac2_buff_reg <= dac2_buff_next; + dac3_buff_reg <= dac3_buff_next; + dac4_buff_reg <= dac4_buff_next; + count_reg <= count_next; + sel_reg <= sel_next; + start_reg <= start_next; + load_reg <= load_next; + bcnt_reg <= bcnt_next; + bits_reg <= bits_next; + end if; + end process; + + --next state logic + --MUX + with sel_reg select + mux_signal <= "1011" & std_logic_vector(dac1_buff_reg) when DAC1,--"00", -- Canal C DAC. Baseline canal 3 + "1111" & std_logic_vector(dac2_buff_reg) when DAC2,--"01", -- Canal D DAC. Baseline canal 2 + "0111" & std_logic_vector(dac3_buff_reg) when DAC3,--"10", -- Canal B DAC. HV canal 1 + "0011" & std_logic_vector(dac4_buff_reg) when others; -- Canal A DAC. Baseline canal 1 + + data_next <= mux_signal when (load_reg = '1') else + data_reg(data_reg'high-1 downto 0) & data_reg(data_reg'high) when (shift_out = '1') else + data_reg; + + -- maquina de estados que maneja todo + process(state_reg, ptick_2ms) + begin + state_next <= state_reg; + start_next <= '0'; + load_next <= '0'; + sel_next <= sel_reg; + count_next <= count_reg; + shift_out <= '0'; + spi_clk_i <= '0'; + spi_conv <= '1'; + rdy <= '0'; + busy <= '0'; + bcnt_next <= 0; + bits_next <= bits_reg; + case state_reg is + + when STATE_IDLE => + count_next <= (others => '0'); + sel_next <= DAC1; + if (ptick_2ms = '1') then + state_next <= STATE_INIT_TX; + else + state_next <= STATE_IDLE; + end if; + + when STATE_INIT_TX => + if (busy = '0') then + count_next <= count_reg + 1; + start_next <= '1'; + load_next <= '1'; + state_next <= STATE_SPI_IDLE; + if ( count_reg = 0 ) then + sel_next <= DAC1; + elsif ( count_reg = 1 ) then + sel_next <= DAC2; + elsif ( count_reg = 2 ) then + sel_next <= DAC3; + else + sel_next <= DAC4; + end if; + else + state_next <= STATE_INIT_TX; + end if; + + when STATE_SPI_IDLE => + if (start_reg <= '1') then + shift_out <= '1'; + state_next <= STATE_SPI_CLK0; + end if; + + when STATE_SPI_CLK0 => + busy <= '1'; + bcnt_next <= bcnt_reg+1; + spi_conv <= '0'; + if (bcnt_reg = NDIV/2) then + state_next <= STATE_SPI_CLK1; + end if; + + when STATE_SPI_CLK1 => + busy <= '1'; + bcnt_next <= bcnt_reg+1; + spi_clk_i <= '1'; + spi_conv <= '0'; + if (bcnt_reg = NDIV-1) then + bits_next <= bits_reg+1; + if (bits_reg = NB-1) then + rdy <= '1'; + state_next <= STATE_SPI_FINISH; + else + shift_out <= '1'; + state_next <= STATE_SPI_CLK0; + end if; + end if; + + when STATE_SPI_FINISH => + busy <= '1'; + bcnt_next <= bcnt_reg+1; + if (bcnt_reg = NDIV-1) then + if (count_reg = 4) then + state_next <= STATE_IDLE; + else + state_next <= STATE_INIT_TX; + end if; + end if; + end case; + end process; + + --output + spi_sdo <= not data_reg(data_reg'high) when iDOU else data_reg(data_reg'high); + + spi_clk <= not spi_clk_i when iCLK else spi_clk_i; + spi_csn <= not spi_conv when iCNV else spi_conv; + + cs_e2prom <= '1'; + +end architecture; diff --git a/interfaz_spi.xst b/interfaz_spi.xst new file mode 100644 index 0000000..211ff21 --- /dev/null +++ b/interfaz_spi.xst @@ -0,0 +1,5 @@ +set -tmpdir "/home/horacio/work/lago/lago-fpga-vhdl/xst/projnav.tmp" +set -xsthdpdir "/home/horacio/work/lago/lago-fpga-vhdl/xst" +elaborate +-ifn interfaz_spi.prj +-ifmt mixed diff --git a/ipcore_dir/DCM_33.v b/ipcore_dir/DCM_33.v new file mode 100755 index 0000000..8234878 --- /dev/null +++ b/ipcore_dir/DCM_33.v @@ -0,0 +1,77 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +//////////////////////////////////////////////////////////////////////////////// +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version : 12.2 +// \ \ Application : xaw2verilog +// / / Filename : DCM_33.v +// /___/ /\ Timestamp : 06/02/2011 10:09:32 +// \ \ / \ +// \___\/\___\ +// +//Command: xaw2verilog -st /media/Linux/LAGO/pruebas_vhdl/lago02/ipcore_dir/./DCM_33.xaw /media/Linux/LAGO/pruebas_vhdl/lago02/ipcore_dir/./DCM_33 +//Design Name: DCM_33 +//Device: xc3s500e-4fg320 +// +// Module DCM_33 +// Generated by Xilinx Architecture Wizard +// Written for synthesis tool: XST +`timescale 1ns / 1ps + +module DCM_33(CLKIN_IN, + RST_IN, + CLKDV_OUT, + CLKIN_IBUFG_OUT, + CLK0_OUT, + LOCKED_OUT); + + input CLKIN_IN; + input RST_IN; + output CLKDV_OUT; + output CLKIN_IBUFG_OUT; + output CLK0_OUT; + output LOCKED_OUT; + + wire CLKDV_BUF; + wire CLKFB_IN; + wire CLKIN_IBUFG; + wire CLK0_BUF; + wire GND_BIT; + + assign GND_BIT = 0; + assign CLKIN_IBUFG_OUT = CLKIN_IBUFG; + assign CLK0_OUT = CLKFB_IN; + BUFG CLKDV_BUFG_INST (.I(CLKDV_BUF), + .O(CLKDV_OUT)); + IBUFG CLKIN_IBUFG_INST (.I(CLKIN_IN), + .O(CLKIN_IBUFG)); + BUFG CLK0_BUFG_INST (.I(CLK0_BUF), + .O(CLKFB_IN)); + DCM_SP #( .CLK_FEEDBACK("1X"), .CLKDV_DIVIDE(1.5), .CLKFX_DIVIDE(1), + .CLKFX_MULTIPLY(4), .CLKIN_DIVIDE_BY_2("FALSE"), + .CLKIN_PERIOD(20.000), .CLKOUT_PHASE_SHIFT("NONE"), + .DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), .DFS_FREQUENCY_MODE("LOW"), + .DLL_FREQUENCY_MODE("LOW"), .DUTY_CYCLE_CORRECTION("TRUE"), + .FACTORY_JF(16'hC080), .PHASE_SHIFT(0), .STARTUP_WAIT("FALSE") ) + DCM_SP_INST (.CLKFB(CLKFB_IN), + .CLKIN(CLKIN_IBUFG), + .DSSEN(GND_BIT), + .PSCLK(GND_BIT), + .PSEN(GND_BIT), + .PSINCDEC(GND_BIT), + .RST(RST_IN), + .CLKDV(CLKDV_BUF), + .CLKFX(), + .CLKFX180(), + .CLK0(CLK0_BUF), + .CLK2X(), + .CLK2X180(), + .CLK90(), + .CLK180(), + .CLK270(), + .LOCKED(LOCKED_OUT), + .PSDONE(), + .STATUS()); +endmodule diff --git a/ipcore_dir/DCM_33.vhd b/ipcore_dir/DCM_33.vhd new file mode 100755 index 0000000..d9cd2fc --- /dev/null +++ b/ipcore_dir/DCM_33.vhd @@ -0,0 +1,96 @@ +-------------------------------------------------------------------------------- +-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +-------------------------------------------------------------------------------- +-- ____ ____ +-- / /\/ / +-- /___/ \ / Vendor: Xilinx +-- \ \ \/ Version : 12.2 +-- \ \ Application : xaw2vhdl +-- / / Filename : DCM_33.vhd +-- /___/ /\ Timestamp : 06/02/2011 10:11:46 +-- \ \ / \ +-- \___\/\___\ +-- +--Command: xaw2vhdl-st /media/Linux/LAGO/pruebas_vhdl/lago02/ipcore_dir/./DCM_33.xaw /media/Linux/LAGO/pruebas_vhdl/lago02/ipcore_dir/./DCM_33 +--Design Name: DCM_33 +--Device: xc3s500e-4fg320 +-- +-- Module DCM_33 +-- Generated by Xilinx Architecture Wizard +-- Written for synthesis tool: XST + +library ieee; +use ieee.std_logic_1164.ALL; +use ieee.numeric_std.ALL; +library UNISIM; +use UNISIM.Vcomponents.ALL; + +entity DCM_33 is + port ( CLKIN_IN : in std_logic; + RST_IN : in std_logic; + CLKDV_OUT : out std_logic; + CLKIN_IBUFG_OUT : out std_logic; + CLK0_OUT : out std_logic; + LOCKED_OUT : out std_logic); +end DCM_33; + +architecture BEHAVIORAL of DCM_33 is + signal CLKDV_BUF : std_logic; + signal CLKFB_IN : std_logic; + signal CLKIN_IBUFG : std_logic; + signal CLK0_BUF : std_logic; + signal GND_BIT : std_logic; +begin + GND_BIT <= '0'; + CLKIN_IBUFG_OUT <= CLKIN_IBUFG; + CLK0_OUT <= CLKFB_IN; + CLKDV_BUFG_INST : BUFG + port map (I=>CLKDV_BUF, + O=>CLKDV_OUT); + + CLKIN_IBUFG_INST : IBUFG + port map (I=>CLKIN_IN, + O=>CLKIN_IBUFG); + + CLK0_BUFG_INST : BUFG + port map (I=>CLK0_BUF, + O=>CLKFB_IN); + + DCM_SP_INST : DCM_SP + generic map( CLK_FEEDBACK => "1X", + CLKDV_DIVIDE => 1.5, + CLKFX_DIVIDE => 1, + CLKFX_MULTIPLY => 4, + CLKIN_DIVIDE_BY_2 => FALSE, + CLKIN_PERIOD => 20.000, + CLKOUT_PHASE_SHIFT => "NONE", + DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", + DFS_FREQUENCY_MODE => "LOW", + DLL_FREQUENCY_MODE => "LOW", + DUTY_CYCLE_CORRECTION => TRUE, + FACTORY_JF => x"C080", + PHASE_SHIFT => 0, + STARTUP_WAIT => FALSE) + port map (CLKFB=>CLKFB_IN, + CLKIN=>CLKIN_IBUFG, + DSSEN=>GND_BIT, + PSCLK=>GND_BIT, + PSEN=>GND_BIT, + PSINCDEC=>GND_BIT, + RST=>RST_IN, + CLKDV=>CLKDV_BUF, + CLKFX=>open, + CLKFX180=>open, + CLK0=>CLK0_BUF, + CLK2X=>open, + CLK2X180=>open, + CLK90=>open, + CLK180=>open, + CLK270=>open, + LOCKED=>LOCKED_OUT, + PSDONE=>open, + STATUS=>open); + +end BEHAVIORAL; + + diff --git a/ipcore_dir/DCM_33.xaw b/ipcore_dir/DCM_33.xaw new file mode 100755 index 0000000..fb08cee --- /dev/null +++ b/ipcore_dir/DCM_33.xaw @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$97x4>5c3&gnhdo Lhlv|*JFOF%{~xkmar]ulaj(dhmd<?!fpbmqaZbnz&$$HNCP32,{er7<881:?6?!55926+4?38<,dN>70392\3=58':;<<5;2:733>GUKA]BV<94ASUY[JHKQVIJ_NOKIOE\GIM602KY[WQ@NM[\GIMNFVOSXH\AAM36?DTPRVEE@TQLLJKM[SGK]L;i7L\XZ^MMH\YCKDUX[DZLHHLD[FJL991J^ZTPOONZ[ABUWJ::<6O]W[]LJI_XLMXTO<?>;@PT^ZIIDPUOH_QLLJ35?DTPRVEE@TQKDS]EHLVADFZ:96O]W[]LJI_XNKUNTYK]N@N26>GU_SUDBAWPIOQW[KSJm2KY[WQ@NM[\THEC9<1J^ZTPOONZ[WCTM]UGCJGL199BVR\XGGFRS[OCIE]GBVYJGMOj7L]\OB]TMQNa3H]QSNBDBTDW]UC69?1J[WQLLJ@VBQ_WM8UECHJFT018ER\XKEATCXZ_UU]W]UCd3H]QSKB@WU[SA==F_SU[M_Zk;@UY[V_I\A^DCA:4BNVK0>DRNN>0OAE?8:AOO5YE]Oo0OAE?_CWECZOI[]20OAE?_NWW2>EKC82;:6MCK3531>EKC;R37NBD2Y3;40=DDB3;96MCKET:?FJLL_UIYKh4CMIGRZDRNNUBB^Zl;BNH@SYCA_COI45LLJFU[JSS=2IGGKL7;BNHBGYNF<1H@FHW8:AOOC^609i0OAEIX^FJRLBBm2IGGKVPMTNWMUJ^=2IGGD@>1:AOOLHXL@\BHHQMY^0a?FJLAGUBNXHH119@HNOIW@H^JJQFNRVe?FJLAGUBNXHH_NWW<>EKC@DTECm4CMIJJZVBZ@EOi6MCKHL\WWEX\PZN=?5LLJMVPZVOIZOT_EGITb9@HNYAMLNIMNE6;BMNILRSMM=0O_KNTDF5?AEJWZZi7IMB_RR\MKUSl2NN_FKX_@FIQVR6:2NM_RH]EPWFJF_XEFNN?6JCL008@IJXN[OZYH@LY^OL@@3<LZYNB<;4DTVZ[F_DDLUHC_\JCUKLJ2=CW_KGYH64EYVFVKGKi2LJOYA]Y^HE1>@FDZO27KLPSNWQG@e<NLOONLMD_CWE=>@NFV_EEY]7;GMVPZUSZh1MCXZPUOKWWd=AG\^TZLBZE09J1>OE]OM37D@[ESLBH47<B@^_I_QFNQWW[Q_WM?1GCLJJD79OKFMBLh1GCNEJD^MVP6=KG^90AET8;L]UEISB?2DNXZA]K59MKKC63F20CKJKRBRFf>VOIZOT_EGIT89SMKNF[K_Xm6^FNHQDJACC02ZBBZGKTI:8TWOJ\PZN==5_RNR\TLHN[HI_E[K:;QQ@HN0<XZNDBH:4PRGM<>VTAGIOIN=4RRV5?WUSW@Di7^GHEYVFVKGK>2YBBJBJc:QWEWRRXV]JEY84SUCWQV753ZSXXHCPSXL@LWIIG\Y87YA_4:VQQ@><]ZOTNXHH9:WPAZDRNNY>7[GJW0`8\DQX^LXXEB@>d:ZJHLH_%QNI,= > RVVF%6)9)KXODG9;Yfa[Lb682RoaRCnjnpUawungg;;7Ujb_LkmkwPbzzcdb85T0;2^1>]72>W?7l|xz29gghd<~lxxeb`/1/27?sncdo1so>}:01g.0ca4:990t~zr@Ar0f>FGp80M694>{R62>2`=080:??jk0`82b`gcsg=i6<5a7b85?!1f2>30q^:?:6d9<4<6;;no<l4>fg57?V3?2>l14<4>33fg4d<589937^:?:6d9<4<6;;no<l4=016b?a1a290:6<u\4084b?>62899hi>n:0dfea=q\>=1<7?51;cxW17=?o03=7?<2ef3e?7amhn0n:=50;290?g|,k03<6*>d;:1?!7b2190(<h5859'3=<23k>86=4>3;294~"1>3>97)m52c9'`?0a3-l1>?5+11816>"6938=7)?=:308 45=>81/=949f:&21?5<,8<19k5+1687`>"6038;7)=i:69'6`<33-9?6>5+348:?!502=n0(>m58:&0`?2e3-9n68h4$56937=#<h087):::4`8 11==k1/84484:&7g?0<,=o19;5+5186g>"2:3?h7);<:19'12<292.>h774$7096>"083>o7)9::648 `<f3-;h6984i2494?"1=3=o7)88:668?l57290/:848d:&53?1332c=o7>5$7793a=#>>0<865f6`83>!022>n0(;:57598m3d=83.=979k;%47>22<3`<36=4+6484`>"1<3=?76g;8;29 33=?m1/:9484:9l67<72-<>6:j4$75931=#9h09=6*>b;6e?>i5i3:1(;;57e98k70=83.=979k;:m13?6=,??1;i54o3`94?"1=3=o7)88:668 4g=:810c?650;&51?1c32e957>5$7793a=<g:81<7*95;5g?>i4;3:1(;;57e98k27=83.=979j;%40>22<3f?26=4+6484`>"1?3=?76a99;29 33=?m10qo=6:181>5<7s-<=68;4i4694?"1=3=o7)88:668?j07290/:848d:&53?1332wi>94?:383>5}#>?09=6g:4;29 33=?m1/::484:9l25<72-<>6:j4$75931=<uk8o6=4=:183!012;;0e8:50;&51?1c3-<<6::4;n43>5<#><0<h6*97;57?>{t;10;6?u242802>;413<;7)?6:2c8yv562909w0:<:228972=>91/=44=5:p2a<728q68>49c:&5a?333ty9?7>52z?77?45348?68:4}r0`>5<5s4>86?l4=3f911=z{<k1<7?t=5191<=#>l0=<6s|3c83>4}:;00>86*9e;77?xu5n3:1=v3=d;43?!0b2?:0q~=n:183!0b2?:0q~<::183!0b2?:0qp`=7;295~{i:10;6<urn3;94?7|ug8j6=4>{|l1f?6=9rwe>n4?:0y~j7b=83;pqc<j:182xh5n3:1=vsa3183>4}zutwKLNu<b;db42>d1lwKLOu?}ABSxFG \ No newline at end of file diff --git a/ipcore_dir/DCM_33_arwz.ucf b/ipcore_dir/DCM_33_arwz.ucf new file mode 100755 index 0000000..0676726 --- /dev/null +++ b/ipcore_dir/DCM_33_arwz.ucf @@ -0,0 +1,17 @@ +# Generated by Xilinx Architecture Wizard +# --- UCF Template Only --- +# Cut and paste these attributes into the project's UCF file, if desired +INST DCM_SP_INST CLK_FEEDBACK = 1X; +INST DCM_SP_INST CLKDV_DIVIDE = 1.5; +INST DCM_SP_INST CLKFX_DIVIDE = 1; +INST DCM_SP_INST CLKFX_MULTIPLY = 4; +INST DCM_SP_INST CLKIN_DIVIDE_BY_2 = FALSE; +INST DCM_SP_INST CLKIN_PERIOD = 20.000; +INST DCM_SP_INST CLKOUT_PHASE_SHIFT = NONE; +INST DCM_SP_INST DESKEW_ADJUST = SYSTEM_SYNCHRONOUS; +INST DCM_SP_INST DFS_FREQUENCY_MODE = LOW; +INST DCM_SP_INST DLL_FREQUENCY_MODE = LOW; +INST DCM_SP_INST DUTY_CYCLE_CORRECTION = TRUE; +INST DCM_SP_INST FACTORY_JF = C080; +INST DCM_SP_INST PHASE_SHIFT = 0; +INST DCM_SP_INST STARTUP_WAIT = FALSE; diff --git a/ipcore_dir/DCM_33_flist.txt b/ipcore_dir/DCM_33_flist.txt new file mode 100755 index 0000000..19d2f1e --- /dev/null +++ b/ipcore_dir/DCM_33_flist.txt @@ -0,0 +1,4 @@ +# Output products list for <DCM_33> +DCM_33_flist.txt +DCM_33_readme.txt +DCM_33_xmdf.tcl diff --git a/ipcore_dir/DCM_33_readme.txt b/ipcore_dir/DCM_33_readme.txt new file mode 100755 index 0000000..e8e3d1f --- /dev/null +++ b/ipcore_dir/DCM_33_readme.txt @@ -0,0 +1,19 @@ +The following files were generated for 'DCM_33' in directory +/media/Linux/LAGO/pruebas_vhdl/lago02/ipcore_dir/ + +DCM_33_readme.txt: + Text file indicating the files generated and how they are used. + +DCM_33_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +DCM_33_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/ipcore_dir/DCM_33_xmdf.tcl b/ipcore_dir/DCM_33_xmdf.tcl new file mode 100755 index 0000000..bfb22cb --- /dev/null +++ b/ipcore_dir/DCM_33_xmdf.tcl @@ -0,0 +1,48 @@ +# The package naming convention is <core_name>_xmdf +package provide DCM_33_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::DCM_33_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::DCM_33_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name DCM_33 +} +# ::DCM_33_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::DCM_33_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path DCM_33_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module DCM_33 +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/ipcore_dir/_xmsgs/cg.xmsgs b/ipcore_dir/_xmsgs/cg.xmsgs new file mode 100644 index 0000000..a0540da --- /dev/null +++ b/ipcore_dir/_xmsgs/cg.xmsgs @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated + by the Xilinx ISE software. Any direct editing or + changes made to this file may result in unpredictable + behavior or data corruption. It is strongly advised that + users do not edit the contents of this file. --> +<messages> +<msg type="info" file="sim" num="172" delta="old" >Generating IP... +</msg> + +<msg type="warning" file="sim" num="89" delta="new" >A core named <<arg fmt="%s" index="1">fifo</arg>> already exists in the output directory. Output products for this core may be overwritten. +</msg> + +<msg type="info" file="sim" num="949" delta="new" >Finished generation of ASY schematic symbol. +</msg> + +<msg type="info" file="sim" num="948" delta="new" >Finished FLIST file generation. +</msg> + +</messages> + diff --git a/ipcore_dir/_xmsgs/pn_parser.xmsgs b/ipcore_dir/_xmsgs/pn_parser.xmsgs new file mode 100644 index 0000000..a60b11e --- /dev/null +++ b/ipcore_dir/_xmsgs/pn_parser.xmsgs @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated --> +<!-- by the Xilinx ISE software. Any direct editing or --> +<!-- changes made to this file may result in unpredictable --> +<!-- behavior or data corruption. It is strongly advised that --> +<!-- users do not edit the contents of this file. --> +<!-- --> +<!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. --> + +<messages> +<msg type="info" file="ProjectMgmt" num="1061" ><arg fmt="%s" index="1">Parsing VHDL file "/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.vhd" into library work</arg> +</msg> + +</messages> + diff --git a/ipcore_dir/coregen.cgc b/ipcore_dir/coregen.cgc new file mode 100644 index 0000000..6322068 --- /dev/null +++ b/ipcore_dir/coregen.cgc @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:design xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xilinx="http://www.xilinx.com" > + <spirit:vendor>xilinx.com</spirit:vendor> + <spirit:library>project</spirit:library> + <spirit:name>coregen</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:componentInstances> + <spirit:componentInstance> + <spirit:instanceName>fifo</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="fifo_generator" spirit:version="6.2" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">fifo</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DEPTH">32768</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_FULL_TYPE">Single_Programmable_Full_Threshold_Constant</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DATA_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_RESET_VALUE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_FLAGS_RESET_VALUE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROGRAMMABLE_EMPTY_TYPE">No_Programmable_Empty_Threshold</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_DEPTH">8192</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_DBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT_WIDTH">13</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.VALID_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OUTPUT_DATA_WIDTH">8</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_ASSERT_VALUE">4096</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT_WIDTH">13</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_INT_CLK">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_TIMING_VIOLATIONS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PIN">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_IMPLEMENTATION">Independent_Clocks_Block_RAM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_ASSERT_VALUE">2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INJECT_SBIT_ERROR">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EXTRA_LOGIC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_CLOCK_FREQUENCY">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FULL_THRESHOLD_NEGATE_VALUE">4095</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_EMPTY_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.UNDERFLOW_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">Asynchronous_Reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT_WIDTH">15</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DOUT_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.READ_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_DATA_COUNT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ALMOST_FULL_FLAG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.WRITE_ACKNOWLEDGE_SENSE">Active_High</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.EMPTY_THRESHOLD_NEGATE_VALUE">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_EMBEDDED_REGISTERS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PERFORMANCE_OPTIONS">Standard_FIFO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_RESET_SYNCHRONIZATION">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">false</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties> + <xilinx:projectOptions> + <xilinx:projectName>coregen</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s500e</xilinx:device> + <xilinx:deviceFamily>spartan3e</xilinx:deviceFamily> + <xilinx:package>fg320</xilinx:package> + <xilinx:speedGrade>-4</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>VHDL</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Foundation_ISE</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>VHDL_and_Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + <xilinx:packageInfo> + <xilinx:sourceCoreCreationDate>2012-10-13+03:35</xilinx:sourceCoreCreationDate> + </xilinx:packageInfo> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + <spirit:componentInstance> + <spirit:instanceName>DCM_33</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="dcm_sp" spirit:version="13.1" /> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.COMPONENT_NAME">DCM_33</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.XAWFILENAME">/home/horacio/work/lago/lago_fpga_sync_one_fifo/ipcore_dir/DCM_33.xaw</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:instanceProperties> + <xilinx:projectOptions> + <xilinx:projectName>coregen</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s500e</xilinx:device> + <xilinx:deviceFamily>spartan3e</xilinx:deviceFamily> + <xilinx:package>fg320</xilinx:package> + <xilinx:speedGrade>-4</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>VHDL</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Foundation_ISE</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>VHDL_and_Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + </xilinx:instanceProperties> + </spirit:vendorExtensions> + </spirit:componentInstance> + </spirit:componentInstances> + <spirit:vendorExtensions> + <xilinx:instanceProperties> + <xilinx:projectOptions> + <xilinx:projectName>coregen</xilinx:projectName> + <xilinx:outputDirectory>./</xilinx:outputDirectory> + <xilinx:workingDirectory>./tmp/</xilinx:workingDirectory> + <xilinx:subWorkingDirectory>./tmp/_cg/</xilinx:subWorkingDirectory> + </xilinx:projectOptions> + <xilinx:part> + <xilinx:device>xc3s500e</xilinx:device> + <xilinx:deviceFamily>spartan3e</xilinx:deviceFamily> + <xilinx:package>fg320</xilinx:package> + <xilinx:speedGrade>-4</xilinx:speedGrade> + </xilinx:part> + <xilinx:flowOptions> + <xilinx:busFormat>BusFormatAngleBracketNotRipped</xilinx:busFormat> + <xilinx:designEntry>VHDL</xilinx:designEntry> + <xilinx:asySymbol>true</xilinx:asySymbol> + <xilinx:flowVendor>Foundation_ISE</xilinx:flowVendor> + <xilinx:addPads>false</xilinx:addPads> + <xilinx:removeRPMs>false</xilinx:removeRPMs> + <xilinx:createNDF>false</xilinx:createNDF> + <xilinx:implementationFileType>Ngc</xilinx:implementationFileType> + <xilinx:formalVerification>false</xilinx:formalVerification> + </xilinx:flowOptions> + <xilinx:simulationOptions> + <xilinx:simulationModel>Behavioral</xilinx:simulationModel> + <xilinx:simulationLanguage>VHDL_and_Verilog</xilinx:simulationLanguage> + <xilinx:foundationSym>false</xilinx:foundationSym> + </xilinx:simulationOptions> + </xilinx:instanceProperties> + </spirit:vendorExtensions> +</spirit:design> + diff --git a/ipcore_dir/coregen.cgp b/ipcore_dir/coregen.cgp new file mode 100644 index 0000000..7f8f48f --- /dev/null +++ b/ipcore_dir/coregen.cgp @@ -0,0 +1,9 @@ +SET busformat = BusFormatAngleBracketNotRipped +SET designentry = VHDL +SET device = xc3s500e +SET devicefamily = spartan3e +SET flowvendor = Foundation_ISE +SET package = fg320 +SET speedgrade = -4 +SET verilogsim = true +SET vhdlsim = true diff --git a/ipcore_dir/coregen.log b/ipcore_dir/coregen.log new file mode 100644 index 0000000..12fe67a --- /dev/null +++ b/ipcore_dir/coregen.log @@ -0,0 +1,63 @@ +INFO:sim:172 - Generating IP... +Applying current project options... +Finished applying current project options. +Customizing IP... +Release 14.3 - Xilinx CORE Generator IP GUI Launcher P.40xd (lin64) +Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. +Finished Customizing. +Generating IP... +WARNING:sim:89 - A core named <fifo> already exists in the output directory. + Output products for this core may be overwritten. +XST: HDL Compilation +XST: Design Hierarchy Analysis +XST: HDL Analysis +XST: HDL Synthesis +XST: Advanced HDL Synthesis +XST: Low Level Synthesis +XST: Partition Report +XST: Final Report +Generating Implementation files. +Generating NGC file. +Finished Generation. +Generating IP instantiation template... +Generating ASY schematic symbol... +INFO:sim:949 - Finished generation of ASY schematic symbol. +Generating SYM schematic symbol for 'fifo'... +Generating metadata file... +Generating ISE project... +XCO file found: fifo.xco +XMDF file found: fifo_xmdf.tcl +Adding /home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.asy +-view all -origin_type imported +Adding /home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.ngc +-view all -origin_type created +Checking file +"/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.ngc" for +project device match ... +File "/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.ngc" +device information matches project device. +Adding /home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.sym +-view all -origin_type imported +Adding /home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.vhd +-view all -origin_type created +INFO:HDLCompiler:1061 - Parsing VHDL file + "/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.vhd" + into library work +INFO:ProjectMgmt - Parsing design hierarchy completed successfully. +Adding /home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.vho +-view all -origin_type imported +Adding +/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo_generator_re +adme.txt -view all -origin_type imported +INFO:TclTasksC:2116 - The automatic calculation of top has been turned-off. + Please set the new top explicitly by running the "project set top" command. + To re-calculate the new top automatically, set the "Auto Implementation Top" + property to true. +Top level has been set to "/fifo" +Generating README file... +Generating FLIST file... +INFO:sim:948 - Finished FLIST file generation. +Launching README viewer... +Moving files to output directory... +Finished moving files to output directory +Wrote CGP file for project 'fifo'. diff --git a/ipcore_dir/coregen.rsp b/ipcore_dir/coregen.rsp new file mode 100755 index 0000000..ee0058e --- /dev/null +++ b/ipcore_dir/coregen.rsp @@ -0,0 +1,2 @@ +SETPROJECT "/home/horacio/work/lago/lago_fpga_sync_one_fifo/ipcore_dir/coregen.cgp" +LAUNCHXCO "/home/horacio/work/lago/lago_fpga_sync_one_fifo/ipcore_dir/fifo.xco" diff --git a/ipcore_dir/edit_fifo.tcl b/ipcore_dir/edit_fifo.tcl new file mode 100644 index 0000000..a514e49 --- /dev/null +++ b/ipcore_dir/edit_fifo.tcl @@ -0,0 +1,37 @@ +## +## Core Generator Run Script, generator for Project Navigator edit command +## + +proc findRtfPath { relativePath } { + set xilenv "" + if { [info exists ::env(XILINX) ] } { + if { [info exists ::env(MYXILINX)] } { + set xilenv [join [list $::env(MYXILINX) $::env(XILINX)] $::xilinx::path_sep ] + } else { + set xilenv $::env(XILINX) + } + } + foreach path [ split $xilenv $::xilinx::path_sep ] { + set fullPath [ file join $path $relativePath ] + if { [ file exists $fullPath ] } { + return $fullPath + } + } + return "" +} + +source [ findRtfPath "data/projnav/scripts/dpm_cgUtils.tcl" ] + +set result [ run_cg_edit "fifo" xc3s500e-4fg320 VHDL ] + +if { $result == 0 } { + puts "Core Generator edit command completed successfully." +} elseif { $result == 1 } { + puts "Core Generator edit command failed." +} elseif { $result == 3 || $result == 4 } { + # convert 'version check' result to real return range, bypassing any messages. + set result [ expr $result - 3 ] +} else { + puts "Core Generator edit cancelled." +} +exit $result diff --git a/ipcore_dir/fifo.asy b/ipcore_dir/fifo.asy new file mode 100644 index 0000000..ee71229 --- /dev/null +++ b/ipcore_dir/fifo.asy @@ -0,0 +1,45 @@ +Version 4 +SymbolType BLOCK +TEXT 32 32 LEFT 4 fifo +RECTANGLE Normal 32 32 544 768 +LINE Wide 0 80 32 80 +PIN 0 80 LEFT 36 +PINATTR PinName din[31:0] +PINATTR Polarity IN +LINE Normal 0 144 32 144 +PIN 0 144 LEFT 36 +PINATTR PinName wr_en +PINATTR Polarity IN +LINE Normal 0 176 32 176 +PIN 0 176 LEFT 36 +PINATTR PinName wr_clk +PINATTR Polarity IN +LINE Normal 0 240 32 240 +PIN 0 240 LEFT 36 +PINATTR PinName rd_en +PINATTR Polarity IN +LINE Normal 0 272 32 272 +PIN 0 272 LEFT 36 +PINATTR PinName rd_clk +PINATTR Polarity IN +LINE Normal 144 800 144 768 +PIN 144 800 BOTTOM 36 +PINATTR PinName rst +PINATTR Polarity IN +LINE Wide 576 80 544 80 +PIN 576 80 RIGHT 36 +PINATTR PinName dout[7:0] +PINATTR Polarity OUT +LINE Normal 576 208 544 208 +PIN 576 208 RIGHT 36 +PINATTR PinName full +PINATTR Polarity OUT +LINE Normal 576 272 544 272 +PIN 576 272 RIGHT 36 +PINATTR PinName prog_full +PINATTR Polarity OUT +LINE Normal 576 432 544 432 +PIN 576 432 RIGHT 36 +PINATTR PinName empty +PINATTR Polarity OUT + diff --git a/ipcore_dir/fifo.gise b/ipcore_dir/fifo.gise new file mode 100644 index 0000000..4fb80a9 --- /dev/null +++ b/ipcore_dir/fifo.gise @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <!-- --> + + <!-- For tool use only. Do not edit. --> + + <!-- --> + + <!-- ProjectNavigator created generated project file. --> + + <!-- For use in tracking generated file and other information --> + + <!-- allowing preservation of process status. --> + + <!-- --> + + <!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. --> + + <version xmlns="http://www.xilinx.com/XMLSchema">11.1</version> + + <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="fifo.xise"/> + + <files xmlns="http://www.xilinx.com/XMLSchema"> + <file xil_pn:fileType="FILE_ASY" xil_pn:name="fifo.asy" xil_pn:origination="imported"/> + <file xil_pn:fileType="FILE_SYMBOL" xil_pn:name="fifo.sym" xil_pn:origination="imported"/> + <file xil_pn:fileType="FILE_VHO" xil_pn:name="fifo.vho" xil_pn:origination="imported"/> + <file xil_pn:fileType="FILE_USERDOC" xil_pn:name="fifo_generator_readme.txt" xil_pn:origination="imported"/> + </files> + + <transforms xmlns="http://www.xilinx.com/XMLSchema"/> + +</generated_project> diff --git a/ipcore_dir/fifo.ncf b/ipcore_dir/fifo.ncf new file mode 100644 index 0000000..e69de29 diff --git a/ipcore_dir/fifo.ngc b/ipcore_dir/fifo.ngc new file mode 100644 index 0000000..fc7ab74 --- /dev/null +++ b/ipcore_dir/fifo.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$46e44<,[o}e~g`n;"2*73>(-;0<9>40123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?2:216>6?<2:M<??41292*5733881EC^ZT;CG@WD;980;2<h4128JJUSS2yxdkRhzlm]wlwct`5;96=0=6:30>LHW]]0{~biPftno[qnumzbTm~}jru>26?69:?1:?7GAPTV9twi`Wog`Rzgrdqk[kc`i}o7=?4?>0c856<H]]Z^X7jnt`]`kphs4881<3?k;019KPRW]]0|~Rjnt`]`kphs4881<3?;;069MKVR\3KOH_O31283:76<9<0BB][[:qplcZcjx}sTxe|jsi>20?69:>1:97GAPTV9twi`Wlg{xtQ{hsgplZgt{lx0<:50?04?43=AGZ^X7~}of]fiur~W}byi~fPndebp`:6<3:5=i5>5;MVPUSS2{nThlzn_bmvjq:6<3:5==5>:HLSQQ<CAH6;6=0>1:39KPRW]]0OCL2?:1<2?7753:81EC^ZT;fjj956294o7>}:01gec647%=;;794FNQWW>AOE4:0;2<?44;MVPUSS2MEI0>4?>59600663?80:4:468;50>>3:8;9754@UURVP?bh}}6<6=0;;9C;<4=><23;<4<49768=30>02KOH_O30?;8EABUI5;;245NDEPB847912KOH_O313<a?DBCZH6:?7>19:CG@WG;9:437LJKR@>2:==FLMXJ0?07;@FGVD:4611JHI\N<5<;?DBCZH6>255NDEPB838?3HNO^L28>99B@ATF41437LJKR@>::==FLMXI0=06;@FGVG:687h0MIJ]B=32>58>3HNO^O2>1?:8EABUJ5;546OKDS@?6;><IMNYN1=18:CG@WD;<720MIJ]B=7=<>GCL[H7:364AEFQF91902KOH_L38?:8EABUJ535?6OCL89BW\HDW[OL=6L<;CW1<>DR[VCEJB?4C39@A44<KAOHGRBFCDLPAZR^XL80OD:4CMIB0>EKCK90OA\6;BMNILRSMM;?7NA]E^EFJ@TF\@EESD@IO69@V@GSMM;0H?5KI99GMD:7294=7IGN<1<5?AOE494=7IGM<0<5?AOE4;437IGM<283:3=CAK68255KO@>3>5813MEJ0=09;EMA85813MEI0<09;EMA878?3MEI0>4?>79GKG:46;1N8>5JN@18AKD53O>97K6=;GF0?CBD<2LOOH=4FEG0?CBW<2LO\H?4G29DJA4<A980E<<4I308M6?<AGC__YO[E69JJLRX89=0ECG[_134?LHN\V:9;6GAIU]372=NF@^T<994IOKW[5303@DBXR>97:KMMQY7?>1BBDZP0958MKOSW93<7D@FT^2B3>OIA]U;N:5FNHV\4F1<AGC_S=J8;HLJPZ6B?2CEEYQ?F69JJLRX99=0ECG[_034?LHN\V;9;6GAIU]272=NF@^T=994IOKW[4303@DBXR?97:KMMQY6?>1BBDZP1958MKOSW83<7D@FT^3B3>OIA]U:N:5FNHV\5F1<AGC_S<J8;HLJPZ7B?2CEEYQ>F69JJLRX:9=0ECG[_334?LHN\V89;6GAIU]172=NF@^T>994IOKW[7303@DBXR<97:KMMQY5?>1BBDZP2958MKOSW;3<7D@FT^0B3>OIA]U9N:5FNHV\6F1<AGC_S?J8;HLJPZ4B?2CEEYQ=F69JJLRX;9=0ECG[_234?LHN\V99;6GAIU]072=NF@^T?994IOKW[6303@DBXR=97:KMMQY4?>1BBDZP3958MKOSW:3<7D@FT^1B3>OIA]U8N:5FNHV\7F1<AGC_S>J8;HLJPZ5B?2CEEYQ<F79JJLRXI?1BBDZPB39OM7=KG?1GCLJJD69OKBODIE>0@XZ>4:NVP70<D\^9SI84LTV1[I2<D\^8:6BZT2]O0>JR\=<0@XZ;_E78IVAHF<1FYUMVc:ObnjtQm{ybccm4MhllvScu{`ee>6@>3:L251=I98;87C?=3:L271=I9:8?7C?<359M56233G;8995A1247?K74?=1E=>6;;O30=6=I9=>0B<:?4:L2015<F8?87C?93:L236=I91>0B<663:L2=6=I:990B??<;O017>H5;:1E>9=4N370?K41;2D9;>5A2918J7?53G987C=?3:L056=I;;90B>=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M014<F<80B:<4N8d8JGYE]ZZBBR^]OQQ4?KCS_FX@=6A=;NI2?U2<XHX_m6^FN^@VWLB_j2ZBBRLZSOCNA6=WZL;0]n5]AL@22ZU6WZ>j7_KND^DJVVR63Z;87^GB_BMOHLUNGGUHDHMD6:QLQWEB?2YYZLBPA69PVSGKWK>0_^\N4:QPVG2<\PZN??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv5678VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<<Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?010\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4564W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;8R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?04]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3450XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:<S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?8^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos234<YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_fa\|jt788:T^h}zlu306>S7'nxm"h gbz-gim'Drd~R|k_qlwvZadWqey<=?>_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1226ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw679:UYi~{ct017?P6(o{l%~k!hcy,`hn~(EqeySyc_wcoq`6X8Vrd~=>?0^Pfwpjs9:>0Y=!hrg,qb*adp'iggu!Bxnp\phvX~hf~i=Q>_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{Ua}Qyamwf4Z4Xpfx;<=>Pxn>3:60<]9%l~k }f.e`|+ekcq%Ftb|Ptlr\rdjrm9U9Sua}0123[}i;87UX[==n;T2,cw`)zo%lou lljz,I}iuW}g{S{ocud2\6Z~hz9:;<Rv`<1<\WR6X[^:8:6[?/fpe*w`(ojr%oaew/LzlvZrjxV|j`xk?_3]{kw6789Usc1>1_RU273=R8&myj#|i/fa{*fjlp&GscQ{mq]ueisb8V8Ttb|?012\|j:76VY\>>:4U1-dvc(un&mht#mcky-N|jtX|dzTzlbze1]1[}iu89::S_k|umv271=R8&myj#|i/fa{*fjlp&GscQ{mq]ueisb8V8Ttb|?011\V`urd};8?6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Rlfn^zlv5678VXnxb{1218Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\flhXpfx;<=?PRdqvhq74;2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVhbbRv`r1236ZTb{|f=>=4U1-dvc(un&mht#mcky-N|jtX{U{by|Pbhl\|jt7899T^h}zlu307>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZdnfVrd~=>?4^Pfwpjs9:90Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTnd`Pxnp3453XZly~`y?<3:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^`jjZ~hz9:;:R\jstnw565<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXj`dTtb|?015\V`urd};8?6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Rlfn^zlv5670VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<=Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?013\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4565W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;?R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?05]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3453XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:=S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?7^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos234=YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7893T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=??_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1225ZTb{|f=?<4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2>0?01?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?5485:2_;#j|i.sd,cf~)keas#jPpovq[goi4885>?5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1?<>308Q5)`zo$yj"ilx/aoo})ulVzexQmio>20;463\:$kh!rg-dg}(ddbr$~iQnup\flh;:78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7?3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`34?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?1;463\:$kh!rg-dg}(ddbr$~iQnup\flh;>78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7;3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`38?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?=;463\:$kh!rg-dg}(ddbr$~iQnup\flhX998:7X> gsd-vc)`kq$h`fv re]sjqtXj`dT=<<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`P1302?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\56463\:$kh!rg-dg}(ddbr$~iQnup\flhX9=8;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT>?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ<219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^614>S7'nxm"h gbz-gim'{nT|cz}_ckm[0473\:$kh!rg-dg}(ddbr$~iQnup\flhX>;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU<>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR6=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_805?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789:9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0123570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<<<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34576:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678;;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012062=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;??<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34525?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>;1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678<8<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?017263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;:?64U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234376:>1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?630a?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789<Tnij?279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567?;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?06312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:3>n5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123<47X[^:9o6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012;54YT_88h7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01:25ZUP:;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?09014>S7'nxm"h gbz-gim'{nT|cz}_fa?4;463\:$kh!rg-dg}(ddbr$~iQnup\cf:6878:7X> gsd-vc)`kq$h`fv re]sjqtXoj6:=3<>;T2,cw`)zo%lou lljz,vaYwf}xTkn2>2?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>27;463\:$kh!rg-dg}(ddbr$~iQnup\cf:6<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<14>S7'nxm"h gbz-gim'{nT|cz}_fa?0;473\:$kh!rg-dg}(ddbr$~iQnup\cf:26;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm38?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>::4`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ66n2_;#j|i.sd,cf~)keas#jPpovq[beX9;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV;;>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS<?=0:W3+bta&{l$knv!cmi{+wbXxg~ySjmP1303?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]2776<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ739o1^<"i}f/pe+be&jf`t"|k_qlwvZadW;;m7X> gsd-vc)`kq$h`fv re]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS9?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ:1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_73e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]45c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[=7a3\:$kh!rg-dg}(ddbr$~iQnup\cfY>:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2?>358Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;9949;6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=32:71<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7=?0=7:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc9746;=0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi315<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5;5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>1:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7?3<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8185>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1;1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:16;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi37?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4149:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=;=60=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]263=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU:<?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\54413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olS<<=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ74:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ>4378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX:;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP3378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX<;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP5378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX>;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP7378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX0;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP93c8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86:<3<n;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;9849m6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f28449:h1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=30:7g<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2>4?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7>3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;;7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?0;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?35?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7:3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;?7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?<;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?39?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T==<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X98827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\574>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?P120:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T=9<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X:;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]06==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R:=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W<837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\27><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<Q8299V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9V2946[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2[<423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;<=<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2344423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;<?<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2346423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;<9<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2340423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;<;<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2342423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;<5<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos234<423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;==<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2354423\:$kh!rg-dg}(ddbr$~iQnup\cfYg{:;=?<:;T2,cw`)zo%lou lljz,vaYwf}xTknQwos2356403\:$kh!rg-dg}(ddbr$x`~Pv`nva5Y7Wqey<=>?269V4*aun'xm#jmw.bnh|*rjxV|j`xk?_0]{kw67898<7X> gsd-vc)`kq$h`fv tlr\rdjrm9U9Sua}012362=R8&myj#|i/fa{*fjlp&~f|Rxnltg3[7Yg{:;<<<8;T2,cw`)zo%lou lljz,phvX~hf~i=Q=_ymq4564:>1^<"i}f/pe+be&jf`t"zbp^tbhpc5W;Usc>?010a?P6(o{l%~k!hcy,`hn~(|dzTzlbze3]1[}iu89:;S^Y?269V4*aun'xm#jmw.bnh|*rjxV|j`xk=_2]{kw6789837X> gsd-vc)`kq$h`fv tlr\rdjrm;U8Sua}0123571<]9%l~k }f.e`|+ekcq%a}Qyamwf6Z2Xpfx;<=>=8:W3+bta&{l$knv!cmi{+qkwWkgyh<P4^zlv567888:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7<3<=;T2,cw`)zo%lou lljz,swYwf}xTnd`311<16>S7'nxm"h gbz-gim'~xT|cz}_ckm8479:;1^<"i}f/pe+be&jf`t"y}_qlwvZdnf5;92??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2>>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>1:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:46;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag6?2??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2:>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>5:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:06;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag632??4U1-dvc(un&mht#mcky-tvZvi|{Uiec26>328Q5)`zo$yj"ilx/aoo})pzVzexQmio]365=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ7592_;#j|i.sd,cf~)keas#z|Ppovq[goiW8:9=6[?/fpe*w`(ojr%oaew/vp\tkruWkceS<?=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga_0014>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_703?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\376<]9%l~k }f.e`|+ekcq%|~R~ats]amkY?:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012363=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2347413\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<===6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4563:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?5348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01512>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=1:W3+bta&{l$knv!cmi{+rtXxg~ySjm311<15>S7'nxm"h gbz-gim'~xT|cz}_fa?548592_;#j|i.sd,cf~)keas#z|Ppovq[be;9;49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7=3<?;T2,cw`)zo%lou lljz,swYwf}xTkn2=>328Q5)`zo$yj"ilx/aoo})pzVzexQhc=1=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`818582_;#j|i.sd,cf~)keas#z|Ppovq[be;=78;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6=2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo191219V4*aun'xm#jmw.bnh|*quWyd~Ril<9<14>S7'nxm"h gbz-gim'~xT|cz}_fa?=;7a3\:$kh!rg-dg}(ddbr${Qnup\cfY79o1^<"i}f/pe+be&jf`t"y}_qlwvZadW88;7X> gsd-vc)`kq$h`fv ws]sjqtXojU:<?>4U1-dvc(un&mht#mcky-tvZvi|{UloR?>219V4*aun'xm#jmw.bnh|*quWyd~Ril_002b>S7'nxm"h gbz-gim'~xT|cz}_fa\64`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ56n2_;#j|i.sd,cf~)keas#z|Ppovq[beX<8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV?:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT:<h4U1-dvc(un&mht#mcky-tvZvi|{UloR9>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP80d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^;12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5:5>:5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>24;403\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0<?1269V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:6:78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm783<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8085>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk181279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:06;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi38?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`404996[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboV;9:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^3363=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:=?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\57423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS?<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[6423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS9<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[0423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS;<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[2423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS5<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[<4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?30?0b?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7==0=a:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb648;5>l5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59756;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>::7><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<Q?299V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9V;956[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2[46512_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_031=>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S<<=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<Q;299V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9V?946[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2[34?3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?P73:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U3>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=6=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp345?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<<>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp3447512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<1<1=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0<0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs4;4956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw868512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<5<1=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo080=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs4?49j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$k`{w.foX4X(`e8$f=?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,di^7Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\:T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR9V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP8P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV;R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(ods"jcT6\,div(j{;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&mfyu hmZ5^*bkt&dy9?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2?>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28485;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8692?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x><2<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:36;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:080=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>5:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64>49n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<Q?_`lg45679;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:S<Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8U9Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W:Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y3Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[0Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]5[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x>_6]mkq6789;956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw858512_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(khxyuck{<0<1=>S7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0?0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n? c`pq}kcs4:4956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw818512_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(khxyuck{<4<1=>S7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0;0=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT4\,div(j{;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&mfyu hmZ7^*bkt&dy9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX2X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^1Z&ngx"`}=3:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>3:75<]9%l~k }f.eo4+tc'nxj#||tr-`5*p64849?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<2=>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28685;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~86?2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><4<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:16;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0:0=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]3[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_0]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<Q=_`lg45679;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:S>Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U?Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W<Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y1Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[2Yig}:;<=?=0:W3+bta&{l$ka>!re-dvdu)zz~x#nabp103?P6(o{l%~k!hl1,q`*auiz$yy} cnos57?<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi228Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTeRa}012374=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34566:?1^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPi0f8Q5)`zo$yj"ic0/pg+wgjW{nTicQf1318Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr5<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex<<:;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw55423\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d=<<:;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw57423\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d=><:;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw51433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d>?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov061=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}>986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at407?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs>;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz8259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq>5<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex4<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;878h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?4;Yu|;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>24;4c3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw311<\vq4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw310<1`>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0<?1_sv1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0<<12e9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;92R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;82?j4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:6;7Uyx?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:66;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>2:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=0=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1<1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0>0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4:4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;<78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?0;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>6:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2:>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1812b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5<5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4>49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az828Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?<;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw38?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot26>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp622R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6;2?l4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;9949n6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^zlv9766;h0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?5785j2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=30:7d<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|315<1a>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1?;>^pw6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2>>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7>3<n;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[}iu4:49m6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^zlv929:h1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>6:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|36?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0:0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz525>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:>68l0Y=!hrg,qb*ak8'xo#~ats-`kphs4949<6[?/fpe*w`(oe:%~i!}povq+firf}6:<3<?;T2,cw`)zo%l`= }d.psjqt(kfex1?>>328Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<00=65=R8&myj#|i/fn3*wb(zyd~"m`uov?568582_;#j|i.sd,ci6)zm%y|cz}/bmvjq:6<7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5;5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7>3?i;T2,cw`)zo%l`= }d.psjqt(kfex1=11g9V4*aun'xm#jb?.sf,vuhsz&idycz34?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=7=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?2;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9199o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;07;m7X> gsd-vc)`d9$yh"|nup,gjsi|535=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<<k4U1-dvc(un&mg<#|k/srmpw)dg|dS<?i;T2,cw`)zo%l`= }d.psjqt(kfexR??1g9V4*aun'xm#jb?.sf,vuhsz&idyczP103e?P6(o{l%~k!hl1,q`*twf}x$ob{at^315c=R8&myj#|i/fn3*wb(zyd~"m`uov\567a3\:$kh!rg-dh5(ul&x{by| cnwmpZ739l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX:8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW:;n7X> gsd-vc)`d9$yh"|nup,gjsi|V>:i6[?/fpe*w`(oe:%~i!}povq+firf}U>=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T:<k4U1-dvc(un&mg<#|k/srmpw)dg|dS:?j;T2,cw`)zo%l`= }d.psjqt(kfexR6>e:W3+bta&{l$ka>!re-qtkru'je~byQ6239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>3:75<]9%l~k }f.eo4+tc'{zex!lotlw[a7;9949?6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1?>>318Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?5785;2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95;82?=4U1-dvc(un&mg<#|k/srmpw)dg|dSi?315<16>S7'nxm"h gm2-va)uxg~y#naznu]g5979:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8692?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?33?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28185:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95?5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<29>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?3;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64149>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=171209V4*aun'xm#jb?.sf,vuhsz&idyczPd0]364=R8&myj#|i/fn3*wb(zyd~"m`uov\`4Y6:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U:<?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P1001?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[445:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V;8>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<Q>4338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\677<]9%l~k }f.eo4+tc'{zex!lotlw[a7X;;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T8??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P5338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\277<]9%l~k }f.eo4+tc'{zex!lotlw[a7X?;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T4??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P9368Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_omw4566;o1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[f;87>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Ydq5;;29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0<?1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Snw313<0b>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>2:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8784n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:46:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4=48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6>2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0;0<f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot28>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;<Rmv<9<0b>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>::17<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp9776=;0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;:29?4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x1?=>538Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;<Rbzt=30:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp979<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4;4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~7?3:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy2;>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;<Rbzt=7=05=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*KflmUoekhPpovq[ugcWhno<=>?_mww838382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;?7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yk}}6329>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x171409V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<01=75=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f?5685n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaY6;:20Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<01=6d=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*vugnUmyabPi208Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy2346543\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(x{elSk{cl^k\ip~7899:??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVddx=>?1218Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQaou23447512_;#j|i.sd,ci6){%l{l}!wrvp+f7(khxyuck{<1<1=>S7'nxm"h gm2-sw)`hy%{~z|/b3,gdtuqgo0<0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n? c`pq}kcs4;4956[?/fpe*w`(oe:%{!hw`q-svrt'j;$ol|}yogw868512_;#j|i.sd,ci6){%l{l}!wrvp+f7(khxyuck{<5<1=>S7'nxm"h gm2-sw)`hy%{~z|/b3,gdtuqgo080=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT4\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ7^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX2X(`ez$f?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64=49?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2:>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28385j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0]7[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_4]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<Q9_omw45679;30Y=!hrg,qb*ak8'}y#jyns/uppv)d:&ij~waeu>3:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`6*efz{seiy2>>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.abvwim}692?74U1-dvc(un&mg<#y}/fubw+qt|z%h>"mnrs{maq:46;30Y=!hrg,qb*ak8'}y#jyns/uppv)d:&ij~waeu>7:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`6*efz{seiy2:>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV<R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT3\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&mfyu hmZ6^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j8$k`{w.foX1X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,di^0Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~86?2?=4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x><4<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:16;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[1Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]6[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x>_7]mkq6789;9<6[?/fpe*w`(oe:%{!hw`q-svrt'jef|<<?;T2,cw`)zo%l`= xr.etev(p{}y$obc23:8Q5)`zo$yj"ic0/uq+bqf{'}xx~!}al]eqijXnkUb>85Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]j6a=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbS`{w01236`=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbS`{w012354b<]9%l~k }f.eo4+qu'{kfSz|Peo]j54`<]9%l~k }f.eo4+qu'{kfSz|Peo]j5Z76n2_;#j|i.sd,ci6){%ym`Qxr^gm[l7X:;90Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp4423\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d==<:;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw54423\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d=?<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw672<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~8>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu610>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|<8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{6368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr0:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by6=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp<4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw30?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7<3Q}t3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6:<3<k;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;994T~y<n;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;9849h6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8479W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8485k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<0<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw32?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7>3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp682?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:46Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}929:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=6=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<4<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir080Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7:3<l;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;>7Uyx?74U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:06;i0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>4:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=:=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu161_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir040=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~404T~y<n;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[}iu4949n6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^zlv9776;h0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?5485j2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=31:7c<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|313<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<0<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1<12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{682?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;<78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8085i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=4=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc28>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx743<n;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[}iu404:j6[?/fpe*w`(oe:%{!xpovq+firf}6;2?>4U1-dvc(un&mg<#y}/vrmpw)dg|d0<>1219V4*aun'xm#jb?.vp,suhsz&idycz310<14>S7'nxm"h gm2-sw)pxg~y#naznu>26;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9799o1^<"i}f/pe+bj7&~x${}`{r.alqkr;:7;m7X> gsd-vc)`d9$|~"ynup,gjsi|595=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~783?i;T2,cw`)zo%l`= xr.usjqt(kfex1;11g9V4*aun'xm#jb?.vp,suhsz&idycz36?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=5=5c=R8&myj#|i/fn3*rt(yd~"m`uov?<;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9?99l1^<"i}f/pe+bj7&~x${}`{r.alqkrX88o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW8;m7X> gsd-vc)`d9$|~"ynup,gjsi|V;;=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T=<?i;T2,cw`)zo%l`= xr.usjqt(kfexR?=1d9V4*aun'xm#jb?.vp,suhsz&idyczP20g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_23f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^62a>S7'nxm"h gm2-sw)pxg~y#naznu]65`=R8&myj#|i/fn3*rt(yd~"m`uov\24c<]9%l~k }f.eo4+qu'~zex!lotlw[27b3\:$kh!rg-dh5(pz&}{by| cnwmpZ>6m2_;#j|i.sd,ci6){%||cz}/bmvjqY>:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86;2?=4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?311<17>S7'nxm"h gm2-sw)pxg~y#naznu]g59766;90Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7=?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<Q?209V4*aun'xm#jb?.vp,suhsz&idyczPd0]267=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y68;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T=<<=;T2,cw`)zo%l`= xr.usjqt(kfexRj>_0015>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^715>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R6=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^;16>S7'nxm"h gm2-sw)pxg~y#naznu]g6969::1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6:<3<<;T2,cw`)zo%l`= xr.usjqt(kfexRj=<03=66=R8&myj#|i/fn3*rt(yd~"m`uov\`7:6:7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90<0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=0=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:46;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8783<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<4<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6909:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6<2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<38?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18<8592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V:9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R?=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2^3367=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y69;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8T=?<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_302?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W=8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S8<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_702?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[2463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W18:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S4<;;T2,cw`)zo%l`= xr.usjqt(kfexR``t12353d<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/wcoma(d{}x$nd`keb]b*goilliTec}{_`-FJJSSW9Ufyu>?0135f>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&hbbikl_`,amkbbkVceyQn/DLLQQY6Wds<=>?17`8Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(j`doinQm.ckm``eXagySo!JNNWW[5Yj}q:;<=?9b:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%}magk.bqwv*dnfmohSo mioffgZoi{}Ui#H@@UU]2[hs89:;=8>4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,akgXi{xju1>1519V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$zlbfd/appw)bfhUj~ov<0<64>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&oenRo}r`{?4;373\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#h`m_`pqe|:66<i0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| h`q\ip~Xj'H$hb{{_lw{8586=j1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,rdjnl'ixx!gar]nq}Ye&K%ocxzPmtz?5;72k2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-ueioc&jy~"fns^ov|Zd)J&ndyyQbuy>1:43d3\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#eo|_lw{[g(E'me~xRczx=1=50e<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/wcoma(d{}x$dl}Pmtz\f+D(lfS`{w<5<21f=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| v`nj`+et|{%cm~Qbuy]a*G)cg|~Taxv35?36g>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&bjRczx^`-F*bh}}Ufyu29>07`?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"xnlhf-gvru'akxS`{w_c,A+air|Vg~t19114`8Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(`hyTaxvPb/@,w`jXx`zn0=0:a:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%}magk.bqwv*nf{Vg~tRl!B.qfhZvnxlU;8i5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehYcg|~i8h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehYcg|~i<9k4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkXlfn<:i;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&|j`dj!crvq+wgjWme~xo??4g9V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$zlbfd/appw)uidUocxzm106e?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"xnlhf-gvru'{kfSiaztc310c=R8&myj#|i/lgn+bdj&nhfk#immfc-jbcdk'hfk"lck^ofiZabflxjxb| v`nj`+et|{%ym`Qkotva562a3\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#ob_emvpg73<l1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,rdjnl'ixx!}al]gkpre:=o0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`o\`jssj:>n7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*pfd`n%o~z}/scn[air|k>?i6[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)qieco"n}{r.pbiZbh}}h>8h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehYcg|~i:9k4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkXlfn::j;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&|j`dj!crvq+wgjWme~xo6;e:W3+bta&{l$ahc gco-cgk`&nhfkl agda`*gk`'kf`S`kb_fgmawgsg{%}magk.bqwv*tfeVndyyl6739V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$zlbfd/appw)uidfdc}U?]/pbi+t({:Uecd`ft/pbi*bwzhg%h}:w1/pbi25<]9%l~k }f.ofi*aee'miaj hbleb*kabkj$iaj!mlj]nahY`mgoymya}/wcoma(d{}x$~lcconrX55[)zhg%~"}<_omjjlr)zhg$h}|nm/fs0}7)zhg<?6[?/fpe*w`(elg$koc!gcod*bdjoh$ekhml.cod+gjlWdofSjkaescwkw)qieco"n}{r.pbiiihxR;:Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly>s=#|nm618Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(zhggcb~T13_-vdk)z&y8Scafnhv-vdk(lyxja#j4y3-vdk0;2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-ueioc&jy~"|nmmmlt^74U'xja#| s2]mklhn|'xja"jr`o-`u29'xja:=4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP=9S!r`o-v*u4Wgebbdz!r`o,`utfe'n{8u?!r`o47>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&xjaaa`pZ36Y+tfe'x$>Qaohljp+tfe&n{~lc!dq6{5+tfe>80Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`ookjv\9T$ym` }/r1\jjoia}$ym`!kpscn*av3p8$ym`9=;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&|j`dj!crvq+wgjdfe{W?S!r`o-v*u4Wgebbdz!r`o,`utfe'n{8u?!r`o46>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&xjaaa`pZ1^*wgj&{%x?R``iokw*wgj'mzym` kp5z2*wgj?;1^<"i}f/pe+hcj'nhf"jlbg/eaibg)fnoho#lbg.`ooZkbeVmnbh|ntnp,rdjnl'ixx!}alnlku]3U'xja#| s2]mklhn|'xja"jr`o-`u29'xja:<4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP9P }al,q+v5Xffceey }al-gtwgj&mz?t< }al51?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"xnlhf-gvru'{kf`ba[7_-vdk)z&y8Scafnhv-vdk(lyxja#j4y3-vdk0:2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-ueioc&jy~"|nmmmlt^1Z&{kf"!|3^llmkos&{kf#i~}al,gt1~6&{kf;?5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ3Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly>s=#|nm608Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(zhggcb~T9\,qeh(u'z9Tbbgaiu,qeh)cx{kf"i~;x0,qeh7e3\:$kh!rg-nah)seyUym`Q}d^gm5f=R8&myj#|i/lgn+qkwW{kfSjPeo32`>S7'nxm"h rrvahn)U[]UMYABPGDL2`>S7'nxm"h rrvahn)ulVxxxRo|rde14>S7'nxm"h rrvahn)ulVxxxRo|rde\`4473\:$kh!rg-qwqdkc&xoS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#jPrrv\gjke9m1^<"i}f/pe+wusjea$~iQ}su]`khd69l1^<"i}f/pe+wusjea$~iQ}su]qab:768o0Y=!hrg,qb*tt|kf`#jPrrv\v`a;97;n7X> gsd-vc)u{}hgg"|k_sqw[wc`4;4:h6[?/fpe*w`(zz~i`f!}d^pppZtboV::h6[?/fpe*w`(zz~i`f!}d^pppZtboV;:h6[?/fpe*w`(zz~i`f!}d^pppZtboV8:;6[?/fpe*w`(zz~i`f!}su]g541<]9%l~k }f.pppgjl'{ySi<>7:W3+bta&{l$~~zmlj-qwqYc;8n0Y=!hrg,qb*tt|kf`#z|Prrv\evtbo;:0Y=!hrg,qb*tt|kf`#z|Prrv\evtboVn:>=5Z0.eqb+ta'{ynae ws]qwqYf{{olSi<>c:W3+bta&{l$~~zmlj-tvZtt|Vidao?k;T2,cw`)zo%yylck.uq[wusWjefn<?j;T2,cw`)zo%yylck.uq[wusW{ol0=0>e:W3+bta&{l$~~zmlj-tvZtt|Vxnk1?11e9V4*aun'xm#}{bmi,swYu{}UyijQ?1e9V4*aun'xm#}{bmi,swYu{}UyijQ>a:WPAWYFD@KXo6[\ES]UMVOEDL90ZNM6;WKFSZR^XL90[HO<;VGAg>QUA]OTABJJ_@a8SWOSMVGDHHQM1e9[MIOIP$RON->!1!QWQG&7&8*J_NGF5:ZLVF_13QY_@DL8;YQW[BHC?2RXXRXLCc9[[FIUMVCEJB84Xe`\Ma`<PmbT\gbVdppmjh682RoaRCnjnpUawungg;;7Ujb_LkmkwPbzzcdbn5nllmppZcjx}si7lbborv\bpjk>2hjof{d:`bgnswWdkygh|<;bnh`>bf|hUhcx`{(1+g?agsiVidycz'1(g8`drfWje~by&>0(g8`drfWje~by&>1(g8`drfWje~by&>2(f8`drfWje~by&=)e9geqgXkfex%=&d:fbpdYdg|d$9'k;ecweZeh}g~#9$j4d`vb[firf}"=%i5kauc\gjsi|!="h6jnt`]`kphs 1#o7io{a^alqkr/1 ;;7io{a^alqkr;9;0;2:5kbhvfvw0<l`d#<$84dhl+5,1<l`d#=='8;ekm,47.?2nbb%?=)69gmk.6; =0hd`'15+4?aoi 8?";6jfn)35-2=cag":;$94dhl+5=/03mce$<7&6:fjj-4.?2nbb%<?)69gmk.59 =0hd`'23+4?aoi ;9";6jfn)07-2=cag"99$94dhl+63/03mce$?9&7:fjj-4?!>1oec&=9(48`lh/; =0hd`'31+4?aoi :;":6jfn)6*2>bnf!?":6jfn)4*2>bnf!=":6jfn):*2>bnf!3":6jfn=2=3>bnf5;;2:5kio>25;1<l`d7=?08;ekm8459?2nbb1?;>69gmk:6=7=0hd`317<4?aoi48=5;6jfn=3;:2=cag6:5384dhl?5;1<l`d7>=08;ekm8779?2nbb1<=>69gmk:5;7=0hd`325<4?aoi4;?5;6jfn=05:2=cag69;394dhl?6=803mce0?716:fjj949?2nbb1=?>89gmk:493:5;6jfn=12:3=cag682;5kio>7:3=cag6>2;5kio>5:3=cag6<2;5kio>;:3=cag622:5kotv+4,1<lf$<'8;emvp-4.?2ndyy&<)69gkpr/< =0hb{{(4+4?air|!<";6j`uu*4-2=cg|~7<394dnww84803me~x1<17:flqq:46>1ocxz34?58`jss4<4<7iazt=4==>bh}}6<6=08;emvp91902ooek<age78ahvsq=1meka=2:djbj*aaoeTkh`jr`vlvZp1W;&ECCK#NNLF7a3<n`ld kgio^efj`tf|fxTz;Q=,za\gjkjggUh`bmd=1.`[agsiVidyczPwhfwl874$jUoecQxievk964+kVndyyQ}su]uei;7$jUocxzPwhfwl8>+kVoemobj_sqw[vik4;'oRk}rnp\mklbk}cdbRzvpd?3(fYa}efTjaohs^pppZpfd4;'oRfns^coijusWlg{xt3?,b]kevYfddexxRhzlm?3(fYoizUomyoPcnwmp86+kVbjRgat^aoo86+kVbjRayesdokr;7$jUcm~Q}d^fbpdYdg|d1="l_icp[wus58&hSeo|_rppp86+kVbjR{addpehjq:8%iTdl}Pv`nj`86+kVbjRy}_`ah95*dWakxSz|Pd`vb[firf}7; nQfmqnfi`hsi}cdbRzvpd?1(fYjmdeyuRzvpd?2(fYj{neeS{oc=0.`[jpbzofd{Rb`w<2/gZvumeejhRbntdl`}87+kVzyiaand^pfcv;7$jU{~dcPfhdl[qwm42`t9"l_qplcZcjx}sTxe|jsi]bwvcu|V|j`0<#c^rqkbYbey~rSyf}erj\j`af|lU}ma3<,b]svjaXmdzuRzvpd?3(fYwzfmTjxbc_ujqavnXizyn~yQyam?74<0+kVzycjQiumn\pmtb{aUeijo{e^tbh8271<&hS}|`g^dvhiYsqyo6=!mPre]geqgXkfexRyfduj>50*dW{nThh~{h<1133>+kVxoSk|jq<3/gZtcWyd~Ryfduj>50*dW|doihcov]okr;7$jU~hQkotv\vvr:9%iTy~kPeba>4)eX}zoTi`ljdegg[wc`59&hSx}j_guepZbf|hUhcx`{=1.`[sgkamUgcz3?,b]tvZgdcVfd{0>#c^uq[agsiVidyczPwhfwl874$jU|~Rjjpuj><4?5$jU|~Rh}ep?2(fYpzVzexQxievk945+kfg{cckat^lbi`;aaoe'q<k4fhdl[coagVmnbh|ntnp\r3Y5WqyS<<i;gkekZabflxjxb|Pv7]1(%^nd`ds,NA]E!Efj`tf|fx+=9 <4:dvhib<ag`noyjmiugqva=nfcohx~lftdpq3>oi|Vigg55agb`vmib?3f|n~kb`w`9svjaXmdzu<:4psmd[`kw|pUdk|h)2*51=wzfmTi`~{y^vkv`uo 8#:96~}of]fiur~W}byi~f'11+21>vugnUna}zv_ujqavn/98#:96~}of]fiur~W}byi~f'13+21>vugnUna}zv_ujqavn/9:#:96~}of]fiur~W}byi~f'15+20>vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#:;6~}of]fiur~W}byi~f31583:4d<x{elShctx]wlwct`Vkxh|{(1+2f>vugnUna}zv_ujqavnXizyn~y&>)0a8twi`Wlg{xtQ{hsgplZgt{lx$<>&1b9svjaXmdzuRzgrdqk[dutm{~#=<'>c:rqkbYbey~rSyf}erj\evubz}":>$?l;qplcZcjx}sTxe|jsi]bwvcu|!;8%<m4psmd[`kw|pUdk|h^cpw`ts 8>"=o5rne\ahvsqV~c~h}g_`qpawr/: ;i7}|`g^gntqX|axneQnsrgqp-5.9k1{~biPelrw}ZrozlycSl}|esv+0,7e3yxdkRkbpu{\pmtb{aUj~k}t)7*5g=wzfmTi`~{y^vkv`uoWhyxiz'6(3a?uthoVof|ywPtipfwmYf{zoyx%9&1c9svjaXmdzuRzgrdqk[dutm{~#4$?m;qplcZcjx}sTxe|jsi]bwvcu|!3"=h5rne\ahvsqV~c~h}g_`qpawr;9=0;2<l4psmd[`kw|pUdk|h^lfcdrb 9#:n6~}of]fiur~W}byi~fPndebp`.6!8i0|ah_dosp|Ys`{oxdR`jg`vf,46.9j1{~biPelrw}ZrozlycSckhaug+54/6k2zycjQjmqvz[qnumzbTbhintd*26,7d3yxdkRkbpu{\pmtb{aUeijo{e)30-4e<x{elShctx]wlwct`Vdnklzj(06*5g=wzfmTi`~{y^vkv`uoWgolmyk'2(3a?uthoVof|ywPtipfwmYimnki%=&1c9svjaXmdzuRzgrdqk[kc`i}o#8$?m;qplcZcjx}sTxe|jsi]mabgsm!?"=o5rne\ahvsqV~c~h}g_ogdeqc/> ;i7}|`g^gntqX|axneQaefcwa-1.9k1{~biPelrw}ZrozlycSckhaug+<,7e3yxdkRkbpu{\pmtb{aUeijo{e);*5`=wzfmTi`~{y^vkv`uoWgolmyk31583:<=wzfmTjxbc129svjaXn|fgSyf}erj+4,743yxdkRhzlm]wlwct`!;"=95rne\bpjkW}byi~f'11+20>vugnUmyabPtipfwm.69 ;?7}|`g^dvhiYs`{oxd%?=)018twi`Wog`Rzgrdqk,7/6;2zycjQiumn\pmtb{a"8%<=4psmd[cskdV~c~h}g(5+27>vugnUmyabPtipfwm.2!890|ah_gwohZrozlyc$;'>3:rqkbYa}efTxe|jsi*4-45<x{elSk{cl^vkv`uo 1#:?6~}of]eqijX|axne&6)048twi`Wog`Rzgrdqk844=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5g=wzfmTjxbc_ujqavnXizyn~y&>0(3a?uthoVl~`aQ{hsgplZgt{lx$<?&1c9svjaXn|fgSyf}erj\evubz}":>$?n;qplcZ`rdeUdk|h^cpw`ts ;#:m6~}of]eqijX|axneQnsrgqp-5.9h1{~biPftno[qnumzbTm~}jru*7-4g<x{elSk{cl^vkv`uoWhyxiz'5(3b?uthoVl~`aQ{hsgplZgt{lx$;'>a:rqkbYa}efTxe|jsi]bwvcu|!="=l5rne\bpjkW}byi~fParqfvq.?!8k0|ah_gwohZrozlycSl}|esv+=,7c3yxdkRhzlm]wlwct`Vkxh|{<0094;7f3yxdkRhzlm]wlwct`Vdnklzj(1+2e>vugnUmyabPtipfwmYimnki%?&1c9svjaXn|fgSyf}erj\j`af|l":<$?m;qplcZ`rdeUdk|h^lfcdrb 8;"=o5rne\bpjkW}byi~fPndebp`.6: ;j7}|`g^dvhiYs`{oxdR`jg`vf,7/6i2zycjQiumn\pmtb{aUeijo{e)1*5d=wzfmTjxbc_ujqavnXflmjxh&;)0c8twi`Wog`Rzgrdqk[kc`i}o#9$?n;qplcZ`rdeUdk|h^lfcdrb ?#:m6~}of]eqijX|axneQaefcwa-1.9h1{~biPftno[qnumzbTbhintd*;-4g<x{elSk{cl^vkv`uoWgolmyk'9(3g?uthoVl~`aQ{hsgplZhboh~n0<<50?48vaYddb;;7jPd`vb[firf}";%<>4re]geqgXkfex%?&109q`Zbf|hUhcx`{(02*54=ulVnjxlQlotlw,47.981yhRjnt`]`kphs 88"=<5}d^fbpdYdg|d$<=&109q`Zbf|hUhcx`{(06*55=ulVnjxlQlotlw,7/682xoSio{a^alqkr/; ;;7jPd`vb[firf}"?%<>4re]geqgXkfex%;&119q`Zbf|hUhcx`{(7+24>tcWmkmRm`uov+3,773{nThlzn_bmvjq.?!8:0~iQkauc\gjsi|!3"==5}d^fbpdYdg|d0=0>3:pg[agsiVidycz31583:0=ulVoe:6|k_sqw7>tt|>1xndzjrs68wwus991a}!Pcf-emci)fne?7y|ze89vjacunee|96xnlhf5?rtXija=7z|Pcmi24>quWmkmRm`uov+4,773~xThlzn_bmvjq.6!8;0{Qkauc\gjsi|!;;%<?4ws]geqgXkfex%?>)038swYci}kTob{at)31-46<{UomyoPcnwmp-4.991|~Rjnt`]`kphs :#:<6y}_ecweZeh}g~#8$??;vp\`drfWje~by&:)028swYci}kTob{at)4*55=pzVnjxlQlotlw,2/682}ySio{a^alqkr/0 ;;7z|Pd`vb[firf}"2%<=4ws]geqgXkfex1?=:1<6?rtXmg<0{Q}suCDu77j81KLu;<9;D90?7|[=l18o757;3077b5i38<=:htn572>4=i<<81:6*;4g870<=z[=n18o757;3077b5i38<=:h4Sc490f2=83;8??j=a;0452`<[=n18n:50;3077b5i38<=5>4d5`a>5<628qX8k4;b884>454:m8j6?9>7g9uP462290:6<4>fdyP0c<3j00<6<=<2e0b>716?o1/89:5b69U006=:rh>7?4ub194>{#nj0:;6l;bc83>66=;39;wE:;2:X71?4|9o0::7s+11c90gd<,=>n69li;h700?6=3f>m;7>5;h77`?6=3f>h<7>5;n6ae?6=3`?8i7>5;h702?6=3f>jj7>5$gg90g1<fon1<65`4`g94?"am3>i;6`id;38?j2fl3:1(kk54c58jcb=:21d8lm50;&ea?2e?2dmh7=4;n6bf?6=,oo18o94ngf90>=h<hk1<7*ie;6a3>hal3?07b:n9;29 cc=<k=0bkj56:9l0d>=83.mi7:m7:le`?1<3`>3<7>5$gg90<`<fon1<65f46d94?"am3>2j6`id;38?l20l3:1(kk548d8jcb=:21b8:m50;&ea?2>n2dmh7=4;h64f?6=,oo184h4ngf90>=n<>k1<7*ie;6:b>hal3?07d:89;29 cc=<0l0bkj56:9j02>=83.mi7:6f:le`?1<3`><;7>5$gg90<`<fon1465f46494?"am3>2j6`id;;8?l20=3:1(kk548d8jcb=i21b8::50;&ea?2>n2dmh7l4;h646?6=,oo184h4ngf9g>=n<>;1<7*ie;6:b>hal3n07d:80;29 cc=<0l0bkj5e:9j03`=83.mi7:6f:le`?`<3`>=i7>5$gg90<`<fon1==54i54g>5<#nl0?5k5afe825>=n<?i1<7*ie;6:b>hal3;976g;6c83>!`b2=3m7chk:018?l21i3:1(kk548d8jcb=9=10e986:18'b`<31o1eji4>5:9j0=0=83.mi7:6f:le`?7132c?484?:%df>1?a3glo6<94;h6;0?6=,oo184h4ngf95==<a=286=4+fd87=c=inm0:565f49094?"am3>2j6`id;3b?>o3080;6)hj:5;e?k`c28h07d:8e;29 cc=<0l0bkj51b98m114290/jh4;9g9mba<6l21b8;650;&ea?2>n2dmh7?j;:k722<72-ln697i;odg>4`<3`?9>7>5;c677?6=93:1<vF;439'55g=<=90ckl50;9~f3e=83;1<7>tH561?!77i3<h7b8m:188yg23290ij7?k6;3ea~N3<;1Q884>6z33>c<693i157o5b;3e>40=9;0o6n4k:0d957<683;=6o4n:8825?`=u-;;m7:me:&7<?2ek2.?i7:md:&e3?`f3`>oh7>5$gg90`0<fon1<65f4ea94?"am3>n:6`id;38?l2cj3:1(kk54d48jcb=:21b8io50;&ea?2b>2dmh7=4;h6g=?6=,oo18h84ngf90>=n<l?1<7*ie;6f2>hal3?07d:j4;29 cc=<l<0bkj56:9j0`5=83.mi7:j6:le`?1<3`>n>7>5$gg90`0<fon1465f4d394?"am3>n:6`id;;8?l2b83:1(kk54d48jcb=i21b8ih50;&ea?2b>2dmh7l4;h6ga?6=,oo18h84ngf9g>=n<m21<7*ie;6f2>hal3n07d:k7;29 cc=<l<0bkj5e:9j0f4=831b9>;50;9j16>=831d9>m50;9j0fb=83.mi7:k6:le`?6<3`>ho7>5$gg90a0<fon1=65f4b`94?"am3>o:6`id;08?l2di3:1(kk54e48jcb=;21b8n750;&ea?2c>2dmh7:4;h6g1?6=,oo18i84ngf91>=n<m>1<7*ie;6g2>hal3<07d:k3;29 cc=<m<0bkj57:9j0a4=83.mi7:k6:le`?><3`>o=7>5$gg90a0<fon1565f4e294?"am3>o:6`id;c8?l2dn3:1(kk54e48jcb=j21b8nk50;&ea?2c>2dmh7m4;h6`<?6=,oo18i84ngf9`>=n<j=1<7*ie;6g2>hal3o07d;<4;29?j2d=3:17d:jd;29 cc=<o<0bkj50:9j0`e=83.mi7:i6:le`?7<3`>nn7>5$gg90c0<fon1>65f4dc94?"am3>m:6`id;18?l2b13:1(kk54g48jcb=<21b8k;50;&ea?2a>2dmh7;4;h6e0?6=,oo18k84ngf92>=n<o91<7*ie;6e2>hal3=07d:i2;29 cc=<o<0bkj58:9j0c7=83.mi7:i6:le`??<3`>m<7>5$gg90c0<fon1m65f4dd94?"am3>m:6`id;`8?l2bm3:1(kk54g48jcb=k21b8h650;&ea?2a>2dmh7j4;h6f3?6=,oo18k84ngf9a>=h<<>1<75`44a94?"am3>=96`id;28?j22j3:1(kk54778jcb=921d88o50;&ea?21=2dmh7<4;n650?6=,oo18;;4ngf97>=h<?91<7*ie;651>hal3>07b:92;29 cc=<??0bkj55:9l037=83.mi7:95:le`?0<3f>=<7>5$gg9033<fon1;65`44d94?"am3>=96`id;:8?j22m3:1(kk54778jcb=121d88j50;&ea?21=2dmh7o4;n66=?6=,oo18;;4ngf9f>=h<<21<7*ie;651>hal3i07b:i7;29?l33l3:17d:ic;29 cc==9?0bkj50:9j0cd=83.mi7;?5:le`?7<3`>mm7>5$gg9153<fon1>65f51694?"am3?;96`id;18?l37;3:1(kk55178jcb=<21b9=<50;&ea?37=2dmh7;4;h735?6=,oo19=;4ngf92>=n=9:1<7*ie;731>hal3=07d:if;29 cc==9?0bkj58:9j0cc=83.mi7;?5:le`??<3`>mh7>5$gg9153<fon1m65f4g;94?"am3?;96`id;`8?l2a03:1(kk55178jcb=k21d8n>50;9l0gg=831b9>k50;9j000=831b9=o50;&ea?36;2dmh7>4;h73=?6=,oo19<=4ngf95>=n=921<7*ie;727>hal3807d;>2;29 cc==890bkj53:9j147=83.mi7;>3:le`?2<3`?:<7>5$gg9145<fon1965f51d94?"am3?:?6`id;48?l37m3:1(kk55018jcb=?21b9=j50;&ea?36;2dmh764;h73g?6=,oo19<=4ngf9=>=n=9h1<7*ie;727>hal3k07d;?7;29 cc==890bkj5b:9j150=83.mi7;>3:le`?e<3`?:47>5$gg9177<fon1<65f50594?"am3?9=6`id;38?l36>3:1(kk55338jcb=:21b9?>50;&ea?3592dmh7=4;h72b?6=,oo19??4ngf90>=n=8o1<7*ie;715>hal3?07d;>d;29 cc==;;0bkj56:9j14e=83.mi7;=1:le`?1<3`?:n7>5$gg9177<fon1465f50c94?"am3?9=6`id;;8?l3613:1(kk55338jcb=i21b9<;50;&ea?3592dmh7l4;h720?6=,oo19??4ngf9g>=h<<91<75f4b194?=n<<=1<75f55g94?=h=:=1<75`52f94?=n=:<1<75`4`d94?"am3>i;6`id;28?j2fm3:1(kk54c58jcb=921d8lj50;&ea?2e?2dmh7<4;n6bg?6=,oo18o94ngf97>=h<hh1<7*ie;6a3>hal3>07b:na;29 cc=<k=0bkj55:9l0d?=83.mi7:m7:le`?0<3f>j47>5$gg90g1<fon1;65f49294?"am3>2j6`id;28?l20n3:1(kk548d8jcb=921b8:j50;&ea?2>n2dmh7<4;h64g?6=,oo184h4ngf97>=n<>h1<7*ie;6:b>hal3>07d:8a;29 cc=<0l0bkj55:9j02?=83.mi7:6f:le`?0<3`><47>5$gg90<`<fon1;65f46594?"am3>2j6`id;:8?l20>3:1(kk548d8jcb=121b8:;50;&ea?2>n2dmh7o4;h640?6=,oo184h4ngf9f>=n<>81<7*ie;6:b>hal3i07d:81;29 cc=<0l0bkj5d:9j026=83.mi7:6f:le`?c<3`>=j7>5$gg90<`<fon1j65f47g94?"am3>2j6`id;33?>o3>m0;6)hj:5;e?k`c28;07d:9c;29 cc=<0l0bkj51398m10e290/jh4;9g9mba<6;21b8;o50;&ea?2>n2dmh7?;;:k72<<72-ln697i;odg>43<3`>3:7>5$gg90<`<fon1=;54i5:6>5<#nl0?5k5afe823>=n<1>1<7*ie;6:b>hal3;376g;8283>!`b2=3m7chk:0;8?l2?:3:1(kk548d8jcb=9h10e96>:18'b`<31o1eji4>b:9j02c=83.mi7:6f:le`?7d32c?;>4?:%df>1?a3glo6<j4;h65<?6=,oo184h4ngf95`=<a=<<6=4+fd87=c=inm0:j65f44794?=h=;31<7*ie;707>hal3:07b;=8;29 cc==:90bkj51:9l171=83.mi7;<3:le`?4<3f?9:7>5$gg9165<fon1?65`53794?"am3?8?6`id;68?j3493:1(kk55218jcb==21d9>>50;&ea?34;2dmh784;n71b?6=,oo19>=4ngf93>=h=;o1<7*ie;707>hal3207b;=d;29 cc==:90bkj59:9l17e=83.mi7;<3:le`?g<3f?9n7>5$gg9165<fon1n65`53c94?"am3?8?6`id;a8?j35<3:1(kk55218jcb=l21d9?=50;&ea?34;2dmh7k4;n777?6=,oo199m4ngf94>=h==81<7*ie;77g>hal3;07b;;1;29 cc===i0bkj52:9l11d=83.mi7;;c:le`?5<3f??m7>5$gg911e<fon1865`55;94?"am3??o6`id;78?j3303:1(kk555a8jcb=>21d99950;&ea?33k2dmh794;n772?6=,oo199m4ngf9<>=h==?1<7*ie;77g>hal3307b;;4;29 cc===i0bkj5a:9l116=83.mi7;;c:le`?d<3f?8j7>5$gg911e<fon1o65`4b494?=n<j;1<75`47494?=n=;81<75`52`94?=e<=i1<7?50;2x 46f2?i0D9:m;I676>i1j3:17pl;4e83>4<729q/==o54518L12e3A>?>6aib;29?xd51=0;694?:1y'55g=>01C89l4H561?!162?1b8;4?::k64?6=3`lm6=44o023>5<<uk82;7>54;294~"68h0=56F;4c9K014<,>;1:6g;6;29?l372900ekh50;9l556=831vn>8k:187>5<7s-;;m786;I67f>N3<;1/;<49;h65>5<<a<:1<75ffg83>>i6890;66sm37a94?2=83:p(<>n:7;8L12e3A>?>6*81;48m10=831b9=4?::keb?6=3f;;<7>5;|`76<<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg24?3:187>50z&24d<112B?8o5G4508L14<,j:19>o4$6392>o3>3:17d;?:188mc`=831d==>50;9~f14d29086=4?{%33e?023A>?n6F;439K07=#k90>?l5+7082?l212900e8>50;9l556=831vn9=n:180>5<7s-;;m78:;I67f>N3<;1C8?5+c1867d=#?80:7d:9:188m06=831d==>50;9~f151290?6=4?{%33e?0>3A>?n6F;439K07=#k90>?l5+7085?l212900e8>50;9jbc<722e:<=4?::a07d=8391<7>t$02b>33<@=>i7E:;2:J76>"d83?8m6*81;38m10=831b9=4?::m245<722wi8>650;794?6|,8:j6;o4H56a?M23:2B?>6*l0;70e>o3>3:17d:8:188m06=831bjk4?::m245<722wi8>750;194?6|,8:j6;;4H56a?M23:2B?>6*l0;70e>"093;0e9850;9j15<722e:<=4?::a07g=83?1<7>t$02b>3g<@=>i7E:;2:J76>"d83?8m6g;6;29?l202900e8>50;9jbc<722e:<=4?::a063=83>1<7>t$02b>3?<@=>i7E:;2:J76>"d83?8m6*81;48m10=831b9=4?::keb?6=3f;;<7>5;|`771<72=0;6=u+11c92<=O<=h0D9:=;%52>3=n<?0;66g:0;29?l`a2900c<>?:188yg24;3:187>50z&24d<112B?8o5G4508 27=>2c?:7>5;h73>5<<aol1<75`11294?=zj=996=4;:183!77i3<27E:;b:J707=#?80=7d:9:188m06=831bjk4?::m245<722wi89>50;694?6|,8:j6;74H56a?M23:2.<=784i5494?=n=90;66gif;29?j7783:17pl;3g83>1<729q/==o5689K01d<@=>97)9>:79j03<722c><7>5;hde>5<<g8:;6=44}c37<?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f420290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e9=<1<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th:884?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo?;4;290?6=8r.:<l496:J70g=O<=80(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb073>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a51`=83>1<7>t$02b>30<@=>i7E:;2:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd6<l0;694?:1y'55g=>?1C89l4H561?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk;?h7>54;294~"68h0=:6F;4c9K014<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn<:l:187>5<7s-;;m789;I67f>N3<;1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm15`94?2=83:p(<>n:748L12e3A>?>6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`20d<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg7313:187>50z&24d<1>2B?8o5G4508 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj8o36=4;:183!77i3<=7E:;b:J707=#?80:7d:9:188m1e=831b9=4?::m245<722wi=h950;694?6|,8:j6;84H56a?M23:2.<=7?4i5494?=n<j0;66g:0;29?j7783:17pl>e783>1<729q/==o5679K01d<@=>97)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c3e4?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f4ca290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e9lo1<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th:ii4?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo?jc;290?6=8r.:<l496:J70g=O<=80(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb0ga>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a5`g=83>1<7>t$02b>30<@=>i7E:;2:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd6m00;694?:1y'55g=>?1C89l4H561?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk;n97>54;294~"68h0=:6F;4c9K014<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn<k;:187>5<7s-;;m789;I67f>N3<;1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm22d94?2=83:p(<>n:748L12e3A>?>6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`17`<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg44l3:187>50z&24d<1>2B?8o5G4508 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj;><6=4;:183!77i3<=7E:;b:J707=#?80:7d:9:188m1e=831b9=4?::m245<722wi>9850;694?6|,8:j6;84H56a?M23:2.<=7?4i5494?=n<j0;66g:0;29?j7783:17pl=4483>1<729q/==o5679K01d<@=>97)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c070?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f724290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e:=81<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th98<4?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo<;0;290?6=8r.:<l496:J70g=O<=80(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb31`>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a66d=83>1<7>t$02b>30<@=>i7E:;2:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd6j<0;694?:1y'55g=>?1C89l4H561?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk;i87>54;294~"68h0=:6F;4c9K014<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn<l<:187>5<7s-;;m789;I67f>N3<;1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm1c094?2=83:p(<>n:748L12e3A>?>6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`2f4<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg7el3:187>50z&24d<1>2B?8o5G4508 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj8hh6=4;:183!77i3<=7E:;b:J707=#?80:7d:9:188m1e=831b9=4?::m245<722wi=ol50;694?6|,8:j6;84H56a?M23:2.<=7?4i5494?=n<j0;66g:0;29?j7783:17pl>b`83>1<729q/==o5679K01d<@=>97)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c3a=?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f4d?290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e9k=1<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th:n;4?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo<=5;290?6=8r.:<l496:J70g=O<=80D9<4$b2916g<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn?<;:187>5<7s-;;m789;I67f>N3<;1C8?5+c1867d=#?80:7d:9:188m1e=831b9=4?::m245<722wi>?=50;694?6|,8:j6;84H56a?M23:2B?>6*l0;70e>"093;0e9850;9j0f<722c><7>5;n334?6=3th9>i4?:583>5}#99k1:;5G45`8L1253A>97)m?:41b?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk89o7>54;294~"68h0=:6F;4c9K014<@=80(n>552c8 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj;8i6=4;:183!77i3<=7E:;b:J707=O<;1/o=4:3`9'34<63`>=6=44i5a94?=n=90;66a>0183>>{e:;k1<7:50;2x 46f2?<0D9:m;I676>N3:2.h<7;<a:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd5:00;694?:1y'55g=>?1C89l4H561?M253-i;68=n;%52>4=n<?0;66g;c;29?l372900c<>?:188yg4503:187>50z&24d<1>2B?8o5G4508L14<,j:19>o4$6395>o3>3:17d:l:188m06=831d==>50;9~f740290?6=4?{%33e?013A>?n6F;439K07=#k90>?l5+7082?l212900e9m50;9j15<722e:<=4?::a670=83>1<7>t$02b>30<@=>i7E:;2:J76>"d83?8m6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`167<72=0;6=u+11c923=O<=h0D9:=;I61?!e72<9j7)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c015?6=<3:1<v*>0`852>N3<k1C89<4H508 f6==:k0(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb0;a>5<3290;w)??a;45?M23j2B?8?5G439'g5<2;h1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm18c94?2=83:p(<>n:748L12e3A>?>6F;2:&`4?34i2.<=7?4i5494?=n<j0;66g:0;29?j7783:17pl>9883>1<729q/==o5679K01d<@=>97E:=;%a3>05f3-=:6<5f4783>>o3k3:17d;?:188k4672900qo?68;290?6=8r.:<l496:J70g=O<=80D9<4$b2916g<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn<78:187>5<7s-;;m789;I67f>N3<;1C8?5+c1867d=#?80:7d:9:188m1e=831b9=4?::m245<722wi=l=50;694?6|,8:j6;84H56a?M23:2B?>6*l0;70e>"093;0e9850;9j0f<722c><7>5;n334?6=3th:m?4?:583>5}#99k1:;5G45`8L1253A>97)m?:41b?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk;j=7>54;294~"68h0=:6F;4c9K014<@=80(n>552c8 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj8k;6=4;:183!77i3<=7E:;b:J707=O<;1/o=4:3`9'34<63`>=6=44i5a94?=n=90;66a>0183>>{e90l1<7:50;2x 46f2?<0D9:m;I676>N3:2.h<7;<a:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd61l0;694?:1y'55g=>?1C89l4H561?M253-i;68=n;%52>4=n<?0;66g;c;29?l372900c<>?:188yg7>l3:187>50z&24d<1>2B?8o5G4508L14<,j:19>o4$6395>o3>3:17d:l:188m06=831d==>50;9~f4?d290?6=4?{%33e?013A>?n6F;439K07=#k90>?l5+7082?l212900e9m50;9j15<722e:<=4?::a5<0=83>1<7>t$02b>30<@=>i7E:;2:J76>"d83?8m6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`2=0<72=0;6=u+11c923=O<=h0D9:=;I61?!e72<9j7)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c34`?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f41d290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e9>h1<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th:;l4?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo?89;290?6=8r.:<l496:J70g=O<=80(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb0:6>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a5=2=83>1<7>t$02b>30<@=>i7E:;2:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd60:0;694?:1y'55g=>?1C89l4H561?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk;3>7>54;294~"68h0=:6F;4c9K014<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn<6>:187>5<7s-;;m789;I67f>N3<;1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm19294?2=83:p(<>n:748L12e3A>?>6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`23c<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg70m3:187>50z&24d<1>2B?8o5G4508 27=92c?:7>5;h6`>5<<a<:1<75`11294?=zj8=36=4;:183!77i3<=7E:;b:J707=#?80:7d:9:188m1e=831b9=4?::m245<722wi=:950;694?6|,8:j6;84H56a?M23:2.<=7?4i5494?=n<j0;66g:0;29?j7783:17pl=0c83>1<729q/==o5679K01d<@=>97)9>:09j03<722c?o7>5;h73>5<<g8:;6=44}c03e?6=<3:1<v*>0`852>N3<k1C89<4$6395>o3>3:17d:l:188m06=831d==>50;9~f76>290?6=4?{%33e?013A>?n6F;439'34<63`>=6=44i5a94?=n=90;66a>0183>>{e:891<7:50;2x 46f2?<0D9:m;I676>"093;0e9850;9j0f<722c><7>5;n334?6=3th9=?4?:583>5}#99k1:;5G45`8L1253-=:6<5f4783>>o3k3:17d;?:188k4672900qo<>1;290?6=8r.:<l496:J70g=O<=80(:?51:k72?6=3`>h6=44i4294?=h99:1<75rb333>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a65`=83>1<7>t$02b>30<@=>i7E:;2:&45?7<a=<1<75f4b83>>o283:17b??0;29?xd58l0;694?:1y'55g=>?1C89l4H561?!16281b8;4?::k7g?6=3`?;6=44o023>5<<uk8;h7>54;294~"68h0=:6F;4c9K014<,>;1=6g;6;29?l2d2900e8>50;9l556=831vn?>l:187>5<7s-;;m789;I67f>N3<;1/;<4>;h65>5<<a=i1<75f5183>>i6890;66sm21:94?2=83:p(<>n:748L12e3A>?>6*81;38m10=831b8n4?::k64?6=3f;;<7>5;|`142<72=0;6=u+11c923=O<=h0D9:=;%52>4=n<?0;66g;c;29?l372900c<>?:188yg4b03:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm2d594?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk8n57>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a6`0=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo<j5;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e:o;1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c0e4?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi>hh50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg4bm3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm2df94?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk8no7>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a6`d=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo<ja;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e:l>1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c0f7?6==3:1<v*>0`85e>N3<k1C89<4$6392>o3>3:17d:8:188m06=831bjk4?::m245<722wi>n750;194?6|,8:j69:n;I67f>N3<;1b844?::ka0?6=3fl26=44}c0`<?6=;3:1<v*>0`870d=O<=h0D9:=;h6:>5<<ak>1<75`f883>>{e:k:1<7:50;2x 46f2j;0D9:m;I676>o313:17d;>:188m4642900ck750;9~f7e029086=4?{%33e?23i2B?8o5G4508m1?=831bn94?::me=?6=3th9mh4?:583>5}#99k1o<5G45`8L1253`>26=44i4394?=n9991<75`f883>>{e:j<1<7=50;2x 46f2=>j7E:;b:J707=n<00;66gm4;29?j`>2900qo<nc;290?6=8r.:<l4l1:J70g=O<=80e9750;9j14<722c:<>4?::me=?6=3th9o84?:283>5}#99k189o4H56a?M23:2c?57>5;h`7>5<<go31<75rb3cb>5<3290;w)??a;a2?M23j2B?8?5f4883>>o293:17d??3;29?j`>2900qo<k3;297?6=8r.:<l4;4`9K01d<@=>97d:6:188mg2=831dj44?::a6f4=83>1<7>t$02b>f7<@=>i7E:;2:k7=?6=3`?:6=44i020>5<<go31<75rb3f1>5<4290;w)??a;67e>N3<k1C89<4i5;94?=nj=0;66ai9;29?xd5k90;694?:1y'55g=k81C89l4H561?l2>2900e8?50;9j555=831dj44?::a6a7=8391<7>t$02b>12f3A>?n6F;439j0<<722ci87>5;nd:>5<<uk8ii7>54;294~"68h0h=6F;4c9K014<a=31<75f5083>>o68:0;66ai9;29?xd5l90;6>4?:1y'55g=<=k0D9:m;I676>o313:17dl;:188kc?=831vn?ll:187>5<7s-;;m7m>;I67f>N3<;1b844?::k65?6=3`;;?7>5;nd:>5<<uk8hj7>53;294~"68h0?8l5G45`8L1253`>26=44ic694?=hn00;66sm2cc94?2=83:p(<>n:b38L12e3A>?>6g;9;29?l362900e<><:188kc?=831vn?mj:180>5<7s-;;m7:;a:J70g=O<=80e9750;9jf1<722em57>5;|`1f=<72=0;6=u+11c9g4=O<=h0D9:=;h6:>5<<a<;1<75f11194?=hn00;66sm2bf94?5=83:p(<>n:56b?M23j2B?8?5f4883>>oe<3:17bh6:188yg4e>3:187>50z&24d<d92B?8o5G4508m1?=831b9<4?::k246<722em57>5;|`1gf<72:0;6=u+11c901g<@=>i7E:;2:k7=?6=3`h?6=44og;94?=zj;h?6=4;:183!77i3i:7E:;b:J707=n<00;66g:1;29?l77;3:17bh6:188yg4dj3:1?7>50z&24d<3<h1C89l4H561?l2>2900eo:50;9lb<<722wi>o<50;694?6|,8:j6n?4H56a?M23:2c?57>5;h72>5<<a8:86=44og;94?=zj;i?6=4<:183!77i3>?m6F;4c9K014<a=31<75fb583>>ia13:17pl=a983>1<729q/==o5c09K01d<@=>97d:6:188m07=831b===50;9lb<<722wi?=950;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg57>3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm31794?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9;87>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a755=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo=?f;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;9o1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c13`?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?=m50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg57j3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm31c94?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9;57>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a75>=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo=?2;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;9;1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c11f?6=;3:1<v*>0`870d=O<=h0D9:=;h6:>5<<ak>1<75`f883>>{e;8>1<7:50;2x 46f2j;0D9:m;I676>o313:17d;>:188m4642900ck750;9~f674290?6=4?{%33e?e63A>?n6F;439j0<<722c>=7>5;h337?6=3fl26=44}c126?6=<3:1<v*>0`8`5>N3<k1C89<4i5;94?=n=80;66g>0283>>ia13:17pl<1e83>1<729q/==o5c09K01d<@=>97d:6:188m07=831b===50;9lb<<722wi?<m50;694?6|,8:j6n?4H56a?M23:2c?57>5;h72>5<<a8:86=44og;94?=zj:;i6=4;:183!77i3i:7E:;b:J707=n<00;66g:1;29?l77;3:17bh6:188yg56i3:187>50z&24d<d92B?8o5G4508m1?=831b9<4?::k246<722em57>5;|`05<<72=0;6=u+11c9g4=O<=h0D9:=;h6:>5<<a<;1<75f11194?=hn00;66sm30:94?2=83:p(<>n:b38L12e3A>?>6g;9;29?l362900e<><:188kc?=831vn>?8:187>5<7s-;;m7m>;I67f>N3<;1b844?::k65?6=3`;;?7>5;nd:>5<<uk9::7>54;294~"68h0h=6F;4c9K014<a=31<75f5083>>o68:0;66ai9;29?xd49<0;694?:1y'55g=k81C89l4H561?l2>2900e8?50;9j555=831dj44?::a747=83>1<7>t$02b>f7<@=>i7E:;2:k7=?6=3`?:6=44i020>5<<go31<75rb20g>5<3290;w)??a;45?M23j2B?8?5+7082?l212900e9m50;9j15<722e:<=4?::a77`=83?1<7>t$02b>3g<@=>i7E:;2:&45?0<a=<1<75f4683>>o283:17dhi:188k4672900qo<71;290?6=8r.:<l4l1:J70g=O<=80e9750;9j14<722c:<>4?::me=?6=3th94=4?:583>5}#99k1o<5G45`8L1253`>26=44i4394?=n9991<75`f883>>{e:>l1<7:50;2x 46f2j;0D9:m;I676>o313:17d;>:188m4642900ck750;9~f71b290?6=4?{%33e?e63A>?n6F;439j0<<722c>=7>5;h337?6=3fl26=44}c04`?6=<3:1<v*>0`8`5>N3<k1C89<4i5;94?=n=80;66g>0283>>ia13:17pl=7b83>1<729q/==o5c09K01d<@=>97d:6:188m07=831b===50;9lb<<722wi>:l50;694?6|,8:j6n?4H56a?M23:2c?57>5;h72>5<<a8:86=44og;94?=zj;=j6=4;:183!77i3i:7E:;b:J707=n<00;66g:1;29?l77;3:17bh6:188yg41:3:187>50z&24d<d92B?8o5G4508m1?=831b9<4?::k246<722em57>5;|`124<72=0;6=u+11c9g4=O<=h0D9:=;h6:>5<<a<;1<75f11194?=hn00;66sm27294?2=83:p(<>n:b38L12e3A>?>6g;9;29?l362900e<><:188kc?=831vn?;i:187>5<7s-;;m7m>;I67f>N3<;1b844?::k65?6=3`;;?7>5;nd:>5<<uk8>i7>54;294~"68h0h=6F;4c9K014<a=31<75f5083>>o68:0;66ai9;29?xd5=m0;694?:1y'55g=k81C89l4H561?l2>2900e8?50;9j555=831dj44?::a60e=83>1<7>t$02b>f7<@=>i7E:;2:k7=?6=3`?:6=44i020>5<<go31<75rb37a>5<3290;w)??a;a2?M23j2B?8?5f4883>>o293:17d??3;29?j`>2900qo=:b;290?6=8r.:<l4l1:J70g=O<=80e9750;9j14<722c:<>4?::me=?6=3th89l4?:583>5}#99k1o<5G45`8L1253`>26=44i4394?=n9991<75`f883>>{e;<31<7:50;2x 46f2j;0D9:m;I676>o313:17d;>:188m4642900ck750;9~f63?290?6=4?{%33e?e63A>?n6F;439j0<<722c>=7>5;h337?6=3fl26=44}c163?6=<3:1<v*>0`8`5>N3<k1C89<4i5;94?=n=80;66g>0283>>ia13:17pl<5783>1<729q/==o5c09K01d<@=>97d:6:188m07=831b===50;9lb<<722wi?8;50;694?6|,8:j6n?4H56a?M23:2c?57>5;h72>5<<a8:86=44og;94?=zj:>;6=4;:183!77i3i:7E:;b:J707=n<00;66g:1;29?l77;3:17bh6:188yg54n3:187>50z&24d<d92B?8o5G4508m1?=831b9<4?::k246<722em57>5;|`07`<72=0;6=u+11c9g4=O<=h0D9:=;h6:>5<<a<;1<75f11194?=hn00;66sm32f94?2=83:p(<>n:b38L12e3A>?>6g;9;29?l362900e<><:188kc?=831vn>=l:187>5<7s-;;m7m>;I67f>N3<;1b844?::k65?6=3`;;?7>5;nd:>5<<uk98n7>54;294~"68h0h=6F;4c9K014<a=31<75f5083>>o68:0;66ai9;29?xd4;h0;694?:1y'55g=k81C89l4H561?l2>2900e8?50;9j555=831dj44?::a7fb=83?1<7>t$02b>3g<@=>i7E:;2:&45?0<a=<1<75f4683>>o283:17dhi:188k4672900qo=le;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;m81<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c1g7?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?i850;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg5c<3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm3e794?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9o57>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a7a1=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo=k8;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;m;1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c1`b?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?i>50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg5e>3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm3c794?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9i;7>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a7g`=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo=me;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;kn1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c1ag?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?oo50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg5e13:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm3c`94?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9i47>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a7g2=83?1<7>t$02b>3g<@=>i7E:;2:&45?0<a=<1<75f4683>>o283:17dhi:188k4672900qo=m3;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;0h1<7=50;2x 46f2=>j7E:;b:J707=n<00;66gm4;29?j`>2900qo=6a;297?6=8r.:<l4;4`9K01d<@=>97d:6:188mg2=831dj44?::a7=2=83>1<7>t$02b>f7<@=>i7E:;2:k7=?6=3`?:6=44i020>5<<go31<75rb2;:>5<4290;w)??a;67e>N3<k1C89<4i5;94?=nj=0;66ai9;29?xd40;0;694?:1y'55g=k81C89l4H561?l2>2900e8?50;9j555=831dj44?::a7d3=8391<7>t$02b>12f3A>?n6F;439j0<<722ci87>5;nd:>5<<uk92:7>54;294~"68h0h=6F;4c9K014<a=31<75f5083>>o68:0;66ai9;29?xd4i=0;6>4?:1y'55g=<=k0D9:m;I676>o313:17dl;:188kc?=831vn>7;:187>5<7s-;;m7m>;I67f>N3<;1b844?::k65?6=3`;;?7>5;nd:>5<<uk9j?7>53;294~"68h0?8l5G45`8L1253`>26=44ic694?=hn00;66sm38094?2=83:p(<>n:b38L12e3A>?>6g;9;29?l362900e<><:188kc?=831vn>o=:180>5<7s-;;m7:;a:J70g=O<=80e9750;9jf1<722em57>5;|`0=5<72=0;6=u+11c9g4=O<=h0D9:=;h6:>5<<a<;1<75f11194?=hn00;66sm3`394?5=83:p(<>n:56b?M23j2B?8?5f4883>>oe<3:17bh6:188yg5?m3:187>50z&24d<d92B?8o5G4508m1?=831b9<4?::k246<722em57>5;|`0e5<72:0;6=u+11c901g<@=>i7E:;2:k7=?6=3`h?6=44og;94?=zj:2h6=4;:183!77i3i:7E:;b:J707=n<00;66g:1;29?l77;3:17bh6:188yg5>n3:1?7>50z&24d<3<h1C89l4H561?l2>2900eo:50;9lb<<722wi?5o50;694?6|,8:j6n?4H56a?M23:2c?57>5;h72>5<<a8:86=44og;94?=zj:3n6=4<:183!77i3>?m6F;4c9K014<a=31<75fb583>>ia13:17pl<8983>1<729q/==o5c09K01d<@=>97d:6:188m07=831b===50;9lb<<722wi?4j50;194?6|,8:j69:n;I67f>N3<;1b844?::ka0?6=3fl26=44}c1;2?6=<3:1<v*>0`8`5>N3<k1C89<4i5;94?=n=80;66g>0283>>ia13:17pl<9983>6<729q/==o545c8L12e3A>?>6g;9;29?ld32900ck750;9~f6>7290?6=4?{%33e?e63A>?n6F;439j0<<722c>=7>5;h337?6=3fl26=44}c1ff?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?ho50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg5b13:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm3g194?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9m>7>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a7c7=83?1<7>t$02b>31<@=>i7E:;2:&45?7<a=<1<75f4683>>o3k3:17d;?:188k4672900qo=i0;291?6=8r.:<l497:J70g=O<=80(:?51:k72?6=3`><6=44i5a94?=n=90;66a>0183>>{e;ll1<7;50;2x 46f2?=0D9:m;I676>"093;0e9850;9j02<722c?o7>5;h73>5<<g8:;6=44}c1fa?6==3:1<v*>0`853>N3<k1C89<4$6395>o3>3:17d:8:188m1e=831b9=4?::m245<722wi?hj50;794?6|,8:j6;94H56a?M23:2.<=7?4i5494?=n<>0;66g;c;29?l372900c<>?:188yg5bk3:197>50z&24d<1?2B?8o5G4508 27=92c?:7>5;h64>5<<a=i1<75f5183>>i6890;66sm3d:94?3=83:p(<>n:758L12e3A>?>6*81;38m10=831b8:4?::k7g?6=3`?;6=44o023>5<<uk9n;7>55;294~"68h0=;6F;4c9K014<,>;1=6g;6;29?l202900e9m50;9j15<722e:<=4?::a050=83>1<7>t$02b>3><@=>i7E:;2:&45?7<a=<1<75f4683>>o283:17b??0;29?xd3;j0;6>4?:1y'55g=j01C89l4H561?!1628?0e;j50;9j2`<722em57>5;|`76`<72:0;6=u+11c9f<=O<=h0D9:=;%52>43<a?n1<75f6d83>>ia13:17pl<3083>6<729q/==o5b89K01d<@=>97)9>:078m3b=831b:h4?::me=?6=3th:9?4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd6;?0;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`270<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>3583>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:?>4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd6;;0;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`274<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>3183>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:>k4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd6:l0;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`26a<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>2b83>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:>o4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd6910;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`252<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>1783>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:=84?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd69=0;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`256<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>1383>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:=<4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd6990;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`24c<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>0d83>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th:<i4?:283>5}#99k1n45G45`8L1253-=:6<l4i7f94?=n>l0;66ai9;29?xd68j0;6>4?:1y'55g=j01C89l4H561?!1628h0e;j50;9j2`<722em57>5;|`24g<72:0;6=u+11c9f<=O<=h0D9:=;%52>4d<a?n1<75f6d83>>ia13:17pl>5583>1<729q/==o5bb9K01d<@=>97)9>:318m3b=831b:h4?::k5b?6=3fl26=44}c362?6==3:1<v*>0`8aa>N3<k1C89<4$6395a=n>m0;66g9e;29?l0a2900e:>50;9lb<<722wi?>=50;194?6|,8:j6o74H56a?M23:2.<=7:<;h4g>5<<a?o1<75`f883>>{e:021<7=50;2x 46f2k30D9:m;I676>"093;>7d8k:188m3c=831dj44?::a50>=8391<7>t$02b>g?<@=>i7E:;2:&45?7e3`<o6=44i7g94?=hn00;66sm14c94?2=83:p(<>n:ca8L12e3A>?>6*81;00?l0c2900e;k50;9j2c<722em57>5;|`21f<72<0;6=u+11c9f`=O<=h0D9:=;%52>4b<a?n1<75f6d83>>o1n3:17d9?:188kc?=831vn9<7:187>5<7s-;;m7ll;I67f>N3<;1/;<493:k5`?6=3`<n6=44i7d94?=hn00;66sm37;94?5=83:p(<>n:c;8L12e3A>?>6*81;02?l0c2900e;k50;9lb<<722wi?9k50;194?6|,8:j6o74H56a?M23:2.<=7<>;h4g>5<<a?o1<75`f883>>{e:0;1<7=50;2x 46f2k30D9:m;I676>"0938:7d8k:188m3c=831dj44?::a624=8391<7>t$02b>g?<@=>i7E:;2:&45?463`<o6=44i7g94?=hn00;66sm37:94?3=83:p(<>n:cg8L12e3A>?>6*81;01?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk9?h7>55;294~"68h0ii6F;4c9K014<,>;1>?5f6e83>>o1m3:17d8i:188m26=831dj44?::a6<6=83?1<7>t$02b>gc<@=>i7E:;2:&45?7b3`<o6=44i7g94?=n>o0;66g80;29?j`>2900qo<81;291?6=8r.:<l4me:J70g=O<=80(:?51d9j2a<722c=i7>5;h4e>5<<a>:1<75`f883>>{e;?=1<7;50;2x 46f2ko0D9:m;I676>"093897d8k:188m3c=831b:k4?::k44?6=3fl26=44}c17g?6==3:1<v*>0`8aa>N3<k1C89<4$63967=n>m0;66g9e;29?l0a2900e:>50;9lb<<722wi>5h50;794?6|,8:j6ok4H56a?M23:2.<=7?j;h4g>5<<a?o1<75f6g83>>o083:17bh6:188yg4083:197>50z&24d<em2B?8o5G4508 27=9l1b:i4?::k5a?6=3`<m6=44i6294?=hn00;66sm37494?3=83:p(<>n:cg8L12e3A>?>6*81;01?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk9?n7>55;294~"68h0ii6F;4c9K014<,>;1>?5f6e83>>o1m3:17d8i:188m26=831dj44?::a6=c=83?1<7>t$02b>gc<@=>i7E:;2:&45?7b3`<o6=44i7g94?=n>o0;66g80;29?j`>2900qo<9f;291?6=8r.:<l4me:J70g=O<=80(:?51d9j2a<722c=i7>5;h4e>5<<a>:1<75`f883>>{e;??1<7;50;2x 46f2ko0D9:m;I676>"093897d8k:188m3c=831b:k4?::k44?6=3fl26=44}c17e?6==3:1<v*>0`8aa>N3<k1C89<4$63967=n>m0;66g9e;29?l0a2900e:>50;9lb<<722wi>5j50;794?6|,8:j6ok4H56a?M23:2.<=7?j;h4g>5<<a?o1<75f6g83>>o083:17bh6:188yg41m3:197>50z&24d<em2B?8o5G4508 27=9l1b:i4?::k5a?6=3`<m6=44i6294?=hn00;66sm37694?3=83:p(<>n:cg8L12e3A>?>6*81;01?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk9?57>55;294~"68h0ii6F;4c9K014<,>;1>?5f6e83>>o1m3:17d8i:188m26=831dj44?::a6=e=83?1<7>t$02b>gc<@=>i7E:;2:&45?7b3`<o6=44i7g94?=n>o0;66g80;29?j`>2900qo<9d;291?6=8r.:<l4me:J70g=O<=80(:?51d9j2a<722c=i7>5;h4e>5<<a>:1<75`f883>>{e;?l1<7;50;2x 46f2ko0D9:m;I676>"093;j7d8k:188m3c=831b:k4?::k44?6=3fl26=44}c157?6==3:1<v*>0`8aa>N3<k1C89<4$63967=n>m0;66g9e;29?l0a2900e:>50;9lb<<722wi?9650;794?6|,8:j6ok4H56a?M23:2.<=7<=;h4g>5<<a?o1<75f6g83>>o083:17bh6:188yg4?j3:197>50z&24d<em2B?8o5G4508 27=9l1b:i4?::k5a?6=3`<m6=44i6294?=hn00;66sm27a94?3=83:p(<>n:cg8L12e3A>?>6*81;3f?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk83m7>53;294~"68h0i56F;4c9K014<,>;1:6g9d;29?l0b2900ck750;9~f70e29086=4?{%33e?d>3A>?n6F;439'34<13`<o6=44i7g94?=hn00;66sm28494?2=83:p(<>n:ca8L12e3A>?>6*81;47?l0c2900e;k50;9j2c<722em57>5;|`21c<72:0;6=u+11c9f<=O<=h0D9:=;%52>77<a?n1<75f6d83>>ia13:17pl>2483>6<729q/==o5b89K01d<@=>97)9>:0`8m3b=831b:h4?::me=?6=3th::?4?:583>5}#99k1nn5G45`8L1253-=:6<m4i7f94?=n>l0;66g9f;29?j`>2900qo:?4;290?6=8r.:<l4mc:J70g=O<=80(:?5619j2a<722c=i7>5;h4e>5<<go31<75rb520>5<3290;w)??a;``?M23j2B?8?5+70854>o1l3:17d8j:188m3`=831dj44?::a054=83>1<7>t$02b>ge<@=>i7E:;2:&45?073`<o6=44i7g94?=n>o0;66ai9;29?xd3880;694?:1y'55g=jj1C89l4H561?!162?:0e;j50;9j2`<722c=j7>5;nd:>5<<uk>;<7>54;294~"68h0io6F;4c9K014<,>;1:=5f6e83>>o1m3:17d8i:188kc?=831vn>hi:187>5<7s-;;m7ll;I67f>N3<;1/;<490:k5`?6=3`<n6=44i7d94?=hn00;66sm3gg94?2=83:p(<>n:ca8L12e3A>?>6*81;43?l0c2900e;k50;9j2c<722em57>5;|`0ba<72=0;6=u+11c9ff=O<=h0D9:=;%52>36<a?n1<75f6d83>>o1n3:17bh6:188yg7c:3:1?7>50z&24d<e12B?8o5G4508 27=9k1b:i4?::k5a?6=3fl26=44}c144?6=;3:1<v*>0`8a=>N3<k1C89<4$63950=n>m0;66g9e;29?j`>2900qo?>b;291?6=8r.:<l4me:J70g=O<=80(:?5259j2a<722c=i7>5;h4e>5<<a>:1<75`f883>>{e9;81<7=50;2x 46f2k30D9:m;I676>"093;i7d8k:188m3c=831dj44?::a576=8391<7>t$02b>g?<@=>i7E:;2:&45?7e3`<o6=44i7g94?=hn00;66sm2c394?4=83:p(<>n:c:8L12e3A>?>6*81;36?l0c2900ck750;9~f7ga29096=4?{%33e?d?3A>?n6F;439'34<6=2c=h7>5;nd:>5<<uk8jh7>52;294~"68h0i46F;4c9K014<,>;1=85f6e83>>ia13:17pl=ac83>7<729q/==o5b99K01d<@=>97)9>:078m3b=831dj44?::a6f5=8381<7>t$02b>g><@=>i7E:;2:&45?723`<o6=44og;94?=zj;i:6=4=:183!77i3h37E:;b:J707=#?80:96g9d;29?j`>2900qo<mf;296?6=8r.:<l4m8:J70g=O<=80(:?5149j2a<722em57>5;|`1fa<72;0;6=u+11c9f==O<=h0D9:=;%52>43<a?n1<75`f883>>{e:kh1<7<50;2x 46f2k20D9:m;I676>"093;>7d8k:188kc?=831vn?l6:181>5<7s-;;m7l7;I67f>N3<;1/;<4>5:k5`?6=3fl26=44}c0a3?6=:3:1<v*>0`8a<>N3<k1C89<4$63950=n>m0;66ai9;29?xd5j<0;6?4?:1y'55g=j11C89l4H561?!1628?0e;j50;9lb<<722wi>o=50;094?6|,8:j6o64H56a?M23:2.<=7?:;h4g>5<<go31<75rb3c:>5<5290;w)??a;`;?M23j2B?8?5+70821>o1l3:17bh6:188yg5?=3:1>7>50z&24d<e02B?8o5G4508 27=9<1b:i4?::me=?6=3th84>4?:383>5}#99k1n55G45`8L1253-=:6<;4i7f94?=hn00;66sm38594?4=83:p(<>n:c:8L12e3A>?>6*81;36?l0c2900ck750;9~f6?229096=4?{%33e?d?3A>?n6F;439'34<6=2c=h7>5;nd:>5<<uk92?7>52;294~"68h0i46F;4c9K014<,>;1=85f6e83>>ia13:17pl<9083>7<729q/==o5b99K01d<@=>97)9>:078m3b=831dj44?::a7=`=8381<7>t$02b>g><@=>i7E:;2:&45?723`<o6=44og;94?=zj:2o6=4=:183!77i3h37E:;b:J707=#?80:96g9d;29?j`>2900qo=7b;296?6=8r.:<l4m8:J70g=O<=80(:?5149j2a<722em57>5;|`0<<<72;0;6=u+11c9f==O<=h0D9:=;%52>43<a?n1<75`f883>>{e;1=1<7<50;2x 46f2k20D9:m;I676>"093;>7d8k:188kc?=831vn>6>:181>5<7s-;;m7l7;I67f>N3<;1/;<4>5:k5`?6=3fl26=44}c0`e?6=:3:1<v*>0`8a<>N3<k1C89<4$63950=n>m0;66ai9;29?xd41j0;6?4?:1y'55g=j11C89l4H561?!1628?0e;j50;9lb<<722wi=?:50;794?6|,8:j6ok4H56a?M23:2.<=7?k;h4g>5<<a?o1<75f6g83>>o083:17bh6:188yg55:3:1?7>50z&24d<e12B?8o5G4508 27=:81b:i4?::k5a?6=3fl26=44}c117?6=;3:1<v*>0`8a=>N3<k1C89<4$63964=n>m0;66g9e;29?j`>2900qo==4;297?6=8r.:<l4m9:J70g=O<=80(:?5209j2a<722c=i7>5;nd:>5<<uk9997>53;294~"68h0i56F;4c9K014<,>;1><5f6e83>>o1m3:17bh6:188yg55>3:1?7>50z&24d<e12B?8o5G4508 27=:81b:i4?::k5a?6=3fl26=44}c113?6=;3:1<v*>0`8a=>N3<k1C89<4$63964=n>m0;66g9e;29?j`>2900qo==8;297?6=8r.:<l4m9:J70g=O<=80(:?5209j2a<722c=i7>5;nd:>5<<uk9957>53;294~"68h0i56F;4c9K014<,>;1><5f6e83>>o1m3:17bh6:188yg71?3:197>50z&24d<em2B?8o5G4508 27=:=1b:i4?::k5a?6=3`<m6=44i6294?=hn00;66sm10g94?5=83:p(<>n:c;8L12e3A>?>6*81;3a?l0c2900e;k50;9lb<<722wi=<o50;794?6|,8:j6ok4H56a?M23:2.<=7<;;h4g>5<<a?o1<75f6g83>>o083:17bh6:188yg7613:197>50z&24d<em2B?8o5G4508 27=9m1b:i4?::k5a?6=3`<m6=44i6294?=hn00;66sm1e394?3=83:p(<>n:cg8L12e3A>?>6*81;3g?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk;o:7>55;294~"68h0ii6F;4c9K014<,>;1>95f6e83>>o1m3:17d8i:188m26=831dj44?::a5a2=83?1<7>t$02b>gc<@=>i7E:;2:&45?7c3`<o6=44i7g94?=n>o0;66g80;29?j`>2900qo?>d;290?6=8r.:<l4mc:J70g=O<=80(:?51b9j2a<722c=i7>5;h4e>5<<go31<75rb20b>5<4290;w)??a;`:?M23j2B?8?5+70815>o1l3:17d8j:188kc?=831vn>?j:180>5<7s-;;m7l6;I67f>N3<;1/;<4=1:k5`?6=3`<n6=44og;94?=zj:;m6=4<:183!77i3h27E:;b:J707=#?809=6g9d;29?l0b2900ck750;9~f64729086=4?{%33e?d>3A>?n6F;439'34<592c=h7>5;h4f>5<<go31<75rb00b>5<2290;w)??a;`f?M23j2B?8?5+7082`>o1l3:17d8j:188m3`=831b;=4?::me=?6=3th:>;4?:583>5}#99k1nn5G45`8L1253-=:6?=4i7f94?=n>l0;66g9f;29?j`>2900qo?=8;291?6=8r.:<l4me:J70g=O<=80(:?51e9j2a<722c=i7>5;h4e>5<<a>:1<75`f883>>{e9;=1<7;50;2x 46f2ko0D9:m;I676>"093;o7d8k:188m3c=831b:k4?::k44?6=3fl26=44}c115?6=;3:1<v*>0`8a=>N3<k1C89<4$63964=n>m0;66g9e;29?j`>2900qo=i5;290?6=8r.:<l4mc:J70g=O<=80(:?53:k5`?6=3`<n6=44i7d94?=hn00;66sm3g:94?3=83:p(<>n:cg8L12e3A>?>6*81;03?l0c2900e;k50;9j2c<722c<<7>5;nd:>5<<uk9m;7>55;294~"68h0ii6F;4c9K014<,>;196g9d;29?l0b2900e;h50;9j35<722em57>5;|`0b3<72=0;6=u+11c9ff=O<=h0D9:=;%52>1=n>m0;66g9e;29?l0a2900ck750;9~f444290?6=4?{%33e?dd3A>?n6F;439'34<5;2c=h7>5;h4f>5<<a?l1<75`f883>>{e9;31<7;50;2x 46f2ko0D9:m;I676>"093;o7d8k:188m3c=831b:k4?::k44?6=3fl26=44}c145?6=;3:1<v*>0`8a=>N3<k1C89<4$63950=n>m0;66g9e;29?j`>2900qo=82;297?6=8r.:<l4m9:J70g=O<=80(:?5149j2a<722c=i7>5;nd:>5<<uk>:h7>52b83>5}#99k1==?4H56a?M23:2P?978te;:956<603;?6<75}%67<?77:2.:<;4>;%51>7=#?:097)9;:39'30<53-==6?5+7681?!1?2;1/;44=;%5b>7=#?k097)9l:39'3a<53-=n6?5+7g81?!>72;1/4<4=;%:1>7=#0:097)6;:39'<0<53-2=6?5+8681?!>?2;1/444=;%:b>7=#0k097)6l:39'<a<53-2n6?5+8g81?!?72;1/5<4=;%;1>7=#1:097)7;:39'=0<53-3=6?5+9681?!??2;1/544=;%;b>7=#1k097)7l:39'=a<53-3n6?5+9g81?!g72;1/m<4=;%c1>7=#i:097)o;:39'e0<53-k=6?5+a681?!g?2;1/m44=;%cb>7=#ik097)ol:39'ea<53-kn6?5+ag81?!d72;1/n<4=;%330?263-h96<5+b282?!23?3;;>6*>0682?l2f2900e9l50;9j24<722c=>7>5;h33<?6=3`;;57>5;h671?6=3`>?:7>5;h0b>5<#nl0956`id;28?l4?290/jh4=9:le`?7<3`8<6=4+fd81=>hal3807d<9:18'b`<512dmh7=4;h10>5<#nl0956`id;68?l55290/jh4=9:le`?3<3`9:6=4+fd81=>hal3<07d=?:18'b`<512dmh794;h0e>5<#nl0956`id;:8?l4b290/jh4=9:le`??<3`8o6=4+fd81=>hal3k07d<l:18'b`<512dmh7l4;h0a>5<#nl0956`id;a8?l42290/jh4=9:le`?b<3`9<6=4+fd802>hal3:07d=::18'b`<4>2dmh7?4;h63>5<#nl08:6`id;08?l5a290/jh4<6:le`?5<3`9n6=4+fd802>hal3>07d=k:18'b`<4>2dmh7;4;h1`>5<#nl08:6`id;48?l5e290/jh4<6:le`?1<3`9j6=4+fd802>hal3207d=6:18'b`<4>2dmh774;h1;>5<#nl08:6`id;c8?l53290/jh4<6:le`?d<3`?86=4+fd866>hal3:07d;7:18'b`<2?2dmh7>4;h75>5<#nl0>;6`id;38?l32290/jh4:7:le`?4<3`??6=4+fd863>hal3907b;n:18'b`<212dmh7>4;n7e>5<#nl0>i6`id;28?j3c290/jh4:e:le`?7<3f?h6=4+fd86a>hal3807b;m:18'b`<2m2dmh7=4;|`75f<72;i1<7>t$02b>4663A>?n6F;439Y00<1sl036<=519820?7>2t.?854>039'550=92.<>7<4$6196>"0<380(:;52:&42?4<,>=1>6*88;08 2?=:2.<m7<4$6`96>"0k380(:j52:&4a?4<,>l1>6*70;08 =7=:2.3>7<4$9196>"?<380(5;52:&;2?4<,1=1>6*78;08 =?=:2.3m7<4$9`96>"?k380(5j52:&;a?4<,1l1>6*60;08 <7=:2.2>7<4$8196>"><380(4;52:&:2?4<,0=1>6*68;08 <?=:2.2m7<4$8`96>">k380(4j52:&:a?4<,0l1>6*n0;08 d7=:2.j>7<4$`196>"f<380(l;52:&b2?4<,h=1>6*n8;08 d?=:2.jm7<4$``96>"fk380(lj52:&ba?4<,hl1>6*m0;08 g7=:2.:<94;1:&a6?7<,k91=6*;468247=#99=1=6g;a;29?l2e2900e;?50;9j27<722c:<54?::k24<<722c?884?::k703<722c9m7>5$gg96<=inm0;76g=8;29 cc=:01eji4>;:k13?6=,oo1>45afe81?>o5>3:1(kk5289mba<432c8?7>5$gg96<=inm0?76g<2;29 cc=:01eji4:;:k05?6=,oo1>45afe85?>o483:1(kk5289mba<032c9j7>5$gg96<=inm0376g=e;29 cc=:01eji46;:k1`?6=,oo1>45afe8b?>o5k3:1(kk5289mba<e32c9n7>5$gg96<=inm0h76g=5;29 cc=:01eji4k;:k03?6=,oo1?;5afe83?>o4=3:1(kk5379mba<632c?<7>5$gg973=inm0976g<f;29 cc=;?1eji4<;:k0a?6=,oo1?;5afe87?>o4l3:1(kk5379mba<232c8o7>5$gg973=inm0=76g<b;29 cc=;?1eji48;:k0e?6=,oo1?;5afe8;?>o413:1(kk5379mba<>32c847>5$gg973=inm0j76g<4;29 cc=;?1eji4m;:k67?6=,oo19?5afe83?>o203:1(kk5569mba<732c>:7>5$gg912=inm0:76g:5;29 cc==>1eji4=;:k60?6=,oo19:5afe80?>i2i3:1(kk5589mba<732e>j7>5$gg91`=inm0;76a:d;29 cc==l1eji4>;:m6g?6=,oo19h5afe81?>i2j3:1(kk55d9mba<432wi8<l50;0`>5<7s-;;m7??1:J70g=O<=80V9;56zg9<?742821=94>9;'01>=9980(<>9:09'37<53-=86?5+7581?!122;1/;;4=;%54>7=#?1097)96:39'3d<53-=i6?5+7b81?!1c2;1/;h4=;%5e>7=#09097)6>:39'<7<53-286?5+8581?!>22;1/4;4=;%:4>7=#01097)66:39'<d<53-2i6?5+8b81?!>c2;1/4h4=;%:e>7=#19097)7>:39'=7<53-386?5+9581?!?22;1/5;4=;%;4>7=#11097)76:39'=d<53-3i6?5+9b81?!?c2;1/5h4=;%;e>7=#i9097)o>:39'e7<53-k86?5+a581?!g22;1/m;4=;%c4>7=#i1097)o6:39'ed<53-ki6?5+ab81?!gc2;1/mh4=;%ce>7=#j9097)l>:39'552=<81/n?4>;%`0>4=#<==1==<4$024>4=n<h0;66g;b;29?l062900e;<50;9j55>=831b==750;9j013=831b89850;9j6d<72-ln6?74ngf94>=n:10;6)hj:3;8jcb=921b>:4?:%df>7?<fon1>65f2783>!`b2;30bkj53:9j76<72-ln6?74ngf90>=n;;0;6)hj:3;8jcb==21b?<4?:%df>7?<fon1:65f3183>!`b2;30bkj57:9j6c<72-ln6?74ngf9<>=n:l0;6)hj:3;8jcb=121b>i4?:%df>7?<fon1m65f2b83>!`b2;30bkj5b:9j6g<72-ln6?74ngf9g>=n:<0;6)hj:3;8jcb=l21b?:4?:%df>60<fon1<65f3483>!`b2:<0bkj51:9j05<72-ln6>84ngf96>=n;o0;6)hj:248jcb=;21b?h4?:%df>60<fon1865f3e83>!`b2:<0bkj55:9j7f<72-ln6>84ngf92>=n;k0;6)hj:248jcb=?21b?l4?:%df>60<fon1465f3883>!`b2:<0bkj59:9j7=<72-ln6>84ngf9e>=n;=0;6)hj:248jcb=j21b9>4?:%df>04<fon1<65f5983>!`b2<=0bkj50:9j13<72-ln6894ngf95>=n=<0;6)hj:458jcb=:21b994?:%df>01<fon1?65`5`83>!`b2<30bkj50:9l1c<72-ln68k4ngf94>=h=m0;6)hj:4g8jcb=921d9n4?:%df>0c<fon1>65`5c83>!`b2<o0bkj53:9~f17f2909o7>50z&24d<6881C89l4H561?_222?qn654>3;3;>42=900v(9:7:021?!77>3;0(:<52:&47?4<,>>1>6*85;08 20=:2.<;7<4$6:96>"01380(:o52:&4f?4<,>i1>6*8d;08 2c=:2.<j7<4$9296>"?9380(5<52:&;7?4<,1>1>6*75;08 =0=:2.3;7<4$9:96>"?1380(5o52:&;f?4<,1i1>6*7d;08 =c=:2.3j7<4$8296>">9380(4<52:&:7?4<,0>1>6*65;08 <0=:2.2;7<4$8:96>">1380(4o52:&:f?4<,0i1>6*6d;08 <c=:2.2j7<4$`296>"f9380(l<52:&b7?4<,h>1>6*n5;08 d0=:2.j;7<4$`:96>"f1380(lo52:&bf?4<,hi1>6*nd;08 dc=:2.jj7<4$c296>"e9380(<>;:538 g4=92.i?7?4$564>4653-;;;7?4i5c94?=n<k0;66g91;29?l052900e<>7:188m46>2900e9:::188m1212900e?o50;&ea?4>3glo6=54i3:94?"am3827chk:098m71=83.mi7<6;odg>7=<a;<1<7*ie;0:?k`c2:10e>=50;&ea?4>3glo6954i2094?"am3827chk:498m67=83.mi7<6;odg>3=<a::1<7*ie;0:?k`c2>10e?h50;&ea?4>3glo6554i3g94?"am3827chk:898m7b=83.mi7<6;odg>d=<a;i1<7*ie;0:?k`c2k10e?l50;&ea?4>3glo6n54i3794?"am3827chk:e98m61=83.mi7=9;odg>5=<a:?1<7*ie;15?k`c2810e9>50;&ea?513glo6?54i2d94?"am39=7chk:298m6c=83.mi7=9;odg>1=<a:n1<7*ie;15?k`c2<10e>m50;&ea?513glo6;54i2`94?"am39=7chk:698m6g=83.mi7=9;odg>==<a:31<7*ie;15?k`c2010e>650;&ea?513glo6l54i2694?"am39=7chk:c98m05=83.mi7;=;odg>5=<a<21<7*ie;74?k`c2910e8850;&ea?303glo6<54i4794?"am3?<7chk:398m02=83.mi7;8;odg>6=<g<k1<7*ie;7:?k`c2910c8h50;&ea?3b3glo6=54o4f94?"am3?n7chk:098k0e=83.mi7;j;odg>7=<g<h1<7*ie;7f?k`c2:10qo:>9;296f<729q/==o51138L12e3A>?>6T;5;4xa?>=9:0:47?;:0;9y!2303;;>6*>0782?!152;1/;>4=;%57>7=#?<097)99:39'32<53-=36?5+7881?!1f2;1/;o4=;%5`>7=#?m097)9j:39'3c<53-2;6?5+8081?!>52;1/4>4=;%:7>7=#0<097)69:39'<2<53-236?5+8881?!>f2;1/4o4=;%:`>7=#0m097)6j:39'<c<53-3;6?5+9081?!?52;1/5>4=;%;7>7=#1<097)79:39'=2<53-336?5+9881?!?f2;1/5o4=;%;`>7=#1m097)7j:39'=c<53-k;6?5+a081?!g52;1/m>4=;%c7>7=#i<097)o9:39'e2<53-k36?5+a881?!gf2;1/mo4=;%c`>7=#im097)oj:39'ec<53-h;6?5+b081?!77<3>:7)l=:09'f6<63->?;7??2:&242<63`>j6=44i5`94?=n>80;66g92;29?l7703:17d??9;29?l23=3:17d:;6;29?l4f290/jh4=9:le`?6<3`836=4+fd81=>hal3;07d<8:18'b`<512dmh7<4;h05>5<#nl0956`id;18?l54290/jh4=9:le`?2<3`996=4+fd81=>hal3?07d=>:18'b`<512dmh784;h13>5<#nl0956`id;58?l4a290/jh4=9:le`?><3`8n6=4+fd81=>hal3307d<k:18'b`<512dmh7o4;h0`>5<#nl0956`id;`8?l4e290/jh4=9:le`?e<3`8>6=4+fd81=>hal3n07d=8:18'b`<4>2dmh7>4;h16>5<#nl08:6`id;38?l27290/jh4<6:le`?4<3`9m6=4+fd802>hal3907d=j:18'b`<4>2dmh7:4;h1g>5<#nl08:6`id;78?l5d290/jh4<6:le`?0<3`9i6=4+fd802>hal3=07d=n:18'b`<4>2dmh764;h1:>5<#nl08:6`id;;8?l5?290/jh4<6:le`?g<3`9?6=4+fd802>hal3h07d;<:18'b`<2:2dmh7>4;h7;>5<#nl0>;6`id;28?l31290/jh4:7:le`?7<3`?>6=4+fd863>hal3807d;;:18'b`<2?2dmh7=4;n7b>5<#nl0>56`id;28?j3a290/jh4:e:le`?6<3f?o6=4+fd86a>hal3;07b;l:18'b`<2m2dmh7<4;n7a>5<#nl0>i6`id;18?xd3910;6?m50;2x 46f28::7E:;b:J707=]<<0=wh47:0195=<6<3;26p*;498247=#99<1=6*82;08 25=:2.<87<4$6796>"0>380(:952:&4<?4<,>31>6*8a;08 2d=:2.<o7<4$6f96>"0m380(:h52:&;4?4<,1;1>6*72;08 =5=:2.387<4$9796>"?>380(5952:&;<?4<,131>6*7a;08 =d=:2.3o7<4$9f96>"?m380(5h52:&:4?4<,0;1>6*62;08 <5=:2.287<4$8796>">>380(4952:&:<?4<,031>6*6a;08 <d=:2.2o7<4$8f96>">m380(4h52:&b4?4<,h;1>6*n2;08 d5=:2.j87<4$`796>"f>380(l952:&b<?4<,h31>6*na;08 dd=:2.jo7<4$`f96>"fm380(lh52:&a4?4<,k;1>6*>05875>"e:3;0(o=51:&702<68;1/==951:k7e?6=3`>i6=44i7394?=n>;0;66g>0983>>o6800;66g;4483>>o3<?0;66g=a;29 cc=:01eji4?;:k1<?6=,oo1>45afe82?>o5?3:1(kk5289mba<532c9:7>5$gg96<=inm0876g<3;29 cc=:01eji4;;:k06?6=,oo1>45afe86?>o493:1(kk5289mba<132c8<7>5$gg96<=inm0<76g=f;29 cc=:01eji47;:k1a?6=,oo1>45afe8:?>o5l3:1(kk5289mba<f32c9o7>5$gg96<=inm0i76g=b;29 cc=:01eji4l;:k11?6=,oo1>45afe8g?>o4?3:1(kk5379mba<732c897>5$gg973=inm0:76g;0;29 cc=;?1eji4=;:k0b?6=,oo1?;5afe80?>o4m3:1(kk5379mba<332c8h7>5$gg973=inm0>76g<c;29 cc=;?1eji49;:k0f?6=,oo1?;5afe84?>o4i3:1(kk5379mba<?32c857>5$gg973=inm0276g<8;29 cc=;?1eji4n;:k00?6=,oo1?;5afe8a?>o2;3:1(kk5539mba<732c>47>5$gg912=inm0;76g:6;29 cc==>1eji4>;:k61?6=,oo19:5afe81?>o2<3:1(kk5569mba<432e>m7>5$gg91<=inm0;76a:f;29 cc==l1eji4?;:m6`?6=,oo19h5afe82?>i2k3:1(kk55d9mba<532e>n7>5$gg91`=inm0876sm43494?4d290;w)??a;335>N3<k1C89<4Z5792~c=03;86<651582=?{#<=21==<4$025>4=#?;097)9<:39'31<53-=>6?5+7781?!102;1/;54=;%5:>7=#?h097)9m:39'3f<53-=o6?5+7d81?!1a2;1/4=4=;%:2>7=#0;097)6<:39'<1<53-2>6?5+8781?!>02;1/454=;%::>7=#0h097)6m:39'<f<53-2o6?5+8d81?!>a2;1/5=4=;%;2>7=#1;097)7<:39'=1<53-3>6?5+9781?!?02;1/554=;%;:>7=#1h097)7m:39'=f<53-3o6?5+9d81?!?a2;1/m=4=;%c2>7=#i;097)o<:39'e1<53-k>6?5+a781?!g02;1/m54=;%c:>7=#ih097)om:39'ef<53-ko6?5+ad81?!ga2;1/n=4=;%`2>7=#99>18<5+b382?!d4281/89951108 460281b8l4?::k7f?6=3`<:6=44i7094?=n9921<75f11;94?=n<=?1<75f45494?=n:h0;6)hj:3;8jcb=821b>54?:%df>7?<fon1=65f2683>!`b2;30bkj52:9j63<72-ln6?74ngf97>=n;:0;6)hj:3;8jcb=<21b??4?:%df>7?<fon1965f3083>!`b2;30bkj56:9j75<72-ln6?74ngf93>=n:o0;6)hj:3;8jcb=021b>h4?:%df>7?<fon1565f2e83>!`b2;30bkj5a:9j6f<72-ln6?74ngf9f>=n:k0;6)hj:3;8jcb=k21b>84?:%df>7?<fon1h65f3683>!`b2:<0bkj50:9j70<72-ln6>84ngf95>=n<90;6)hj:248jcb=:21b?k4?:%df>60<fon1?65f3d83>!`b2:<0bkj54:9j7a<72-ln6>84ngf91>=n;j0;6)hj:248jcb=>21b?o4?:%df>60<fon1;65f3`83>!`b2:<0bkj58:9j7<<72-ln6>84ngf9=>=n;10;6)hj:248jcb=i21b?94?:%df>60<fon1n65f5283>!`b2<80bkj50:9j1=<72-ln6894ngf94>=n=?0;6)hj:458jcb=921b984?:%df>01<fon1>65f5583>!`b2<=0bkj53:9l1d<72-ln6874ngf94>=h=o0;6)hj:4g8jcb=821d9i4?:%df>0c<fon1=65`5b83>!`b2<o0bkj52:9l1g<72-ln68k4ngf97>=zj=8>6=4=c;294~"68h0:<<5G45`8L1253S>>6;uj:9827?7?28>1=44r$56;>4653-;;:7?4$6096>"0;380(::52:&41?4<,><1>6*87;08 2>=:2.<57<4$6c96>"0j380(:m52:&4`?4<,>o1>6*8f;08 =6=:2.3=7<4$9096>"?;380(5:52:&;1?4<,1<1>6*77;08 =>=:2.357<4$9c96>"?j380(5m52:&;`?4<,1o1>6*7f;08 <6=:2.2=7<4$8096>">;380(4:52:&:1?4<,0<1>6*67;08 <>=:2.257<4$8c96>">j380(4m52:&:`?4<,0o1>6*6f;08 d6=:2.j=7<4$`096>"f;380(l:52:&b1?4<,h<1>6*n7;08 d>=:2.j57<4$`c96>"fj380(lm52:&b`?4<,ho1>6*nf;08 g6=:2.i=7<4$027>17<,k81=6*m3;38 12028:97)??7;38m1g=831b8o4?::k55?6=3`<96=44i02;>5<<a8:26=44i566>5<<a=>=6=44i3c94?"am3827chk:198m7>=83.mi7<6;odg>4=<a;=1<7*ie;0:?k`c2;10e?850;&ea?4>3glo6>54i2194?"am3827chk:598m64=83.mi7<6;odg>0=<a:;1<7*ie;0:?k`c2?10e>>50;&ea?4>3glo6:54i3d94?"am3827chk:998m7c=83.mi7<6;odg><=<a;n1<7*ie;0:?k`c2h10e?m50;&ea?4>3glo6o54i3`94?"am3827chk:b98m73=83.mi7<6;odg>a=<a:=1<7*ie;15?k`c2910e>;50;&ea?513glo6<54i5294?"am39=7chk:398m6`=83.mi7=9;odg>6=<a:o1<7*ie;15?k`c2=10e>j50;&ea?513glo6854i2a94?"am39=7chk:798m6d=83.mi7=9;odg>2=<a:k1<7*ie;15?k`c2110e>750;&ea?513glo6454i2:94?"am39=7chk:`98m62=83.mi7=9;odg>g=<a<91<7*ie;71?k`c2910e8650;&ea?303glo6=54i4494?"am3?<7chk:098m03=83.mi7;8;odg>7=<a<>1<7*ie;74?k`c2:10c8o50;&ea?3>3glo6=54o4d94?"am3?n7chk:198k0b=83.mi7;j;odg>4=<g<i1<7*ie;7f?k`c2;10c8l50;&ea?3b3glo6>54}c610?6=:j0;6=u+11c9557<@=>i7E:;2:X71?0|m321=>4>8;37>4?=u->?47??2:&243<63-=96?5+7281?!132;1/;84=;%55>7=#?>097)97:39'3<<53-=j6?5+7c81?!1d2;1/;i4=;%5f>7=#?o097)6?:39'<4<53-296?5+8281?!>32;1/484=;%:5>7=#0>097)67:39'<<<53-2j6?5+8c81?!>d2;1/4i4=;%:f>7=#0o097)7?:39'=4<53-396?5+9281?!?32;1/584=;%;5>7=#1>097)77:39'=<<53-3j6?5+9c81?!?d2;1/5i4=;%;f>7=#1o097)o?:39'e4<53-k96?5+a281?!g32;1/m84=;%c5>7=#i>097)o7:39'e<<53-kj6?5+ac81?!gd2;1/mi4=;%cf>7=#io097)l?:39'f4<53-;;87:>;%`1>4=#j:0:7):;7;336>"68>0:7d:n:188m1d=831b:<4?::k56?6=3`;;47>5;h33=?6=3`>?97>5;h672?6=3`8j6=4+fd81=>hal3:07d<7:18'b`<512dmh7?4;h04>5<#nl0956`id;08?l41290/jh4=9:le`?5<3`986=4+fd81=>hal3>07d==:18'b`<512dmh7;4;h12>5<#nl0956`id;48?l57290/jh4=9:le`?1<3`8m6=4+fd81=>hal3207d<j:18'b`<512dmh774;h0g>5<#nl0956`id;c8?l4d290/jh4=9:le`?d<3`8i6=4+fd81=>hal3i07d<::18'b`<512dmh7j4;h14>5<#nl08:6`id;28?l52290/jh4<6:le`?7<3`>;6=4+fd802>hal3807d=i:18'b`<4>2dmh7=4;h1f>5<#nl08:6`id;68?l5c290/jh4<6:le`?3<3`9h6=4+fd802>hal3<07d=m:18'b`<4>2dmh794;h1b>5<#nl08:6`id;:8?l5>290/jh4<6:le`??<3`936=4+fd802>hal3k07d=;:18'b`<4>2dmh7l4;h70>5<#nl0>>6`id;28?l3?290/jh4:7:le`?6<3`?=6=4+fd863>hal3;07d;::18'b`<2?2dmh7<4;h77>5<#nl0>;6`id;18?j3f290/jh4:9:le`?6<3f?m6=4+fd86a>hal3:07b;k:18'b`<2m2dmh7?4;n7`>5<#nl0>i6`id;08?j3e290/jh4:e:le`?5<3th?>>4?:3a94?6|,8:j6<>>;I67f>N3<;1Q8849{d8;>45=910:87?6:|&70=<68;1/==851:&46?4<,>91>6*84;08 23=:2.<:7<4$6596>"00380(:752:&4e?4<,>h1>6*8c;08 2b=:2.<i7<4$6d96>"?8380(5?52:&;6?4<,191>6*74;08 =3=:2.3:7<4$9596>"?0380(5752:&;e?4<,1h1>6*7c;08 =b=:2.3i7<4$9d96>">8380(4?52:&:6?4<,091>6*64;08 <3=:2.2:7<4$8596>">0380(4752:&:e?4<,0h1>6*6c;08 <b=:2.2i7<4$8d96>"f8380(l?52:&b6?4<,h91>6*n4;08 d3=:2.j:7<4$`596>"f0380(l752:&be?4<,hh1>6*nc;08 db=:2.ji7<4$`d96>"e8380(o?52:&241<392.i>7?4$c195>"3<>0:<?5+11595>o3i3:17d:m:188m37=831b:?4?::k24=<722c:<44?::k700<722c?8;4?::k1e?6=,oo1>45afe83?>o503:1(kk5289mba<632c9;7>5$gg96<=inm0976g=6;29 cc=:01eji4<;:k07?6=,oo1>45afe87?>o4:3:1(kk5289mba<232c8=7>5$gg96<=inm0=76g<0;29 cc=:01eji48;:k1b?6=,oo1>45afe8;?>o5m3:1(kk5289mba<>32c9h7>5$gg96<=inm0j76g=c;29 cc=:01eji4m;:k1f?6=,oo1>45afe8`?>o5=3:1(kk5289mba<c32c8;7>5$gg973=inm0;76g<5;29 cc=;?1eji4>;:k74?6=,oo1?;5afe81?>o4n3:1(kk5379mba<432c8i7>5$gg973=inm0?76g<d;29 cc=;?1eji4:;:k0g?6=,oo1?;5afe85?>o4j3:1(kk5379mba<032c8m7>5$gg973=inm0376g<9;29 cc=;?1eji46;:k0<?6=,oo1?;5afe8b?>o4<3:1(kk5379mba<e32c>?7>5$gg917=inm0;76g:8;29 cc==>1eji4?;:k62?6=,oo19:5afe82?>o2=3:1(kk5569mba<532c>87>5$gg912=inm0876a:a;29 cc==01eji4?;:m6b?6=,oo19h5afe83?>i2l3:1(kk55d9mba<632e>o7>5$gg91`=inm0976a:b;29 cc==l1eji4<;:a074=838h6=4?{%33e?7792B?8o5G4508^13=>ro147?<:0:951<613w/89651108 461281/;?4=;%50>7=#?=097)9::39'33<53-=<6?5+7981?!1>2;1/;l4=;%5a>7=#?j097)9k:39'3`<53-=m6?5+8181?!>62;1/4?4=;%:0>7=#0=097)6::39'<3<53-2<6?5+8981?!>>2;1/4l4=;%:a>7=#0j097)6k:39'<`<53-2m6?5+9181?!?62;1/5?4=;%;0>7=#1=097)7::39'=3<53-3<6?5+9981?!?>2;1/5l4=;%;a>7=#1j097)7k:39'=`<53-3m6?5+a181?!g62;1/m?4=;%c0>7=#i=097)o::39'e3<53-k<6?5+a981?!g>2;1/ml4=;%ca>7=#ij097)ok:39'e`<53-km6?5+b181?!d62;1/==:5409'f7<63-h86<5+4559554<,8:<6<5f4`83>>o3j3:17d8>:188m34=831b==650;9j55?=831b89;50;9j010=831b>l4?:%df>7?<fon1<65f2983>!`b2;30bkj51:9j62<72-ln6?74ngf96>=n:?0;6)hj:3;8jcb=;21b?>4?:%df>7?<fon1865f3383>!`b2;30bkj55:9j74<72-ln6?74ngf92>=n;90;6)hj:3;8jcb=?21b>k4?:%df>7?<fon1465f2d83>!`b2;30bkj59:9j6a<72-ln6?74ngf9e>=n:j0;6)hj:3;8jcb=j21b>o4?:%df>7?<fon1o65f2483>!`b2;30bkj5d:9j72<72-ln6>84ngf94>=n;<0;6)hj:248jcb=921b8=4?:%df>60<fon1>65f3g83>!`b2:<0bkj53:9j7`<72-ln6>84ngf90>=n;m0;6)hj:248jcb==21b?n4?:%df>60<fon1:65f3c83>!`b2:<0bkj57:9j7d<72-ln6>84ngf9<>=n;00;6)hj:248jcb=121b?54?:%df>60<fon1m65f3583>!`b2:<0bkj5b:9j16<72-ln68<4ngf94>=n=10;6)hj:458jcb=821b9;4?:%df>01<fon1=65f5483>!`b2<=0bkj52:9j11<72-ln6894ngf97>=h=h0;6)hj:4;8jcb=821d9k4?:%df>0c<fon1<65`5e83>!`b2<o0bkj51:9l1f<72-ln68k4ngf96>=h=k0;6)hj:4g8jcb=;21vn9<>:181g?6=8r.:<l4>009K01d<@=>97W:::7yf>=<6;3;36<:5188~ 12?28:97)??6;38 24=:2.<?7<4$6696>"0=380(:852:&43?4<,>21>6*89;08 2g=:2.<n7<4$6a96>"0l380(:k52:&4b?4<,1:1>6*71;08 =4=:2.3?7<4$9696>"?=380(5852:&;3?4<,121>6*79;08 =g=:2.3n7<4$9a96>"?l380(5k52:&;b?4<,0:1>6*61;08 <4=:2.2?7<4$8696>">=380(4852:&:3?4<,021>6*69;08 <g=:2.2n7<4$8a96>">l380(4k52:&:b?4<,h:1>6*n1;08 d4=:2.j?7<4$`696>"f=380(l852:&b3?4<,h21>6*n9;08 dg=:2.jn7<4$`a96>"fl380(lk52:&bb?4<,k:1>6*m1;08 4632=;0(o<51:&a7?7<,=><6<>=;%333?7<a=k1<75f4c83>>o193:17d8=:188m46?2900e<>6:188m1222900e9:9:188m7g=83.mi7<6;odg>5=<a;21<7*ie;0:?k`c2810e?950;&ea?4>3glo6?54i3494?"am3827chk:298m65=83.mi7<6;odg>1=<a:81<7*ie;0:?k`c2<10e>?50;&ea?4>3glo6;54i2294?"am3827chk:698m7`=83.mi7<6;odg>==<a;o1<7*ie;0:?k`c2010e?j50;&ea?4>3glo6l54i3a94?"am3827chk:c98m7d=83.mi7<6;odg>f=<a;?1<7*ie;0:?k`c2m10e>950;&ea?513glo6=54i2794?"am39=7chk:098m16=83.mi7=9;odg>7=<a:l1<7*ie;15?k`c2:10e>k50;&ea?513glo6954i2f94?"am39=7chk:498m6e=83.mi7=9;odg>3=<a:h1<7*ie;15?k`c2>10e>o50;&ea?513glo6554i2;94?"am39=7chk:898m6>=83.mi7=9;odg>d=<a:>1<7*ie;15?k`c2k10e8=50;&ea?353glo6=54i4:94?"am3?<7chk:198m00=83.mi7;8;odg>4=<a<?1<7*ie;74?k`c2;10e8:50;&ea?303glo6>54o4c94?"am3?27chk:198k0`=83.mi7;j;odg>5=<g<n1<7*ie;7f?k`c2810c8m50;&ea?3b3glo6?54o4`94?"am3?n7chk:298yg2583:1>n4?:1y'55g=99;0D9:m;I676>\3=3<pi7651282<?732831q):;8;336>"68?0:7)9=:39'36<53-=?6?5+7481?!112;1/;:4=;%5;>7=#?0097)9n:39'3g<53-=h6?5+7e81?!1b2;1/;k4=;%:3>7=#08097)6=:39'<6<53-2?6?5+8481?!>12;1/4:4=;%:;>7=#00097)6n:39'<g<53-2h6?5+8e81?!>b2;1/4k4=;%;3>7=#18097)7=:39'=6<53-3?6?5+9481?!?12;1/5:4=;%;;>7=#10097)7n:39'=g<53-3h6?5+9e81?!?b2;1/5k4=;%c3>7=#i8097)o=:39'e6<53-k?6?5+a481?!g12;1/m:4=;%c;>7=#i0097)on:39'eg<53-kh6?5+ae81?!gb2;1/mk4=;%`3>7=#j8097)??4;62?!d5281/n>4>;%673?77:2.:<:4>;h6b>5<<a=h1<75f6083>>o1:3:17d??8;29?l7713:17d:;5;29?l23>3:17d<n:18'b`<512dmh7>4;h0;>5<#nl0956`id;38?l40290/jh4=9:le`?4<3`8=6=4+fd81=>hal3907d=<:18'b`<512dmh7:4;h11>5<#nl0956`id;78?l56290/jh4=9:le`?0<3`9;6=4+fd81=>hal3=07d<i:18'b`<512dmh764;h0f>5<#nl0956`id;;8?l4c290/jh4=9:le`?g<3`8h6=4+fd81=>hal3h07d<m:18'b`<512dmh7m4;h06>5<#nl0956`id;f8?l50290/jh4<6:le`?6<3`9>6=4+fd802>hal3;07d:?:18'b`<4>2dmh7<4;h1e>5<#nl08:6`id;18?l5b290/jh4<6:le`?2<3`9o6=4+fd802>hal3?07d=l:18'b`<4>2dmh784;h1a>5<#nl08:6`id;58?l5f290/jh4<6:le`?><3`926=4+fd802>hal3307d=7:18'b`<4>2dmh7o4;h17>5<#nl08:6`id;`8?l34290/jh4:2:le`?6<3`?36=4+fd863>hal3:07d;9:18'b`<2?2dmh7?4;h76>5<#nl0>;6`id;08?l33290/jh4:7:le`?5<3f?j6=4+fd86=>hal3:07b;i:18'b`<2m2dmh7>4;n7g>5<#nl0>i6`id;38?j3d290/jh4:e:le`?4<3f?i6=4+fd86a>hal3907pl;1g83>7e=83:p(<>n:022?M23j2B?8?5U4485`<?2891=54>4;3:>x"3<10:<?5+11495>"0:380(:=52:&40?4<,>?1>6*86;08 21=:2.<47<4$6;96>"0i380(:l52:&4g?4<,>n1>6*8e;08 2`=:2.3<7<4$9396>"?:380(5=52:&;0?4<,1?1>6*76;08 =1=:2.347<4$9;96>"?i380(5l52:&;g?4<,1n1>6*7e;08 =`=:2.2<7<4$8396>">:380(4=52:&:0?4<,0?1>6*66;08 <1=:2.247<4$8;96>">i380(4l52:&:g?4<,0n1>6*6e;08 <`=:2.j<7<4$`396>"f:380(l=52:&b0?4<,h?1>6*n6;08 d1=:2.j47<4$`;96>"fi380(ll52:&bg?4<,hn1>6*ne;08 d`=:2.i<7<4$c396>"68=0?=6*m2;38 g5=92.?8:4>039'551=92c?m7>5;h6a>5<<a?;1<75f6383>>o6810;66g>0883>>o3<<0;66g;4783>>o5i3:1(kk5289mba<732c947>5$gg96<=inm0:76g=7;29 cc=:01eji4=;:k12?6=,oo1>45afe80?>o4;3:1(kk5289mba<332c8>7>5$gg96<=inm0>76g<1;29 cc=:01eji49;:k04?6=,oo1>45afe84?>o5n3:1(kk5289mba<?32c9i7>5$gg96<=inm0276g=d;29 cc=:01eji4n;:k1g?6=,oo1>45afe8a?>o5j3:1(kk5289mba<d32c997>5$gg96<=inm0o76g<7;29 cc=;?1eji4?;:k01?6=,oo1?;5afe82?>o383:1(kk5379mba<532c8j7>5$gg973=inm0876g<e;29 cc=;?1eji4;;:k0`?6=,oo1?;5afe86?>o4k3:1(kk5379mba<132c8n7>5$gg973=inm0<76g<a;29 cc=;?1eji47;:k0=?6=,oo1?;5afe8:?>o403:1(kk5379mba<f32c887>5$gg973=inm0i76g:3;29 cc==;1eji4?;:k6<?6=,oo19:5afe83?>o2>3:1(kk5569mba<632c>97>5$gg912=inm0976g:4;29 cc==>1eji4<;:m6e?6=,oo1945afe83?>i2n3:1(kk55d9mba<732e>h7>5$gg91`=inm0:76a:c;29 cc==l1eji4=;:m6f?6=,oo19h5afe80?>{e<8o1<7<l:183!77i3;;=6F;4c9K014<R=?1:vk58;30>4>=9=0:57s+45:9554<,8:=6<5+7381?!142;1/;94=;%56>7=#??097)98:39'3=<53-=26?5+7`81?!1e2;1/;n4=;%5g>7=#?l097)9i:39'<5<53-2:6?5+8381?!>42;1/494=;%:6>7=#0?097)68:39'<=<53-226?5+8`81?!>e2;1/4n4=;%:g>7=#0l097)6i:39'=5<53-3:6?5+9381?!?42;1/594=;%;6>7=#1?097)78:39'==<53-326?5+9`81?!?e2;1/5n4=;%;g>7=#1l097)7i:39'e5<53-k:6?5+a381?!g42;1/m94=;%c6>7=#i?097)o8:39'e=<53-k26?5+a`81?!ge2;1/mn4=;%cg>7=#il097)oi:39'f5<53-h:6?5+116904=#j;0:7)l<:09'011=9980(<>8:09j0d<722c?n7>5;h42>5<<a?81<75f11:94?=n9931<75f45794?=n<=<1<75f2`83>!`b2;30bkj50:9j6=<72-ln6?74ngf95>=n:>0;6)hj:3;8jcb=:21b>;4?:%df>7?<fon1?65f3283>!`b2;30bkj54:9j77<72-ln6?74ngf91>=n;80;6)hj:3;8jcb=>21b?=4?:%df>7?<fon1;65f2g83>!`b2;30bkj58:9j6`<72-ln6?74ngf9=>=n:m0;6)hj:3;8jcb=i21b>n4?:%df>7?<fon1n65f2c83>!`b2;30bkj5c:9j60<72-ln6?74ngf9`>=n;>0;6)hj:248jcb=821b?84?:%df>60<fon1=65f4183>!`b2:<0bkj52:9j7c<72-ln6>84ngf97>=n;l0;6)hj:248jcb=<21b?i4?:%df>60<fon1965f3b83>!`b2:<0bkj56:9j7g<72-ln6>84ngf93>=n;h0;6)hj:248jcb=021b?44?:%df>60<fon1565f3983>!`b2:<0bkj5a:9j71<72-ln6>84ngf9f>=n=:0;6)hj:408jcb=821b954?:%df>01<fon1<65f5783>!`b2<=0bkj51:9j10<72-ln6894ngf96>=n==0;6)hj:458jcb=;21d9l4?:%df>0?<fon1<65`5g83>!`b2<o0bkj50:9l1a<72-ln68k4ngf95>=h=j0;6)hj:4g8jcb=:21d9o4?:%df>0c<fon1?65rb534>5<5k3:1<v*>0`8244=O<=h0D9:=;[66>3}b210:?7?7:0695<<z,=>36<>=;%332?7<,>81>6*83;08 22=:2.<97<4$6496>"0?380(:652:&4=?4<,>k1>6*8b;08 2e=:2.<h7<4$6g96>"0n380(5>52:&;5?4<,181>6*73;08 =2=:2.397<4$9496>"??380(5652:&;=?4<,1k1>6*7b;08 =e=:2.3h7<4$9g96>"?n380(4>52:&:5?4<,081>6*63;08 <2=:2.297<4$8496>">?380(4652:&:=?4<,0k1>6*6b;08 <e=:2.2h7<4$8g96>">n380(l>52:&b5?4<,h81>6*n3;08 d2=:2.j97<4$`496>"f?380(l652:&b=?4<,hk1>6*nb;08 de=:2.jh7<4$`g96>"fn380(o>52:&a5?4<,8:?69?4$c095>"e;3;0(9:8:021?!77?3;0e9o50;9j0g<722c==7>5;h41>5<<a8:36=44i02:>5<<a=>>6=44i565>5<<a;k1<7*ie;0:?k`c2910e?650;&ea?4>3glo6<54i3594?"am3827chk:398m70=83.mi7<6;odg>6=<a:91<7*ie;0:?k`c2=10e><50;&ea?4>3glo6854i2394?"am3827chk:798m66=83.mi7<6;odg>2=<a;l1<7*ie;0:?k`c2110e?k50;&ea?4>3glo6454i3f94?"am3827chk:`98m7e=83.mi7<6;odg>g=<a;h1<7*ie;0:?k`c2j10e?;50;&ea?4>3glo6i54i2594?"am39=7chk:198m63=83.mi7=9;odg>4=<a=:1<7*ie;15?k`c2;10e>h50;&ea?513glo6>54i2g94?"am39=7chk:598m6b=83.mi7=9;odg>0=<a:i1<7*ie;15?k`c2?10e>l50;&ea?513glo6:54i2c94?"am39=7chk:998m6?=83.mi7=9;odg><=<a:21<7*ie;15?k`c2h10e>:50;&ea?513glo6o54i4194?"am3?97chk:198m0>=83.mi7;8;odg>5=<a<<1<7*ie;74?k`c2810e8;50;&ea?303glo6?54i4694?"am3?<7chk:298k0g=83.mi7;6;odg>5=<g<l1<7*ie;7f?k`c2910c8j50;&ea?3b3glo6<54o4a94?"am3?n7chk:398k0d=83.mi7;j;odg>6=<uk;>i7>56;294~"68h0ij6F;4c9K014<,>;1>95f6e83>>o1m3:17d8i:188m26=831dn84?::me=?6=3th:><4?:583>5}#99k1nl5G45`8L1253-=:6<l4i7f94?=n>l0;66am5;29?j`>2900qo?>f;290?6=8r.:<l4md:J70g=O<=80(:?51b9j2a<722c=i7>5;h4e>5<<gk?1<75rb047>5<3290;w)??a;`g?M23j2B?8?5+7082g>o1l3:17d8j:188m3`=831dn84?::a533=8391<7>t$02b>gd<@=>i7E:;2:&45?7e3`<o6=44i7g94?=hj<0;66sm17494?2=83:p(<>n:cf8L12e3A>?>6*81;3`?l0c2900e;k50;9j2c<722ei97>5;|`25f<72?0;6=u+11c9fc=O<=h0D9:=;%52>4b<a?n1<75f6d83>>o1n3:17d9?:188kg3=831dj44?::p162=83?pR8=;;<0:<?0c34>9478j;<1e<?17349m;78k;|q677<72h>pR989;_660>X2;m1U9>l4^570?[34?2T?o85Q52a8Z1e13W>>o6P;5c9]00g<V=<?7S:93:\727=Y<?;0R98?;_66b>X3=l1U88j4^57:?[2202T>8>5Q5508Z0263W??n6P:4`9]11?<V<>37S;;7:\603=Y==?0R8:;;_774>X2;o1U9?74^40;?[35?2T>>;5Q5378Z0563W?8<6P:2g9]17c<V<8o7S;=c:\66g=Y=;k0R8<;;_717>;3<j0=n63;39864>;3:h0><63;34864>;3;=0><63;32864>;3;;0><63;41864>;3;o0><63=b1865>;5il0>=63=ab865>;5ih0>=63=c3865>;5k90>=63=bd865>;5jj0>=63=b`865>;5j10>=63=b7865>;5j=0>=63=b3865>;5i10>=63<108246=::1;19<52292914=::>l19<5226g914=::>n19<5226a914=::>h19<5226c914=::?819<52273914=::?:19<5224d914=::<o19<5224f914=::<i19<5224`914=:;<h19<5234c914=:;<319<5234:914=:;<=19<52344914=:;<?19<52352914=:;:l19<5232g914=:;:n19<5232a914=:;:h19<5232c914=:;1>19<52390914=:;0<19<52386914=:;0819<52382914=:;1o19<5239a914=:;1k19<5239:914=:;1<19<52392914=:<8n1==74=53g>12234>:h7;<;<62g?77127?=n4;449>04e==:168<l511;8917e2=>>70:>b;70?826i3;;563;1`8700=:<8k19>5240;955?<5=;269::;<62=?3434>:47??9:?75=<3<<168<65529>070=993019<9:566?825>3?870:=5;33=>;3:<0?8852437916=:<;>1==74=507>12234>987;<;<617?77127?>>4;449>075==:168?<511;891452=>>70:=2;70?82593;;563;208700=:<;;19>52432955?<5=8;69::;<614?3434>:j7??9:?75c<3<<168<h5529>04c=993019?j:566?826m3?870:>7;33=>;39>0?8852405916=z{<9=6=48{_702>;3:00?o63;368eb>;3;?0mj63;398eb>;3:h0mj63;348eb>{t:0=1<7<t^5`b?84>?3;;<6s|55f94?0|V<>o70=80;4g?85a=3<o70=i6;4f?85093<o70=82;4g?xu2:;0;6;kt^401?84><3>=70<67;65?825k3>=70:=b;65?825i3>=70:<4;65?824;3>=70:<2;65?87b03>=70?j7;65?87b>3>=70?i0;65?87bn3>=70?je;65?87bl3>=70?jc;65?87bj3>=70?ja;65?87b13>=70?j5;65?87b<3>=70<<f;65?844m3>=70<<d;65?843?3>=70<;6;65?843=3>=70<;4;65?843;3>=70<;2;65?84393>=70<;0;65?844k3>=70<<b;65?845=3>=70<=4;65?845;3>=70<=d;65?845k3>=70<=b;65?845i3>=70<=9;65?84503>=70<=7;65?845>3>=70<=2;65?84593>=70?8d;65?870k3>=70?8b;65?870i3>=70?89;65?87?=3>=70?74;65?87?;3>=70?72;65?87?93>=70?70;65?870n3>=70?8e;65?87003>=70?87;65?84b03>=70<j7;65?84b13>=70<j6;65?84b=3>=70<i1;65?84a83>=70<jf;65?84bm3>=70<jd;65?84bk3>=70<jb;65?84bi3>=70<j4;65?84b;3>=70=?7;65?857>3>=70=?5;65?857<3>=70=?3;65?857n3>=70=?e;65?857l3>=70=?c;65?857j3>=70=?a;65?85713>=70=?8;65?857:3>=70=?1;65?827>3>=70:>d;6b?826k3>j70:>b;6b?826i3>j70:>9;6b?82603>j70:=6;6b?825=3>j70:=4;6b?825;3>j70:=2;6b?82593>j70:=0;6b?826n3>j70:>e;6b?826?3>j7p}<6e83>7}Y<j:01>8k:023?xu2;l0;6:lt^41f?851l3>=70=9c;65?82513>=70:<7;65?824i3>=70:<6;65?82403>=70:<9;65?824=3>=70:;0;65?824n3>=70?;8;65?873?3>=70?;6;65?873=3>=70?;4;65?87283>=70?;f;65?873m3>=70?;d;65?873k3>=70?;b;65?873i3>=70?;9;65?87e=3>=70?m4;65?87e;3>=70?m2;65?87e93>=70?md;65?87ek3>=70?mb;65?87ei3>=70?m9;65?87e03>=70?m7;65?87e>3>=70?6b;65?87>i3>=70?69;65?87>03>=70?67;65?87f;3>=70?n2;65?87f93>=70?n0;65?87>n3>=70?6e;65?87>l3>=70?6c;65?87>>3>=70?65;65?847j3>=70<?a;65?84713>=70<>3;65?846:3>=70<>1;65?84683>=70<?f;65?847m3>=70<?d;65?847k3>=70<?8;65?847?3>=70==d;65?855n3>=70=ld;65?85dm3>=70=k2;65?85c;3>=70=k6;65?85c<3>=70=k5;65?85c13>=70=k7;65?85c03>=70=k1;65?85dn3>=70=k0;65?85e>3>=70=m5;65?85e?3>=70=mf;65?85em3>=70=md;65?85ek3>=70=ma;65?85e13>=70=mb;65?85e03>=70=m4;65?85e;3>=70=jb;65?85bi3>=70=j9;65?85a;3>=70=i2;65?85a93>=70=i0;65?85bn3>=70=je;65?85bl3>=70=jc;65?85b03>=70=j7;65?826l3>i70:>c;6a?826j3>i70:>a;6a?82613>i70:>8;6a?825>3>i70:=5;6a?825<3>i70:=3;6a?825:3>i70:=1;6a?82583>i70:>f;6a?826m3>i70:>7;6a?xu4:o0;6?uQ4g58964a28:;7p};b983>7}Y<hl019>;:g;8yv2e>3:1>vP;ad9>055=n01v9l::181[2fl27?<?4i9:p0g2=838pR9ol;<635?`>3ty?n>4?:3y]0dd<5=:;6k74}r6a6?6=:rT?ml523gd9b<=z{=h:6=4={_6b=>;4nl0m56s|4c294?4|V=k370=id;d:?xu3i90;6>uQ4928917c2<>019?l:468yv2>m3:1?vP;7g9>04d===168<o5559~w1?d2908wS:8d:?75<<2<27?=54:4:p0<d=839pR99l;<612?3334>997;;;|q7=d<72:qU8:l4=507>02<5=8868:4}r6:=?6=;rT?;l52430911=:<;;1995rs5;;>5<4sW><563;21860>;39o0>86s|48594?5|V==370:>e;77?826?3??7p};9783>6}Y<>=019?k:478917d2<?0q~:65;297~X3??168<l5549>04g==<1v97;:180[20=27?=44:5:?75=<2=2wx84=50;1xZ11334>9:7;:;<611?323ty?5<4?:2y]024<5=8?68;4=500>03<uz>2<7>53z\734=:<;819852433910=z{=2m6=4<{_644>;3:90>963;1g861>{t<1o1<7=t^54e?826m3?>70:>7;76?xu30m0;6>uQ47g8917c2<<019?l:448yv2?k3:1?vP;6e9>04d==?168<o5579~w1>e2908wS:9c:?75<<2>27?=54:6:p0=g=839pR98m;<612?3134>997;9;|q7<<<72:qU8;o4=507>00<5=886884}r6;<?6=;rT?:452430913=:<;;19;5rs5c4>5<4sW>3:63;21862>;39o0>:6s|4`494?5|V=2>70:>e;75?826?3?=7p};a483>6}Y<1>019?k:4:8917d2<20q~:n4;297~X30:168<l5599>04g==11v9o<:180[2?:27?=44:8:?75=<202wx8l<50;1xZ1>634>9:7;7;<611?3?3ty?m<4?:2y]02c<5=8?6864=500>0><uz>2h7>53z\736=:<;81955243391==z{=396=4<{_65<>;3:90>463;1g86<>{t<1=1<7=t^544?826m3?370:>7;7;?xud<3:1mv3;4e8ef>;5k=0?563=a987=>;4980?563=7`87=>;5=k0?563<5487=>;4;h0?563<9987=>;4090?56s|28794?5|5;3?68>4=3;4>06<5;3=6k74}r605?6=:8q6>4:5fg9>6<1=no168>:5112897c?2=i01?k8:5a897c>2=i01?k9:5a897c22=i01?h>:5a897`72=i01?ki:5a897cb2=i01?kk:5a897cd2=i01?km:5a897cf2=i01?k;:5a897c42ol01>>8:5a896612=i01>>::5a896632=i01>><:5a8966a2=i01>>j:5a8966c2=i01>>l:5a8966e2=i01>>n:5a8966>2=i01>>7:5a896652=i01>>>:5a8yv4><3:19v3=958245=::021:h5243:92a=:;o21:k523g592`=z{:<n6=4<{<15`?37349=o7;?;<15b?`>3ty??;4?:4y>73b=no16?;m5fg9>061==9168>851128964a2ol0q~=9c;293~;4>j0:<=5232192`=:;>:1:h523g792`=:;o<1:k5236392`=:;>81:h5rs514>5<5s4>957;?;<603?7782wx8?750;6x914>28:;70=<1;4f?854;3<o70=9f;4g?xu3:k0;6>u243a915=:<;h1==>4=50b>11<uz>9o7>52z?76f<689168?k56d9~w15>2908w0:<a;73?82403><70:<9;334>{t<:k1<7<t=51b>46734>8o78j;|q770<72;q68>85519>063=99:0q~:=a;297~;3:k0><63;2`8245=:<;o1:i5rs51;>5<4s4>847??0:?77<<2827??n49d:p07b=83>p19=;:gd891542ol019==:gd8914b2o30q~:<0;2972}:<:91==>4=0g;>1e<58o<69m4=0g5>1e<58l;69m4=0ge>1e<58on69m4=0gg>1e<58oh69m4=0ga>1e<58oj69m4=0g:>1e<58o>69m4=0g7>1e<5;9m69m4=31f>1e<5;9o69m4=364>1e<5;>=69m4=366>1e<5;>?69m4=360>1e<5;>969m4=362>1e<5;>;69m4=31`>1e<5;9i69m4=306>1e<5;8?69m4=300>1e<5;8o69m4=30`>1e<5;8i69m4=30b>1e<5;8269m4=30;>1e<5;8<69m4=305>1e<5;8969m4=302>1e<58=o69m4=05`>1e<58=i69m4=05b>1e<58=269m4=0:6>1e<582?69m4=0:0>1e<582969m4=0:2>1e<582;69m4=05e>1e<58=n69m4=05;>1e<58=<69m4}r61b?6=9=q68><51128914?2?l01>h7:7g896`02>:019?k:02;?826k3;;463;1c824==:<8k1==64=53:>46?34>:47??8:?763<681168?;511:8914328:370:=3;33<>;3:;0:<552433955><5=8;6<>7;<62b?77027?=h4>099>041=9920q~:<b;297~;3<90mj63;3g8eb>;3;j0m56s|42g94?4>s4>?<7??0:?06a<3k278oi4if:?0g`<3k278h?4;c:?0`6<3k278h;4;c:?0`1<3k278h84;c:?0`<<3k278h:4;c:?0`=<3k278h<4;c:?0gc<3k278h=4;c:?0f3<3k278n84;c:?0f2<3k278nk4;c:?0f`<3k278ni4;c:?0ff<3k278nl4;c:?0f<<3k278no4;c:?0f=<3k278n94if:?0f6<3k278io4;c:?0ad<3k278i44;c:?0b6<3k278j?4;c:?0b4<3k278j=4;c:?0ac<3k278ih4;c:?0aa<3k278in4;c:?0a=<3k278i:4;c:p06b=839<w0:<f;334>;6<10?o63>4687g>;6<?0?o63>4487g>;6<=0?o63>5187g>;6<o0?o63>4d87g>;6<m0?o63>4b87g>;6<k0?o63>4`87g>;6<00?o63>b487g>;6j=0?o63>b287g>;6j;0?o63>b087g>;6jm0?o63>bb87g>;6jk0?o63>b`87g>;6j00?o63>b987g>;6j>0?o63>b787g>;61k0?o63>9`87g>;6100?o63>9987g>;61>0?o63>a287g>;6i;0?o63>a087g>;6i90?o63>9g87g>;61l0?o63>9e87g>;61j0?o63>9787g>;61<0?o63=0c87g>;58h0?o63=0887g>;59:0?o63=1387g>;5980?o63=1187g>;58o0?o63=0d87g>;58m0?o63=0b87g>;5810?o63=0687g>{t9h21<7;t=06;>06<58h>6<>?;<366?0b34;>878k;<362?173ty:?o4?:5y>51>=99:01>86:7g8962b2?o01><>:7g8yv7293:1>v3>46864>;6=;0m56s|12c94?2|58><6<>?;<15<?0c349?h78k;<114?0b3ty:9>4?:3y>510==916=8:5f89~w45>290?w0?;6;334>;4>10=j63<4e85b>;49o0=i6s|14794?0|58>>68>4=075>c?<58?36;k4=07b>3b<58?h6;h4=07f>26<uz;847>54z?200<68916?;956e9>71e=>m16?<k56d9~w4302909w0?;4;73?87203l27p}>3683>1}:9=>1==>4=244>3`<5:>h6;h4=20b>3c<uz;>57>52z?215<2827:9l4i9:p515=83>p1<;?:023?851>3<o70=;b;4g?85513<n7p}>5c83>7}:9=l19=5214a9b<=z{8>96=4;{<37b?778278:;49f:?00g<1n278>549e:p50b=838p1<:j:428943a2o30q~?;1;290~;6<l0:<=5237792a=:;=k1:i5233592`=z{8<:6=4={<37`?3734;=>7h6;|q205<72=q6=9j5112896022?l01>:n:7d896412?o0q~?93;296~;6<j0><63>668e=>{t9:l1<7:t=06`>467349=878k;<17=?0c3499978j;|q2`0<72;q6=9l5519>5a0=n01v<=j:187873j3;;<63<6585b>;4<00=j63<2585a>{t9m91<7<t=06b>06<58n?6k74}r30`?6=<r7:8l4>019>735=>m16?9656e9>775=>l1v<j>:18187313?;70?k1;d:?xu6;j0;69u215;9556<5:<86;h4=26;>3`<5:896;k4}r005?6==r7:i54:0:?17c<68916=?<56d9>572=?916=?=56d9~w4bf2908w0?j8;334>;5180=h63=7385`>{t9o;1<7;t=0g4>06<58;i6;j4=001>c?<58;j6;h4=03:>3`<uz;o57>53z?2a2<68916>4>56d9>627=>l1v<h=:18187b>3?;70?=3;d:?xu6l10;6>u21d49556<5;3;6;j4=352>3b<uz;m?7>56z?2b5<2827:>849d:?261<a127:>;49f:?26=<1l27:>:49d:p5`5=839p1<h?:023?84?n3<n70<80;4f?xu6n=0;6?u21dd915=:9;?1j45rs0g1>5<4s4;nj7??0:?1<c<1l279;=49d:p5c3=83>p1<kj:428944f2>:01<<9:g;8944>2>:0q~?j1;297~;6ml0:<=5229g92`=::?l1:h5rs0d5>5<5s4;nh7;?;<313?`>3ty:i=4?:2y>5`b=99:01?6j:7f8970a2?n0q~?i7;296~;6mj0><63>298e=>{t9ml1<7=t=0g`>4673483h78j;<05a?0b3ty:j54?:3y>5`d==916=?75f89~w4bb2908w0?jb;334>;50m0=h63=6d85`>{t9o31<7<t=0gb>06<588j6k74}r3g`?6=;r7:il4>019>6=e=>l16>;j56d9~w4eb2909w0?j9;73?876j3l27p}>db83>6}:9l31==>4=3:`>3b<5;<o6;j4}r3``?6=:r7:i84:0:?25d<a12wx=il50;1x94c228:;70<7b;4f?841k3<n7p}>cb83>7}:9l>19=5210;9b<=z{8n<6=4<{<3f0?7782794o49d:?12f<1l2wx><950;0x975a2<:01?<::023?xu59?0;6?u222g915=::;>1==>4}r004?6=<r79?h4>019>574=>m16=?:56g9>575=>m1v??::181844l3?;70<=3;334>{t:;l1<7:t=31g>46734;9<78j;<310?0b34;9?78i;|q165<72;q6>995519>67b=99:0q~<<a;297~;5<>0:<=5213292a=:9;>1:i5rs33e>5<5s48?:7;?;<01g?7782wx>>750;4x972128:;70?=5;4f?875>3<n70?=8;4e?875?3<m70?>c;4g?xu59l0;6?u2257915=::;h1==>4}r00<?6==r79884>019>570=>m16=?656d9>571=>l16=<m56d9~w77c2909w0<;4;73?845i3;;<6s|22594?3|5;>?6<>?;<313?1734;9578i;<315?0b34;:o78i;|q15f<72;q6>9=5519>67?=99:0q~<<6;290~;5<:0:<=5210f92c=:9;31:h5213392a=z{;;i6=4={<076?37348947??0:p663=83>p1?:=:023?876l3<n70?=a;4f?87513<o7p}=1`83>7}::=;19=522359556<uz8887>53z?104<68916=<j56e9>57g=>m1v??6:18184383?;70<=6;334>{t::91<7:t=363>46734;:n78i;<32a?0c34;:j78k;|q15=<72;q6>>m5519>674=99:0q~<<2;297~;5;j0:<=5210g92`=:98l1:h5rs337>5<5s488n7;?;<015?7782wx>?k50;0x975e28:;70?>f;4e?xu60k0;6?u21c7915=:90h1==>4}r3;e?6=:r7:n94:0:?2=d<6891v<o8:18787e<3;;<63>5385`>;6==0=i63>5785b>{t9131<7<t=0`0>06<58326<>?;|q2e3<72:q6=o=5112894332?l01<;9:7g8yv7?03:1>v3>b3864>;6110:<=5rs0c6>5<5s4;i>7??0:?213<1l2wx=5950;0x94d62<:01<78:023?xu6i=0;68u21c39556<58?36;j4=07b>3c<58?h6:>4=07f>3`<uz;287>52z?2fa<2827:m>4>019~w4d7290?w0?md;334>;6=h0=j63>5b85`>;6=l0=i6s|18194?4|58hh68>4=0c1>4673ty:mk4?:2y>5ge=99:01<;l:7g8943b2?n0q~?62;296~;6jk0><63>a08245=z{8kn6=48{<3af?77827:9k49d:?227<1m27:::49f:?2`4<1l27:h;49e:?2`1<1m2wx=4?50;0x94df2<:01<o?:023?xu6im0;6;u21cc9556<58<96;j4=044>3c<58n=6;j4=0f7>3b<58<?6;j4}r3:4?6=:r7:n44:0:?2=c<6891v<ol:18687e13;;<63>6685`>;6>=0=i63>6485`>;6>?0=i6s|19d94?4|58h368>4=0;f>4673ty:mo4?:5y>5g>=99:01<8;:7d894022?o01<89:7d8yv7?m3:1>v3>b6864>;61m0:<=5rs0cb>5<4s4;i;7??0:?2`7<1l27::;49d:p5=b=838p1<l9:42894?d28:;7p}>a883>7}:9k<1==>4=0f1>3c<uz;mh7>52z?160<28279<o4>019~w4`d2909w0<=4;73?847i3;;<6s|1g`94?4|5;8868>4=32:>4673ty9<;4?:3y>67b==916><=51128yv47=3:1>v3=2b864>;59;0:<=5rs327>5<5s489n7;?;<025?7782wx>==50;0x974f2<:01???:023?xu58;0;6?u223;915=::9l1==>4}r035?6=:r79>54:0:?14`<6891v?>?:181845?3?;70<?d;334>{t9ol1<7<t=305>06<5;:h6<>?;|q2b`<72;q6>?<5519>65>=99:0q~?ia;296~;5:80><63=068245=z{8<o6=4={<3:f?3734;<h7??0:p53e=838p1<7n:428941d28:;7p}>6c83>7}:90319=5216`9556<uz;=m7>52z?2==<2827:;l4>019~w40>2909w0?67;73?87013;;<6s|16494?4|58k868>4=0:6>4673ty:;84?:3y>5d4==916=5:51128yv70<3:1>v3>a0864>;60:0:<=5rs050>5<5s4;j<7;?;<3;6?7782wx=:<50;0x94?a2<:01<6>:023?xu6?80;6?u218g915=:91:1==>4}r344?6=:r7:5i4:0:?23c<6891v<8i:18187>k3?;70?8e;334>{t9?o1<7<t=0;5>06<58=36<>?;|q2<f<728q6=4851128yv7103:1>v3>94864>;6?>0:<=5rs0:5>5<6s4;297??0:p6c1=83=p1<9k:428966028:;70:?6;73?877j3<o70<82;4f?85a03<o70=i7;4e?xu6jl0;6?u216a915=:99h1j45rs0`e>5<5s4;<n7;?;<33g?`>3ty:o=4?:3y>52g==916==j5f89~w4e62909w0?89;73?877m3l27p}>c383>7}:91?19=5211d9b<=z{8i86=4={<3;0?3734;:<7h6;|q2g1<72;q6=5=5519>547=n01v<m::18187?:3?;70?>2;d:?xu6k?0;6?u2193915=:9891j45rs0a4>5<5s4;3<7;?;<320?`>3ty:o54?:3y>52`==916=<;5f89~w4e>2909w0?8e;73?876>3l27p}>c`83>7}:9>219=521059b<=z{8ii6=4={<343?3734;:47h6;|q0`a<72<q6>=l5519>7`d=99:01<<m:7f896`22?l01>h9:7f8yv4303:1>v3=0`864>;6:k0m56s|25;94?4|5;:268>4=00`>c?<uz8?m7>52z?156<2827:>i4i9:p61d=838p1??=:428944b2o30q~<;c;296~;5980><63>2g8e=>{t:=n1<7<t=333>06<589;6k74}r07a?6=:r79<k4:0:?274<a12wx>9h50;0x976b2<:01<==:g;8yv4283:1>v3=0e864>;6;:0m56s|24394?4|5;:h68>4=017>c?<uz8>>7>52z?14=<2827:?84i9:p605=838p1?>8:42894512o30q~=>0;2965}::l218:522d5902=::l318:522d4902=::l?18:522g3902=::o:18:522dd902=::lo18:522df902=::li18:522d`902=::lk18:522d6902=::l918:52315902=:;9<18:52317902=:;9>18:52311902=:;9l18:5231g902=:;9n18:5231a902=:;9h18:5231c902=:;9318:5231:902=:;9818:52313902=::021j45228492`=z{;3n6=4={<0f<?37348h47h6;|q1`=<72=q6>h65112896612<:01?7?:62897d62?n0q~<6d;296~;5m>0><63=c68e=>{t:m=1<7:t=3g4>467349;97;?;<0:4?0a348jj78k;|q1=c<72;q6>h75519>6f?=n01v?j6:18784b13;;<63<06864>;5180=i63=c`85`>{t:0i1<7<t=3g5>06<5;i=6k74}r0g2?6=<r79i;4>019>752==916>5h5719>6db=>m1v?7m:18184b=3?;70<l5;d:?xu5l<0;69u22d79556<5::868>4=3:e>3`<5;ki6;j4}r0b3?6=:r79j<4:0:?1`6<a12wx>h<50;6x97`628:;70=?f;73?84?m3=;70<l3;4g?xu5i?0;6?u22g2915=::m81j45rs3g2>5<3s48m<7??0:?04`<282794h49f:?1g4<1l2wx>l;50;0x97ca2<:01?j>:g;8yv4b83:18v3=eg8245=:;9n19=5229f935=::kl1:i5rs3c7>5<5s48ni7;?;<0g4?`>3ty9hk4?:5y>6`c=99:01>>l:42897>c2?l01?lk:7f8yv4f;3:1>v3=ee864>;5ko0m56s|2eg94?2|5;oo6<>?;<13f?373483o79?;<0af?0c3ty9m?4?:3y>6`e==916>nk5f89~w7bc290?w0<jc;334>;48h0><63=8b85b>;5j00=h6s|2`394?4|5;oi68>4=3ag>c?<uz8oo7>54z?1ag<68916?=75519>6=d=?916>o956e9~w7g72909w0<ja;73?84dk3l27p}=dc83>1}::lk1==>4=22;>06<5;2i6;h4=3`6>3b<uz82m7>52z?1a1<28279oo4i9:p6ag=83>p1?k;:023?857:3?;70<7a;4g?84e;3<o7p}=9883>7}::l919=522b69b<=z{;n?6=4;{<0f7?778278<<4:0:?1<d<1m279m449d:p6g6=838p1?m6:5;897d72o30q~<la;296~;5k00i863=c`8e=>{t:ho1<7=t=3a;>1?<5;h;6974=3cf>c?<uz8i=7>53z?1g=<e<279n=4>029>6g7=n01v?ol:18084d?3>270<ne;6:?84fk3l27p}=ag83>6}::j=1n9522`g9555<5;km6k74}r0be?6=;r79o;4;9:?1ef<31279ml4i9:p6db=839p1?m9:c6897gd28:870<nd;d:?xu5k;0;6>u22b790<=::hk184522b09b<=z{;ki6=4<{<0`1?d3348jm7??3:?1eg<a12wx>n>50;1x97b42=301?m=:5;897e72o30q~<l3;297~;5l:0i863=c38246=::j91j45rs3`f>5<4s48o>7:6;<0`4?2>348ii7h6;|q1g4<72:q6>i<5b59>6f6=99901?m>:g;8yv4ek3:1?v3=d087=>;5jl0?563=bb8e=>{t:kl1<7=t=3f2>g2<5;hn6<><;<0ab?`>3ty9nl4?:2y>6a6=<016>om5489>6gg=n01v?lk:18084c83h?70<mc;337>;5jm0m56s|2c:94?5|5;im6974=3`b>1?<5;h36k74}r0af?6=;r79ok4m4:?1fd<68:16>ol5f89~w7d12908w0<le;6:?84e03>270<m6;d:?xu5j00;6>u22bg9f1=::k21===4=3`:>c?<uz8i87>53z?1ga<31279n;4;9:?1f1<a12wx>o950;1x97ec2k>01?l9:020?84e?3l27p}=b383>6}::ji184522c690<=::k81j45rs3`6>5<4s48ho7l;;<0a0?77;279n84i9:p6d>=839p1?mm:5;897d52=301?o7:g;8yv4e;3:1?v3=cc8a0>;5j;0:<>522c19b<=z{;k26=4<{<0`0?d3348j47??3:?1e<<a12wx>k850;37857>3;;<63>0b85`>;68k0=i63=70844>;39m09m63;1b81e>;39k09m63;1`81e>;39009m63;1981e>;3:?09m63;2481e>;3:=09m63;2281e>;3:;09m63;2081e>;3:909m63;1g81e>;39l09m63;1681e>{t:o?1<7?;{<131?77827:<i49d:?24f<1m279;<49f:?75a<5027?=n4=8:?75g<5027?=l4=8:?75<<5027?=54=8:?763<5027?>84=8:?761<5027?>>4=8:?767<5027?><4=8:?765<5027?=k4=8:?75`<5027?=:4=8:p6c2=83;?w0=?4;334>;68l0=h63>0e85a>;5?90<<63;1e813>;39j09;63;1c813>;39h09;63;18813>;39109;63;27813>;3:<09;63;25813>;3::09;63;23813>;3:809;63;21813>;39o09;63;1d813>;39>09;6s|2g194?73s49;?7??0:?24c<1l27:<h49e:?135<1n27?=i4=6:?75f<5>27?=o4=6:?75d<5>27?=44=6:?75=<5>27?>;4=6:?760<5>27?>94=6:?766<5>27?>?4=6:?764<5>27?>=4=6:?75c<5>27?=h4=6:?752<5>2wx?=>50;37857n3;;<63>1185`>;68o0=i63=6g844>;39m08?63;1b807>;39k08?63;1`807>;39008?63;19807>;3:?08?63;24807>;3:=08?63;22807>;3:;08?63;20807>;3:908?63;1g807>;39l08?63;16807>{t:ol1<7?;{<13a?77827:=<49d:?255<1m279:k49f:?75a<4:27?=n4<2:?75g<4:27?=l4<2:?75<<4:27?=54<2:?763<4:27?>84<2:?761<4:27?>>4<2:?767<4:27?><4<2:?765<4:27?=k4<2:?75`<4:27?=:4<2:p6cc=83;?w0=?d;334>;69;0=h63>1085a>;5>l0<<63;1e805>;39j08=63;1c805>;39h08=63;18805>;39108=63;27805>;3:<08=63;25805>;3::08=63;23805>;3:808=63;21805>;39o08=63;1d805>;39>08=6s|2gf94?73s49;o7??0:?256<1l27:=?49e:?12`<1n27?=i4<0:?75f<4827?=o4<0:?75d<4827?=44<0:?75=<4827?>;4<0:?760<4827?>94<0:?766<4827?>?4<0:?764<4827?>=4<0:?75c<4827?=h4<0:?752<482wx>km50;37857j3;;<63>1585`>;69:0=i63=6e844>;39m09j63;1b81b>;39k09j63;1`81b>;39009j63;1981b>;3:?09j63;2481b>;3:=09j63;2281b>;3:;09j63;2081b>;3:909j63;1g81b>;39l09j63;1681b>{t:oh1<7?;{<13e?77827:=849d:?251<1m279:i49f:?75a<5m27?=n4=e:?75g<5m27?=l4=e:?75<<5m27?=54=e:?763<5m27?>84=e:?761<5m27?>>4=e:?767<5m27?><4=e:?765<5m27?=k4=e:?75`<5m27?=:4=e:p6cg=83;?w0=?9;334>;69?0=h63>1485a>;5>j0<<63;1e81`>;39j09h63;1c81`>;39h09h63;1881`>;39109h63;2781`>;3:<09h63;2581`>;3::09h63;2381`>;3:809h63;2181`>;39o09h63;1d81`>;39>09h6s|2g;94?73s49;47??0:?252<1l27:=;49e:?12f<1n27?=i4=c:?75f<5k27?=o4=c:?75d<5k27?=44=c:?75=<5k27?>;4=c:?760<5k27?>94=c:?766<5k27?>?4=c:?764<5k27?>=4=c:?75c<5k27?=h4=c:?752<5k2wx>k650;37857:3;;<63>1985`>;69>0=i63=6c85`>;39m09n63;1b81f>;39k09n63;1`81f>;39009n63;1981f>;3:?09n63;2481f>;3:=09n63;2281f>;3:;09n63;2081f>;3:909n63;1g81f>;39l09n63;1681f>{t:o81<7?<{<135?77827:=549e:?12g<1m27?=i4=5:?75f<5=27?=o4=5:?75d<5=27?=44=5:?75=<5=27?>;4=5:?760<5=27?>94=5:?766<5=27?>?4=5:?764<5=27?>=4=5:?75c<5=27?=h4=5:?752<5=2wx?<:50;0x964e2=301>?;:g;8yv5593:1>v3<2c8a0>;4:80m56s|33g94?4|5:8i6k74=20g>06<uz9:?7>52z?051<31278=>4i9:p7f4=83?p1>?;:43896b728:;70=ja;73?853l3<n70==0;4g?xu4:90;6?u23069555<5:8;6k74}r126?6=:r78=>4;9:?057<a12wx?n?50;7x96742<;01>mi:023?85b13?;70=;d;53?856n3<o7p}<1g83>7}:;891===4=23e>c?<uz9:h7>52z?057<31278=i4i9:p7fe=83?p1>?=:43896b>28:;70=i3;73?853k3<n70=>e;4g?xu49l0;6?u23009555<5:;n6k74}r12g?6=:r78=i4;9:?05f<a12wx?nl50;7x967c2<;01>j7:023?85a:3?;70=;c;53?855i3<o7p}<2`83>7}:;8n1===4=20b>c?<uz9:n7>52z?05f<31278=o4i9:p7fg=83?p1>?l:43896b028:;70=i1;73?853j3<n70==9;4g?xu4:00;6?u230a9555<5:826k74}r12e?6=:r78=o4;9:?05d<a12wx?n750;7x967e2<;01>j9:023?85a83?;70=;b;53?85503<o7p}<2983>7}:;8h1===4=20;>c?<uz9:57>52z?05d<31278=44i9:p7f>=83?p1>?n:43896b228:;70=jf;73?853i3<n70==7;4g?xu4:>0;6?u230c9555<5:8<6k74}r12<?6=:r78=44;9:?05=<a12wx?n950;7x967>2<;01>j;:023?85bm3?;70=;a;53?855>3<o7p}<2783>7}:;831===4=205>c?<uz9:;7>52z?05=<31278=:4i9:p7f0=83?p1>?7:43896b428:;70=jd;73?85313<n70==5;4g?xu4:<0;6?u230:9555<5:8>6k74}r122?6=:r78=:4;9:?053<a12wx?n;50;7x96702<;01>j=:023?85bk3?;70=;9;53?855<3<o7p}<2583>7}:;8=1===4=207>c?<uz9:97>52z?053<31278=84i9:p7f2=83?p1>?9:43896eb28:;70=j8;73?85303<n70==3;4g?xu4::0;6?u23049555<5:886k74}r125?6=:r78=84;9:?054<a12wx?n>50;7x96722<;01>mk:023?85b?3?;70=;8;53?855:3<o7p}<2383>7}:;8?1===4=201>c?<uz9<<7>52z?054<29278;<4i9:p77e=838p1><k:023?85493<o7p}<3383>7}:;;l18:523219b<=z{:9;6=4={<11b?373498=7h6;|q13<<72;q6>5?5489>6=6=n01v?66:18184?93;;?63=908e=>{t:091<7<t=3:2>c?<5;3=6;j4}r04<?6=:r794=4;9:?13c<a12wx>5650;0x97>728:870<60;d:?xu5?>0;6?u226d90<=::>o1j45rs3:4>5<5s48<j7??3:?1<c<a12wx>:850;0x971b2=301?9k:g;8yv4?>3:1>v3=7d8246=::1o1j45rs356>5<5s48<h7:6;<04g?`>3ty9484?:3y>62b=99901?6k:g;8yv40<3:1>v3=7b87=>;5?k0m56s|29694?4|5;=h6<><;<0;g?`>3ty9;>4?:3y>62d=<016>:o5f89~w7>42909w0<8b;337>;50k0m56s|29094?4|5;=j6<><;<0;e?`>3ty99l4?:3y>634=<016>;?5f89~w70f2909w0<92;337>;5?;0m56s|28094?4|5;<96k74=3;5>3`<uz8>57>52z?124<31279:=4i9:p63?=838p1?8>:020?84093l27p}=5983>7}::?:1845224d9b<=z{;<36=4={<054?77;279;=4i9:p601=838p1?;i:5;8973b2o30q~<97;296~;5=o0:<>5227d9b<=z{;?=6=4={<06a?2>348>h7h6;|q123<72;q6>8k51118970b2o30q~<:5;296~;5=m0?563=5b8e=>{t:??1<7<t=37g>464348=h7h6;|q111<72;q6>8m5489>60d=n01v?8;:181842k3;;?63=6b8e=>{t:?91<7<t=37a>464348=n7h6;|q011<72;q6?8l5489>70g=n01v>8=:181852j3;;?63<688e=>{t;?h1<7<t=27a>c?<5:<m6:>4}r167?6=:r789l4;9:?01<<a12wx?;?50;0x963f28:870=98;d:?xu4=;0;6?u234;90<=:;<21j45rs243>5<5s49>57??3:?022<a12wx?8?50;0x963?2=301>;8:g;8yv52n3:1>v3<598246=:;?<1j45rs273>5<5s49>;7:6;<162?`>3ty89h4?:3y>701=99901>8::g;8yv53n3:1>v3<5787=>;4=<0m56s|34f94?4|5:?=6<><;<150?`>3ty89n4?:3y>703=99901>8<:g;8yv5413:1>v3<4187=>;4;o0m56s|35594?4|5:>;6<><;<17a?`>3ty8:l4?:3y>716=n016?;h56g9~w65?2909w0=<f;6:?854m3l27p}<4783>7}:;:l1===4=26g>c?<uz98;7>52z?07`<31278?i4i9:p713=838p1>=j:020?853k3l27p}<3783>7}:;:n1845232a9b<=z{:>?6=4={<10`?77;2788o4i9:p763=838p1>=l:5;8965e2o30q~=;3;296~;4;j0:<>5235c9b<=z{:9?6=4={<10f?2>3498m7h6;|q007<72;q6?>l51118962>2o30q~=;1;296~;4;h0:<>5235:9b<=z{:=:6=4=8z?0ga<3?278oh4;7:?0`7<3?278h>4;7:?0`3<3?278h94;7:?0`0<3?278h44;7:?0`2<3?278h54;7:?0`4<3?278ok4;7:?0`5<3?278n;4;7:?0f0<3?278n:4;7:?0fc<3?278nh4;7:?0fa<3?278nn4;7:?0fd<3?278n44;7:?0fg<3?278n54;7:?0f1<3?278n>4;7:?0ag<3?278il4;7:?0a<<3?278j>4;7:?0b7<3?278j<4;7:?0b5<3?278ik4;7:?0a`<3?278ii4;7:?0af<3?278i54;7:?0a2<3?278;?4i9:p7d0=83>p1>mk:42896d428:;70=93;53?85?93<o7p}<a`83>1}:;jo19=523c69556<5:<86;k4=2:4>3b<uz9jn7>54z?0`7<28278n54>019>732=?916?5756e9~w6gd290?w0=k3;73?85e13;;<63<6585a>;40k0=h6s|3`d94?2|5:n=68>4=2``>467349=:79?;<1:5?0c3ty8mi4?:5y>7a2==916?oo5112896022>:01>6k:7f8yv5fm3:18v3<d4864>;4jk0:<=5237792`=:;1l1:i5rs2`1>5<3s49o57;?;<1ab?778278::49e:?0=2<1l2wx?o>50;6x96b02<:01>lk:023?851>3<n70=63;4g?xu4j80;69u23e:915=:;ko1==>4=244>26<5:3>6;j4}r1b=?6=<r78h<4:0:?0f2<68916?;756e9>7<e=>m1v>m<:18785c93;;<63<ec864>;4<l0=h63<2085`>{t;h=1<7:t=2ae>06<5:h>6<>?;<15<?173493?78k;|q0e=<72=q6?i>5519>7g0=99:01>87:7g896>22?n0q~=86;296~;4j?0><63<9`8e=>{t;>?1<7<t=2`6>06<5:326k74}r143?6=:r78n:4:0:?0=g<a12wx?:h50;0x96da2<:01>o::g;8yv50m3:1>v3<bd864>;4i=0m56s|36f94?4|5:ho68>4=2c0>c?<uz9<o7>52z?0ff<28278m?4i9:p72g=838p1>ln:42896g72o30q~=89;296~;4j00><63<9g8e=>{t;>h1<7<t=2`a>06<5:k:6k74}r14<?6=:r78n54:0:?0=`<a12wx?::50;0x96d32<:01>7k:g;8yv50;3:1>v3<b2864>;4110m56s|39694?4|5:3i6974=2:7>c?<uz92o7>52z?0=g<e<2785n4i9:p7=4=839p1>7n:5;896>32=301>6=:g;8yv5?=3:1?v3<9`8a0>;40=0:<>523979b<=z{:3=6=4<{<1:=?2>3493>7:6;<1:2?`>3ty84>4?:2y>7<?=j=16?5<5111896>42o30q~=64;297~;4i<0?563<9787=>;41=0m56s|38594?5|5:k>6o:4=2;5>4643492;7h6;|q0=7<72:q6?l:5489>7<2=<016?4<5f89~w6?22908w0=n4;`7?85><3;;?63<948e=>{t;0:1<7=t=2c0>1?<5:396974=2;3>c?<uz92?7>53z?0e6<e<2785?4>029>7<5=n01v>6j:18085f:3>270=60;6:?85?m3l27p}<9083>6}:;h81n9523829555<5:3:6k74}r1;g?6=;r78m<4;9:?0<`<312784n4i9:p7=`=839p1>o>:c6896>b28:870=7f;d:?xu40h0;6>u23`290<=:;1i1845239c9b<=z{:2o6=4<{<1b4?d33493o7??3:?0<a<a12wx?5650;1x96?a2=301>6n:5;896>?2o30q~=7b;297~;41o0i863<8`8246=:;1h1j45rs2:5>5<4s492i7:6;<1;<?2>3493:7h6;|q0<<<72:q6?4k5b59>7=>=99901>66:g;8yv5?83:1?v3<9e87=>;40?0?563<818e=>{t;1=1<7=t=2;g>g2<5:2=6<><;<1;3?`>3ty84<4?:2y>7<>=j=16?5>5111896>62o30q~=kc;2956}:;lk1==>4=00`>3b<588i6;k4=53g>61<5=;h6>94=53a>61<5=;j6>94=53:>61<5=;36>94=505>61<5=8>6>94=507>61<5=886>94=501>61<5=8:6>94=503>61<5=;m6>94=53f>61<5=;<6>94}r1gf?6=9:q6?h751128944c2?n01<<l:7g8917c2:?019?l:278917e2:?019?n:278917>2:?019?7:27891412:?019<::27891432:?019<<:27891452:?019<>:27891472:?019?i:278917b2:?019?8:278yv5b>3:1=>u23g19556<588n6;j4=00g>3c<5=;o69>4=53`>16<5=;i69>4=53b>16<5=;269>4=53;>16<5=8=69>4=506>16<5=8?69>4=500>16<5=8969>4=502>16<5=8;69>4=53e>16<5=;n69>4=534>16<uz9n97>512y>7c4=99:01<<i:7f8944b2?o019?k:2d8917d2:l019?m:2d8917f2:l019?6:2d8917?2:l019<9:2d891422:l019<;:2d891442:l019<=:2d891462:l019<?:2d8917a2:l019?j:2d891702:l0q~=j4;2956}:;o;1==>4=013>3b<588m6;k4=53g>6c<5=;h6>k4=53a>6c<5=;j6>k4=53:>6c<5=;36>k4=505>6c<5=8>6>k4=507>6c<5=886>k4=501>6c<5=8:6>k4=503>6c<5=;m6>k4=53f>6c<5=;<6>k4}r1f7?6=9:q6?k>5112894562?n01<=?:7g8917c2:n019?l:2f8917e2:n019?n:2f8917>2:n019?7:2f891412:n019<::2f891432:n019<<:2f891452:n019<>:2f891472:n019?i:2f8917b2:n019?8:2f8yv5b:3:1=>u23dd9556<58996;j4=012>3c<5=;o6>m4=53`>6e<5=;i6>m4=53b>6e<5=;26>m4=53;>6e<5=8=6>m4=506>6e<5=8?6>m4=500>6e<5=896>m4=502>6e<5=8;6>m4=53e>6e<5=;n6>m4=534>6e<uz9n=7>512y>7`c=99:01<=<:7f894552?o019?k:2`8917d2:h019?m:2`8917f2:h019?6:2`8917?2:h019<9:2`891422:h019<;:2`891442:h019<=:2`891462:h019<?:2`8917a2:h019?j:2`891702:h0q~=j0;2956}:;ln1==>4=017>3b<58986;k4=53g>6g<5=;h6>o4=53a>6g<5=;j6>o4=53:>6g<5=;36>o4=505>6g<5=8>6>o4=507>6g<5=886>o4=501>6g<5=8:6>o4=503>6g<5=;m6>o4=53f>6g<5=;<6>o4}r1gb?6=9:q6?hm5112894522?n01<=;:7g8917c2:3019?l:2;8917e2:3019?n:2;8917>2:3019?7:2;891412:3019<::2;891432:3019<<:2;891452:3019<>:2;891472:3019?i:2;8917b2:3019?8:2;8yv5cm3:1=>u23d:9556<589=6;j4=016>3c<5=;o6>64=53`>6><5=;i6>64=53b>6><5=;26>64=53;>6><5=8=6>64=506>6><5=8?6>64=500>6><5=896>64=502>6><5=8;6>64=53e>6><5=;n6>64=534>6><uz9om7>513y>7`1=99:01<=9:7g8917c2:>019?l:268917e2:>019?n:268917>2:>019?7:26891412:>019<::26891432:>019<<:26891452:>019<>:26891472:>019?i:268917b2:>019?8:268yv25?3:1>v3;07873>;3:10m56s|41794??|5=:=6<>?;<630?0c34>;?78k;<636?0c34>;=78k;<634?0c349mj78k;<1ea?0c349mh78k;|q0b1<7288p1>8i:7g896172o3019?k:565?826k3>?:63;1c8703=:<8k18984=53:>12134>:47:;6:?763<3<?168?;5454891432=>=70:=3;672>;3:;0?8;524339010<5=8;69:9;<62b?23>27?=h4;479>041=<=<0q~j9:181872n3<n70?:e;`6?xu6>90;6;u217092c=:9?=1;=521e3935=:9m<1;=521e6935=:9<o1j45rs52g>5<5s4>;878j;<62g?3f3ty?<h4?:3y>052=>o168<j55`9~w16e2909w0:?3;4f?826i3?j7p};0b83>7}:<991:k5240`91d=z{=;=6=4={<636?0b34>:47;n;|q74d<72;q68=<56g9>04?==h1v9?;:18182793<n70:=5;7b?xu39<0;6?u241392c=:<;<19l5rs531>5<5s4>;<78j;<617?3f3ty?=>4?:3y>056=>o168?:55`9~w1772909w0=if;4f?82593?j7p};1083>7}:;ol1:k5243091d=z{=:26=4={<1ea?0b34>:j7;n;|q74c<72;q6?kk56g9>076==h1v9>8:18185al3<n70:>7;7b?xu3810;6?u23gf92c=:<8o19l5rsb794?4|58n96k74=0f2>3c<uz;hj7>54z?25g<1m27:>=4i9:?25d<1m27:=449e:p`<<72;q6=<l5719>54e=j<1vk:50;0x947b2o301<?n:7f8yvc32908w0?>a;53?87613=;70?>c;d:?xua=3:1>v3>1885`>;69o0i96s|f783>7}:9m;1:k521769f0=z{j<1<7<t=0f5>3`<58<>6o;4}ra;>5<5s4;o878i;<352?d23tyo87>52z?25a<a127:=n480:p5a6=838p1<<n:7d894462o30q~j8:18187503=;70?=1;`6?xu4n00;64u23g79b<=:<8i1:?5240c927=:<821:?52437927=:<;91:?52433927=:<8l1:?52405927=z{:lh6=46{<1e<?`>34>:h78>;<62f?0634>:578>;<612?0634>9878>;<616?0634>9<78>;<62a?063ty8jo4?:8y>7c1=n0168<m5609>04g=>8168<65609>073=>8168?=5609>077=>8168<h5609>041=>81v>hn:18:85a>3l270:>d;41?826j3<970:>9;41?825>3<970:=4;41?825:3<970:=0;41?826m3<97ps|52494?4|V<9=70:;:415?!2393l?7p}:3d83>7}Y=:o019:552g8 1262o?0q~;=2;296~X2:;16894:239'017=n?1v9o?:181[2?827?87:70:&704<d=2wx84k50;0xZ11a34>?699i;%675?e03ty?5n4?:3y]02b<5=>18:j4$562>f><uz>2n7>52z\73f=:<=0?;n5+4539`4=z{=3j6=4={_64f>;3<3><n6*;408g0>{t<031<7<t^55b?8232==j7):;1;f6?xu3110;6?uQ46;8912=<>30(9:>:e48yv2>?3:1>vP;799>01<3?11/89?5d69~w1?12909wS:87:?70?20?2.?8<4k9:p0<3=838pR999;<67>1113->?=7jn;|q7=1<72;qU8:;4=569023<,=>:6il4}r6:7?6=:rT?;952458731=#<=;1hn5rs5;2>5<5sW><>63;4;646>"3<80oh6s|48294?4|V==:70:;:552?!2393nn7p};8g83>7}Y<>:019:54628 1262ml0q~:7e;296~X3>o16894;6g9'017=m91v96k:181[21m27?87:9e:&704<b92wx85m50;0xZ10c34>?698k;%675?c53ty?4o4?:3y]03e<5=>18;m4$562>`5<uz>3m7>52z\72g=:<=0?:o5+4539a0=z{=226=4={_65e>;3<3>=m6*;408f2>{t<121<7<t^54:?8232=<27):;1;g4?xu3i>0;6?uQ4948912=<1<0(9:>:d:8yv2f>3:1>vP;849>01<30<1/89?5e89~w1g22909wS:74:?70?2?<2.?8<4ja:p0d2=838pR96<;<67>1>43->?=7km;|q7e6<72;qU85<4=5690=4<,=>:6hm4}r6b6?6=:rT?4<524587<4=#<=;1ii5rs5c2>5<5sW><i63;4;64a>"3<80ni6s|48f94?4|V==870:;:550?!2393om7p};9383>7}Y<?2019:547:8 1262o:0q~:77;296~X3>>16894;669'017=n81v8:k:181[33l27?87;;d:&704<a:2wx9>:50;0xZ05334>?68=;;%675?`43ty?n54?:3y]0d`<5=>18lh4$562>f?<uz>i:7>52z\7e`=:<=0?mh5+4539gd=z{=h>6=4={_6b`>;3<3>jh6*;408`f>{t<k>1<7<t^5c`?8232=kh7):;1;a`?xu3j:0;6?uQ4``8912=<hh0(9:>:bf8yv2e:3:1>vP;a`9>01<3ih1/89?5cd9~w1d62909wS:n9:?70?2f12.?8<4lf:p0g6=838pR9o7;<67>1g?3->?=7j?;|q7g5<72;qU8n>4=5690f6<,=>:6i<4}r6ae?6=:rT?nl524587fd=#<=;1h>5rs5d4>5<5sW>m;63;4;6e3>"3<80o46srnd:0>5<5sA>?>6sae9694?4|@=>97p`j8483>7}O<=80qck76;296~N3<;1vbh68:181M23:2wei5650;0xL1253tdn444?:3yK014<ugo3m7>52zJ707=zfl2i6=4={I676>{im1i1<7<tH561?xhb0m0;6?uG4508ykc?m3:1>vF;439~j`>a2909wE:;2:ma<6=838pD9:=;|lf=4<72;qC89<4}og:6?6=:rB?8?5rnd;0>5<5sA>?>6sae8694?4|@=>97p`j9483>7}O<=80qck66;296~N3<;1vbh78:181M23:2wei4650;0xL1253tdn544?:3yK014<ugo2m7>52zJ707=zfl3i6=4={I676>{im0i1<7<tH561?xhb1m0;6?uG4508ykc>m3:1>vF;439~j`?a2909wE:;2:mad6=838pD9:=;|lfe4<72;qC89<4}ogb6?6=:rB?8?5rndc0>5<5sA>?>6sae`694?4|@=>97p`ja483>7}O<=80qckn6;296~N3<;1vbho8:181M23:2weil650;0xL1253tdnm44?:3yK014<ugojm7>52zJ707=zflki6=4={I676>{imhi1<7<tH561?xhbim0;6?uG4508ykcfm3:1>vF;439~j`ga2909wE:;2:mag6=838pD9:=;|lff4<72;qC89<4}oga6?6=:rB?8?5rnb:5>5<6sA>?>6sacc494?7|@=>97p`lb683>4}O<=80qcmm8;295~N3<;1vbnl6:182M23:2weooo50;3xL1253tdhno4?:0yK014<ugiio7>51zJ707=zfjho6=4>{I676>{ikko1<7?tH561?xhdjo0;6<uG4508yked83:1=vF;439~jfe6290:wE:;2:mgf4=83;pD9:=;|l`g6<728qC89<4}oa`0?6=9rB?8?5rnba6>5<6sA>?>6sacb494?7|@=>97p`lc683>4}O<=80qcml8;295~N3<;1vbnm6:182M23:2weono50;3xL1253tdhoo4?:0yK014<ugiho7>51zJ707=zfjio6=4>{I676>{ikjo1<7?tH561?xhdko0;6<uG4508ykec83:1=vF;439~jfb6290:wE:;2:mga4=83;pD9:=;|l``6<728qC89<4}oag0?6=9rB?8?5rnbf6>5<6sA>?>6sace494?7|@=>97p`ld683>4}O<=80qcmk8;295~N3<;1vbnj6:182M23:2weoio50;3xL1253tdhho4?:0yK014<ugioo7>51zJ707=zfjno6=4>{I676>{ikmo1<7?tH561?xhdlo0;6<uG4508ykeb83:1=vF;439~jfc6290:wE:;2:mg`4=83;pD9:=;|l`a6<728qC89<4}oaf0?6=9rB?8?5rnbg6>5<6sA>?>6sacd494?7|@=>97p`le683>4}O<=80qcmj8;295~N3<;1vbnk6:182M23:2weoho50;3xL1253tdhio4?:0yK014<ugino7>51zJ707=zfjoo6=4>{I676>{iklo1<7?tH561?xhdmo0;6<uG4508ykea83:1=vF;439~jf`6290:wE:;2:mgc4=83;pD9:=;|l`b6<728qC89<4}oae0?6=9rB?8?5rnbd6>5<6sA>?>6sacg494?7|@=>97p`lf683>4}O<=80qcmi8;295~N3<;1vbnh6:182M23:2weoko50;3xL1253tdhjo4?:0yK014<ugimo7>51zJ707=zfjlo6=4>{I676>{ikoo1<7?tH561?xhdno0;6<uG4508ykb783:1=vF;439~ja66290:wE:;2:m`54=83;pD9:=;|lg46<728qC89<4}of30?6=9rB?8?5rne26>5<6sA>?>6sad1494?7|@=>97p`k0683>4}O<=80qcj?8;295~N3<;1vbi>6:182M23:2weh=o50;3xL1253tdo<o4?:0yK014<ugn;o7>51zJ707=zfm:o6=4>{I676>{il9o1<7?tH561?xhc8o0;6<uG4508ykb683:1=vF;439~ja76290:wE:;2:m`44=83;pD9:=;|lg56<728qC89<4}of20?6=9rB?8?5rne36>5<6sA>?>6sad0494?7|@=>97p`k1683>4}O<=80qcj>8;295~N3<;1vbi?6:182M23:2weh<o50;3xL1253tdo=o4?:0yK014<ugn:o7>51zJ707=zfm;o6=4>{I676>{il8o1<7?tH561?xhc9o0;6<uG4508ykb583:1=vF;439~ja46290:wE:;2:m`74=83;pD9:=;|lg66<728qC89<4}of10?6=9rB?8?5rne06>5<6sA>?>6sad3494?7|@=>97p`k2683>4}O<=80qcj=8;295~N3<;1vbi<6:182M23:2weh?o50;3xL1253tdo>o4?:0yK014<ugn9o7>51zJ707=zfm8o6=4>{I676>{il;o1<7?tH561?xhc:o0;6<uG4508ykb483:1=vF;439~ja56290:wE:;2:m`64=83;pD9:=;|lg76<728qC89<4}of00?6=9rB?8?5rne16>5<6sA>?>6sad2494?7|@=>97p`k3683>4}O<=80qcj<8;295~N3<;1vbi=6:182M23:2weh>o50;3xL1253tdo?o4?:0yK014<ugn8o7>51zJ707=zfm9o6=4>{I676>{il:o1<7?tH561?xhc;o0;6<uG4508ykb383:1=vF;439~ja26290:wE:;2:m`14=83;pD9:=;|lg06<728qC89<4}of70?6=9rB?8?5rne66>5<6sA>?>6sad5494?7|@=>97p`k4683>4}O<=80qcj;8;295~N3<;1vbi:6:182M23:2weh9o50;3xL1253tdo8o4?:0yK014<ugn?o7>51zJ707=zfm>o6=4>{I676>{il=o1<7?tH561?xhc<o0;6<uG4508ykb283:1=vF;439~ja36290:wE:;2:m`04=83;pD9:=;|lg16<728qC89<4}of60?6=9rB?8?5rne76>5<6sA>?>6sad4494?7|@=>97p`k5683>4}O<=80qcj:8;295~N3<;1vbi;6:182M23:2weh8o50;3xL1253tdo9o4?:0yK014<ugn>o7>51zJ707=zfm?o6=4>{I676>{il<o1<7?tH561?xhc=o0;6<uG4508ykb183:1=vF;439~ja06290:wE:;2:m`34=83;pD9:=;|lg26<728qC89<4}of50?6=9rB?8?5rne46>5<6sA>?>6sad7494?7|@=>97p`k6683>4}O<=80qcj98;295~N3<;1vbi86:182M23:2weh;o50;3xL1253tdo:o4?:0yK014<ugn=o7>51zJ707=zfm<o6=4>{I676>{il?o1<7?tH561?xhc>o0;6<uG4508ykb083:1=vF;439~ja16290:wE:;2:m`24=83;pD9:=;|lg36<728qC89<4}of40?6=9rB?8?5rne56>5<6sA>?>6sad6494?7|@=>97p`k7683>4}O<=80qcj88;295~N3<;1vbi96:182M23:2weh:o50;3xL1253tdo;o4?:0yK014<ugn<o7>51zJ707=zfm=o6=4>{I676>{il>o1<7?tH561?xhc?o0;6<uG4508ykb?83:1=vF;439~ja>6290:wE:;2:m`=4=83;pD9:=;|lg<6<728qC89<4}of;0?6=9rB?8?5rne:6>5<6sA>?>6sad9494?7|@=>97p`k8683>4}O<=80qcj78;295~N3<;1vbi66:182M23:2weh5o50;3xL1253tdo4o4?:0yK014<ugn3o7>51zJ707=zfm2o6=4>{I676>{il1o1<7?tH561?xhc0o0;6<uG4508ykb>83:1=vF;439~ja?6290:wE:;2:m`<4=83;pD9:=;|lg=6<728qC89<4}of:0?6=9rB?8?5rne;6>5<6sA>?>6sad8494?7|@=>97p`k9683>4}O<=80qcj68;295~N3<;1vbi76:182M23:2weh4o50;3xL1253tdo5o4?:0yK014<ugn2o7>51zJ707=zfm3o6=4>{I676>{il0o1<7?tH561?xhc1o0;6<uG4508ykbf83:1=vF;439~jag6290:wE:;2:m`d4=83;pD9:=;|lge6<728qC89<4}ofb0?6=9rB?8?5rnec6>5<6sA>?>6sad`494?7|@=>97p`ka683>4}O<=80qcjn8;295~N3<;1vbio6:182M23:2wehlo50;3xL1253tdomo4?:0yK014<ugnjo7>51zJ707=zfmko6=4>{I676>{ilho1<7?tH561?xhcio0;6<uG4508ykbe83:1=vF;439~jad6290:wE:;2:m`g4=83;pD9:=;|lgf6<728qC89<4}ofa0?6=9rB?8?5rne`6>5<6sA>?>6sadc494?7|@=>97p`kb683>4}O<=80qcjm8;295~N3<;1vbil6:182M23:2wehoo50;3xL1253tdono4?:0yK014<ugnio7>51zJ707=zfmho6=4>{I676>{ilko1<7?tH561?xhcjo0;6<uG4508ykbd83:1=vF;439~jae6290:wE:;2:m`f4=83;pD9:=;|lgg6<728qC89<4}of`0?6=9rB?8?5rnea6>5<6sA>?>6sadb494?7|@=>97p`kc683>4}O<=80qcjl8;295~N3<;1vbim6:182M23:2wehno50;3xL1253tdooo4?:0yK014<ugnho7>51zJ707=zfmio6=4>{I676>{iljo1<7?tH561?xhcko0;6<uG4508ykbc83:1=vF;439~jab6290:wE:;2:m`a4=83;pD9:=;|lg`6<728qC89<4}ofg0?6=9rB?8?5rnef6>5<6sA>?>6sade494?7|@=>97p`kd683>4}O<=80qcjk8;295~N3<;1vbij6:182M23:2wehio50;3xL1253tdoho4?:0yK014<ugnoo7>51zJ707=zfmno6=4>{I676>{ilmo1<7?tH561?xhclo0;6<uG4508ykbb83:1=vF;439~jac6290:wE:;2:m``4=83;pD9:=;|lga6<728qC89<4}off0?6=9rB?8?5rneg6>5<6sA>?>6sadd494?7|@=>97p`ke683>4}O<=80qcjj8;295~N3<;1vbik6:182M23:2wehho50;3xL1253tdoio4?:0yK014<ugnno7>51zJ707=zfmoo6=4>{I676>{illo1<7?tH561?xhcmo0;6<uG4508ykba83:1=vF;439~ja`6290:wE:;2:m`c4=83;pD9:=;|lgb6<728qC89<4}ofe0?6=9rB?8?5rned6>5<6sA>?>6sadg494?7|@=>97p`kf683>4}O<=80qcji8;295~N3<;1vbih6:182M23:2wehko50;3xL1253tdojo4?:0yK014<ugnmo7>51zJ707=zfmlo6=4>{I676>{iloo1<7?tH561?xhcno0;6<uG4508ykc783:1=vF;439~j`66290:wE:;2:ma54=83;pD9:=;|lf46<728qC89<4}og30?6=9rB?8?5rnd26>5<6sA>?>6sae1494?7|@=>97p`j0683>4}O<=80qck?8;295~N3<;1vbh>6:182M23:2wei=o50;3xL1253tdn<o4?:0yK014<ugo;o7>51zJ707=zfl:o6=4>{I676>{im9o1<7?tH561?xhb8o0;6<uG4508ykc683:1=vF;439~j`76290:wE:;2:ma44=83;pD9:=;|lf56<728qC89<4}og20?6=9rB?8?5rnd36>5<6sA>?>6sae0494?7|@=>97p`j1683>4}O<=80qck>8;295~N3<;1vbh?6:182M23:2wei<o50;3xL1253tdn=o4?:0yK014<ugo:o7>51zJ707=zfl;o6=4>{I676>{im8o1<7?tH561?xhb9o0;6<uG4508ykc583:1=vF;439~j`46290:wE:;2:ma74=83;pD9:=;|lf66<728qC89<4}og10?6=9rB?8?5rnd06>5<6sA>?>6sae3494?7|@=>97p`j2683>4}O<=80qck=8;295~N3<;1vbh<6:182M23:2wei?o50;3xL1253tdn>o4?:0yK014<ugo9o7>51zJ707=zfl8o6=4>{I676>{im;o1<7?tH561?xhb:o0;6<uG4508ykc483:1=vF;439~j`56290:wE:;2:ma64=83;pD9:=;|lf76<728qC89<4}og00?6=9rB?8?5rnd16>5<6sA>?>6sae2494?7|@=>97p`j3683>4}O<=80qck<8;295~N3<;1vbh=6:182M23:2wei>o50;3xL1253tdn?o4?:0yK014<ugo8o7>51zJ707=zfl9o6=4>{I676>{im:o1<7?tH561?xhb;o0;6<uG4508ykc383:1=vF;439~j`26290:wE:;2:ma14=83;pD9:=;|lf06<728qC89<4}og70?6=9rB?8?5rnd66>5<6sA>?>6sae5494?7|@=>97p`j4683>4}O<=80qck;8;295~N3<;1vbh:6:182M23:2wei9o50;3xL1253tdn8o4?:0yK014<ugo?o7>51zJ707=zfl>o6=4>{I676>{im=o1<7?tH561?xhb<o0;6<uG4508ykc283:1=vF;439~j`36290:wE:;2:ma04=83;pD9:=;|lf16<728qC89<4}og60?6=9rB?8?5rnd76>5<6sA>?>6sae4494?7|@=>97p`j5683>4}O<=80qck:8;295~N3<;1vbh;6:182M23:2wei8o50;3xL1253tdn9o4?:0yK014<ugo>o7>51zJ707=zfl?o6=4>{I676>{im<o1<7?tH561?xhb=o0;6<uG4508ykc183:1=vF;439~j`06290:wE:;2:ma34=83;pD9:=;|lf26<728qC89<4}og50?6=9rB?8?5rnd46>5<6sA>?>6sae7494?7|@=>97p`j6683>4}O<=80qck98;295~N3<;1vbh86:182M23:2wei;o50;3xL1253tdn:o4?:0yK014<ugo=o7>51zJ707=zfl<o6=4>{I676>{im?o1<7?tH561?xhb>o0;6<uG4508ykc083:1=vF;439~j`16290:wE:;2:ma24=83;pD9:=;|lf36<728qC89<4}og40?6=9rB?8?5rnd56>5<6sA>?>6sae6494?7|@=>97p`j7683>4}O<=80qck88;295~N3<;1vbh96:182M23:2wei:o50;3xL1253tdn;o4?:0yK014<ugo<o7>51zJ707=zfl=o6=4>{I676>{im>o1<7?tH561?xhb?o0;6<uG4508ykc?83:1=vF;439~j`>6290:wE:;2:ma=4=83;pD9:=;|~yEFDs8:i=7k<10;e7g{GHKq;qMN_{|BC \ No newline at end of file diff --git a/ipcore_dir/fifo.sym b/ipcore_dir/fifo.sym new file mode 100644 index 0000000..410396c --- /dev/null +++ b/ipcore_dir/fifo.sym @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<symbol version="7" name="fifo"> + <symboltype>BLOCK</symboltype> + <timestamp>2013-11-14T16:1:28</timestamp> + <pin polarity="Input" x="0" y="80" name="din[31:0]" /> + <pin polarity="Input" x="0" y="144" name="wr_en" /> + <pin polarity="Input" x="0" y="176" name="wr_clk" /> + <pin polarity="Input" x="0" y="240" name="rd_en" /> + <pin polarity="Input" x="0" y="272" name="rd_clk" /> + <pin polarity="Input" x="144" y="800" name="rst" /> + <pin polarity="Output" x="576" y="80" name="dout[7:0]" /> + <pin polarity="Output" x="576" y="208" name="full" /> + <pin polarity="Output" x="576" y="272" name="prog_full" /> + <pin polarity="Output" x="576" y="432" name="empty" /> + <graph> + <text style="fontsize:40;fontname:Arial" x="32" y="32">fifo</text> + <rect width="512" x="32" y="32" height="736" /> + <line x2="32" y1="80" y2="80" style="linewidth:W" x1="0" /> + <attrtext style="fontsize:24;fontname:Arial" attrname="PinName" x="36" y="80" type="pin din[31:0]" /> + <line x2="32" y1="144" y2="144" x1="0" /> + <attrtext style="fontsize:24;fontname:Arial" attrname="PinName" x="36" y="144" type="pin wr_en" /> + <line x2="32" y1="176" y2="176" x1="0" /> + <attrtext style="fontsize:24;fontname:Arial" attrname="PinName" x="36" y="176" type="pin wr_clk" /> + <line x2="32" y1="240" y2="240" x1="0" /> + <attrtext style="fontsize:24;fontname:Arial" attrname="PinName" x="36" y="240" type="pin rd_en" /> + <line x2="32" y1="272" y2="272" x1="0" /> + <attrtext style="fontsize:24;fontname:Arial" attrname="PinName" x="36" y="272" type="pin rd_clk" /> + <line x2="144" y1="800" y2="768" x1="144" /> + <attrtext style="alignment:BCENTER;fontsize:24;fontname:Arial" attrname="PinName" x="144" y="764" type="pin rst" /> + <line x2="544" y1="80" y2="80" style="linewidth:W" x1="576" /> + <attrtext style="alignment:RIGHT;fontsize:24;fontname:Arial" attrname="PinName" x="540" y="80" type="pin dout[7:0]" /> + <line x2="544" y1="208" y2="208" x1="576" /> + <attrtext style="alignment:RIGHT;fontsize:24;fontname:Arial" attrname="PinName" x="540" y="208" type="pin full" /> + <line x2="544" y1="272" y2="272" x1="576" /> + <attrtext style="alignment:RIGHT;fontsize:24;fontname:Arial" attrname="PinName" x="540" y="272" type="pin prog_full" /> + <line x2="544" y1="432" y2="432" x1="576" /> + <attrtext style="alignment:RIGHT;fontsize:24;fontname:Arial" attrname="PinName" x="540" y="432" type="pin empty" /> + </graph> +</symbol> diff --git a/ipcore_dir/fifo.v b/ipcore_dir/fifo.v new file mode 100644 index 0000000..61e7146 --- /dev/null +++ b/ipcore_dir/fifo.v @@ -0,0 +1,175 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo.v when simulating +// the core, fifo. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + empty, + prog_full); + + +input rst; +input wr_clk; +input rd_clk; +input [31 : 0] din; +input wr_en; +input rd_en; +output [7 : 0] dout; +output full; +output empty; +output prog_full; + +// synthesis translate_off + + FIFO_GENERATOR_V6_2 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(13), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(32), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(8), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan3"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(0), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(0), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(1), + .C_PRELOAD_REGS(0), + .C_PRIM_FIFO_TYPE("8kx4"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(2), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(3), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(4096), + .C_PROG_FULL_THRESH_NEGATE_VAL(4095), + .C_PROG_FULL_TYPE(1), + .C_RD_DATA_COUNT_WIDTH(15), + .C_RD_DEPTH(32768), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(15), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(0), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(13), + .C_WR_DEPTH(8192), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(13), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .EMPTY(empty), + .PROG_FULL(prog_full), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .ALMOST_FULL(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .RD_DATA_COUNT(), + .WR_DATA_COUNT(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +// XST black box declaration +// box_type "black_box" +// synthesis attribute box_type of fifo is "black_box" + +endmodule + diff --git a/ipcore_dir/fifo.veo b/ipcore_dir/fifo.veo new file mode 100644 index 0000000..11483c5 --- /dev/null +++ b/ipcore_dir/fifo.veo @@ -0,0 +1,52 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [31 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [7 : 0] + .full(full), + .empty(empty), + .prog_full(prog_full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo.v when simulating +// the core, fifo. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/ipcore_dir/fifo.vhd b/ipcore_dir/fifo.vhd new file mode 100644 index 0000000..5826686 --- /dev/null +++ b/ipcore_dir/fifo.vhd @@ -0,0 +1,178 @@ +-------------------------------------------------------------------------------- +-- (c) Copyright 1995 - 2010 Xilinx, Inc. All rights reserved. -- +-- -- +-- This file contains confidential and proprietary information -- +-- of Xilinx, Inc. and is protected under U.S. and -- +-- international copyright and other intellectual property -- +-- laws. -- +-- -- +-- DISCLAIMER -- +-- This disclaimer is not a license and does not grant any -- +-- rights to the materials distributed herewith. Except as -- +-- otherwise provided in a valid license issued to you by -- +-- Xilinx, and to the maximum extent permitted by applicable -- +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND -- +-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES -- +-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING -- +-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- -- +-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and -- +-- (2) Xilinx shall not be liable (whether in contract or tort, -- +-- including negligence, or under any other theory of -- +-- liability) for any loss or damage of any kind or nature -- +-- related to, arising under or in connection with these -- +-- materials, including for any direct, or any indirect, -- +-- special, incidental, or consequential loss or damage -- +-- (including loss of data, profits, goodwill, or any type of -- +-- loss or damage suffered as a result of any action brought -- +-- by a third party) even if such damage or loss was -- +-- reasonably foreseeable or Xilinx had been advised of the -- +-- possibility of the same. -- +-- -- +-- CRITICAL APPLICATIONS -- +-- Xilinx products are not designed or intended to be fail- -- +-- safe, or for use in any application requiring fail-safe -- +-- performance, such as life-support or safety devices or -- +-- systems, Class III medical devices, nuclear facilities, -- +-- applications related to the deployment of airbags, or any -- +-- other applications that could lead to death, personal -- +-- injury, or severe property or environmental damage -- +-- (individually and collectively, "Critical -- +-- Applications"). Customer assumes the sole risk and -- +-- liability of any use of Xilinx products in Critical -- +-- Applications, subject only to applicable laws and -- +-- regulations governing limitations on product liability. -- +-- -- +-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS -- +-- PART OF THIS FILE AT ALL TIMES. -- +-------------------------------------------------------------------------------- + +-- Generated from component ID: xilinx.com:ip:fifo_generator:6.2 + + +-- You must compile the wrapper file fifo.vhd when simulating +-- the core, fifo. When compiling the wrapper file, be sure to +-- reference the XilinxCoreLib VHDL simulation library. For detailed +-- instructions, please refer to the "CORE Generator Help". + +-- The synthesis directives "translate_off/translate_on" specified +-- below are supported by Xilinx, Mentor Graphics and Synplicity +-- synthesis tools. Ensure they are correct for your synthesis tool(s). + +LIBRARY ieee; +USE ieee.std_logic_1164.ALL; +-- synthesis translate_off +Library XilinxCoreLib; +-- synthesis translate_on +ENTITY fifo IS + port ( + rst: in std_logic; + wr_clk: in std_logic; + rd_clk: in std_logic; + din: in std_logic_vector(31 downto 0); + wr_en: in std_logic; + rd_en: in std_logic; + dout: out std_logic_vector(7 downto 0); + full: out std_logic; + empty: out std_logic; + prog_full: out std_logic); +END fifo; + +ARCHITECTURE fifo_a OF fifo IS +-- synthesis translate_off +component wrapped_fifo + port ( + rst: in std_logic; + wr_clk: in std_logic; + rd_clk: in std_logic; + din: in std_logic_vector(31 downto 0); + wr_en: in std_logic; + rd_en: in std_logic; + dout: out std_logic_vector(7 downto 0); + full: out std_logic; + empty: out std_logic; + prog_full: out std_logic); +end component; + +-- Configuration specification + for all : wrapped_fifo use entity XilinxCoreLib.fifo_generator_v6_2(behavioral) + generic map( + c_has_int_clk => 0, + c_wr_response_latency => 1, + c_rd_freq => 1, + c_has_srst => 0, + c_enable_rst_sync => 1, + c_has_rd_data_count => 0, + c_din_width => 32, + c_has_wr_data_count => 0, + c_full_flags_rst_val => 1, + c_implementation_type => 2, + c_family => "spartan3", + c_use_embedded_reg => 0, + c_has_wr_rst => 0, + c_wr_freq => 1, + c_use_dout_rst => 1, + c_underflow_low => 0, + c_has_meminit_file => 0, + c_has_overflow => 0, + c_preload_latency => 1, + c_dout_width => 8, + c_msgon_val => 1, + c_rd_depth => 32768, + c_default_value => "BlankString", + c_mif_file_name => "BlankString", + c_error_injection_type => 0, + c_has_underflow => 0, + c_has_rd_rst => 0, + c_has_almost_full => 0, + c_has_rst => 1, + c_data_count_width => 13, + c_has_wr_ack => 0, + c_use_ecc => 0, + c_wr_ack_low => 0, + c_common_clock => 0, + c_rd_pntr_width => 15, + c_use_fwft_data_count => 0, + c_has_almost_empty => 0, + c_rd_data_count_width => 15, + c_enable_rlocs => 0, + c_wr_pntr_width => 13, + c_overflow_low => 0, + c_prog_empty_type => 0, + c_optimization_mode => 0, + c_wr_data_count_width => 13, + c_preload_regs => 0, + c_dout_rst_val => "0", + c_has_data_count => 0, + c_prog_full_thresh_negate_val => 4095, + c_wr_depth => 8192, + c_prog_empty_thresh_negate_val => 3, + c_prog_empty_thresh_assert_val => 2, + c_has_valid => 0, + c_init_wr_pntr_val => 0, + c_prog_full_thresh_assert_val => 4096, + c_use_fifo16_flags => 0, + c_has_backup => 0, + c_valid_low => 0, + c_prim_fifo_type => "8kx4", + c_count_type => 0, + c_prog_full_type => 1, + c_memory_type => 1); +-- synthesis translate_on +BEGIN +-- synthesis translate_off +U0 : wrapped_fifo + port map ( + rst => rst, + wr_clk => wr_clk, + rd_clk => rd_clk, + din => din, + wr_en => wr_en, + rd_en => rd_en, + dout => dout, + full => full, + empty => empty, + prog_full => prog_full); +-- synthesis translate_on + +END fifo_a; + diff --git a/ipcore_dir/fifo.vho b/ipcore_dir/fifo.vho new file mode 100644 index 0000000..218266f --- /dev/null +++ b/ipcore_dir/fifo.vho @@ -0,0 +1,97 @@ +-------------------------------------------------------------------------------- +-- (c) Copyright 1995 - 2010 Xilinx, Inc. All rights reserved. -- +-- -- +-- This file contains confidential and proprietary information -- +-- of Xilinx, Inc. and is protected under U.S. and -- +-- international copyright and other intellectual property -- +-- laws. -- +-- -- +-- DISCLAIMER -- +-- This disclaimer is not a license and does not grant any -- +-- rights to the materials distributed herewith. Except as -- +-- otherwise provided in a valid license issued to you by -- +-- Xilinx, and to the maximum extent permitted by applicable -- +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND -- +-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES -- +-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING -- +-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- -- +-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and -- +-- (2) Xilinx shall not be liable (whether in contract or tort, -- +-- including negligence, or under any other theory of -- +-- liability) for any loss or damage of any kind or nature -- +-- related to, arising under or in connection with these -- +-- materials, including for any direct, or any indirect, -- +-- special, incidental, or consequential loss or damage -- +-- (including loss of data, profits, goodwill, or any type of -- +-- loss or damage suffered as a result of any action brought -- +-- by a third party) even if such damage or loss was -- +-- reasonably foreseeable or Xilinx had been advised of the -- +-- possibility of the same. -- +-- -- +-- CRITICAL APPLICATIONS -- +-- Xilinx products are not designed or intended to be fail- -- +-- safe, or for use in any application requiring fail-safe -- +-- performance, such as life-support or safety devices or -- +-- systems, Class III medical devices, nuclear facilities, -- +-- applications related to the deployment of airbags, or any -- +-- other applications that could lead to death, personal -- +-- injury, or severe property or environmental damage -- +-- (individually and collectively, "Critical -- +-- Applications"). Customer assumes the sole risk and -- +-- liability of any use of Xilinx products in Critical -- +-- Applications, subject only to applicable laws and -- +-- regulations governing limitations on product liability. -- +-- -- +-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS -- +-- PART OF THIS FILE AT ALL TIMES. -- +-------------------------------------------------------------------------------- + +-- Generated from component ID: xilinx.com:ip:fifo_generator:6.2 + + +-- The following code must appear in the VHDL architecture header: + +------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG +component fifo + port ( + rst: in std_logic; + wr_clk: in std_logic; + rd_clk: in std_logic; + din: in std_logic_vector(31 downto 0); + wr_en: in std_logic; + rd_en: in std_logic; + dout: out std_logic_vector(7 downto 0); + full: out std_logic; + empty: out std_logic; + prog_full: out std_logic); +end component; + +-- Synplicity black box declaration +attribute syn_black_box : boolean; +attribute syn_black_box of fifo: component is true; + +-- COMP_TAG_END ------ End COMPONENT Declaration ------------ + +-- The following code must appear in the VHDL architecture +-- body. Substitute your own instance name and net names. + +------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG +your_instance_name : fifo + port map ( + rst => rst, + wr_clk => wr_clk, + rd_clk => rd_clk, + din => din, + wr_en => wr_en, + rd_en => rd_en, + dout => dout, + full => full, + empty => empty, + prog_full => prog_full); +-- INST_TAG_END ------ End INSTANTIATION Template ------------ + +-- You must compile the wrapper file fifo.vhd when simulating +-- the core, fifo. When compiling the wrapper file, be sure to +-- reference the XilinxCoreLib VHDL simulation library. For detailed +-- instructions, please refer to the "CORE Generator Help". + diff --git a/ipcore_dir/fifo.xco b/ipcore_dir/fifo.xco new file mode 100644 index 0000000..fde520f --- /dev/null +++ b/ipcore_dir/fifo.xco @@ -0,0 +1,91 @@ +############################################################## +# +# Xilinx Core Generator version 14.3 +# Date: Thu Nov 14 16:00:10 2013 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:fifo_generator:6.2 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc3s500e +SET devicefamily = spartan3e +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg320 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -4 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.2 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo +CSET data_count=false +CSET data_count_width=13 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=2 +CSET empty_threshold_negate_value=3 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=4096 +CSET full_threshold_negate_value=4095 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=32 +CSET input_depth=8192 +CSET output_data_width=8 +CSET output_depth=32768 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=Standard_FIFO +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=15 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=13 +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 90d0bfa6 diff --git a/ipcore_dir/fifo.xco.bak b/ipcore_dir/fifo.xco.bak new file mode 100644 index 0000000..9c23d2f --- /dev/null +++ b/ipcore_dir/fifo.xco.bak @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.2 +# Date: Mon May 28 18:27:00 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc3s500e +SET devicefamily = spartan3e +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg320 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -4 +SET verilogsim = true +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.2 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=true +CSET component_name=fifo +CSET data_count=false +CSET data_count_width=12 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=2 +CSET empty_threshold_negate_value=3 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=2048 +CSET full_threshold_negate_value=2047 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=32 +CSET input_depth=4096 +CSET output_data_width=8 +CSET output_depth=16384 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=Standard_FIFO +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=true +CSET read_data_count_width=14 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=true +CSET write_data_count_width=12 +# END Parameters +GENERATE +# CRC: 9f6cdb39 diff --git a/ipcore_dir/fifo.xise b/ipcore_dir/fifo.xise new file mode 100644 index 0000000..6b3fea5 --- /dev/null +++ b/ipcore_dir/fifo.xise @@ -0,0 +1,386 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="14.3" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="fifo.ngc" xil_pn:type="FILE_NGC"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/> + <association xil_pn:name="Implementation" xil_pn:seqID="2"/> + </file> + <file xil_pn:name="fifo.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="4"/> + <association xil_pn:name="Implementation" xil_pn:seqID="4"/> + <association xil_pn:name="PostMapSimulation" xil_pn:seqID="4"/> + <association xil_pn:name="PostRouteSimulation" xil_pn:seqID="4"/> + <association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="4"/> + </file> + </files> + + <properties> + <property xil_pn:name="AES Initial Vector virtex6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="AES Key (Hex String) virtex6" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Analysis Effort Level" xil_pn:value="Standard" xil_pn:valueState="default"/> + <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Top" xil_pn:value="false" xil_pn:valueState="non-default"/> + <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="BPI Reads Per Page" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="BPI Sync Mode" xil_pn:value="Disable" xil_pn:valueState="default"/> + <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bus Delimiter" xil_pn:value="<>" xil_pn:valueState="default"/> + <property xil_pn:name="CLB Pack Factor Percentage" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/> + <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Clk (Configuration Pins)" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Init" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin M0" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin M1" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin M2" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate" xil_pn:value="Default (1)" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate virtex5" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cycles for First BPI Page Read" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="DCI Update Mode" xil_pn:value="As Required" xil_pn:valueState="default"/> + <property xil_pn:name="DSP Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Decoder Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/> + <property xil_pn:name="Device" xil_pn:value="xc3s500e" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan3E" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Disable Detailed Package Model Insertion" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Disable JTAG Connection" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable External Master Clock" xil_pn:value="Disable" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Multi-Threading par virtex5" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Bitstream virtex6" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Encrypt Key Select virtex6" xil_pn:value="BBRAM" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Evaluation Development Board" xil_pn:value="None Specified" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Cost Tables Map virtex6" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="CCLK" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/> + <property xil_pn:name="Fallback Reconfiguration virtex7" xil_pn:value="Disable" xil_pn:valueState="default"/> + <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization map virtex5" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="HMAC Key (Hex String)" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/> + <property xil_pn:name="ICAP Select" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Stop View" xil_pn:value="Structural" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Architecture|fifo|fifo_a" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="fifo.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/fifo" xil_pn:valueState="non-default"/> + <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG to XADC Connection" xil_pn:value="Enable" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="LUT Combining Xst" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Launch SDK after Export" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Library for Verilog Sources" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Load glbl" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Logical Shifter Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Map Effort Level" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Max Fanout" xil_pn:value="100000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/> + <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="MultiBoot: Insert IPROG CMD in the Bitfile virtex7" xil_pn:value="Enable" xil_pn:valueState="default"/> + <property xil_pn:name="Multiplier Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Clock Buffers" xil_pn:value="32" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort virtex6" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Strategy (Cover Mode)" xil_pn:value="Area" xil_pn:valueState="default"/> + <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Other Bitgen Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Place & Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Output File Name" xil_pn:value="fifo" xil_pn:valueState="default"/> + <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Package" xil_pn:value="fg320" xil_pn:valueState="non-default"/> + <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Timing-Driven Packing and Placement" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Place & Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> + <property xil_pn:name="Place MultiBoot Settings into Bitstream virtex7" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level Map" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Extra Effort Map" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/> + <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="fifo_map.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="fifo_timesim.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="fifo_synthesis.v" xil_pn:valueState="default"/> + <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="fifo_translate.v" xil_pn:valueState="default"/> + <property xil_pn:name="Power Down Device if Over Safe Temperature" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Map virtex6" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Priority Encoder Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Project Generator" xil_pn:value="CoreGen" xil_pn:valueState="non-default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Reduce Control Sets" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/> + <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Map" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Register Ordering virtex6" xil_pn:value="4" xil_pn:valueState="default"/> + <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Reset DCM if SHUTDOWN & AGHIGH performed" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Revision Select" xil_pn:value="00" xil_pn:valueState="default"/> + <property xil_pn:name="Revision Select Tristate" xil_pn:value="Disable" xil_pn:valueState="default"/> + <property xil_pn:name="Router Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="SPI 32-bit Addressing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Set SPI Configuration Bus Width" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Minimum Size virtex6" xil_pn:value="2" xil_pn:valueState="default"/> + <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Packing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-4" xil_pn:valueState="non-default"/> + <property xil_pn:name="Starting Address for Fallback Configuration virtex7" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100)" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Par" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Map" xil_pn:value="Non Timing Driven" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/> + <property xil_pn:name="Use 64-bit PlanAhead on 64-bit Systems" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Clock Enable" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use DSP Block" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use SPI Falling Edge" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Set" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="User Access Register Value" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/> + <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DCI Match (Output Events) virtex5" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DLL Lock (Output Events)" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for PLL Lock (Output Events) virtex6" xil_pn:value="No Wait" xil_pn:valueState="default"/> + <property xil_pn:name="Watchdog Timer Mode 7-series" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Watchdog Timer Value 7-series" xil_pn:value="0x00000000" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="default"/> + <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="XOR Collapsing" xil_pn:value="true" xil_pn:valueState="default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_DesignName" xil_pn:value="fifo" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan3e" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PreSynthesis" xil_pn:value="PreSynthesis" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2013-11-14T13:01:32" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="53468C5E4BE340C8CFB2C65918BD7686" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/ipcore_dir/fifo_flist.txt b/ipcore_dir/fifo_flist.txt new file mode 100644 index 0000000..9434e50 --- /dev/null +++ b/ipcore_dir/fifo_flist.txt @@ -0,0 +1,14 @@ +# Output products list for <fifo> +_xmsgs/pn_parser.xmsgs +fifo.asy +fifo.gise +fifo.ngc +fifo.sym +fifo.vhd +fifo.vho +fifo.xco +fifo.xise +fifo_flist.txt +fifo_generator_readme.txt +fifo_generator_ug175.pdf +fifo_xmdf.tcl diff --git a/ipcore_dir/fifo_generator_readme.txt b/ipcore_dir/fifo_generator_readme.txt new file mode 100644 index 0000000..2673d68 --- /dev/null +++ b/ipcore_dir/fifo_generator_readme.txt @@ -0,0 +1,165 @@ + Core Name: Xilinx LogiCORE FIFO Generator + Version: 6.2 + Release Date: July 23, 2010 + + +================================================================================ + +This document contains the following sections: + +1. Introduction +2. New Features +3. Supported Devices +4. Resolved Issues +5. Known Issues +6. Technical Support +7. Core Release History +8. Legal Disclaimer + +================================================================================ + +1. INTRODUCTION + +For the most recent updates to the IP installation instructions for this core, +please go to: + + http://www.xilinx.com/products/ipcenter/FIFO_Generator.htm + + +For system requirements: + + http://www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm + + +This file contains release notes for the Xilinx LogiCORE IP FIFO Generator v6.2 +solution. For the latest core updates, see the product page at: + + http://www.xilinx.com/products/ipcenter/FIFO_Generator.htm + + +2. NEW FEATURES + + - ISE 12.2 software support + +3. SUPPORTED DEVICES + + - SPARTAN-3, SPARTAN-3 XA, SPARTAN-3E SPARTAN-3E XA, SPARTAN-3A, SPARTAN-3A XA, SPARTAN-3ADSP, SPARTAN-3ADSP XA + - SPARTAN-6, SPARTAN-6 XA, SPARTAN-6L and QSPARTAN-6 + - VIRTEX-4 + - VIRTEX-5 and QVIRTEX-5 + - VIRTEX-6, VIRTEX-6L and QVIRTEX-6 + +4. RESOLVED ISSUES + + - In the FIFO Generator core, PROG_FULL does not assert when set to maximum threshold value. + - Version fixed: v6.2 + - CR 553279 + + - In the FIFO Generator verilog behavioral model, PROG_EMPTY does not assert/de-assert when the threshold + value is passed through parameter. + - Version fixed: v6.2 + - CR 549673 + + - In the FIFO Generator GUI, read width is reset to write width when the component name is change. + - Version fixed: v6.2 + - CR 563827 + +5. KNOWN ISSUES + + The following are known issues for v6.2 of this core at time of release: + + - In the FIFO generator GUI, after importing an XCO file (Independent clock, distributed memory configuration) + into a Virtex-4 coregen project, if the FIFO type is changed to "Independent Clocks, Built-in FIFO" in page 1, + page 2 does not correctly offer the Read Clock Frequency and Write Clock Frequency options as it should. + - CR 467240 + - AR 31379 + + The most recent information, including known issues, workarounds, and + resolutions for this version is provided in the IP Release Notes User Guide + located at + + www.xilinx.com/support/documentation/user_guides/xtp025.pdf + + +6. TECHNICAL SUPPORT + + To obtain technical support, create a WebCase at www.xilinx.com/support. + Questions are routed to a team with expertise using this product. + + Xilinx provides technical support for use of this product when used + according to the guidelines described in the core documentation, and + cannot guarantee timing, functionality, or support of this product for + designs that do not follow specified guidelines. + +7. CORE RELEASE HISTORY + +Date By Version Description +================================================================================ +07/23/2010 Xilinx, Inc. 6.2 ISE 12.2 support +04/19/2010 Xilinx, Inc. 6.1 ISE 12.1 support +12/02/2009 Xilinx, Inc. 5.3 rev 1 ISE 11.4 support; Spartan-6 Low Power and Automotive Spartan-6 Device support +09/16/2009 Xilinx, Inc. 5.3 Update to add 11.3; Virtex-6 Low Power and Virtex-6 HXT Device support +06/24/2009 Xilinx, Inc. 5.2 Update to add 11.2 and Virtex-6 CXT device support +04/24/2009 Xilinx, Inc. 5.1 Update to add 11.1 and Virtex-6 and Spartan-6 device support +09/19/2008 Xilinx, Inc. 4.4 Update to add 10.1 SP3 and Virtex-5 TXT device support and miscellaneous bug fixes +03/24/2008 Xilinx, Inc. 4.3 Update to add 10.1 support and miscellaneous bug fixes +10/03/2007 Xilinx, Inc. 4.2 Support for FWFT for Block RAM and Distributed RAM Common Clock FIFOs +08/08/2007 Xilinx, Inc. 4.1 Update to add 9.2i support; Revised to v4.1; ECC support for block RAM FIFO +04/02/2007 Xilinx, Inc. 3.3 Update to add 9.1i support; Revised to v3.3; Spartan-3A and Spartan-3A DSP support; ECC support +09/21/2006 Xilinx, Inc. 3.2 Revised to v3.2; Spartan-3 and Virtex-4 automotive device support +07/13/2006 Xilinx, Inc. 3.1 Update to add 8.2i support; Revised to v3.1; Virtex-5 support +01/11/2006 Xilinx, Inc. 2.3 Update to add 8.1i support; Revised to v2.3 +08/31/2005 Xilinx, Inc. 2.2 Update to add 7.1i SP4 support; Revised to v2.2 +04/28/2005 Xilinx, Inc. 2.1 Update to add 7.1i SP1 support; Revised to v2.1 +11/04/2004 Xilinx, Inc. 2.0 Update to add 6.3i support; Revised to v2.0 +05/21/2004 Xilinx, Inc. 1.1 Revised to v1.1; Virtex-4 support +04/23/2004 Xilinx, Inc. 1.0 Update to add 6.2i support; First release +================================================================================ + +8. Legal Disclaimer + + (c) Copyright 2002 - 2010 Xilinx, Inc. All rights reserved. + + This file contains confidential and proprietary information + of Xilinx, Inc. and is protected under U.S. and + international copyright and other intellectual property + laws. + + DISCLAIMER + This disclaimer is not a license and does not grant any + rights to the materials distributed herewith. Except as + otherwise provided in a valid license issued to you by + Xilinx, and to the maximum extent permitted by applicable + law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND + WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES + AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING + BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- + INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and + (2) Xilinx shall not be liable (whether in contract or tort, + including negligence, or under any other theory of + liability) for any loss or damage of any kind or nature + related to, arising under or in connection with these + materials, including for any direct, or any indirect, + special, incidental, or consequential loss or damage + (including loss of data, profits, goodwill, or any type of + loss or damage suffered as a result of any action brought + by a third party) even if such damage or loss was + reasonably foreseeable or Xilinx had been advised of the + possibility of the same. + + CRITICAL APPLICATIONS + Xilinx products are not designed or intended to be fail- + safe, or for use in any application requiring fail-safe + performance, such as life-support or safety devices or + systems, Class III medical devices, nuclear facilities, + applications related to the deployment of airbags, or any + other applications that could lead to death, personal + injury, or severe property or environmental damage + (individually and collectively, "Critical + Applications"). Customer assumes the sole risk and + liability of any use of Xilinx products in Critical + Applications, subject only to applicable laws and + regulations governing limitations on product liability. + + THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS + PART OF THIS FILE AT ALL TIMES. diff --git a/ipcore_dir/fifo_generator_ug175.pdf b/ipcore_dir/fifo_generator_ug175.pdf new file mode 100644 index 0000000000000000000000000000000000000000..41d1edbd8e617b19b88fd40792b80b94904b81f8 GIT binary patch literal 8003 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject new file mode 100755 index 0000000000000000000000000000000000000000..f325f8ad31f569ea0dbfc584ce7227a9d1e67199 GIT binary patch literal 251 zcmb7<OAY`b2t%vL=>0FO1+_aD(?odTQzB3+_~sF)5`khPRagl&*llIq(X{5GPt-+2 Xv>iQC+CKva<bJnb`PZz)ZT<xdpCNzQ literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl new file mode 100755 index 0000000000000000000000000000000000000000..14d34bff2da4a444695bf6838581669318506506 GIT binary patch literal 88 zcmZQz00RyNP6i_e0|x!H%(VRY(&D7}%ru6O;CR=F07pL;R~Hc5Ey&T`*+0xR2*M3; YboPd@g8V~6Agtg>zYq`CV9#I%0At=2@&Et; literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ new file mode 100755 index 0000000000000000000000000000000000000000..0af2e0ddbb594ee08a576c7a21623f95b7aee5eb GIT binary patch literal 60 VcmZQzU}9vz4K$!qRt#8F0RRd{0A~OI literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl new file mode 100755 index 0000000000000000000000000000000000000000..8947873d0af86aefd32bad2f1c40d57033091203 GIT binary patch literal 27 XcmZQzU}9nb;{Q;<00fL6f`JhLd|L<u literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl new file mode 100755 index 0000000000000000000000000000000000000000..bb5db76f3ae2c75d892380f4fc856a72878db7a3 GIT binary patch literal 3817 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main new file mode 100755 index 0000000000000000000000000000000000000000..336370f8091a49f5e89f82fedc83a9ed04bd24ac GIT binary patch literal 25 VcmZQzU}9nb;{Q;<00ev>0sw562oC@N literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl new file mode 100755 index 0000000000000000000000000000000000000000..359501c5e254de720bb0edd97879dcdaa4c50d01 GIT binary patch literal 10 NcmZQz00RyN1^@se00{s9 literal 0 HcmV?d00001 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys new file mode 100755 index 0000000..e69de29 diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys new file mode 100755 index 0000000..0da60f5 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys @@ -0,0 +1,24 @@ +CommandLine-Map + +s +CommandLine-Ngdbuild + +s +CommandLine-Par + +s +CommandLine-Xst + +s +Previous-NGD + +s +Previous-NGM + +s +Previous-Packed-NCD + +s +Previous-Routed-NCD + +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys new file mode 100755 index 0000000..4bd7af1 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys @@ -0,0 +1,3 @@ +ISE_VERSION_LAST_SAVED_WITH +11.1 +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys new file mode 100755 index 0000000..e601c65 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys @@ -0,0 +1,6 @@ +ISE_VERSION_LAST_SAVED_WITH +11.1 +s +XISE_FILE +fifo_usb_if.xise +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys new file mode 100755 index 0000000..87cda85 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/XSLTProcess.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys new file mode 100755 index 0000000..cc20273 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys @@ -0,0 +1,21 @@ +ISE_VERSION_CREATED_WITH +11.1 +s +ISE_VERSION_LAST_SAVED_WITH +11.1 +s +LastRepoDir +/home/user/Desktop/Exercises/ex3/cores/ +s +OBJSTORE_VERSION +1.3 +s +PROJECT_CREATION_TIMESTAMP +2010-01-08T17:34:04 +s +REGISTRY_VERSION +1.1 +s +REPOSITORY_VERSION +1.1 +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys new file mode 100755 index 0000000..949818c --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/bitgen.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys new file mode 100755 index 0000000..dae1ec7 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/bitinit.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/common/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/common/regkeys new file mode 100755 index 0000000..74ed1c7 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/common/regkeys @@ -0,0 +1,15 @@ +IncrementalMessagingEnabled +false +s +MessageCaptureEnabled +true +s +MessageFilterFile +filter.filter +s +MessageFilteringEnabled +false +s +RunOnce +#/PnAutoRun/Scripts/RunOnce_tcl +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys new file mode 100755 index 0000000..f3969b3 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/cpldfit.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys new file mode 100755 index 0000000..7e5b4bb --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/dumpngdio.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/fuse/regkeys new file mode 100755 index 0000000..77fa32d --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/fuse/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/fuse.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys new file mode 100755 index 0000000..e654ecd --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/hprep6.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/idem/regkeys new file mode 100755 index 0000000..7b9c321 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/idem/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/idem.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/libgen/regkeys new file mode 100755 index 0000000..a2612da --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/libgen/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/libgen.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/map/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/map/regkeys new file mode 100755 index 0000000..447e64c --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/map/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/map.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/netgen/regkeys new file mode 100755 index 0000000..b15e57f --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/netgen/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/netgen.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys new file mode 100755 index 0000000..2cb66e4 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/ngc2edif.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys new file mode 100755 index 0000000..af67ad1 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/ngcbuild.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys new file mode 100755 index 0000000..47ac460 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/ngdbuild.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/par/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/par/regkeys new file mode 100755 index 0000000..17ae8fb --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/par/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/par.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/platgen/regkeys new file mode 100755 index 0000000..d4497d2 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/platgen/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/platgen.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/runner/regkeys new file mode 100755 index 0000000..d5e13d0 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/runner/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/runner.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/simgen/regkeys new file mode 100755 index 0000000..e12ea38 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/simgen/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/simgen.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/taengine/regkeys new file mode 100755 index 0000000..fc0b038 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/taengine/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/taengine.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/trce/regkeys new file mode 100755 index 0000000..cffe0cf --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/trce/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/trce.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/tsim/regkeys new file mode 100755 index 0000000..52a3e8b --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/tsim/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/tsim.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys new file mode 100755 index 0000000..2d5cd6a --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/vhpcomp.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys new file mode 100755 index 0000000..9a5c2fa --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/vlogcomp.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys new file mode 100755 index 0000000..c3f895c --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/xpwr.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xst/regkeys new file mode 100755 index 0000000..5b1ae90 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/__REGISTRY__/xst/regkeys @@ -0,0 +1,3 @@ +ClientMessageOutputFile +_xmsgs/xst.xmsgs +s diff --git a/ipcore_dir/fifo_usb_if_xdb/tmp/ise/version b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/version new file mode 100755 index 0000000..eec4d22 --- /dev/null +++ b/ipcore_dir/fifo_usb_if_xdb/tmp/ise/version @@ -0,0 +1,10 @@ +REPOSITORY_VERSION +1.1 +REGISTRY_VERSION +1.1 +OBJSTORE_VERSION +1.3 +ISE_VERSION_CREATED_WITH +11.1 +ISE_VERSION_LAST_SAVED_WITH +11.1 diff --git a/ipcore_dir/fifo_xmdf.tcl b/ipcore_dir/fifo_xmdf.tcl new file mode 100644 index 0000000..2667b57 --- /dev/null +++ b/ipcore_dir/fifo_xmdf.tcl @@ -0,0 +1,79 @@ +# The package naming convention is <core_name>_xmdf +package provide fifo_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is <core_name>_xmdf +namespace eval ::fifo_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xmdf::xmdfInit { instance } { +# Variable containing name of library into which module is compiled +# Recommendation: <module_name> +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo +} +# ::fifo_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.asy +utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.sym +utilities_xmdf::xmdfSetData $instance FileSet $fcount type symbol +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.vhd +utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.vho +utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_readme.txt +utilities_xmdf::xmdfSetData $instance FileSet $fcount type text +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/ipcore_dir/iseconfig/fifo_usb_if.projectmgr b/ipcore_dir/iseconfig/fifo_usb_if.projectmgr new file mode 100755 index 0000000..158f41f --- /dev/null +++ b/ipcore_dir/iseconfig/fifo_usb_if.projectmgr @@ -0,0 +1,103 @@ +<?xml version='1.0' encoding='utf-8'?> +<!--This is an ISE project configuration file.--> +<!--It holds project specific layout data for the projectmgr plugin.--> +<!--Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved.--> +<Project version="1" owner="projectmgr" name="fifo_usb_if" > + <!--This is an ISE project configuration file.--> + <ItemView engineview="SynthesisOnly" guiview="Source" compilemode="AutoCompile" > + <ClosedNodes/> + <SelectedItems> + <SelectedItem>fifo_usb_if - fifo_usb_if_a (E:/Ejemplos_VHDL/Exercises/ex3/cores/fifo_usb_if.vhd)</SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000001fd000000020000000000000000000000000000000064ffffffff000000810000000000000002000001fd0000000100000000000000000000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>fifo_usb_if - fifo_usb_if_a (E:/Ejemplos_VHDL/Exercises/ex3/cores/fifo_usb_if.vhd)</CurrentItem> + </ItemView> + <ItemView engineview="SynthesisOnly" sourcetype="DESUT_NGC" guiview="Process" > + <ClosedNodes/> + <SelectedItems> + <SelectedItem>Add Existing Source</SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>Add Existing Source</CurrentItem> + </ItemView> + <ItemView guiview="File" > + <ClosedNodes/> + <SelectedItems/> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff0000000000000001000000000000000001000000000000000000000000000000000000028e000000040101000100000000000000000000000064ffffffff000000810000000000000004000001240000000100000000000000440000000100000000000000660000000100000000000000c00000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>E:\Ejemplos_VHDL\Exercises\ex3\cores\fifo_usb_if.ngc</CurrentItem> + </ItemView> + <ItemView guiview="Library" > + <ClosedNodes> + <ClosedNode>work</ClosedNode> + </ClosedNodes> + <SelectedItems/> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000000000000010000000000000000000000000000000000000109000000010001000100000000000000000000000064ffffffff000000810000000000000001000001090000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>work</CurrentItem> + </ItemView> + <ItemView engineview="SynthesisOnly" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" > + <ClosedNodes> + <ClosedNode>Configure Target Device</ClosedNode> + <ClosedNode>Design Utilities</ClosedNode> + <ClosedNode>Implement Design</ClosedNode> + <ClosedNode>Synthesize - XST</ClosedNode> + <ClosedNode>User Constraints</ClosedNode> + </ClosedNodes> + <SelectedItems> + <SelectedItem>Add Existing Source</SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000064000000010000000100000000000000000000000064ffffffff000000810000000000000001000000640000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>Add Existing Source</CurrentItem> + </ItemView> + <SourceProcessView>000000ff00000000000000020000011b0000011b01000000050100000002</SourceProcessView> + <CurrentView>Behavioral Simulation</CurrentView> + <ItemView engineview="BehavioralSim" guiview="Source" compilemode="AutoCompile" > + <ClosedNodes/> + <SelectedItems> + <SelectedItem>fifo_usb_if - fifo_usb_if_a (E:/Ejemplos_VHDL/Exercises/ex3/cores/fifo_usb_if.vhd)</SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff0000000000000001000000010000000000000000000000000000000002020000000100000001000000640000023c000000020000000000000000000000000000000064ffffffff0000008100000000000000020000023c0000000100000000000000000000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>fifo_usb_if - fifo_usb_if_a (E:/Ejemplos_VHDL/Exercises/ex3/cores/fifo_usb_if.vhd)</CurrentItem> + </ItemView> + <ItemView engineview="BehavioralSim" sourcetype="" guiview="Process" > + <ClosedNodes> + <ClosedNode>Design Utilities</ClosedNode> + </ClosedNodes> + <SelectedItems> + <SelectedItem></SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000127000000010000000100000000000000000000000064ffffffff000000810000000000000001000001270000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem></CurrentItem> + </ItemView> + <ItemView engineview="BehavioralSim" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" > + <ClosedNodes/> + <SelectedItems> + <SelectedItem>Behavioral Check Syntax</SelectedItem> + </SelectedItems> + <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> + <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> + <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000000000000000000127000000010000000100000000000000000000000064ffffffff000000810000000000000001000001270000000100000000</ViewHeaderState> + <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> + <CurrentItem>Behavioral Check Syntax</CurrentItem> + </ItemView> +</Project> diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/ISimEngine-DesignHierarchy.dbg b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/ISimEngine-DesignHierarchy.dbg new file mode 100755 index 0000000000000000000000000000000000000000..15682cd04ef3e924a9d1dbeb9953b647b6e6c91c GIT binary patch literal 35628 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/fifo_usb_if_isim_beh.exe b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/fifo_usb_if_isim_beh.exe new file mode 100755 index 0000000000000000000000000000000000000000..7d74ba36a38b096e2ac566830b20751306a04a49 GIT binary patch literal 303008 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π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ʬ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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimcrash.log b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimcrash.log new file mode 100755 index 0000000..e69de29 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimkernel.log b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimkernel.log new file mode 100755 index 0000000..8f7b352 --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/isimkernel.log @@ -0,0 +1,29 @@ +Command line: + fifo_usb_if_isim_beh.exe + -simmode gui + -simrunnum 0 + -socket 49568 + +Tue Sep 14 09:07:55 2010 + + + Elaboration Time: 0.0624 sec + + Current Memory Usage: 497.521 Meg + + Total Signals : 194 + Total Nets : 346 + Total Signal Drivers : 79 + Total Blocks : 25 + Total Primitive Blocks : 19 + Total Processes : 60 + Total Traceable Variables : 126 + Total Scalar Nets and Variables : 870 +Total Line Count : 254 + + Total Simulation Time: 0.0624 sec + + Current Memory Usage: 497.521 Meg + +Tue Sep 14 09:08:08 2010 + diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/libPortability.dll b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/libPortability.dll new file mode 100755 index 0000000000000000000000000000000000000000..680995e573d8e7ea2780bf0ba61288d0fa53add2 GIT binary patch literal 1033728 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"$@)kis%Q}1u z&C-4dLqpPb81ah95Dn7%0E@o`e*w+;>ZhmS*)|DU_erXmqv=y<P~tBKTK-Ufb*n6C zpmxh1$n}w<)j8Y@V=e=0s6TSojJMBljqkHPYUNZTD*?vp#oW~7$so_|LYD^Uk}@tc zW9kvPSuzPxeH0CYT9P|E+LmH-M_=+2hO(Xe4eaYi;E${IT?lZT@91j%CvK{i8nJB* zVnE<R!#V^ntWJH-B3^|3<ZA-fEd|z9IRWd^+<<jeUckCBKVSt51D1b~>#lRa{~_zl z&Hh=7{D*ghDptE%Yw#+_^ILku75@rWEDl%n22C6$fW7lU6JHUC;97wl5&<~H8Iwon zxPHbCpbp%I02oA6KrYK_9|u&-#>!*TAjnsIZSJeDV7neuwbnnTvog=H@+(qr#^hDj z<OHq!gYYJ31rDZ*ggFCapwIJF{wUn$1lntIUGs~OFlJI7-uuUNw@=E`Sy5+AJ~AGX zuCyk<vZes9M&gw$dRf-UTg>8xe20C1V<vswK4~Yb7}IH(MIQ7GRO<|SUumy_-=N6j znsG9wm=LD17LqHjl;AG_QrMw=1z>v}U>gN&ZwG9{1p%wJ5C>_xVuuly0!TnHT=99h zVtcq^Sr{-v++Yhz+xC#EwLx>yB&+B^bSRY9$(~f^guIKJhtyz=bl{*dIk25s`A6e} zTg|0_qXuHln81NKV{&TRaXHP(Ka{EaW~bIv1`f<cnv~2=%Vk;~(vBZkE{|#XNE<sa zEuU!xNE@7)Ry3w&Oz6OZn#$0D82aMo{WzqKjE)wv*dQ)GIc^xporKVgT!AYzQ#v&b zssoq>WRu2iu>FC!>h%UF(9~40Omag;l5y-S__qvPNEzU!3%Z=q(Zb3I6I7Tff{5=X z>#R$%&MMr{A?>Wi7Y@KcVeH7i>oVbn^T7>^W19wrD%QDLc>q1bWf978g2(@2A^IM& zE-k=xAM)hD0+^3oHMmV6+{%-S+p|17NZZ|hYXWQ?FFB2`wjk3n{`Qb(D-!~qZGId+ zwasrXv6DcEov3apUvEW8R1)xPVSzqWlE}{0&0Kx{F-xV@FPZBr<l32?OX?zHAn9u) zF`IP5ZtE4+vL#u|=S=<*S$Ck)&e|~{&o-2)9RsUO{xMZ+YmxU0bP*S3+U}1n;i!W6 z)QNTdHgJ>V33)zeLue9}eIY|0(;4>mve@UY8Ox!fh0GHmj|fWdTg0~06$=8o^rPUU zwSur^<c7Sfnhymq0wW6ntjfU1K@c&hSJ#I}REKw#4_g4cnnw`}BMX=_G!nd=%2vp1 zAj2-ZvV2`xfly>BR{?WDH25Idla=M^%JMTR%V#zS72nQuwp^VJ;wM#G9<${k+t=xA zIXWApS1MaBv*jY&j#Rd??K)ddMmBhn0wW;-Ry7Y5a0~)4m=6a?1tGAKIr$RMbj^4k z@Fll^Wk~pdu1q^_uuR$Fe$0YLnNO{P=(A8VIB)8Sm7ephYEuvg42p}JlXcfjI_bbH z$Y}fGOR!R*9tSsE)rPK_^sG7XkH7}2xCS-CnTI~-B#nLTKDfg=bG$!d#-?}2KFSJj za@(`CtvlMzu%wF*zPx9BY!lxz`T<ljxFPq|?#ab)d-lLRc?jK;e678chtNC8N9~+E zgw9EM6yM|_;+uR9-U>SK3RdE5Nkl7X-9ZO1TrhsGdc%^L^g%n8h<6@yz@9=91ik<) zM9{UsiB&LEYyl8+0%^)50vn5ut!k>VM|g*@L(%N^C(hV4z}I5M{oe(6!<GCj!G9Cp zH$6T8-o3!?9`rOGIR)rtgPajBJg_H$RS+QwA_uwe5)FjEjyWKCBgPl`5x`&re=`FB za5_#{han&={pf%hCwXEmfkwE9Co>s#JFEeo;+}I5_=!bx6yl_JBsSwmhNI3%QLN9| zG_JP*m*|Q1qF=|Kkf_naw1*drDGwoYCEUN*r-&W-i8?ehpsjv9`@b`uCHPX||H63c zzR`H<p~31sOi;M1ImK4$bBnNZA!M$Nl+v+Sl2p0iSqNii&VJPU87i6-bv_`b9?B>z zx;QEkAGrrvWiBuH)wVUgoX)YhSO;A%Kj>X|(>O?~$LUJ4N<aG(FU8w&@h|v3<eaK} z3kx=@bSvH<SPQ%d!;Y%JDh|u#EvUb03wi<!LJwzaU~nUVgG1#=EzV{9hx{uV>$e&c zoo|-}y}eq9kIm`a<jm{#o9lw!4b4u<^|85m-DW3N_i#jZs(t*icTbINI(0nQ&wUWc z(chkn>9122;U%icct1X;`9P!dgTmN5r$Uv=W6EK=#P~$-VE>Zwxu@_w8`>8t<lRRw zkx>c$_S5iP0{;?8hv~Hg=i4sHhk(w*sS-Q!9;OATWnNLsWER2rWN!{YyerrboLuz$ zVhDa^ZULXlj-w!A^vn-{Uwrcp$Sn?GJw8=1yEchgObf!*EJug0tj1DHD-eiYT44$> zyui&?L8bV!tkR=2Dk}w*j}w(wyeX(0EvN)b1C@(a!v})OO+;lP%!BvV;?^%#F;N@C zz!7}8jG#G>VKv7Cy7#&t0sx^OotNXMW#*lIusCQQhLpPxXG-VWMR{xdSpIky>9<Gf zw}p6X89B^6lz5QLd25W=%Xye3q49L8lJ?rK%|)H~{t}iOwL9C-PAsW)IGPI)?U>i= z_Q$rL64Cb~VmtM1Ztq~e&1XC$Fi7m>6MI4LTGtFeFlQ?PA{xtywEkf2kF*8#EdW>H z#o&dCP25spA0+vZXDSj5d=YILuV%rra@&N~>hZ~&H-H2hywSoMnp(=0<EJ^0qXm!8 zC1agMIo+)m;=7^{m{FJ;<y(h7^&EDA_vS4@TqGPb*Zr6VmAiG7Fn(a7#<Sfx!jYx% z=`XR9S}<nXGu&!4i^nqU8G1Y?U9{KnY(J{sc=TXk-x#7@O8Z#sntVQ}TpjTf*&LD@ z*1I@!fWvCy()JY$df_h_PS5y?K#@<oKF3$*=S0I9ew2SvzYpj{IBxdmW3BzD<8wyh zt0jlRTO)q6R8lk_uZQ3ej6(e5qb3C03A1zLvmt5FomsaR&<X0Z;rH>6b`8HR7wi>& z&mY+jeh8-oF{I(Q)+GD{>E-HObeFLgNwWAYzUT+|x!NkQ4uDVDZ$iO+1y<O|9C2AD zVOX6%*3~u$c{0Grn2ZZOfmBe&VsL7Q1Z6DtTP>gzdd0qjOd(G#0u*#qMrSfAqciDg zu53OD9%a`|?yu;r7+39T<4FjCS$ioJy$v13YOlzb^jlSr7#saTmeYAtGD1QjLZYuK zx(~Y{5fYWnWeCt2+lx1S)zRbA@1sYM8YaTeT)@#3;>V6%Dx#6F_MRNaJP-lz$Ksxc zqNh=R?&NQR`d#6lG`<V|*>c|A@$cCi{_zpPH2%@&Ed1lcuDixRymuKq^#3vZPZ)sz z+Nj1q%=Ib!<GvsML;orM$)j2L?|+_d?3AMqM|5rUf@e#>9m+e2Ev=)C&&Mr6T;ZJY zXS|E&Vf}{;2QmXv4W{Cop{39Blk_~9CpRV^Dequ(LvI0O0joK9`C%ZVSn_K*{r&L^ zf~YOKe;H>b8|wan>HWXwbMVz{0UG2v+`ND5X#@NJ<0mrue?Bv0_J6x<q(}e9&&cS% z{@A*URpb2UMCoxz#E7F4pZ!f`zC(?$n;{G!+!pX9XT#B9{h{`**c`m!pM2e`c*&ux zD2R$aoX!q%tDgRVP^P^0smBbY?g1X{1Jeh<<9xQ2gvT`mU_X3Lr#6+u=V{E436EYl zN(7%{&{O^80pL@^BjHZM<6s%aI)WsiL6T#))E^`xLAxy8A0$snT?EPc7I^NTC&2P= z8<LUjGL!FUS-z@+P7IiKVQq-(x4VX4<HS9~&lr%-_z#{E56vj~DS=%DfBfkXj9kZa z8WQ}01wMm67N}drKC{l~q5;tn?8^7>`ZuwwU{MRj$*sB|DxpI-e@kTGYj54E4ZGVI zt<X9jndv>`p*=VxDPUc)U(2nC4{MO9Bpr=;mSIhiP`hevQ~5>_YsnCaAJ9F9UQ{Pa zJ8t8`2ZmG_ns7{C{zx93%aylu@-XRSaSW@ckXgv1f!NV&`Gsy^d0)dErtajXL?F1Z zD$$#ZQ^w(8zI!I3DWHyqAQ7P7{fPjEes@2I1BHJo71l;B>Kdr6ax+V|p*NHME7kW< zTQ>bC@zb_eyMdb(j4L!9(&l>$pe*i^skotwnEtdmXd2&npg02`d=wqUg9Y+@?Z;3g z!T!u1HP8s5t<FJ&>~Jko&xK4K*LpZa0Y(MaUGG9I30sY7NpAg;@j3X<t>^dPc?JM| z1Oame9EbeCFrVnG9*nCxrN-%iTj}y0i9{O=qd4k_t^!~6^RzKV_6wOqX(?wBoGDR; z`5p!!XUp>k(*osc{S$tZ>A~rJpS=i!+7Ga%{m0LU#nL<I2(^l5;(|3T>Qxu6rU%+S z!QU#qof%+MTELR(bgYuNuI88keObQO)6e7E6(ranxLeiW38Vn+2;sZ1xf0%5^i+RH z;6R+aWWdS6A@n+V0)jxpHQ(eIpq9lrQuC)J5P+sB8;i8b9vsFswOe&#zjCr1;*!gH z&d16ome>(J2_x-=Ll`4HOONy-87YqdR827KBjEx)Le&fx8P@HGNYU+5be=ByxGwsn z6s7N7eODKqXBVy3MgI-XjU~R0eg~~ab<zEPA@Dr}7sQpY=#G`r>Jdx;JAA!CT76uY zK1oL)to~%3T81$c8d%n!qM)C%zAx#;3-T<;PebN5SL*{XZwMj(7&r9zCEbJK`NMY3 zIiw4C0O8XJ#&(q97Ow8wzjoa<3I!lq4hDS$O~jl1BU}MhI5WnqCPTG;7pipT1_C}N zV;d@)ujLMcUPPEjU0DhI+}tu$t=B&pbwi~F<7L$Uc4qyEpJ+jHW>t2e*Hw5;P4_L? zAiE6TKgm<C;yzTd31Sbi^;D9(sU&yDI$Q7x;r`ir^VV8?`21yr{v$D;-$3u5p<}f_ zeiw;P<Y>Rr9jkq<A0eG28XYVjXB|mo{~2a8JYm9gwaOO1={r&!IOQiom-pT$6!I`G z{slZnPQ9^QDC8-;k;BQ7%(r&EX1*lf*>XobV8W0zj%i*@$|4?J#xMY}BCZB6!jLHT z71aiZH3Cg~FAh%Man9Ee3a5f-J8(oFIAXo-(mT?nPIhUc?$V}=F0qh0Rl3yE2%ZUp zBxMh#I&eHmTQ>}_L|j3$P*PuI>;*$UJ|~;oTZe7oS8FbZ@r;LM!-7EmSChWS_`4lA z?|VGDc7*QQPTjRZ!io&0QFE6Gv<hri{1e=E5R<NemZESy^}Is1?AtEYY@974Je|4m ztzN0-pRDEzUCqUIHCGO-CMMNr?!He~vp`qVDb>8qYDVd5y6kEW8CcCYR6|dA2CA~y zJ=?#ZKFP&4v(VAskDD|6_+fJ^l!*|(+q7Pdfeo5+m8>2#6IEM6<`xjtv&5XXKGNUL zBdEMv4cEjTk)?hK@6g-r)oPG0XqN|5n)llEtWc*x1cvfHH}bv=;?%xTM#a~Yt)e3- zf7uczYm%Ha)B8*AMSb>8L?OY6iIf(}f#Xp~yi+-iH*z9r;FKa02@Hp{aHr2r$(YYA zDgo*m)RsM^r(`2<C>p1K$Zua!1)BzF0|<MD8jMw=_OsP7ecT8_zCtigz|6dk@)n)? zjK+$3BBxQU|AJuY!)E1>xt)PNP<ISf1@R8S$rEbj-1=_y>8rL*wuw^9LNr9Jb*-n2 z+SwuzSgX`1d}0j{hC$kGc+sG1=D*N$yUwZVEsm8(tH0TDCv>>0UGq;zz_}fDexcql zk^HRA5-}*lp0xL^G(PHbK5+VjLdUv>MCqqZTAlNS^WF?vBfMa{Eg)oZJ}gsD$s|h+ z-PJmr;Du2su~bgd{J!+=!mQp+PWEmNkOtQNCjDw)zZ%f5JiA{kn<zaG{Yrx12d?=O z3+#O(7bKf#(M{O#(0d<$HQT{TwDiFrQ4ZYgVFegJ_6bp)t(Ng43<Rimhs;$WhL&N6 zI0!)94weYzZ8E&db=P1(f#g~j&f8&Bs1zj}eTPuO8x&bA*R9^iF)7r}+Z>?Bo;B>Q zRea{%6!~6E8R$u|7Hs?BqPRH%rDXp%?5jxKpRd=x3i*$a_3=4Ws(v#Kq;c6gf&66| zKsh%PC}LmS9XyQK$JkmWc5K3f?U?su!sG3!gvYgDgV@Vu!HPGhjf6!8-*rXnN22xK zBHsNI(g5LaLwUa%_d(7Bck4r}pud0QB@iC+ID}&6dipSSo|?H?t_wYiuz)_YNv?C{ z*ohF*SIhH4PdBcR2IS{~_S{BwF<Q(P2INz0S;wY1YS5bfFNBg#6`X20qCD1#Q}0s@ z1{(n`yqPQ}JY24BxDA-YVp?PEcpM4A%q!JbKg6O$b_0mE@6%2tdL6R%1JtRN$e7(9 zy&vE)4g(!(V25^f6guKhu`i$*v8cDA#e#c=r<RA)aIy?{1=PZuWWI+yEnH5xVMNEl z=<RADAz&}aWkjU6nNV<TQ(Cop06B<YH;t*~Os+?mB2PeHrbeN^v7IoheneWfPMMFO zcf_KA!ekLwtuB)4;e)2YFb|&0e!&)S25lpkj3sVilp*n8O*AGHuYT5vk*Zpz;58!g zv{C21*D2><6gdt&)|<!KfL0ycY=ljxuLQM<S!6#Xvq~%w$7?gdw(8`YY|F@qak`?7 zf%sE;S&wya@e@)LjR1cK@g|J`gOYhJ6Eg~Aw{cZMTL89WlTlpWz6g<wwq@LP>Iwh` z()@Q^CTVIoe5EbT@d<TVVgDZ2fOYYH!h%>{r{ofr*Lo*g<2PMi1D`gAN}VQJ#Dvm_ za~H4E^2lCZALO-rSFgHmVeg8|(L0gOVglF)(+vSPf|B`&E_sLy@|#<*v<9+QsN=!3 zM0V?ephBao1EiS1*V|lyO`N6oMXE4w2(vRdw@Lv2ko`gNxt<OI&(oSCp}oz)GdY)& zG7pB)dZzv?AP<IV!TY_$mm2C3a$hXdACocPV}H#Zdr7}|kLi`_u@eE!-PT{O+6Scn zXZ*UcIFnyL)%=R%zi;!n!O<;Y^OGdM7Ex~N532c6{Q7zmUyAFfT77^qks5G<*jeQB zZuQtlS`e*L*MqTR+rh7eR3NNV3MEz<YhdDc&0@|?$$6++{gM?SnB3;wpRkWf-u*QP zp2@pLl6T`w$>iN*WKjj)y%F?CmhDRN?pxs9ajaE%_k1L0^X~WTMkoX_t(x^9Emrha zATDM)ZPWa$h&7RS%TQAW@9I2z;@zP6iLftD_a^Vusow!kVBh!CQ}E^Z(ySQBc;q;B z82S2?`N@BYgMsKI2Tzy@IA{)j^s0UwY<I9;6-Wn*uS5sa99)N^qEZ}u8L&z52@d{> z9L#fGZiom61M$UB%v`O7U}R3b=i)t<I#f}FcW*v{sQ9n*F7@k7{xsCa<~{T8i+f3b zWRK~UN*#}Z?16u~2c$FpWy>NQ&j&qDCVhrZt&jKvrXPou6@UFKPR%NZJxKz5)G$z} zZ_AP#eDT7X)TbsAZdOen=XZlk6d&z+64Jv%IHq#RzPm$Xq#CSim#HdtN*5NLL6;}+ z@W=k8J14y`OdP$5??e6^hQ7~mAQ<|KRwBb8#}lO^u4ZMc)W%9)(Ji(kwKK?RnOY+6 z2ezYILwi`VAm*D&k*ti`DVCv$__S)oFH<+VVIAtjp>~W5$ANZ@n_yAG!e`oQSxNE` zAh-GgGx%(T!qo$I>b@IuaF!V7O8xxR^-u!081ZKs1hUUG%H?J!zR88QZ!U{JW8h8v znW^|qsTR4!J*3+kSf|DZfhF&ObD7&Pb)Y}?26TZ1zyvNIhS#mee}~YY=rk^KrE=Iw zN9iQAC9%BNp=Ev?FyFJAGSq#LuVhc?{5asAmHh*U3W`5*C>0+dt5O|C?qh#OOFL!c zrb_kCzws?}GCsIoz&R+c`F;3$z&`rTb&I&1-yF(A4KRYMH=!kPy$tem!_Fxuw^=xG zul7S!6Q5Z}z?d7o-@QF-m=m4xWAkt+3B*0PvVmbQq5&)~<Y74K&QtpSY;>a*hn5z{ zIue~K&&tOcA2=dK@ms_URnmHkq5cHSWRLV3_+KbS7=2LG+txLcNWh>Se$YdFCQ${+ z5uZua^&SHKVPrZ>uPfG<hz?1=prY`>4a6Hv^vO?=&-I9U3$48c)sje|v*O@<t{t$v zm&5cKot<9PCy5i+40)p0_a>`PvwUVcRSY4<@6HD_b)Es~(>sMk1KHK2S`=33@8iOr z-=I?kg_WS#`t(hi`YvxQQ!4x%G!6#9r*h~j>UsLF`q=P{_QO8u+yh9-7(l9JeG@W+ zCFY`9Z~pY=!UZJn#aPgJbDE2=tE>aB<F21};P8r6R9{B^p^#m`<x+fY!7k*gTFRPS zKkd|StCs3(Mw`3i|7x56!TXKi{i(1JPXq5afcG20`}m$QK4gq<pNj~<iRTajv}XVU z_Xs%dy^i285vGIf2IsgFB|?HaO<fIf@R1RJLW_eZv^cmP;^2C)==EjsCqx`PkrD@Y zi#Dk?1H|OOZY;dwg_H=->`@|AR*+LCKq3t5FA++05}MNv92&PO&94LIyEd!%)C{yn zR>8to8@Jf>3s@S7TsThTf<E9^4O&Ja(5?P<j5G+*VE6dN=a~TMU_XBhl-dF!ohb;W z78#*yqnMZvZ6r%fz;k0wcB@fz9>?#}V&Y9&>Aa(FKL;O|bjHU)L`<+nh27dF5QIpJ z<TJ!mUSFy+hoW=4kQsfkmosICPu+6eE&y=?qOKq|hEQy{dTs*Yb={REIqnk40bTH} z49Stol9U{&7nB_Ht|5NK5U3@_Tw7vf?eV18XrS1r7voAlv5~=VT3%ehO7|i!20fW# z$;|R1Pi%QHBD<Ot2L;TWfcXlJGP^SmTxm`x<%Ucg_~9KfqiH_`?D_GHs2IJjcr(j2 zgS&6Bri8lt)#h4n(NCI&gTMXWj^;u<&1gm}-{M;DkftI(l+m01RO>x0zv=gk6GZB) zrhU1`-P<jBXEhi2vEe`>R?G0QbgBw&zquVjq1t+@<4560saUqA$Dg-M*I@ajwF<V@ zbVR^h58ZJ+!VM7s_=}1~Yx=x>QP@bi?Fw?*UDdIO5<B@gU^m_J<pHP;kP%cO@FmgM zSTGz+wYJ`})o-dhhtm%#`Vtdj_^=^ozXtOc1QpH-;G|rqo`$@s+TvXtpUKy**1rQz z0kfd^P@E*DwFnqvR$Y<9lk}K_)8lw^#Qn(A14n35)A$o|7}k9hLDaFUS@~3%_SKV+ zIyOHeSd{EK6=%?selN1E%`4R~@Fyo!B(GC{dCq>wTc=Kh(8jEe6Y7wt?qf>cX6524 znuo7q3J1H=jlzjt-Hd27dp7Uo_jNL6$bcyW<g^Z<Ky7P$MNv!aZ{!`EIrn4y0wiPa zBa6Fc%;4i7^BF$jq@#*Y1Ky6P)BEvFPV?j5eDB9Mk1|_jWo_i~2w1510rO?+!UBhS zx*TgLBjfcF^-H|6+YDfGCUpm_qG3{OJhsGDd~8@F@QAN7y^IB(ThTm*&uKCi1MF6p z#-g@$H3%|OoS<)@s1ARSQV>dL|Gk&Yf%H$gD2*o%(CSxy0reJ)GT@rnfmx-jr}wC= z{h}Zy98R5@{+4IuM=0>oV8w`s^AWW91dJsxEaM3hZ4q`+sT_C*^QZF!yZ1ra{o3YZ zRR_-Kj{7~y7M4u^7#&J)fn75FLp-KCA3wvH%qq2EzFRW=BWA%Vhz$c9NToY=ov!T* zqzjn&e*blGG76-!|E_fZtWIu9$L=y5gbMWpJ_&A6$CM0PbKBA|J-r{eTIXV(ifx5y z`3u~%yvUxR<_Tro)Xrr*?GIS({tT~y=C+SqttW6!<=LX!!d62e;DtSAr&%M8Chxc_ z@h`8o!|sU(*<$6{fxE-x_1CyNT<&(_&LejT+#P|td=GAplvg>pJIXK%6LpP2a}c&6 znajAvEg0)^8eV)J4y`n`$p@hAPU(+IEek{8u)bfY1)Rjkqj<7&SU1rsViuxnsF)ph zqiXDT@?dir`U+Wy`|Z3xj7{-r2cHgS<9zy(PafW3n-zPFJM1!Lw{eHP{OC6Cwz8Ml z&@N57T{AfU`Mn>Db4nam#$_v-j|f(L9jN${-NR?C#Qnl}-lF}Jw1@!u=qD{N3V}t= zg{D&0dxne`1Z*zT{u&G?gw2zzL=Q`Vh31>yMT5p=FXLO`b~8oge)Bbe8K1Wzz4Pow z)X$j`4l2rCNa03X)Lly#ThiZ#l?5$&mwLdL{gv>fXs<?83xyjd-K8`zV?}y!%b5Q| z-MfHCRbB1l2}xwYgo()1pr9j0O%3W`upJE88Iq6_Ng#@spomcvQ*T9>Ac|t*1kG?5 z#ERFVwce`MTB{bpQXqgN2nuR1P^{vu-65iA6(S1rd*8LsnK?7LX#0KN|9SpAOwKv` zzSmxR?X}ikYj61XG~EZ(!JuNIHHE$B<3PtodO9K`ke&!S+Y0KF2s+0K%18uFvVt-b zLFZaQ*r2zIKhFxncD)^Rz7^Cr5p)59WKHB*;-2Gwg<~^UOhH&=MJ@i~f{9A=J%Bi9 z!Unb_{C;0JN6`6UiHogoT4L@zuU}f|XsnC~hk=Xuak6xVk99TmV_8A0<gjhRZ*3+P z?7+<5quY&);VwF?Ca%fP4K_D^t0B~Qu|$l{M-cW{38KcS2ol~CVF#_SOPI|33?VTq zge?xPe2HJpjoj;C)=Qa{l6tNV=XMjrX{N&!uK;QLTVZrZ#V3W?U}Qz9ei(RYH~>JU zztr~TUE#s{z6U&{&}4Y{01y8Pk{l?faD4IWW6jcjBZH$FD^X;99>0bMM>H}g-+g#z zn}V-Ed71V{Y<#h?!x<7;;lsl)_u<l?{=Qf&dUa-5^rjfbFA6tq^F6c8+$v+ZD+3^C zS|o$i)YP9vM@!(1T81R?5oRb-2b-2i!Vt!8Qy+7kxe3r9J;iAmEai5qlzzID7)ojF zy_B{-(UODTkt8!(a^O3XxPWy*bCZ$rhSBnVrjgNBW;QKaJiQ-I=4uTc8^npOW(%=$ z>w*?EH_=pAQ-6Wh-Zgzf#{}sKBAB~2B~d>sQKpm?`>wKFlI&ow$-?Unfx$Z5NH*ZN z8>`I~U>!&e0~k8L9>LLg#L?|Mv40wR<|&|?U1lKL_dPI9%1y>NFEGw*%w&b58UuLL z55c$0zY&d+-fT=`?1)A-2XVQ0VE;0^BK%2qFru@XGRG>ypQR&2GQ$H9>8P(qhja<1 zl#ef#fP!={_3Sit=@H50o*#j29%m+J63H=)<3_`O8N`8W1^6~hRvO6pFh%ze>ycJw zb93Y8)+Z-&rTI4`_`(X|T!soe8#+gX^3W(|lh!sjerbIQnQ3nP%K8)v)7(hkGbR@D z(%iU@pPD%0L0aQjUxRcSO`?x%p*=c7%~l7JrIJU;6m%4;fMZcO7MS@`6`e65Rk)kD zoU;WamCVI;BiKx4Lx^M|XdD?fp^}cUJ`5w3bcAunHnQ!GuuO)LOgh5oZ!aX$5hnGL zL^{H7z5o|Fh(45A{Ba%+$7YZPm2)Z36|!6UESWE!qcw<$6BXc-)ea$RW6(WuBermG z9CxG-H6_zF&YQyZ|CnfS>*#(rWG-my_(3%I%h6dkWHq!r-O)c9T#fgPh8CFBt$854 zGreeS@midhZT1=4oSoNkIA7M}=VkKg%FYXh`(Tw9zb$x$eSPy20$UN*;;l{SlLPc$ zq+?ait|qeI5XgdNXUy|$HEw5$g@)-NCx3D{(!7N<G0#rKL3@Z=K1;9vCxX{8tCr=o zTOE%2KK>P?O7OXwf7Rx=S^xSX&c7O|{HuMc688po0v*V_a%W%Rof__F&Sca^?i9Xy z7_>cd%UBhg6wR3}4f$KlGX~$Z9bJQ5xXyYt*FtMRDopG26d8>z7>zAOyD=CvqkXk< z+MDxgjOfkzKKRmQ=Y5Y6Y0)E6xVApC+1=rGFYCKzXJ-EvjzDuc{L*<CWlMTh@!Fez z%LcVcgAz^A)y91egT>OI`5W1gscZ=D+@rnK|50<c{s+yugw63vbN<iTv+aAehbu^p zhS7y=RN()lJ%*Wq!<2wGRQ_Xy0`Dzmh&WRQmxI{>UL*@*|B#V>!-ReMCLCQ5XoA@s zblEt>$jlH4iJ1yu6(k7_7|raW>jKVO!z1Rw{VHi4Cv}^)8fpKj(|#stFGX5}?bl&N z5>_Q)JPyFzXW27xz7CT}A0uVH!g7c6^>7Iutjodr!*+BuupL=eIq1ngk)u-Pza-j8 zHy~$u>m+z1gQK3Sba}s!us=u`bRXT9cbg<yoLb&23BFO6cakn|yo6n0m4|h)yY`(X zi2|wR9Vfv*)aC8M2m1TXt?aLdVfGG06vQjJzaL1VJ>%{ETJ-L13Es|NV4_G&i-{=a z>w2={FGRxZfWI`mpxzs%-V|qR9&pXXT~9eTNn@5Gb1+<%mfmp~!sba>vxFT2w|&|B zz%B^=2(-)(Q$fmNfB6CGY+O$|>LBJIvk<?y`s9knF9ha+YQG}TNP8W^D)hy3<`-q~ z``Gs;Xdo9OPN9~0m$A>^bNyKxr*=5oq+iF8Ai$t+lyq9sh3=IWzZ-;nIV(pmL0ILB zJ8yo}T7uXvtem;YO_xOi3nElN50m|iq_+kK1<=FNNH80}T%2<?9Nx$7)?k4Z>_u>X z5`MM@TsjW90$?`RWJA!svAwmi69qA*Rd_i4M%GNf4T--M#NVjs(6Qtc^;>29ttS3< zx%F1sEV>^{y`vRF=mNPqc0t;z)l-Sq;JyIzOL&ka({1zW0J3TbCp+3IOr#ag@(@mj zv$c`!w!#PL@H`1;FRXB{4$qfx_Q?t-7mac#IJF9|YK4<gML7B2R*}SfX%avw2jPZ< z+r39XwGO8s4o<MOF%FK1uy06Fizs`jp#`pi=4$t@_{#64EDRr)Yw}^xvK#ypWLDP@ z)QM*vpQVxE`K5@?<R9!{T$4Wt#{ZB>bActe2W;>#YExmPNBjlz6ErWJf$PYz(;4od z@*S#NOTuZQ#76OLY*XoAZ_s=d=NkvXpavoBK`rRU;@Y%O3-Fnl9Xaxu2G(<|H#3v+ zpF{YQq8!B_d#)pUX=ZN607rg&3#Yp_GrWI@`?m9;529Evs^>Y>m%yg<^jfhGfI+Ac zJ$(?~E20+-|5Gj?U~)67>0yCzr`Frs^oa+8x^S*-y8Ct-mSOW~NIsww41Y*|BNn<U zxE$HQv6Fcqd=`Kfw3V7~rS_#MGaCSbtMNT+DBp%ZAVdy>l*nEzAy8bI*&S{>fMD@v zW^48x-0Yh(p9q>Q1SH^Dh8x%phf>6BiGzfh4@(4D+1Yw9s%$;CK+t+n1!wcGvz!0j z?Jvzn&eRSJwA(8kK#~q5(p{1!AjHvyN0YlSDAC?{_JN5oy8yDk?)kGI(YBVj^kgY4 zjX(oozKSjUpqUP}a=3HIEW<)Xb1SH2QydpH;DctHhP(#+04A}ZKDcADd}){s?ie3l z^HGXILy#6lG?fk_5Q65`o(s!%7N#{+IMgBB>2u#!O|%pleO<Pe({DRKIi2VU`7=OP z2E8DLA`I)DIMmTR7USsUx-=%2OC%0Tu{nO)tE{L43aS}yL;<JZU)+Wy1?`9J$Cl0- zzQ$8yKc9Q+UNHDNQ?Zo^8!K&U=htjZTL&%&+Gz5~^0zCZ6~lwL$;B+mt|)vHZ`o!E zPG{zv!AGuHG6)YCG?wI5U{}B_@#52KmgM7+Z<Z9`QDDk_WRUMwdL;OzS=zrd670m| z+eq-+`VZheMtwdcXg=^oZ56)wz!z1s_~OG1@8O50=Vn+WY)#e8FxMW$@L`5U1lM{4 zGn@v<AchY!oT)$fFvBGCh~Wd5W9bh*%&;gFv|a%>Wa$__%rI#`^6+7XxisK|4>Ro5 zAAFeMeEq?P87|Nte3)Ub3CP2T8Rp7>4?fH=7Y=;zVTS$sgAX&zg#s~rnBjo_;KK}; z>JL85u%SQrFvFGlgAX&z1q21~VTRAuAAFeM8vVhC8J?m)_%Oq@`hyQMe7XMMgPxdS z=iN4fPt`>`1f94@;8&|Y%GS7eDA6ji4_J>)c<f))VpC}54dBS0#}#I!z;%Sx;m8fV z2f&u>n~iKxyy4T2&orduJ1hXQvaR<5yysc(UNr#b0F_`TYw4<}OG6Edt#}rhk9YDs zR*@&;Q`g5rf6RosK9(D>@_E%V_&jzkcexeMax3v}^@2@351)y0FJZz&xph`PubSFz zxoLBBKUwaQ<Z>TMD)-mP<vt%T_YjmTu+)u?=8Qp+8YUKKH(P1h*lpH3LGY3F&i?PQ z%R|R_4$3C=91csBB6Z;cWUIhKtwyuJBUl^!wX7hPI|T0*d|34H_>>|!5MFhD&*hd_ zg|OU-c;|RpK`i%Nyj$bRaxccGquhgZn<GASZSP#G5SDuf-cfFw6~uBE;@wg1J@|B# z`()4MzGxM~a#!OW<)+=3z}xl7<?_BbN4XPFu4CMs@a=GvyU%)OLo=+x*?TwMQJ)tN z!1@);PaEyL>fbO*?ux?mt=vSl!8)5gHHP6+7l9#SO}sbHfyJj;S-tB1Zi{}!if7Ri z@a~u$7vM9g=&4Mbm>^eLS-omZw?%(u#k1%z-W^3R#Ai~`cQb9G=%rRxulfKceklO4 z2AsvNL^^=dbCVuAj%EvjAPxzoB0M%Gm;6?|<YpQVl9D-!w`R##Rw9;{j<T&9SzLd7 zqQ)YtMj21MOO3kyI1kBgb60#WwDPg!ALHFoasZzw`KMM2mRyGSq>}&Kfi{DU#KNCp zBTg(ABJwn(jCrnr`vxS)+EQ$?){Tu0f-WYf5izCEx_AsmTDMP=|LDb@H~Jpzc}2NH zji)-ZUy?oV4K6^t2YcSVxG6)oo5r?T>Xs~ytC;+*qi}0k?P`8TC(c6yE#urQRVC@! z%A}jvAVN8~A<FY>D+^mRw@>~ZayFF+O>1y$CvKnLgNy%?(nGcy{8Ua{+=8u6`htK% z(3bCki7fJcnDaZi{?zus(lHN8-7!CMDs^pU56^~CX`v(H&7HouA$>2~i{Sb%*LGu3 z(KWqX58GpUj%UM-1F`N3s6W@H2@N;q!Y0TR`XV>^;dF`DfCX6A8~ixsAl{(G4QXi4 znskKLe`%OFJpp<U4t>mX6}=6xi4Bk869RrX%d86xK>O3sp5*knH%uH8I=KR!dkAac za8ogef;0}0sl}=;_>jclvi(-uM>NbEh*s0IqG4Xw_V@n}+y4xW&%a;$Z)H+wgwXya zf`<P=`(Z<Ks_^JC3NVcyLg0sf&~W2nY4y2k3dA6C`G>@|ZYVhnxC-=kj(cMKxI;k5 z>mxElS4uIL^0>aEXim$c&a>24nQSTS*uOmkFLF=OBt*Rxg5l^U^%<lSR@NuB6+R@m z=lS6xq-rh614z?0;K&U$0okPzYeNEa)BfBLJS=TPFqiU5LIPpgr&%({;D)&a(?Z8I z%tin3j{Z@rt8TPv?Y4`0d|8<}Sh~kD(8W--6myo<zwuW8Ja+$vbk{$3YX4T9mgt{! zgdJo@iGqQoj#zV2!y5^(cB4((Ls#h8BS5&(6{>*4K<G&RfjqTE&Cjsly>L`F@V*rr zl}YeErE7a^pdYG6Nm=M=E6#*~0Qf_GLqz6BZ|$uiCa}G=RFTwiw#=w76)C6rg?s)P zeV84y92(c6nEJ*0*lt{-E#m^sa|f!khW0@~eHGjd@8cATdOB}or?4<=ktu~kSMk11 z$E~;HUew>;LI#%jFutP`(_@}pnC!SFHRqW}p|ZmHQp^y|*^EbU`B`9T)K5(uc@oWf z4Iy$+Lfb1-*xkz>q#G`7ix}ZU4qC^Q<kgRic~0UdY!3tMfe$~>14z%o6=|?&Sdn%( z)F9@XqPJq6jZ6q^#kkJRgYBPqP0x>QC;>u6Pws>2LdT*(v)Ld{kqS~J=#}}6>fEI; zL26gULkJG{{M!WTL!0PO8};m#OaQ}5aj?}Od0xl0*l~~O?+2tn_)(O>85vn3k_G4E z;{6t#<TdK%`F*YaUN+H!;uw6dAm11BJPM)%^S+@kpg4f@qF)I(Z)V}qoT#oNxcq)3 zMosUj!xsotmol~a#w!;|^V^6KfEP9rRG$a>;2b@eqyhiaL&IdQ4v|^<0|V|1n5bK! zFCe<w6BV$WLy|nhI&Fp+=G0Yi%E<gJ7VH9L`Z_e;nmC#k_+%1ef5t(CuCi*06QRNM zCh0<iWcpc4goEH1X1{h9rnxm;6aGC|J$O6|S2;~3w_~4^W|L5NU>=ZgX#zG7u0HBj z&P*cPpNRyx+>LHP$V>hSsIf{ysWOpy?_^NyimfO5@2AyJ-1QmNUjrhIhE%g5HPqJn zaLB!!I<*TRTH(desGlF`3k(pGLGjw1umN^Q8v>wCfr05pE0SPbp`4c|Zj(8(3hpBu zrZ&}2+WtEH_UyLrrSlRx)7NUYKJM!nSz-l_Y!SK#H56L}t&|S~DVy*P`)u52uf9R6 zumoKkXK-x#>=XJ-=*}0@Xp{$D;t@2jC>HR~%?(|OzXREKtn632LS?*u1$1&Z>E!F` z;)Coi+I%^e($sb70%{bT>(U`7Gu7NYBAy>qDi=R=@lfTFazG;^#j2mYL%T57rA}qT zBWGIU#b$!Qvy%lFJNvT;I^<D0NgSgR{gb9U@Mlcq$KoKyy>rj&*tr5`$YCy^tySjx zG0*Q2FRqk8m?!ui^*pST#XR>gFQ^2f&d^bFC8`Z$9`oEFIW<MNT1US$-l71-__pqy zmoY<60E5s;`s%0SK&3wiFG<Hn(vOpM?%8(k1Be58_>pY1)qo&!u)P`>0C2WNTgD*< zQ-{zI{)({DLkCwlfJ<=Hnn$>yp*?8sQ9JhAuJO{&yxe=L>tKl1|(}N|2I_8Mj zJIWzSJmJGDo<Q)i$%B6&q!XO=L2(rnN?dQ{QfJI?b;2;N1)EgO*Mg7ws68q5zbo%v zt322LQh85W<t^|0Uuxg6y1#W@%1eL_BLzbzNE4JyHI*gkn7}L0q#Gmb9(aN}0ohLl ztWpP}RPZV-NA^imOOIkrNM>^sI8(v-@4tiZUaO|3_NBrjsr?{5y8Uz5ei?cn6BMxh z8U>^e!s6;ad~20F0VSgk2L_`L+t3kfrn8i!CF#Fw|M}K<s=d9ozkt}?z7C1vAdBnY z!D7Wcw__<Q+9=FRMub#qd@g=@p~L*HP|k)DFO2vt3AP!IZT5S-FubJ9M@~i|Iyn6X z%iFYFa^KMQ%E+;mkxO&&%ZvQf70Tujd3}RGjPwo|RjhAX(;W1Mu8Wpo_2U8tA5W3l z>Eo#{>T(BKxRgx&3jLkGyTbeyG&y(P(LA3h`ykdo`ed4DJgjky;scnYUw7X85%vX8 zWxkRavtP_}pCn@q;MFWjBg9r#0a-OQ4NmmX(Ldy~yT+v(chg3WEsb32vU^7EJG*k! zur57wH}R5Y#<&-Uv0rRV3%V*t<*%*(!o*rnItB@}=T86h%f4x)qo%<s^b_gzsY3E9 z%r7bRqW@>2|6G62f0`gfG6!If$5ni_>*fzMt(%6C)u3pLgJPlNV80WfAYd@Y@s%h6 zg~VF|9%R@1TU2;g%u_5&V1{8<K~6hGK1y))ZW(Tl^_pcaE}`LDC<QkI7VNJqT|JI; z=-++eGCXP);Ddn%wMXNMV(f1fD0ucL$p6EwKEuT|lIh0KyNYMIZhqIAX(hRa^qb?` zn%Ra*0U>lwhB~p<^3y)NvAe$8{SAnC(odCg#sQdI{zqG_GDi7nKqqzzhUrpXI}Nch zJh~GrTxMte$ArDglsJL(cv+i7s%zg3#7+R&@rL>#FL|L%$GL7e@V-7<UtFNc2(&wB zh<pAu<f<uA{V@&FlN>6E<w(wzR40AW7s|QaqGa2E!?8zQlkeg=k&BK+CYrPY1#B^l z9hy^R9!Tg@DxiRa@8-z9#{9kRCh~a=XJQa>+9T}k?Ad7^6vMWRH;dmURh)N;xz?E0 zQMe9!ZY`=G2HWgx+1W2+8(NreG``9<@?;nAS<%l4PM%MKCK-jBp#Orq&RXcdnoAFh z)#IwAP3leHznCDdH&HmS6E~z)m<O%Ozj&@_W4yW4pAr43Kx-~_AFSV#oYeht)=@XW z&^=Nf3u3O&38btT@Nh32gsoAUn_-<vk|MY-idg~BRz*hU<6s)@mdZwH3L&?~jQ9fO z76$`xCGrVHlS`whCYb16b!f~p9ZpR^ps}>BYA8;t-?ahQo&YDDYu*-!$}O^BlouW6 z!g0+OW(&n)@gVN&+{-fHm$t^e3I}lHN~!fPB5d@qP<C@)A%~~}H+B}k8#=sUZfr_@ z&W66j;^8>_cwM>`piA;0=ZMi$>IXH<O&<o`XnKAB4SlCb2Aop3EJNFaiOu5z)Lg%{ zp?FyRP>CS2ucI*}Bi!?U3W&DnbH|yCSDdT$<EUviJOM8YzXhzHYy4&xxl9`5x`^Od zMm2(`;OdG&Kt!1vdc|mkM;-=}SUo+sa*$jh=ng<EYg5BM>kF(KFrD6PdvM=0yy3v_ zR+wkvicHxRDq15jS6_e1gfQUSYM4qDLg9se9tVL%m18O)M*Rd&V(*Xf3^q@N{Z;#g zm`n|~SaZ+a^eZ$=Od8y)HwE3R*8?Mq+vZJ~9t^J^BrUBpKdo@D-pnfwlb5);sC_zQ z7IV+M<15SqXodUbO-5m7oW5kze+b019b|88XZ@%2oPAEF5yX{000j)xNzp5k`34$0 z9b=-VLjuK^G`++5i&nblUk)&px>tXL#%&HpFGw$j8EP<EIV9a~9ZK2QwRQj49dF%< zU0O%|wPAMGz5#5Xd-Xa{Vvr!r{>bdyvdBCa4*89F(%EJj7*xOmN`1IT!*&Or74T@5 z3COj&I%Q_cq?9QuQ_{khH`Jq&af^D;D(L5U1~-iJVuE$N;GnGfRr5onupsdDxYY^e zKw)o$sr2l}^;y2vxt6N#T^c4xkj^jjow@Zi|C;!#5uQknV)D}JXJ|4V`Zz%qa2kgB zu0Ib79<#4|RW_E)Ntohr70pEerx6ZrXc(Q5R{tJue*<fvF8_pJIl`C*vI$xVAKG$c znvG1A<|SB2Fk{AU$UF*ZNEys>1aa0mW?E`{W$hPQ0xAnnLAn7zF^l=OF@)Ux)MQK; zk%4QE=KxIrYY3F%(rF$IsoLH21afGqktg(L@i6Jap$kfc5@6OSy+S%Dn{ZH=XTWS2 z%16(}K~uuv$<)I=pK5MLUvz1w!9(>n8-=gCmw~HWliu`J^SS9*5J=Czjpr%a2zr00 zliu^#=tnSxr2CbT6D%%|8v$%N`ZiECNIYiC9r@@Okj^4bgh(pDxc*XKVt@>Y6<Tcy z1yUE{$UiYJ@T{LfIDrt~dMsZQ<ag4pJGnSxje}0mtG@j~R@&mgvUC(lBZ@SjO)1P> zpkG|X+%O&v=!7L-Wm2!#RE|`R^^G>hNI~%v<@wajaQ0mcD`a=mV<_!KmP@k@mOEOP zdxljmHtLw6<4cwsnq$!umWLRtyaF|x<u&aH4aa`o3!|B(K>7D%;;7Y_dp=$L7=ES> z_v-NaOPY4Lm*4;#rd_!!6G_;gwLjDSvFe>A_152sw&MKU4Z1Ol;;9!~sjc3Z=~h;? zXA|sF@?}W7SZBMye)XzKyy7B*kvh$pc7#tA*{@zzpwmEp=Lj5$FUSxupb`pV=?X<_ z$dx}yI&+>s60P#8ciWK{vp=D4O6a4aRX(+<*Z2bUaF=+q&xmw$Z03kyroAF2lc>17 zrXJ-{GSQ(W090iJTPT)bmYkga)yEQ)k@WVvkRc`3VSlC0L3GiY4ba!OmJA}ww3cL3 zkuUoy;Rd{=qq<V7I!FoN#J%_x;0J!Z1nf;o06zo2YW!;O!{jKb!*2$DbGmIJb>SeO zDN0C`aSi2b9O^)d0SfauI?{HXbi{~Gu3pX4?u&MFeL0kqxIaj$aJ1Mnjue7mqD&ZV zzmHtQBp024Ilf>#STg8i4M_sUJAeBPAUPIf660s$Jh@fe-AWqYE=@%%p_8Oul!A=9 zNs-oUBLe|d<C@TwWHt8T>^#8Eg_dBbdId37i~j<&)_oT^RM6F2;xfwzMM?&l<=K&v zYy{;tm*l#a-N6xTmT{Ej0JW4NNw5X?mqjlC^%(C}cS_?YqD$ieqKSb0c=T){Msa*C zo*2pTb$HIea|WJs@RU&nT#=q&u(YxXG)so3@lQY}37(FlYa~<T?CjF!U}6Ki%)|=Z z;%)!(U)>8t(7a?b0S?eWPufr3m6A;7&uf3Fhx~-M^ZbAfjf7KTKRt5xprnb&^<6J| zqHm0I^s<iO{#L-@a|<~u%y;7W3AKE;_&MsjZ1W$pkHH#d(O>n)zv2)I`dGEPu%>qw zPtBg$fmE`7&8{&2QDJ81(_)7=0P<bl3ixK?eq@|WcCOE>&ymEz{*ctH6ak1gm=$zv zFTO5&=87)b4z7l&iycN}ZOR_LtbbVafg|J<fct)S9cnOa)W}JrFzVGOJ3+||=YukO z#Bkpr^n<;@?DSB7?)H)5cl38JyFRxgGqB)#G!tG75Uf=6!@fAX7dr(M0m*KE`!V!p z6SIqUV3J=07@@dO-@;Acc5zV2CM+JIqs$f@Q(bBDIJ?$r9@j(IR0mGm+cCJ?C<Dta zFdxEb@wQn5P@Cj=UEQUt0`QBs&%6(u4*5tg`ON}C%f}(`$5{gq5=(j49spL`7_a@^ zmIH-gnX&JW*z+pFv01P*?9Sf}ET&m8h@NirYlBxtq%z;2YalW}xZh7@px@nuqp1>S zHbB{s7vxF%Z_>dT32O@9q>$}yqKjyBCJy*(#rcLUpJr4PuEF^TJn@Uf2<O3a$O?E! zgoA$wntd@~({fi(!8QV=1<mqIJg2BWACQt&k^;L*N6pHvG*!?%I2+Dsv#QIQKEmdR zIUp$6<aP!~qkjR|%TD{KBd@y{BluD}%ytR&PH1t=GBEvRX`&H<a%yh&%-;~SK;+le zo{x0R0bFM1I?K!)CFelk_+ja;^uj&AgmRr8k(&uDK#uAFx(|{N!zmgrm&UX=aUMd( z-zo}YrG*>I%ogYaQqNoXV*`>yg+XS9w6}c`UIZor=63b<PI90?FP_Z|IZV|7NdZm* zWj0RLo-5!u0*6~w5@&E;5zfQK?VAD%PnX~XAWDn(%o>1_<+SKG)L|$#$l=1&FD;&x zJ@YBbm>(jP{hUK*$Obfxho~;b(=b=cVXAavdPKgT&3{UsOZ9Qe07)%vv>)I=Hm)a5 zCXq5h*(7`|UlGUGy6*AyYr)s6w-QsUd8)`x;wtpwyNIg+chloGu8yIE4pAfsF9CBS zy$?V&Y75(t5x9CfleNT%_P}#EAXF4?#U08Jiz^C&zI#Ng&LR!Y4l)To4!$31<h|wD zU_?fq7V2N>zcQECFmz<Pm;Fp*u&R8IxHBMVeko{sCDC>^@ZI(&04*te1Jr{z4GaN# zZ>e_TFwW!_(y_Y(*xg;65%_~mJNC@#i<=4ri8rJd-;h1?apLYs02?Z@%Y!41363bw z6rASCApWz=As`;;5S6hSp|8pJ0i}WT0vcS@A}DRy-2<ioF@D~p(U<d@S|9<=I<X?- z^{T>;OAFz5@n*b#II<%1SPDS)fghhXtZu-_1HpfTzeePey!J=&LMR5!&q0oF6>@9= zkr>zSU1A(ASHKn>@O_(_g9!k@myWtJd-kOOV6bqr1;N1rCG6MBDcC#)+5#VD1HhLY zk$_!k@lGN>s^A`?%0u~3grt`iUzt7gmkjw-rktM1{|Ua=5#OIC3iO2U!aw`sJKmaU zdlfx)GHq9pX&d{pFm01A|G#3|zz<`i8|+Qub~2}YLH;xEA81$-zeN6{7yHH>+%@2^ zZ=4D^I?gM-kC5rXz7d>q=ViiQtGZ>lhJ>e_f=t6=>>UC}6a&z|QJdgo6KwuH`TX?S zxKQk15rhjsHR;phY`olh57aWcaPgIq<1`l!*Hv=yQ>1Nup`lY7arRbV@2lxz>!7~c z!REDgWLVY$wQ&J1APcr$y2Ctso&TKtXtjD5CkH0OH!fdM<8h_n#dw#Rs$X)|dHN+! zRm#gIX1=KXdbB}G$NpD}J!k577k(-=J;v9}`q3Y9(w<7M9~N$d(P>UDP%x4;3}G=( z>0tz3Rt`R79KdCy+wWErk{)K(r!VEe%n0-rx`)!1NY=afPOJlF)*C7DtMJ{T`ry2Q zM5;uQX4b<g=@&_QSC8qhOG!Uf(r5ILp7<T}>>Y?+g7^T_V0>Dgn=n4L`ES81SaJT@ zO3AYe*2p_d7LGv%U<zs1<AS}Sa2D(ZPmxeIqgz0&&#!bP0D|hSM=|jZqrPPO7%;vN zbfC&Hhu;4p20?DRo0zK_|4uwi2!20C$-hR)MkFIT(WNe9G*&Q!LLu)hyqgL{Du>QO zbsBrIC&riea7^|X7A?nQ7qL@N1dfOrUNyw7#E;`QAs@`i#SiS(R-9$uU$XE#Y?r`6 zy4yu8bK-wME#HP#CD9jWJnld265ks<nqP3h<NEDg;c?&eI6Tf_v=bg-u?hk_&H#pY zfyc=#THtXUCjj74M0jM|m2?A-{l8}x!lP5rA%le?Bw1E<_BWuO`djbtXzmi<1s(=h zbd4ksdZ^bOI)g0{JeiQICKIG7cyj9%8ZHxD>I_B$E@D(gJh}QC3r~ij7wm#{6$13d zz!Q&jk~c&i%1+vF`I7BqCE%K708e1$5}9G)$p_EdaM|f*wZ$kj0@g%yBesndkV2nv zk_?~bzxD>70#(-~z6*RbXk`A>uqF2V3EEAz6epZNSAy_a^Jf^No%k{d-h?uL`lA<J z@a4eo*h#|W-vcyUMiO7%VfzS|Zt&$b$wGW-V;1Q3JHWmLum&b$Oq?{xOEP@w{?Z$K z3}tkQ?*gB0@W;oN+4wWq?t%kOKamwRBMSW4&l;TgQ%G|~(wPr(y1}2nJZHmc6QYSf z0;iW)N)Pz+sAM6W9$^+(uK`Y^M%`jiGJK3b_XeK=RnR5A3w#{-lgF0W_>*oo*#Vam zg=rA_`vFUK;?LotrUzVJgKuCL{Q1*wZMeLsT?aK>ma>!{@MnQ!AzYf71vUYKKe_)2 z{uI338+;7q>Jr}tKHcEYo@Z@1f&Oe~5$u8kPO(}Jq~OmhjCSHr$6gD69zC=h{JDok z%RDm?9mk)LT}e0e=Q7DcIMp&sWG>;vmF#=qkL#`8-~;>5H&f%gz{i0<+kRui1?zVU zi%x;dzb?^m!TS9uqn-Hk_E#2M7WD51e{NyX0+(5cj>Bb&T}e0e=Pb!WxERa=HILvA zsP^}#KWb}g|DE&CP;Fh}yTGR#{CWNv8&1HV2MFR6IIW(l;RO0~6QiB@^BcMS4D;+V z_*!*Yzs_UP0;lnaj>BoBT}e0iGfc7&PF`k#m95~9z{#MXlEm{k`yWtkTY7^}fqJS- zJm4dujdlJxhXRVq8ZPp+<OFeEX(!CHVR>(6EqOYJO!oZ!6tvA82q<9K?-qv}eGl57 z84>kda{<Q}Ai1?KH%Q%0D|L8{gu^QKN-O+v9bRgOPn7Wb+~wfrAra)GzV@H%GzE5= zLP-;<MLl_T*bzFcayfJ|$oB~x#$b_u_W5*a_><26B|ac(9Kb_0Ur75z>?-G+ISVPV zvlR6(Ud5*ONi(y4i|iePTeE(JCpU;X{8qV37?Bn3%m|&(Fy_F_9Nag17|v4;<!#9N zj9=|{BK3x>59K|q>)mu7>*Yq|7hiKf4~{8ETUXoo)Xz@KBD|iJwlU3s%q+J2K4c0m zZ__0_s9XLR8~Da#X*ov+Y7;2qN})H3dhTP~STx?+FFf&$Otj-7w!@lTavUm$6q>d= zFh6mt(ggl+Kkw7myX^OgMQ~i7AV;b}6{+&2H&IW3V}Sk{>YNO8hHA=~#|<YkOd$#W z1&WltyVU!*qg95Q*QGu!Z=36ZmvbEZ&^_GCL6N(?C`RfUHI}RQ(C@`nxRdxK?(q7c z;#Nx$)T*!0B~t03=*wzx6($i`?f(sL_}vM8Ix~S$Y*W9!AE4AKCurd7Pi91b7tS1H zM0iUd>rze%Cg`MJ-Fq*cQbL(8LTi88j=<j5KA}P3e;u%sAx%Jia1YY#2;r7K=Ez45 z!^~4l2jYltSQBu60Ygeu{5*~_KluaONyM1{TY3eBvY^`U=&w65wiA(3*8M2CeUi0t z>{mD9Gtqx^HM}L=(Gs6>ZI<ryKwPb8eb!R6TARXk)G5?*V}Ki8bCSg5WPDk*2_<ze zUzzi%riK&@dGPS?6Z|-6n9&A;{EkF6XL)|LY6+U&dwG3OUal_hfDwfbX+f7fP7YSz z@^U|FB{s=@bGZK!B12uShzyZAUflA49f>;VWM?Sc@~{)S@m;Vyga$l_Yf~aK)~LTd z&B5A3pn?LosVnb`PqlaM#w%`$TUtY!H}s0f^-@yJ3*jbg0yWl4Ni|4+Xap{V3zCUF zoe@|>{0yZKG@X9wq?ki9xQL|O2bar2Wf3_9(JT>s>?!2;KY2}RsElBLY6c8*XXN6C zm0~N%^WPt1F0Lcn`Y;z7bi-!a7#$?m1k?){1kejX`8U){K$^uCKKs;cz!Y&r)IxMH zp6Xyysz(szUMBP0uQKofyND*9E20rJh!AVrFy~s3iAqSPQO~SNnqUOfr7vjg4ya$_ z@+nx)Se6qTf9|MpVN#8!IBUEM>6&)b|GeX7&XGXO^He(f*-4=ORF4&U;8R~S-I~xT z48q#^hVrw_Kgk*+bWtX;Pra$r9TIRa`-h&!(80-Mt5(NLU7_RY^$jJr5Q7$Q*d2$L zHSMmKGv(2M6RifALocRt9awj{7;xOiI3ConafyoohcgC<P-i2;#dK{aA`C)NT@ax! zOBF;okd}-HAGY<32yfCeO%P!VbAch%2$0?uH!vA@mo?soD#oj*8oOR+^E`(ZyE5Eq zv9;FrepF)jhDIfcliZy18~0-^M&aGhZ_H)blk^gAR#htnyV0KVn^k_*)=NBT#emix z=@shtt22A4pYccc9B-D@XkwQWzM=+G46WUBXKHVg^|Li9ub1|kRduTK)ztnb-&$3z zt+f7Ade-*|j`1FATDPhDfZa0Pp>aZ+NzXQOnwmrJ`K88Vp=a~hS_f+!r)O6%!pRih z+isz8)xo}9(Kx_D1&x1%XeT`zqHE}up7obpq-QS4H9k-Mx;0MEeCmS@7CkHA9RCO- zWz#dSdXl{&))%OY7NPH;1d{3$!F#=md(~D%S@f(x72$*Q>_dy5dDZm@k)3#wvGo%G zA0aOf{#KJQpGvDwkTLjkIxBiLsX13VD|#&|Wb7B3jQL`o_rE1j5@bxsqF0^923ce* zz%E|TGHo)3b!jWx<5m52x^Bo=Kuwjp;$+N6o@W2QlgJnvP-`{79D46VdiaHm-MT(L z{G#Pekg+QmgYg&Y#`Wx8T(Tu(tO`YSA!7lSs>fey+7@5WhUhA~AAiXu<Ii05J{0($ zvCbl6UUln2Ync5igjb7<CG$A;X7b8>ZYGnAHOLb;1kfI026rRtK)}ebfb((EFU)_I z+9Un)s)KNy?kS%8T?K2=@*eV=@b7f>5>NU#VQp{pt3b``rT!?&pW1W0S!TrPmqGd! zP`)myo$xThzt^<%)}I>X?-H-+mkWz8`LQ~Se&s<y;>A|alMethXi(B*-H4o({|jOu zgwEr*-;M$I$2<yNf|$)&{)t@9=%Xk`okYM5;PLEali?7F)%Hl#<8@&)ftOFtI8<W2 z>X|jz(qd|CKxLg6FUTDF;)8<np<}GdX6eeL;v4XeUCs9U*nFI4RKcTLe!iE1GWiNr z&L>1hh-C%gIp3z$pN_&`Kq~BLU4(LDp4~9co_>5RWBQoGV3dBGl#}&{PB988+H(;E zW6~Cb<b_m9aD4A!X=#hu55)2u$$UJ3NMo{)1?BJtZCrx+{N*`mLGd6(2`^hEcy$RM zZ4@)u>*Htk`WSAg;Ui%Gijw{a$ftn=!|n{u`o*CUCtI>yaVNS5Fv7wMmf(@ByOFR1 z`;=J=I9B0xu%BKN+N2Bn-D;xen4hsMchmKdNIGyi$Cyi`>{BVNqCXzpH{2@}^BmlV z!qJWy>hVAGwxXdQqt%s>p{KBH>G>2EX$~D~1r(_92*BXWc>E37?e`rl3i6Y=P@@hu z${R4o6mkeP@+~|Q4l|p`7nf<0<~RI;S&DOlI^(O=br^@F=p_13pq^XR+x+yYMZLxw z>bfrRdcKfUIp@oF$uH2?Y%eQ{m6@NFM&>M6M?6Ggs4NB;@-5CH5V-l&kUQk{^moPs z;mk2l+(+z>)mKNMGF-HZ@av3I_7T``2}UQnR6Qdw-2xnY()%ahx9I)Fm<*)%xCgCV z?z4ss`Iu@JYEHz;Jx=Bdmo_cG4A(V4E`s0%`DG5|7kj_&NXbQdpC`H8YWZp!&;3g+ zmo1|`f&{7qAVXiklT+N^-OTRj+2~Wh)19NVbNTH60a9U|gda=9nQA+taET?0Gt_8& z1e$Qo%R+!0DgcH;9%63T_Z0AtSIj<8nrGrT&QeNA_dG!~<=c*jgb5g>Gai`lsCG?K z<1TYn`zq3*+WN&Ev@9W!+wmo>RCWSX?)f~A5%W6@)vf4<_kTa>o=-dZc(?aTN9}Ge zN6FIgfV$SIUw{)xs{aE-S=|n(GF`vBX^&LJKHtWyy1Td>iQQdXW_S0=$L;QZvQ)Y& zmh;eGIjeg!sZq0>)%~?eclVz52G*y0-2QL7$DwOAstWASKt}LAJ_glr^loIiL1BD& zcy4WcxN~(%UT<)qBO`EHEJ!N~k>G07G+kw!_W`Nfqz>-Vyw6@O!U61;Ta7TsJh((p zg&IzU@E_w-p_WLG;mvxQ6gJXVOa#?sOn@md!=4g%ziUm2vruA}DKUnH%akZWwC48o zlo+gQ>UK)>m0X+>S!`zHM2&p@S1gj~Q@4bzp|4gm@hTUX+val5ir_|bx-|mymHBOW zk^_1~o>~h;L5>^~?<^+|1cFKGV-w6|dN=@e^h^(-PrR+?c(V%f&kA(jNp2nVl>AcX z@}A>GUR%){y$z`AdZ|AO{$)b1@d0(pcf=3qIo>R*jq_8r<fm%X&c;+|B=b|X%GFDM z&8itny_^aUy*|i5fiL)8@?e>JnSxOwR9r=S%}*mUmaBcDj06R=^jmjet_T4sP~SG- z6=ylG<lHxh&cBP3Vn_YND7H$jV{5fM=qK7k3FV`D>wJb|F8J)ZaK{d7E}RMWr^_D6 z2$m`0z=?=<ii0_J1>J0ue6yIjI2XPazb#lX-4AS1zrel~eQQBGyy^|ygNlxbE_jRD ziqWzchXVC;jD~d5r^?aEc&a013fT<ZN<>*Qp-&xy56XnNR9K%tt=ESFbv_F)b9JQ; z9GQhIp8b>2Kxu_>w5a*FkJ04Qt4;)$h!or6DNaBN*k<bF{dDXr@mQD6|8zY6zd9uU z{qYq49LoH1*}GS5L@Z5irS6sZAbs_!u`mFJlFjmQy8Kp0mrqOr%tl1TyF45p=<<B} z3u_70i}T{dp==L_H=$@NP>Y$?l2Acjx2P=yu`Qtn;!JX#PS=fu>Q^i0vA#H!_EJKv z`8Y{JMFUpBEt3iibLf|gG(w(Fh3h~55JyO1O&~dEWt5OgXJ{(Dk_jj$*qFI{n}wN= zqeQV*q>&PDfQ$@%fJF;l-YM0In0hAFuJu+utssn`koGY^tvDh`f9J^)IArEbl2VAL zXS0+DY{O+>!Y^4wyFj(wVqv18{)AWSO4$FA*cw-XJL$Edrn2}R=q=^LGkb}rey#3B zbfJg*CgfA2mw5V<EqbvxdJX;G&AqkHrylM(-Yg5m>1}}Y)~{xCNu5k@1M2=4dh1V( zn$sm7n*(dX3O#|-)Y=<hq7w(S^`hzVHbH|XSy;c1imuB1x{4>lai6u)JpH}%a?;>v zP{A{!-iF5yX(E-vtK}UVs7H$<Qzu!N$6jJQO!r?`Uiez#yoj{$jSxM@pp~cc3^-_t z`XYkl1+UNk3nLKqoNUEBq(6UTeJ;Xhdo?6&P^UA{2$s5FFiZ7ZWPM(ZB#0eieO`lD z?6_6BOHUq*Aj{QcoKCdwTwO#t5?K_<uXeoy#IJ&kaS}@1%@mjqHEP|jD2QsZ>sP1S zQeKU^@b~nvT!T8Fwi08%ZJBszhH|3SeVE;^GU1yEqbuxK8~jtPeKPOW$G6=o53={c z-%(=ZzBd2N;Ga1LHpdz`VD=^%o}7GvX6=9gm4E9xkUwa&zzAc%q{7^<-FM;6Taob= z<#L{NSBZugl&`U8{+e0`558usfmABh(Q&Ajd#_SsfK9GdEk|X5%Ysx!`Q#;hR207o zPvr1t(1!4oJPBW_!|N3;6AO*x-ou=V!oM2JfAfs|JIUC$%V^o(2gj!3y1$<o8C!9u z?Kwuv2av&lJj>uk-2gAZG)if*(}VH+I5Q2tD!7#=>Y2w=8i5u6JX{YDUQI+Jrpb!A z8J`#yK$Kh8KQ!0vakrGaa2G}WP<n3T0Ig~lf-cDpuZz|9r^hye&dHU9)vq4@9mcNd zqk1S0;D59O6)#wi6L1!+r&zv|Fo!#flIKg7#%E=IC%(y*Zk6Y=7MH5IR&u4>egId> zIkwKhFLK78g8F)*PvpP`^crudRTQdvpl{?CS5XPoV|<+&0DFPtc;F$BxBX*?tU@8M zuZ{CwaUNte>qbsGoV5$6ae3$u4?g6LpA?}9ifw-`M!E%>mQ2C=1q^}q7G&XTK|jDk z{T`j;2l@cG!oh5dTJ<5|0bv{_HZ>eXaR;?od8r`2KA2_RIQ{furxx7zPHMK3daKVr zvd^;wie|mUsfEU1*1<z+J5Kztx>NkmzA(+l85yY7(3bWm{g$Lk>~;foPYo02#_?33 zKDt>(I308_ab~XrUKLVR9A1C_xLbGuzLZ)6hB?^<PBnCrv~Ewh1g8tbodX7@xX{Xl z@9bE8Kl?jZT1ha)8)nmUt2{q#E&{rz=8agxv!1~W0m0_Mgg6unhZYj^Jt4LVkU#TT zKGAhL8i;#=hQSFEE-*-TG;q}CgzveWhuy(<2b{=K;QQKdx`XdPW7J{pC2OovCp`aG z;bZnOMx}=aX%8gu!!mvh)8`{geYl4Yo}2J+^cm(kxenr0_-2pv3w(Wd6N2k2P1Z$U zJPOcvH__?_d-@o|OMpk*{)TOBHR!6rPsQzi^%Z6gnBSqGOK_qS(rSd^$VW_3+axmd z5sv&J3K*dxTypMgrul{en%fhljd>=rr5N;zXZTFA(9-?CO9V8tQFuDR&Im}hAgF!J zGnK2HMrN_5)S&*5dgzf!NlJz4(#cy7Wz&7?uQVnXf-avINM!woB++R5q@=cQF$(|I zOWW_pJS86yeVR{cfpZpU|G7NUMbZ`$AniFfYfnXFF6<@HI1o5K(NZjcbZV>STMhrr zpd;O!3LM*Hx+)@O9kQ1-m)u<uEqSCOQgT0@_v86URixypU~9?qTxIdTywq%x<02|} zgCje9=dUeIuTL$&E3QX0%q5mSW1-e(L_l~5E}{hQ+k|5xh7nL*s1?AGC0YR-U829E z3*nvyvf2NYLy&fxfpAd}Bb+2ueX)Y!ZI#xy?EJs2vc;{zZ6PzT1StI7i*d{|+@cF7 zJcVhyU<1@s3*bn(G@tr@s${5?rj9y|&&KrxxXjo%eFjGh>fHhhXpViHDksM`wh+<O zuW383lO)Bf>)85uUXmQkA1Io|b1gL`Gt9Ao8fdaPHWyFKtFf3UxNc@FE{gXWnD97C zuNu+dNIh`Cf>UV$$vVotC~0kB`5=_<|47z3ta1hIUjfS)9REjjfzlUOV-Zul)=AYk zYOMltk)WioE#qBs5QzH6=Jej{bNDymyuaCW2<xqR@Mj7pt+-r_oSndT!dV}!#&@1G z-VA!3p9y$&oc`ayQ#|$9V4T0q0wP$ik|2wSyCecL3h;aa=oE(~U*h9=^?y}=*}E3N zqFGn<RR3X)`j1boUx>4LHrzYjsxN{m;}D)F3wc8xIcMS#T>cqxG-Cu65T4PDFzE^9 zZ*TYsh2LNvPNB@L6s7<hMgXwL?m!W*x{kwdyKYFog}z2}a&G1B8vWUzlQ<IPt~~cp z6c5q?s^xRB!sU+xR7N!CgLye=tyx>~m;X>2U9h5XL`;IC{b9p1=Qqdzy=$U|3%k^C zK5H<C-iVZ_=O)Q85(OuZpk1<lTJ5ir#J@&jtNq_jN^O7VV<<hGbtF>KY3?Z2q8q>U zokZgW{?V*!d2l=y8Z03=r!$g{t+!gt?n+GO%1A{X=W#S=+bt*pOAKc3ew^c-sQgx| z@>&3|R)9BGSN;%ku=0oTjCpEMFC~&Xu6>WSVQ4^r3+(xZm9#6nnZVCYr*YuHIoa*2 zwi{=(1`9Yex{*avRTNcOkon*o4Vh{*u38%R?xO;kG^=sxlH-r?SxlKbgt!HtD%Sp8 z@L7Jd6F&VDO}NBrLIOS)=_cHQ9E8t2JYya|n-KLpJ%T;mq8eMB5Q=8CGh9#b?qTI< z??aOIJI2$M)ZPnGy9Kh}ovlHZXzy=+B_Ml!u5Rxec*3tkyzi{>e0xK3Ym2{6Yvb_U zjXC$7@U20u3H*BowOj3tRj0Q1n@6O*L#_56E$!X5UEn*JbpgJ|rnLBJX@d~Z?}YD| z@6+C=ZgRGFKWewyJF!c9$Lsc9iyXv<>+p<u3fNwIzRY?x8NT0~+ATJaKJ?-b{Sa&r zU-6NSk$F@TFijo)(02eUd+~=hq)J&x)D$F5_(V7Sk}ajcqs6s^sPY}{xftG9j`pmw zOU1b@<2%(pU|lcmS$+yZpxd(<NfYha^YDM!o~q>boRZw0D|>HGfulX6liE|;V|!%1 z@L`p{nwd%8xQ2m@%K9}Gj2WyP%CYFh&$MzJo{b4_<wp)s)s);`ox5Mpx#R1<xm^u| zV-xDyft4U$S62oNEnOjNMSA<$$Uu^l^v^uIrf3az*>Ix5+Dvy@3ve-%5pHv>O*uEm z&P4oxuov@u^E#&oPaVS|m0*#cPw~1={kGOyT;3i%o8*eP4LEL6Z$C^`MiMW?I?dp4 zu&QRz$GZ}PBY8<;(2qM3&EROVtieDeIK&L{x>_>`CN|#;VwovO)Qa<!YJz*$WQLG? z_^6;Ol=%W}_}@YpZ1|C9R4~6D<yVdh7KAc!@>-wM)-=6Up9NtueO;m$yZf6{gHpdE zX9p6%koG5k+x<Vgn!_K>sl=(ju$vISs!6p77%u^*Bfy+g6aPM5zM+=Lxk%zY@;w~i zSIc)6zDsdYq&W$!WzG!}_Bou85C(a%5@BHp`-eCt@rv!c<@<Gf;~>^<S$pX-xX|kM zf889%2Kl~Yg5!I=(fG+z97K+$R$$SagZ5s3hx!T^Lh-n#ifZ_`!z><_AvXahPc9@W zz|=t|@1YQez)Geg42DfdqG4E7kCO*gzx{YSL3HRB776!Pn&s6<Ffg9repoohrR6%+ zkDplk>yT*oS$d_ZQx7~y36tb*sg@@pjJ2`ZJ@0?RUm-~rBS2*QP(8H_n1lz=;YxFx znH!npGOIHqld{cfS7cJIS)Co3G{`h^ar(Gv42p~&Vg~XexX;rp84|&Lp19gGQUWvu z<g1f}s+95{N|Zlb%J)h6Bc*)5ls{U^4@mi?x_m>IU)g>6jh{S{G+e~PC357Bnu`7| zh9qp3)I60bRG}0!;i*0$T)5ii;y5mpgfY)28$q$b+~6F=`dcxeQ-0_e&<pf{`VfWz zz3U_y&<Ewg0rk`MFgo;DS)OnpN6fPUrQsGC3|Lb<)mq#|=@``_ep;h?M1?)7>+To5 zfo_#@KfuEiF{13C2CG9pjy{i2)p384($f(S{qh?L!CJ6i_#HVfGk(8F9TkN$xE#;n zseaTI7T=ibZu%C5i#?H;9&b?}0+hrIS7hRF)5wfW^qB_UN18@<WTK4RL>ak>GIHg5 z<jVEPl~<Y<)PNp?Xq68iRSu%{dlIINB+fV&&lpusnpIvosysonHr8iCe{^Ng%z$MU z#y>NH!|}`#SEL*_?3QFl%5e#GNiI%V#bZ#Ud<Y(Sk#dcY<r*Q&LD{E*ew>?MOMdI~ zp)g9Uq(*fs2y`%}mHxHr>H7%5);gnjUaouop-}0NYy$4!!my|%pFHV=Z>_pcvO3S3 z#CnnpUmLVgH5*sQ>I~e^$QGe#ThyJ<vj6`OrWYk(`p}T>VS3)ZT>Yj1u^?j20ad86 zR*_`*ox)@w)`{~v_5J~rrU@c!J3)Ej1l0)*=^hYc735w*I}}XS>Zcfl#gU7#xK!1u zh5R6ZF><e~Q^<h`(pCx5RteHp3DQ;x(pCx5RteIUX{0UFNLyA(+$+<#SEg~VOygde z#=SC)du1B;$~5kkY1}Kr0G|iCiZi2>Iy^m%REW*;>Yyu*L=bsv`3|U8nMC6SvINxp zo#Z06S(#uLz`*L502?HKD+7FL^-&0rFZBF{N2TWs|JxGl)vq?&uLY{behsMG|H+If z!>fK{hgPc@63Ua+mg=Phn_Z893{c;9zdZFuqjQN#jHfB|NJiuWlxYoXH}SRV$KA!# z1Lf0?QCku|B=U1V{@~s5f-QRHj1Q>idd**;R`r@6`+vR0`_#NH@tE&^as${Xs5XP& z;@Iy@ob;7h+^2q6Wi*f(ltqV30a;S@&%1?V=qn4Ef1Mn)uFv(by0cmIizxJaoZnPw z;{J$s>Nmk58s<#bYO14+;_H2(pI~bsl(i>34wqS&lVR7iBUE6vV&AjGmC?$bP!K_G zE9tOoggLgBBK6p*n}Sndk!ysNiyNrN#<S_&C~T7IVsb$*`{Q>=f^LG~^3DP+l0nOz za_W=aTksz^;{Fpa4!Fh+9`-wrOdWs3LPI0_V?#Ty*7B?Y!{0CYUi=<+u?|%y@=Oh$ zF<bmz{b${53M8u2_o0|)=UQcMHwvN8S^nyTPuBClNTqu7Axj@vZ@y-<v}2$8HM5)3 z)_=B`V%{Wg(MF?qtymso_R;eEHMJ5WO*<wZ96!A3Ir+jhAI0OLDZB{%h4dTB<NAuN zhHy(=1<wMFlyovdeTQCq0+<O7Nkn%-;DPpU2$oUsM2WA32B`DNBBB_4)qf$#WoLAx z$9-j`Xp_$4LEYQ~Q-wWdl?t`K+k6M*B-S<TsNh2Pt8pOwtWNBz?5T=OQy9WZvkx{y zwo)IDzR>(A)NfBX;7YGD5eh>Cj3gw>O7l`z6?tVY5I#ZLiekKl#u4LywIwc`To(f9 zfW#VY$6090Q-f`^9cQ7f4$G|&?HEgBDTNNaJ;ugU8{LV_*nF{&7ejFI{|MJ-5ZA#x zS^H=Pah+o)OP&+I>(nVnq~f<TzE%zB60gUPn;X@+1~{$_0gOAwJU)IGk&o<l==J!C ze4CUX^X9b;fl?d>AmjfX`Jva2R3~IUw#Pg>!07|jPHZuM4H2vjZYwxH3qDcqWfznp zV2cEd(g9@%_^SjIAOIil%g0gtFmFKTup5e7FfgGvsVAjT>wwSiazanUbiD>!Wq*p# z)53{>$g9S_c9gRM<-n#SD`8U-^Sru_r6QksgV)fBVIzm+N$Emkzz-gRBJM>I=G(Z( z!^*}3f2}HTI%Jo8kh+T3&V*5jY(I+HiOmz_OPRAy`>O9@?<y=fs1vAC#VWhEbg!1p zTy!x(jx>GRmwG?N4wF6K29kvRDW74U??qcRO)9vPQ9_fZ;+%DSRhm=1xH$lTpO8y( zB=o2vl0kB$k!nJ2{U;6cO5wC~Y9C6qC(k<4h3j(55O6i5BE!6n1)#wbT+&ReM`+^L zXlaW!@M#OK;Ibs!k$-``!AeR-JK?1v%rLH)08>;$X81PTQUCuvGkggo5(pS(xexM% zSw0ftg<0;0bYYf{hHzn)2OwLR<)siUAgDyj^C6~05`qN)yhYtlZ>KJTg-=zRnNVdB zGon)sS#aRMWdLTdh`R=8PgjZ6U<(+U?jKj`p8q7i&N3@M#x$A)yLu4NJW2g9@KTS$ z(@4>NGo)z9sLL@FaiznvGCVm85e6Cc^dTano+%HSt1bB_vkbk3a|Lr3%(7=hJo3a3 z8Od?L=5aF_m3uxwNMxyeAnEKgD4<$#$1D)d13J+c&FY}P8dMp;g{WumC@skP)cyz* z;B-F!@9d_)Vs^Ec@~MN7-uOSinn1(t9{I-_wTiczC&fGD4bh&UGuBlSFwmfJhIQbA zEgM5l_7&|YjZVvy1$40pjZI%j_hsjIi)u$Di_LOq97@e~W$v=|PJILP1vqC0hTrhS zpt8X|pYX<DcH}t*(^5FBMi>Uu%W;l+ekczPX6r{Buc6N$Z4GA3a~?|63Wvkvsm`X8 zQ_`re-ieUJs6OI%jA})*WwGE__cud)=r~+=lg$5CHW9=Q`(qH334-=a%;^=m2v>O+ zY0K+MjF^w%k;_p}24q{=av#=$_-NKFX>8vPth(Q@4Z6$;exvy7&=E9G7zkF#zA^w< zBk_@Wu#f0+3B5T1FkA;`xy59ZmgW;v*vy^sTqy>6G{{@S@5c2U*SHQdvEI`D?zua9 z!>1axh<@QI_=5faNn~0<?{^u|^8#R8ed-?U&MwCJC{X+LKZ1M4n=u^$g{;9Gx|{)c zsFs1;E^gC@rerf@^)X^d4b!#b*$|u<02suoshG%`hdJIsVaR{6Q=#T;e?WbDd(Z8s zMO@wOfPL5Yv-zN0yU^MxKVWM=)UAD)I2g@YgNHg?w-$Y9;pZUT)T{+|vwR7e-N9ay zzZO0*Zu(anKYDgXT*(A|=^&ym2!|2<DM%w|B#2-DAi%9JXTxod8&#B=EV}aW>6)&1 z)uZ!4SC}@P^ss*PhH>PB=jB4v1CC%5MS=mUTyfaQ4sWUd!jcj;slz0cOa-Kb4dY6Y z54Dx75{)s|?%KG_GK0vjwH8iz!$0V+UGM??bo<M;wPZrS)=U4d$C{Tl{O~vcu1f_# zHJX$HfQLrf0QgnY_W-~+`m=WdK(2(Q0$}W)dIf-UaPgiDk9Ysl1s>oJaZuHHQz4## z1u%0;@J6#J*d3Agn*Y|klWBl=5t`@X%Q^N-h5Z8Fc^8EuFy(LE`gS}obhEqCaTpc< z;x@tk>GfsIKhVzB&w8mprJ{Ia=!e*kaa9z*8S+$_EtQ4ffZ&G>Hwd(C#l>h*xE=1B zInUu0^TQUF&_7uZXhatNq>eiPGLDdUAYWV!nP(Pcp1GZnclJ>9j%NLq^P5|MGN>0E zhMROFC9uJoj&stdZ55n`M+ole2HTS|q_3T359u4XB@HPq!|Dd7XThliJxt*A59A1S za?5^+a*V4~c@-Fl#h@twWAc40K=nDaV{RaM1lg1Y2nY|s>~gRG;q`TKYUvzr_;V4$ z>XrV;7N;r6`0&QtUGM>1C|F4d@mPs4+jEMh<UkLi{gNGUx6w?m#}*N>wqK}*O;S=v zv%Vswilo!;1y+fX$ylo=W38U-#jgNAAAbJk$)(McaZEsq0YAxC1R7(Wy$B-?WBzOD ze{(SauYDOqxEBECVP_&0_8{*->6MXVthEXrw7}z8%!svW5Wxvcy~J9@_{f+^Qt%GM zn;Ei<k#PfA8gm9CV6W!Z6W&iM7$D1ss$qaT4OOOK#`8WKGhS-Ym|<Aw(gTJ7WX@+7 z0)~%b^~Lz2hz2bFc!PajSA}(Ae9Wp^8Na_L`Glv&LoQg-{rKwq1?no$<nG2_$NSYQ zy~blG-lvzGjX;U|xgIZivnTu!eOMeHYKRZDgk&AI<N)1|v5Wy9py9xev*+}6bT*s6 zxBh4J{0jk&@V^4O0MvS@C!rM>>ZQn789ACm{ckeH1sLjPW-b1_+o1+>on9wJcOB}} zCo+P542w{B%AoEz#U9l6=3!7#%?~BD=OlToH3}gxb%H>yA%Pra6Ub3EfgBaG2;`_x zfa7T3<_;vj6?XGhUJytn1QLHiAUo6R4Hje($WbASK#r;(K?MT#TA>wyXbAJQwUvc9 zqzsDWm}mX-gp}u=8uTQ*3scLpfUoS-U^sJvGnt4XJX&7OiQvvQh7L_k24LYOqJKG7 z8?fWn2CZeW4A_&jE)%`#UW^NhyaDxy_5?=_jzgo?(R+H15_vRQ{=CRIs5n<0yoHKw zh+JRc1)e8$MzlN+>Fc-QjtRD9I0Rm8<7x}famhLEaB}rqbumvRrXA-?4fQs)T<`0E zlg7FPK9U<Fy?bUrPx#JwuiCY^xA+2eMpkd}ezl<2cmVtNShl*EFKC~-E-5c*sI&bA zXkWE@?dDV-(WbS0+VocDSDb0-GQVEs5#~0%jgGHT!)`&Ngn<K|L*t428MxPI?upMN zFa5=PnnqqDf<Xsse|QqP#MmZo4oDpuX|}U}dVEfTW<3s`r2hL<-CPIgB)`_jJjJEY zUfsnO-xBq(2QCLI8qI1ZR#miTZZ7?#yfo+aiQgI=cYn+(i(Bi58RkM+M%6u2=&TCm zm0snL=HDQ*IQ@`PGY}+AmCThr87uwi__8djms`v58hNH};wSpc^K_<C<zkc06nJQR z>uUA)n|dAZq^&h;z!Rb_jr?r@Tn{O;2LSwtenUwBSaMM+0KUNb<OIN2v<q|H0>DUo zeIEd%^q(;LuKwTX?7wZFLi-$AVERx3CjKT>gc0b*K1b$5>KUTjF_CIjBML?ba1~n^ zH-xm$#Aot+3&?!CFsXiFeY7(Ph+mv(i1VEG{PR1|u?K&tMu3bm5pV!42i@PIu6vH1 z_;3BCo}c4{l%SLBkMv@{cgx?C?By0=emU&-T5rO1>-j#Dv;jgy)csqX_nEA}0h#nh z(K=G(gzX+%B=Ez!9Qfb#kLqnaL|-n>Ki!X)#J_3z2VuFPe^7j_fskV>YLl0ne`rTz z-Z%@n0{y9tA6r~aHpbw=lYvU}waP-=ItFpLBChMMFki(^Uj-a5&FvM?V8e&2<skH{ z8?=6P55D?<(Qz-L5~{+S1N3awx7X?We#hJUlEr<Udy=4KL?+pmoQNTSGP3De(de3_ zNY-9v&v}lr^4y~H5G%hk&%b8tdM4^T&EF@_i&ma|=HZ=Vjq4uaD|&qAF;GH5)&YcY zHF*~;JtakVQv*69GGi%aM)&+j`EBw(#q(^yAetMt$8@t{d%9J-oa!8gh}CV*qq@oY zO}(&yxSIPv$@Qwvbpj4T;d!>QZwl16_8HLVYsj$>eJG}Zesyfagsba#%ZP@zqGuf& z@xlvcJJuxTv#6d0%fKv~e~)?YgJa`fY;mBV0Nwm>V|Iv>5QKy^#fcN=A6Uh+fwV%O z;zmP)vuMbE8vQ}S3xF)vs@jl6Al3PJla9;Gg}&uI)`jNZECQx~ZQR~2LEoXT68d?h z<h5-=Z2FkIA08mTD3TPms`prps1e_$_*}$9MEhD|m@2J$s_>3(x?3%Ji8vt4KCelJ zyo0_U0_!g@pEypz9LI|~akX`%B-b1#S9gwsty`Ws4yJBH%yF=E^P1!GVfJQ@D~Oa7 znB#^=N`{-`e7JYj95*sjGSVF9$Nj73xY3c4(dM{7q$FUDD~*(tn&XT}30U09NC`|B z&#&fUqMjkt%yBimp*4Dbtw8c#fh2BBwSidE&inObz(_0ogrpAxWjI828E^+Y&%*%W zjD-Hp85j#2o{sn`%^yB9)42-Bes5w=UdpIed*O#w^j6VEb=*uc?D5hzZx&Z5;72dx zvyE1hU=^#oj!z0Hlkov16P5_$Qv(js9v|FSmtmI6_{c@7X1R=yb+xLDPq~awxr|S_ zj8D0Y4|aGkKG@;G_+W<z<AWU@j1P8rFh1Df!T4Z@2jhbs9*hrmcsM>6=<(@4i{n$S z$L9h)K6?Q(fC0*I&Th06MEBG5_MgZY$ts3P+wCwp;1Ba4+B{r!dr#v7T@3j5{@3?5 zJ}jeFoe$$Y8K3Zsl=0#E*~@yKvm5I<7&S}>%zU+KR?>RD52M}FdamBW(Z30c_k%wp z0qJUikNP1@$a*IhhT6Q4s~uXt9Sd71pI)HY#D^IRc0__M7u8URl;oPy)c~YhXh7g4 ze_db{9!hRWGeTG_>#*Sn;rDAONh%TRE`cou+C4noSdIbVzhjJIHTy@<WqUjjW@$SW zlr#I`=lG<k0fs_9hv>f^t%Y=7C7SG0r=wGwaTm2{pF$@X(ahZdl@#Em@Z*hnHj5AQ zHE3DO?hJ}QeR##t;YQ*9(7;L(R0z&9V2fWF9n!ZWqtbl0!pzLCh|YzD1d_{L$=LCR z2P{~J@CThS&x<HfLm-;@sn$qG;3F$GnsY&`2^J70dl9hh>NK@a$aBf`+R*Yf#uzl= zbHjvVIfegqA-^qW$Niy`<n2Y*5znzc%*V_BNZx)&T#ct-bwO8Tbg60dC&}9Z^)N3t zaZs0J{#w(k{nsYV2l8VWEUXB!NXq(lD+V=reY@n^p4K<<=Y+mDVQ(0~7DtlPFjToa zaZT$sTz$C}H)OWq7S~GiEu2RM$3ItPVLxMae9^&Ouc<}`6)>fS-*7=ibUe1mVLMs; zHc+%hP;?}ao@8SA?8{E%|2{_Xp4q2s+ypvaIS`ua==i5%p81ann$Cu%kEjXC<T+`G z#?@-I=o&%Oy)dA;dN0V)OZvW1h+5ABTj9s^G*L=%9o+Z0jw2KKX_iz@b`vhqxD{AC zD0du+k1F$1o&kb+@T}~_$xXs^EhdwJ`(-Q4w|JGYIzY=S9=X`0H|)aSfW=zJIfCh7 zKtJVf`Zc~PaP&r`FRrqM`7R79LBMIu3kptSUXXAa^OnPW7Y3Ce;xy(36{j&T$T*F8 zLC4Dr@W596a6GVA@52L|^&|1XZoMB5Y}b#*1N-#>Jg{L8YfkRi!<v&@_LUVv&?i=_ zQ9z)@2&{>e*C4PKnx$Hm&p^Gsxl+2)ak6ps4w&n1OX)hMG(@j9HH}vMiLK0rm9h<) zR)2C*dXRt$Sb1XJE)?%?wHXdj4uBDe6>y$`yRfddGHQ(;+`tKILYAXw6t{#<!unWY zVh3d1{X}^~ScQ(O*l;ou@8hi^a&$%UG4<Q!o@waAPG;@jOCeSaH}$H>@catQBNy?g zBIBzHpa3Y%()>r*f)p!I?yz#}fG4Uq$TP$viFsy>!v(>y-rXbpF>x%(4Y$UZJV$&L zI8Us1N1_`E8X){gV!ze23c1)v8U7L)-b0B53VNR3fL@O}chB{h{jwO&{;6IJoja&q z>wD&>N%eK5Cu$CMfs@HeE=ul}U5@X6#_y-Wd`#Hae?e_E&rv9z3={k305ywtaWoUW z4yZx~jOfUVj?E@7I#zg{vBHav6<%ko@H+5t2QNBSc%8Ar>x>m%XRPo#V};ilE4<EF z;dRCeuQOJ7ow35}j1^udyjJr%M-!P+c+viXVBvCCUB}VbwkSxCuf0@^`Jg?<j8HF$ z_OI9d2iYn&)J?a<2Oo=8*YP;AE@?cXS%bCiQFFRlpR;!@6l+;&jGzFL9?DX;T*)DU ze4XsouhW<EKnEB;(t{`6)&gOpy=w+bUlh$+hrK)&-q<3iEJPZ4>PF171cVq^Ce^?X z`yqVVORqf1Z=q@PncKN6p^;Wm6u{{Bh-EeAxfn0WsP%{GJ)xE^A1sbbm@0BWY!a(U zLbA_|=mXMbY;hT*#^=>T0$NA4Y=%(`>b#6tN48`IoC~4z=W$UjC<kOo9}`s>4aO=n zFshhKLmx+)Xx4_g8EHiuM=g?bHE?Sww^5*b2OBb~M9Sa9@((qNU7;gju+ox?-bX#l z`Cus*uqM5CB}J&|XgG+Lf&4~Z2w6czFhW};^$(F6kznOwp5yV}(U%8Q*LLLE6*9w7 z96HF9nDR*u8VP*D`EW7M$6&n@!~_sbk#DMMp<id3NEz0Fth)h*j-(74A1c_i?Qz8M z%x0FZ$j0(x#}EF611Bte0wUr5+FuKfT9?#rzTA;a#+H8sf9At@PgGvpL)Qpj;~1lF zaFiE_tYPc}!`Kd_`Z^Qh{_IlNa#VjyFncbQN6uAv1eY&Hq$=M7-`%KZ218abxi&*l zKRKA51{-v$0RW@|_y;E5tri{kTJdX%(|D}*p>ckawSY8kwML%LW1c&ffb#BuRg<~3 z9;)!16Autfe^oae(g!zGh1=4Lx7O!|Kfq~CK)=h77--Z7Ybb^=z?%I$oCtkGh0>ll zR1z;5p0Fl7Z3pgcLJ{s|n`FBctVY>u3tD7iI)q|<9*jYSy_vPI7~Fr69M|q+$o!4k zl6h{Y`(>&!paH|=m>%BW$GuSWL?m#p@T@fM{Kq^m--G&A@55+BDSqo|^Tl&e#aV+< z+%|Iz2BLMp3`CtCi0fq_ZoyWKTJ<SU4JXyac@+qLrA#Jc8(`^Gzdt|^>zDFD|1er& z8-tWa;WnE$=hKZX1>7dyw5GZA&{#cK`IY$r>D<!%T6r$am#!6URwIC5Sc=*A1V8}4 z#!qyPEOkaQIDn*R+i68_1(zR$f}aEi%}blE@m^g@$`pr4%=0v$ulGB!6t9nhYI8~^ z>i_*Tsh^c4ESOU8yFS~Af9_?6HS9k%RMD`1N~rX^5I_8N#>`{gt8i+{Blig={h?uQ z`Wf}Vb1y6DGy2p}=IAN)k99?8sb5d7zpG0opoQk!$?yer#p)7Xliswk`K(y|r*=Dl zr}lu`6R^2-FmTzPJqaXryak`1^1`Vg3QHd7ZnkgUEb;C4{*rqM{1<%w)EA~8{pCHT zM|}JAc>07UP3LF-VxD(@E{fJ}rjd+)wUB@;<&TelKteG7FwzJvCy6N9XpcV@eIKNV z2kGp<co1pjd5;rHhFh`%-PT?z!_Bf2!%celw6iPt-uR#c6!^X?B|hT(j?>Qs@x31L z-4kDcpqum+-zR;}i(>!`@CdL!gAXPaxcZZ@KB+TmS=lyB`A7!%F>Ko}uo41sVxE(k zw%dh3565PTmlzX23lI$`*cD3Q_L56-4r1cvgtuvW@tauWy@tE0)tKgwmZuxj+EnIL z%5awOfpr;_h?rNsA(JnbS~W4vt=g05H5UzYd(1PLR2qbKQv_y|=V~fENyvH3Glp~8 z%z1LO28M~-RmNg=0UQ8A{qfv`FSvwBupVy1wY_rBY|af<a<mJHd1Ndpdd%~gxV?a` zj}nDtcXZv5^U><aQyQ9^ac)N9G%Z7^Jcy8sfrb7w=vF`~VcZjfo`*ye#}x)K$$^#u zlBR0)j`m^0oP^#5)#Juxav;~@6^l(p%ySXmOf)BFEf)hB@Y;LXBl@eLhp-kI2Utt@ ze7vlgUCp^Cp12r^amQ}VGY|!Z{b}wcxC4*gd6!)*f*2cd;_uSZ76^MXhXlO=M3jV@ z(h}Aur+Jlw{}ul?hy+~061J62ekPy}PI2<a9Aw~D4Kb^hFz`BTElsS)cY+MOvP`D- z8>WhRS{L=jM4pULtibv(;F#wep%t(<0bb6Dd5R@A=W(tLfQ|_q2@u&d2As?}al*wc zKrlcT(i(ux5Br#Nt(7h2IUJb)C*meb{rD~$ShxXgAZ|Py;C}hs{1b!`7=cz<TpV<H z8g8|KLaJ&@aN2<{qNl;;eV%sCC$8*NpFD2k3Q@`@&B9B8{o>_I0&C`Q><snfM`BBb zrv6bgGhoeMfg^>vmHyxmFL63`&g3s~T=%nBq&tRcR%Vc}GDvzKk^;L9DcZrKm?6h$ zoS35~Tx8*dp$`A8#)+l*4QN46=#YdDxPJ`%NYD5%M}2x>H~4^=0p+C_)yk}v1xzls z6CbVj!H<KKlLEX>3UCfS^wbED!kalyb6McfWAc{)$(@tG@S^z8+mrt$D>?3eMPf|; zm}ehcOJbhS@z*f_f(<%Wvjbn$YkH~E^y><@NQxZ4qryKE{cLIjTzlohE*18RSNJ<5 zmI`l|f-El5*E6-T)`uCy4UImO2!T1Ys{cJ$zQxq;2ueK0FHLk{WGDcobr{~_L}!Wi zij~Zle}Lr8!WZ|Db}@%tiuN<DVJ;EF5W`$3#i+3$e{zhuWiT>uvfz#to2kEutQ&Fr zpvXt?XTU2aOnChad&zauiyHMX;(Nv)+-KTbeDr>_SeZ3RDCQ_X${wk!ljGwHkM+X& z+W3i3KET{Q@86oT8upmAKl+tGL_lAo3izc#59yYiHvRzgSSAxQ7uv7N{5ti?PNWSq z-)!v$c9&9Ch8ndNDNoxWen?y`On@@xdHoI|f55$@RrUk0IarDfRg&|&FNjawX8W~9 zRl)y8U|*-k;+4e8){f~5y1;O=v+<SK0WaK-HvoBh9*-LJ=~KPM8|vWsNrR#3e*x|# zg7XHZ)O4b!7Rq9tnF~2{a(0Z&k@b$8%?+F;dUBmeLVocDOyXp2ev8zc`@-B*Be_Mw z4PkS^t6O3sAE`qv-wyiR<9cr3xXbUmo@ay6#9YCM;9ecw%c_{?UeabR;s=WCMf?}C ziX;~C#`C3bxB@7?h;NN2o{hxl*=eBHFM@mEct3VteEF^ezwten?<9I%txiGCp2s(! z&O{~2@wPnTPmpTS5#}5hZ){5x)OxRzC_Zr>`z8yp)xDfAPqP8>Ad+KC4RkRy6@F%L z)`F%f0$P4HUV$W+fc{Hh&KfHZ*Z3)tYYnggJP=T0Y}YF8idXStBqsQfT$oCW@M_DQ zlrV5-PGk}Oyw*W~h4>n3B(5Q{Z~~k%g<t%^oQDjWnDf?Z-T97%6LZv`Y@&%%Th-1< z@hSVn6Bc2twF#qzt<L!f`iEr6<Kc{-qZXmW<amr%9W)8QEd;o!Nhk#`k4ZPjh-fW% z(QYaYqn@@;2=~_^uV)@+3+&m))bAmIs>Qk*Ms(Ek3{w&P;Jbx=ng|AZjTQ&Ad?1I2 ze(_w<Taf(qf7}(634vm*XaJ5lSpQjahA*CTznoPgb?5XOfi{vWoE|9$9o2^Z;O8-m zw3KPKVZ##V784u5w9LN;gp2FH&qk$kOf$i|P9O#B<xif3Z{l625h;k&flB1u98Wxq ziA}d!doG_)@NCprcA=F5s1@^kC3USq2^!6IoYSSmlj0?AWn!4&AIU}8<eA1v`j7si z|3F1`t<*CDt_g1jJs2XPa&SODY7EGzN3#P-9Juh$WDvFR(N&e2b(@^YN{lqe+<PiO zgAug7mB9NwhDKsmIlYzkr0JbGullkYqApgl08F)U9Dd`N$ta)!V7{dQbcaBC9Aj=w z^OPYRI-yg5Ruz%Vtr*{kX9U7{udgVImm-~}NkG3Ojb}0$cH*y3o%tx#x=Hc``b(p2 zy-=9jo%$F5I?|wO*v|j%6k-5cw*j@Xb3oOj>`nn#UKhHcj$r3X&7l#b#vCQXX_U?1 zVMI^9@}!)!d1q9bf0@3x3j6xzy2`?Jg1#KT+_COu*=dDu)<e;<CVl?K`cH6sUrrE8 zt%~qkS6T6<n>XPPp<EMiFKxvwW1-;{)1W`C{70I)0{DU|e}F23;g0l*X>XTChPtG= z=l%slbM8NM!><LBlhHH?EOZIWVqgKJ=PrV>jK7A*4Au!;*<N1*#D45#dlm#)7FW&A z`V%<|PDH=iT~`DLcAGgjSqb&Th<T1g^44-!AAm>`NEFF~a467VvN{F-Bo(gvcJfou z9!CC&`l6l(<&pCk9+n!n;qRixeVQRoHSQcm#bM6p!|fK|39csIVi5ECiAgPPvl7}Z zu0wLP_=N6Sti?)-&|{kf7p7nx#vAHuw2CqFAor)#n2}uL`6)H-y&Vh4CDsD+|7iOX z_^7Ju|AZtEfiO`Vj2n&`G_FKI8;HvU6M2zDW8I>njpBl9qf9U;Vlas^JVw!CYg=n= zYpq(PxFNV;P+24puxdpS#HD&;6hSKni_HJ~J@>vh@699wzyI(5=kp=+-n;v`=bU@a zx#ynifzOqJ7cVb7EO68Qi}HwJ2VL3&3^|Fqh%7BhT4HbO%R9f`{q^O6f4S?+1~@*6 zP|o$GsoGs%Dj>p$;GKSb8H#Lv`t#CfqdFEf`qQ<%Okq^?*Hn{8&WK@{W^Ke4M@V}s zSOm!E3{1&p5T3Sa%*HuM@@d#K4yR4yrfPWy0!I5`4_-Xk^ImncUxDlfX=lCO`A;<O zLDil5_K?JGL*ULkHL7m>)Im-lY$slzCVz_`_3nE_Nu2$sDN!E?mhY?oEvR~$+wf<C zOQxSd)s<B}^m89K`zy$9P!;_=l3>CLS0c>nPcsBTe-1epPd4~<-o_&wcuY%b=dzyK z`G=eRTx7=y1+=jYBNenfdC=rDv6;c;x=6h{MNlD_^KXusU$SOkD$$pEE;bO!U+0k{ zSPvot$>~?Xo}kaVFz?UCX9Ih>ZYWzw<BT1An|D5u-#&yq_LkPRse8tQ&+s`{?SBa| zt!r%fh0Nw@g;g2TkKsjuqOAyRvg&@f!Mf6oQ$O+GG+pZ77sCZK3uRbq5xxocn_Vav zgM~0C!$+7WLJ%gZwekxe2L8@?gVk&K-ixoeulMw1eC>_iF8|f;(_7KoF1`H(M>dz< z^3j?oTb6qF_q#=J^N`I?Pu~7Fs>PMb{dfFJVUcxA0ubl06u_B*>jBn|tw_;^BusRP z`hdQf&IAPW1?l;H#M`JF7t-{{<gx@n$lp=?CC`GZRaN0A_4~<vGAIe1I+ZKg3N#j? zT{jk7`3W(<L;ZN18Fh&Yu)F$PAJB?DLOnIIk~pircYGykBQ|?_8NXdo?B17B%==R6 z)clm(347usLZF^%$D5YD5$DM$NWwmhvuh9tE|jG*9vp;MklD?LX)>cCF&MNbYmZSR zwp+}y)?-i2vrP7Qa5FH|F%p_fi<~9kBGh}3oADK7^w#>9)LOqKUle=p1IWDm)Lbqh z*77!O&=Zk~(jAv!tNFiiobH>5*)hVDo1$eavEAyt4xr7iPhPM;h#YDFQwS0Suf^$4 zpb_>8^v;uB^$oB-o+iLL-Sm^d`uuixSfY@x8pkYNh5P`MTNLtFk=+Fsg$hx~eJh|| zKWMojLieD88=K2Q^&0LW*<CIC&NYTY!@vie!3Huwi7Cc_FlHQvZ7FPGi_xrSGrPva z{)b~BqMlz;=*-Cu!4#vOgU^3*nvB$|o*(CCeh-;NJr~_b<(_6JqDHO8rGVP#0!s-% zWt^p8To<3=8E<gpUdx1+KHw>b;=RxZq6fnNup*g$FyE7mybOL|Z1|Y>I>G>K{%8yp zFgT0zE+(mv=&UMx1jqL_<lW@`M9;#?&7U9M(z}RG)l^rS>Dv#5tqFs{J}Xbv*m-*$ zYKRP~{5)WrSHPQF!7Sa0)jjXCLv(H|^w^hY_E=uyMp@L{Es3MrDUWCG3x_hQlc$>f zWZJJNvg&>$;eQIhckHK@x-sS=6r_wERrt9wB+ja(MywW`f@U{czN&j6?10^yx54Eu z^Ir$W6fhA{%R8U&SJo*#@0Y}yFc8&#YVwr&MkM120ld#1?4asdq*KgkvF!hq6S7{4 zoMkc!MIM8^2uezvy6AN~Y#ux<xb>gy*1r`f!}`at{tr%N{lXrT_figaODsnTFf<HD zu=k?ZoedXh*3+7?Z^JbKN*ZNHJ4f1$9XJY=J(k&U1a>Z>Ij7*|MJgy|3p4UL+3jlY ztSq8P-enNpiqNMyO(!*X4a~@h?7J-I7Cty<+STb}kyASq(emsM2TpsK{iU6=A(WTV zylH1N=N&vGcC&iu-`mK5ST@h$$L-&%cuDGCq>uFPHf%DhnPa7YpM7cix1JA@pCfsq zY&ZIMF<OxRor8z8{W}{O(7#dmar<`)UIZQq_`Q=U{rkEO{ZnPqzY6K!kYzb1@`1sI z+f`oL&S54U_#NcH4-YB*t8;}Fcl*Lp-$v7spF|S%lHap$Lh=Oh<;H{aZz2zqO)Eou zzlPI>k-RR#(I=0l<EOuqkx1N6^ib>zz&_WWg2j+(xL6jb(@We8Y;UVi%Gicokzv>D zpvMK6LP$MDKXdzH{9moMA_ELm5O=N8b(4?K_OHN#!Eh02$O(`6F_ITp@S`sF>%Wo6 zaiXbo<4qf6MP>yLJNjBkEj@*G(Kzlg3ZxhVH2h6GO1b}&#r)&5xu21|zUErdN%{V8 zQQVGPs4fOG)r)M!$j`V32aoE@3yWkoE@9UUa}+fyv_d!{t*KmKMI%@h0fSM_CT={K zeIvKlevPl?(U9c056=+EPDdOF=7lbl_r(DYFKfM7*caK&VPrSgo+9s6(NKA`4q6}> zPu?Oo_b-qe>ux-F0&3EG+t{uhjP2S0w`;GI_U@=R?s;ML%ah%Oc@&HndSQN;TnawH zkIAopfu_$etsGD>%tGzOC&Yh+OyY;PHy!)mC#B4X2^C@_oh196vpAKgLU{QC+hm8S zSPhXk0KG)nJg$qUVmaTd4Wp9K2j}M9*JAY@&kG|Vtd0OupepzyBrrFuzPlFbz%UW> zOVlVqI0tzT?Fnte>Z3<E91q$GB9y2v9K|QB26DvG>@xyvG>eew4#9-gG}COc9>Xih zl%SbmT;EgaC9JOOvEgEML!#kdoyeL1Ay}_>Fj8?btj;^^Oy{5^R~UG9(GrEf=%>g* z*$@C}vJ`;UpbFt4C8`3CL=VnSI`gG(Kcz$sVkdm`=fwxaV=7IT9#$Q@NS~LQ&a>Y= z?+@SGVgwcp&Qi^M+x`9F@;8uuCeZ^LUorn+bHlfnEOa4N7cj47C+!dK<(Q(({_wYB z1iEH__%r>+o;^OB#ZeRXfAJ{HyO;gp=}7M#zPNumUAo>Mz7`F8s_@K@-X9+CPxlEc zc%i=H4YkDE553HkyD8kD2QR(!3Jf?r;%h5*(j9NpnE)7w)1Qkd$b9!Gd`5A{#bvV2 z1+PRpArMkk5dUBr;SR5>vsbyP(_cpv0vMPNlgi5M@D9X=9ouwb#+ZfzxZz0+WB!CF zj%=$dM}DwX(ohAqdB;8ulMP}0bZu=g5ceG;?+I!AJ!C)I&AuHhe7QCdckT!4K#D@( z@#_uTIRm4EQ8=>JV`;k`FA&yd;zwQkhR@OlXQZHfp9mu!n*DHy)5}}XtlLX01$Co) z=;c#x_Oo>_X%z0dnd=cw+QQUy;tjIeU=MaLJc*HQs#|8Cq$YkU>7j|!-RxVilEBE; zRUkV534?ALsLj4b<HdOOypaj^C}F6GrDPuUT)trid9JVt{p!hy#)E%|7v6zL9UkQ5 z`cC>z$WO-k!&1+o!rk3}Y-|(yq)GTBhbZ|{ht`bLGz`L+M`}u7y|;hZ&xd%B)Iay^ zZLGRc4NB?1*6(KmZ72g8Da&zz${7;CY-`(aJ+s)`N32)Bg-s2yNw9jui-|N*a2fjP zQp0J2O#EKo257~Cqumd~uj2=C`9wPO`YSP?UYq6=e2@``)Wj3SrrC#Fes-a>4m;yh zKO+XfMM8Q57YY8tMFKym_QjAIic0+O(Bl;|CB|E4?BNC4<tyi~LGF0xOAE4_T%$gp zz8kYC>N?I}FP7QFMz(CVscR6-58#?;z!g@VbzX4ovj!sq7{jXURRLFj_d^EPVt@-+ ziu8DJ#T7~58ix-8uCN+)yo)PGIFFEjU{}`wl;Hq?*PWmNxXA!eX#f%+0zfZ5)u?$W z?}wi^9s2U9WcYg1VgE=;FNY$J2vKhQZwbK#ulW$-;UV_7zEzcxFzu}#K4$J4$Bsdj z{U)4Qi`;Fm#9jh@Tq|Q|ufW;Jg0j*TaCcpc$F=39{qgvkU4YfGo<*6Cd}~YJ=l6t1 z?6<J6h(|2$i3ejEa18;qMf_puHNfJY9{uF*VMur2ZClT&DoU>PL8sPtrPk-KX07X- zT8l(t?ofB);8_dYhVI9fV!K*<Jf{_=+vRu=LpzNp;8Zn~bu1cf!<ZGZ(|O^IxbUZ? zo3A2ucS^cvy>y(ZlGe+u>M@)#Y{ALPC$KV#$o|pgqTsdMj}P$woCL;=k>s`IJ8Q!w z*K(NM5+BX@e~gqbR<wW%vgir-y4in*?9pH5YBG3Yjf4s6P{(axvkizJ6z|-VO@m4x zUo+WwU5RX5q}CPpB^l6P6<LZ@$?@jBSii53ceIJrkh*YGUmWu2=1Z~KfEO&-ftI_$ z|LM1{^PE@G7yZwNWboih_WN5S6h!vNr<nPKBMp!f81G`GdLE2KM1^yV)lU881XO`G zEHxEvXs#!{8{_NEs*#@FoN0Q~It8W{-IEhp*v`9xj984(S%R0c!6lA0oyVmBw#3c6 z5$J|}(Rh%jz@i0M<KKBx^gX;n$AkOwgLslvH_I*bC&AG~3wNcq@GtU7>CQB^fY4i% z?6JQOa}Vl0BOWYw>ixT$wKA#R;i>gbcQY62dNKF1?L=S{sWl^HVu=RjIF%x7QT1Oh zW<GMz;rIx8>G~xuj<^>0X@NbCT#sRM)9NL>=pjFjCmC|S+uA&!u#siNF=cLX3Q#}I zbA}v6W(+wVtV2bk3wXF_w?qk9w7v8iR?~;4<DVt!lC<f#f8;n|N3Z$}?l(!BUaU5z zr0<#^Y!5%5sqX)eW(ij^a2F3Aes~Fh>h*5EbvcB|j<xV^9t;~H4r&c_yqgyxtCV>F z#x0)cJ^+<K{sU97F;{t02Re}6=PKshLTiI;XZ&=myi*YF8$At32UeYTx|@9qksM)r zfh%D(v0d268ujJ61RHt4u#sX_&Sb+z44b(3Xg?d->aZ2VW@Z3bV9SP$3`VM9BPHtB zco8;&eGQ@dkQyw63z9qOie>EecMc1w!>9AiC&NOj!S&<8-(KtiAq)$7CCCMSmkdH= zor0`fDb4`ffo#z~-12oK2lE128S%BB5A6?{(R^s@aLtFzaGsIjIm0POqC1@Bc;Rqb zk8}CZb1ZD<ZRqdJ&8<LwLo!Fu5_IV?^3DjV2^K%k&3+ED)0thk(cxed!i|2ul-wv+ za}98#L3k3<Y;X$>PP8NZZu`-?T~8~Pn|U*ENVpN5e2JD76Fe}b)BR^}0H#0dNQNo0 z9)hgoDA*2(1H9lB*m<ITSUU9C9?rn;KpQTvz`!S^cIX8+^ToPDU1o+}kQoxzUZgUQ zHQcONO*zWpW+x&dv@AklbtyiQo1F$_rK?PaGv%VB;RHFHNvnGp&e_O{GU})fp;X*M zxm!%i&!09PnT|gdtHo*4i`39#((|WF(x#WFlT*`s(YMMc?}mils0ktWSy$is2?0V} z|9~w=xH9zfx9*m{bvLs0&VL)#L#Qz+y_f#C+_d}sx1MqPUyWn(ZvTrD{r~=!-Rge_ zvL*G;r!Q_SO71_jU2$!2?W1*`GeY!tLx@J)4|;h#*dJ^jL<IMl60QxP$GkuGb%^LB z&=t4v9nOB}5%P{hB<2{%T4b+xvkyUbI3SN`>%<l5Ac|$3Kf~`UdMjRZv?6sMy>+3} z6+@N5X%zHjRC%nT4;0V?mY{MGAT~aoP1izrMh=v3!9CohXMdlaQ68)AgS758=BJt} zg&v0k1;yVNQ1P7RrI|W(Cxv~cm#EGM&@h?{!>BU~ssfHqbI;z%5K=3cfvhFeJatE( zhT^8FI9GaPU@>lqJzjGfEEB;yrBzC(xj6YH*}HJk-jtehWYg#g4Z~1$Lc>ALKlQl{ zK9tOR;^78oOVn|A?3{(cs~-?b3CqI8G%6R_)(&<IzLBL%8ZKZkPCIW%jx!O@{lc9H zVXwbCT)%s!p)=dbd=D~X-w=^VGrF)#kM`riL%}vNi>10dPaWoV=g)X7Tg1r#NdNk( z52WWoPy<L?=VATox-1?XLN-kdxy@~B|D=v(rgp5x&Abg52K<mnqlC&~iEixgJQk^Z zJW7nv359i3rzZ7aI`;CvBDHZ?GX8thasO%B^pJWeHQi7Dfd$T%f~98MuuB%;-EbR= zvwbkfC-%E9b$p%7rrW`2T$U0`eLkfZcHpy*L!U>!UipF9|1L}hNx~R~Cy)Fn8^-=% zxZ1Ta&=Lh&l<XU5nSo!AQk_udO&9{#F>vWi9&_bdykIGRA3y5lfB4LmyeUM!Klh55 zE05{p;BLDt@1oU+EctXH5xqO%cuS76Gt<fb2(mBNKCE!sI|ThSzIyfQh%*JQCsn+{ z8mRbtjK;5l`HgmMVTUmb=(Jv4{uF5%nL&=tOX5u@f(7iUO~Uo+aN8s{H}1%Y4AHEE zMu?#o2yt;21j5LcT0<r0yWRX=R{6xJ)*sr#sEXX|9mr1kNV=4Hs94x4G48%@jz^Lz zoYhl>?`1e(x((R@CNN{O9h26W3jFZWPraIcNHQ|@W>3BR+FcUIIWUr7V3sQSJMxk} zHLB~q_SAf|W(eY4hzq-6Po0Nsz0w2hsf!Oz?!U7>y8G41>mxQGgiYo2Uxld>w-)=D zN8<zWd|hElcqVsid5_3=98|>e={*Oa*7g@{3aPI`?l}Paq)S<t@$AlrMugC<ZIQ{= z=-SXtd%)sk+2Q=IZ2T?YQmb%*N#r~P3kuy-gRntGRk1U1!_2t+c(5Al5K9iym)8^b zZsDiqaiO?9pm{qY>cKw?N1&Ex$)f9ck3a`G2Yq2&W_J1^;A?sg>z)5%HT1Y-`0hUZ zR?-Y(;CJQD6!;Ag((%FXu{93-o;=6{zk^xW3%@`MwyAhoG3`NVAbGVw5{6wbB(un8 z{E#f>Cl`{_0m;wL!516%H^TeP6BalXxIYX{0JjX}pB}hL^ac5RcrtvA{}8<}-*2G9 zJgf&7y{=kCk!;APQaKe@fAM$gM}1Q7KJVNg5~qjb_eQVJUA6o4+K5wbhF)Jm{5Myg ztsCmn>#+LWqSu|jOc}3Fo*jf5{qzicla13bohmH=MU6oh?BHCv$B6FKffv7otkVwV z7;%=)CQ(ksnT5;o1jf1gzr-DVto>@95NvIOSgWlSXJYOW%S+y$O;#~}uEY5UWT#Ui z3P{UzCTYeoNYdW2pJS?9;te2SX#4Z=mdNBk0EhldXhxUcSYFo{5sgFYDqN!i0AqU? z9^9PT^I*{pEZAZPp9<#60JZ11v~~?z!x(E|dV~Ip7p?#Ps0SJk-f=E_lMvk}9VqWK z%IJs|kVx{Lce7uF>=4bm_TjiTpT%))<87H3*E+ljKMtve14P$lA2A8Oh>jj)OTzDv zIvK@!p3f3a<u|yo4015e+qbi3IZxQR5~xlXh540}4w$G4MBlT6f5a_PoNgByfD!E5 z=%x#h>+pi{y}RAaJFEpal9)a7e*OVT0LlBC$t^B^rz1N7GK2uxP@@5&Cwe*FIC^vq zy%ozpQG;0FKtb@;Id5f9R?ZilYTCekC`3*6$DA)(zP}F-_j5b57FlqP0NKqFo`Q=W z*-ZPE`nHnkVSugVBc4HfvEUf_$vYK4=6q4;QOIDiU?snJ&leRuC$ibS-403(_x2bj zm7u@JlT1dT9P~I>_xLb0pVDKQYA-!?ehCr4fnM+Xwb>JQpI@!`v&*lp2Qs<*YW}`1 zziNQEvK#Wn8OY|xU+?<Zs4hW`N$J!dLPYMpJ`&`{T^S|-*vA;C!_eIU>-|n_3;XtW zLvV@ccCJ3Jiq>ty5!55MVmi3ji(~aT6{>VFZX5*4Mf|qTo52aG*P>}*D!}`Dfyi^p z?JvrjKg*5`u#dk2G3sD`?7A|%ZF!$au6=wBK6KUE$Cpd!I~Zk66smLZG@2VFfeNVW zj6}I-Q^|yetYsO)d4vxicu6Z5#1|ko&~K1p9U7d31{VV0@y<?+r}>LMkz<feMZXh3 z9L(npvNzq}lsJJUD6n+CfD*Kl?%f>k(-0VN{L4-(xxerr6YFQ^&@Z}O2P*Jx4%7TA z9;`(cQc693;l)O~;1&E-3`Vf(dk2ZH5#mko#hL<C?Dg~|U;Klc{ZwQJ8z^huk=>9# z@}CuGeJ3rJFX1GOFhvabW+1waEkQW*@wDlDsqsPM3HM}S6UIb#0hxPRVLgLkOyXWR zzPjwfCvQVruOOv)Hw?V^h8A;@)1CDZen#X=n&Tkm<VwUogdD2|ek;Joxd+VGd#CZ- zkQ1$K>OTm8x7C|C{o~&RK-TAwRm|^z3PycDUfm@Q(LBO|1s%c(#Vyu}#Fk)#z2J8* zTbSmI!X`EJ7ecuvE<`@xb~7%-I}ai6ZpDRof;q{+!yJG`2O}WnXSj_PsI1}ij|$AI zvspq*{~7b3%KixkrW82MMpg$-*u}aYuR6X2AhbbFZFyo$3=g^tsL*+=Rh?I|LqPFK zY9k)$5AdJ~74oExI0FBdhXt2XV@`PSW0HCZ<$dVm!>?L3J#D(B?%q3vpLyi7u(}~7 zUB}y_e+O99U0)d%)go3txDCK%;My&48&HU;jCjh|t{wSxMQa-ZE3ZIc<+kdH-PMe$ zOm70q-VnI^9gGqe?rqW$+9=;w@)$70@IcFaLI6fP-0%EWBHa@okLSZnzyTwtU|EzH zTW<U|VT?b#)if=0=kQ3V>Ez*&{gd<H9Q_+l_RHYe`Q)ULZ+hFy9^{<w5A4MGe#~1) zJ-V6L1MwWrov=VwmVOkNJr-<@9!rzRnK6Sk0;A`&s|;qi3GZd4-&7%sg~!{5SGRr^ z36aa;4=SxX3SfW%$;AIFn^`_Ej`k)Z7IXPh?$xw05^t^4{zze+)c#~)qx{Ym_>(6c zur~<T>wx1@rhf3)gLHtLr1(m+FLG%R0wk9M{DDM{UMBpRjb2}a(|DjP7@4(aO}^~x z@xHJ%>NBq)|M0zBI`|6fy2kh>gW<9kHak(Xy!Z|K7jpNG-;Jtc&t&}djL&hNO7@?y zb6)ypAnCmgM<wRtvGt#UR)l@Zcqw1H)UJl@Mef&)SPxJf4-iL@?9<_m5<9T^G5kai z!hL|(q97udMvu7+59BCY_LM>zXec)t@kSqg3E!gq7UiO1wT2l0$P(7N7X-1kzY}91 zb-qxE&A2SfUW#zmxqSEu4fHYfK9HzaO6u$FR-p*`vthCH$0@UU^T3Qn#cb>{l)`P> zY>MQ8X2bjgZ3N;3|J0JUz!LjcMhBG5%mUr!R^u8>{Kqwz*M<TMFym!2Pc33l`wdmm z18r0tJ?1w2#kj7-i3g*PM}ZuO6hZ&^<~Fo3X&wG=!hePTTkyZzinrtbwpiZMzj1T% zJ8(>`u0#f6@aiSmxu%4WH&-(JGm(Lcg8H3gh~VbD^$q=SQezgTfZy*(`hJV~evST) zJBQcv&S9)=A&Y>|dH-w77&o*RzBDjHy<V7^v1l+r1vv&S!ce-5i$wh{JP;H3$!met zAk^IKJs;ssFHtLYk^Wdpx|R=}^9Lr%wBKbG@?m!sU|SWfS5?u*O>**}?lH#BtDg^? zjZRvKP!{XSo9$oZ<2KwtOBJxYQUotBDO}(@8ByxLN7x4ht>{<DEBT^*t>$I;!2;R2 zf>c1~LlnxWJnBDi*N_Vs;8-O>8Max(TO9W>=&Km2Vkc%+mv#s4`UeVB<F<#xPLE~( zgl9nA;cn1VNkO(^1o2Sil5euQvMNYm+af`nAFs6EsieVbSeR&iK;N!@)%FH*VfKy} z*2gC2Rvz`0wdAKPvdulM*xp~W0l5ja4mFRDUH20L*Z-T*?tz6E2kmz?GXECRiE^dO z6EFz0ZiD37b%JXeZhw}T4X5gOup8&2KwF)#STPtsC?)uZm$j*?R%PY^St{)ht4cqQ z42C_*9-!7?dj~54qJD2|_=epZ%&s>7yW5iJXz}2yAl5`6sq{xD$mGcqxr8*yFZe4s zdJpF*a9$$Co<#Yu`Iz@Xp9ls0m@E!?3-Ly0bjXYZj`#^x0q2Fk0WjJltQZ5+wh%Y? z%k3;E*@p>H4p2*puy!8lUngWUK`Yy`U-jj{lv+l+nLjFrgU&JX4#72KMUS$7!flwb z1BZO>@)LVNJa}dqD;c29M{CW?u^_&lTY6F-R5NW88sFMUPV^oACYkGywwhm~$8_|V zxK1ZNjvuuHqgD4nI{~T8m)!Bl`PS%PhHwq1V2=&6JdhJ149^44SfeHu0-fzk@{K_j zvR~&o4jtiJzH5L$D;RfszD2*e=<Nmg4YAm={v1l)xom=%Pxcb#fm2!(ytYQLksie9 zRa)NC{Gde;g9;ZUEl|a^xU_gOxb>~5^#e#$v7FPM?+1D6)OD79%%^G~9<SY0w(L}e zra@a#pf#2QuLb)sT=uIanj_KARm=1_-%Ne+`#}TP^=>X9xd^ifKS2l~@hUsm#H#Jr zD(%z7U|L{}h5;KElO;e2v2IruV1x~-61R``wMuJ4lZR{c15*hDr7=SgEEp%bB(Zl} z39r3ho<JCjywM1kQY=@J+s^sdbDV6fnq>>QwLu0{!+zJq*J9KKy!acbgZ1JT%lR9# zqYbNTk3=mf15;MJy6{b2%5JaT6+s%BLjc>_v4D;Fm*DTQ>Uy<#Uv$RD|3QCZ|1+Cy z)H*<PU`Di|0qJYykeK}?ZWkH3UTyvcX09zz(E=?mb6j@bz%Pg>4CeNP5COrjgEP(9 zLr;gt(dHwNjn3SP%;L&3;bc4%H1FKmaD42H{nSM)1V|JSK6{q)Vvl#Y>bCxeHf7++ z+lzosadkgz6+HBL;-UidLlt_94Jlj1Q=}+N|E?9P68>SjEL>tIn1T>mpvQ2yKyZ)A zkXkTK7U3os4ZsBacz4xf{m?xh{QT)NQ_^=2zOa{IY(E0XxMRGb-^jMke+qb4s_TB+ z2ShNvRFCt-Tn~8iC1}bD)%l#jhTc&wd>VvPyxwU`HEY!Ua}niXZFyk9>sW!*;ZO%` zg=uWa9@*A)4W_Z;-_Fc@dJ3maUrnqT?Q#wZUUZ&`9O7nw8QI}87Z3jGM48B+b~fb6 zoUKuR+JY$S{cSiduTg*P%Q=84VpkCN!?UDsGQ2(VvT-5NhYbipTAW~9LWJHaXYPhp z5EhD5W9~s-LI%eXU@3ury}%9<AYTsXYg7T;XL3F<9#{k2NWj`t1l>gc89#R(i}Zpo zJm0@KCq*Bie~h-z)|37kCHme6ftEA4Hi9R>2xFC!F$P*o@yQ8K!4p7DpE{E`6jTKY z;#w)2)!Brj*Orubj>#(~<sVLh30DWG=sb??Kol(_?-}$AP>c0+2cj>@nA_Elzb3l1 ztDE$%HL+X$>^J;`*_HlMD5ZC~9khR<Ef<0-QrFNhj(d)A7751iy%297PlzYezE4I* zCz%Nqi$VB?_{rvM_ZoEx&OU&I(RJ1Qw9}QTgW3FK(~T}Tk)sdnGBlrd_1{m8s*C4u z?$uqrYH3gXiw8d%O|axypJ=!-0>)=RV=v@ZW+y{#Ka*P^_X@GzxduzbaTDOfxYs*u z*!@k}?@IV@EUDTh(t7<j?!YD^)&<zVjK9VbVQs)$^L}ZTtHmC6E~kLU<I~57+IbH0 z^@gw7e`5e@^=EO%#s`l+ASdS<Lp*4XV?Wqe7$w%dhLd77Sqzd5wlJO7HEH~6Ia|<V zg&OmTGl6T=v2!?aYt*B!b1SiP1hYhqJPPu}GNsS+Rz>wWUc?(3iTMJV2yt83XT$r* zughLWNff<~H%q<wBA&w)_8X`fUy879hv-Nf4-RKxutjjY$dO#{!!Vt(|3J+FNDC|g zhwW%>D+^S77!S@E(J!O3mGz>%T2zKO7&u;p^>6ZvP5jI+pP?AOT<WxqW~KR*wx309 zPTRwh+P(*A{<d@Y1xKJSkw$K3zaf8%3CbLGc8)gFcwwTE@Z1yo<qGG%nbR*R_$k(U zOBJ5JOXPI@Cln5w0W;}8@ilPL-QQT7;UeVyKi{qWjT?~7k8EE4+Nh?ZMt{1-znPG_ zC`r{*_|ze}>q9uB)eR%y9qT~tBjwVKdS=7bV>r`E3m*KPK>PoMLpdItSXk}dge}D9 z`*4^BoU0$42rH0IocIMk&7nv*l5_~Vt3ieF;6m_c`8+~=er6Zu%jZAwGpV(X&Bj_J zw-uYK-$&0aoW$>e3X_0s4d`n<Y;4Rf44Dd8FDsCDR8ZtpAPJ~ouO7++S&w61i;)@h zA)SgnXgbqkI@98GMkh3t4sXcEbr!=L`ZwL$XG}vjRGcghft9ebFn>qSF0`B;NCL(x z3FygDfdyHxU!RSeFhVCzh#U}DP!>ONOk{7o=i@>Ow?B_y1qdt{(DG)a=v63-cz&yC z`-DI_e6O7@&p;L$GG`%I!$(~?l8-b9ZGU#*7EpRT7(<>p7KSB|Ku0x*S{xARgkFcm zN?2Kj8CI?{EJ?tyBq1@ZGkYJF?$2thG<sNtfdxxsM9TvUpbR)2ev(U(GpG-p@9OJO z?1)g7&Z)YF;0q*Se5_$M0$TkGALmq2HbIqOTewF7%oYHk$`Pzb-SXUs`DQz~4{9%5 zpcEfH4SX_Cz8ow#a)D88f?xigIY7L)FQEhl14Yn+t_<8xI~-6QS^@YauioRxs$3i} zeWd26ZazjBzzWqd5)USXJxJ(>qdof;h+LQV>-(YAc0PoC3ttF(WPJx&(W}1pM_qmF zk8}uoi0^;Ef`OqpQ2RAI=s*E+g`8K;dOX<Zyw=F;)p&(39*q@=8qRU@5RTa2a$a=} zCpfRVhQskXqOGeEGQ-{<II`9=fHWrrTwY|Y2X^%3yWbW0-|suwZDfb6h1O*A8Ans` zNK5!$Kd~HGG~dC@ACupg3!C^03pswElX&^xNSw>!c~<X&?MaX6PT%Cq;z_R_5f3)_ z60rn$(qkG1BYasr>D9-<|Jaw9RK6Hpjt9TxiBY$Up7JrKtMLOcJU7|fel_+J-}Mzv zs$Y}VeZDN-`kAh}`uAEtF#KF!VSoMAAf4mWrK5jo(^3ETSRp*4^TStYWj$=Vo*eFd zV8uMd8q4`P7ErkXtT++V2HkZ3$$H&$e25#z3Khy`rKKkFZTI6t6yAaCGsOnC%lHu8 zGo+!U_z*XVkC2F?bI26_*`1|nRfheBeuE6Bq7*I2aj^e~M{#@TB|gL@NcR8>Q1Hxm zwWUr@m#*VOj7P(sDm>+Ne2Am`=`NtngIB)QA$A<|wvH6h7!otL{YjPGi33$vj@%Y_ z6?g2e=H)z_jsW|68wxm`0p7+-*<xU51}xF70X$sUysXca%{%)}Up*3+nIhiMR$iiv z>{Nd~!wbR=1zP_t><fCJ*q={22KdFLKn%;n@m56@yJ|F)ut4h~<gExSSXO5LixuWW z?RQ^MYq#2o>y{Clo$_uO7l9KYPO5!pQ|Ru1*ro>Iam>1gB7XieI1u&_p=7O5+iW*W z7aqr~i)@giW4t<9GBn^Al5994^VKa{i2wKn{K7<u3?1qmH$#WABtwU4Lk4{k4F{GE zfatBQ?9?5eKaA^VyNKQ$vz8=`&5rTe#PM-OUB58w+Rjo$-!$}d+$n<AhJFs^+wRlP zXVZ~=H|b{~^ICQi{oLn>&L+OfecyZOr$xV!ek#YYxX{nZcuYq>Ly_)5{uKJzd0Luu zO+N$Bu&0U?`sw<QFFl!l7M8#?r-t+a+8(tD()fQ?xzczDDG<M{C}d7PLbt1x-<J!E z`OC;FKL%QYAQchU2jW4k!f|dMu8ET@>@_2|sTbu-B#(OA8ucV_9_XDgDzvLTx`^~` zpsGL%=}z1u)|6qnRGYsvNeBl|W5PT*KJuK2lG@wVLo<lV?P|#LeKI=V#z$>o?ANM4 z-;Q5k{TO#Up69_qs)?{{Pu+o>{Di($O>9$7nF=eUWaKS&d9*Z2U)nY57)giyOl*AZ z>OeQGUF~VgMv;aC%alr{zvYM-2S9$(gVa(<pa1lg+p6^K6M5&FjE*zu_ec4p5(naD z1|XHljMz{;I1`XoE=PTkN;sPdXCdMf{mXh@k3KFHG&l70Hs5xip61?)?7K-%lbAP! zp6*DZr?KC9>1mXHBRy?DmBodgHsdiJJ#`@6LkubOG%sDcrl*&-`sgKvo__C7Po^jC zpBZ~0w#&qE5#Cj>7yh0oOJ(*x!QGX#=!Zcbzh6a^*5uKyVx$Foi;zIOkU-ZL4s|ei zEPb|M)q{bYq5!viG{y&s$26F>s~3Nzk^hdh4$E&>Q>N>0n_;x0r6;wTM6Kd-=x!x( zeKqly9Q$s*6UdHUIJE9QFxo{ODEB<7i$6vD<MH_ja|UbFgsFlHG&^JIxrS!KE7<F~ zIKQ0$!=0piyBlC244D4e=lnvcKJqh;bA>uY$PGIR?P~dbdU*E;tI=NX&9~`q|DE3_ zBN22gtk!=cXvV%gTqf8AP{OLKcS}=326^Tm_Tw8+qIdkl`F~XIPsjGp4A8QRCd7}X zsrg_!Iq&}#ECF{D!+DzfH6x1f${BU@^1;oI{a1i6=MgDH48VoK_WSmaPVw&!hv)G& zY<3bo7{sDo&Dso}KqZt#P0hj&LKdzt1y)Wewd}JBtXNro6*k{W*GAy0ky+N%h_g%w z;}tt{yh=B-sj&~t4VG-30eNMF7coe39~=|xse+Q>f!0~f=&b|Bim6VxW#|`DLDrN@ zd#RwoLSgjE?b7gu6MWV686Fv?ck`YZ4!IuEn-fE(^mQvR7B=c7oC!1o6uXOKv__Z7 zUBY`bjYj`&ge3}&Et16paVOrle-jQ$wuGjHad<oAMx3FlvJae!HtEZQLpN6J>;fz* zTmb(Ipo3fG{N*>C-F}wcT!7D3^e*|an?w3deqz6(kAxMwhd;PS4;6w>%C1Ze=dl*u zb2h$A9~1a!SBDXAo8wMsYqa+Q16Eq`O(wtaBXnN2E%G+6bk?KU!%z?^^2s>s&&}1a zs{fkU;*Dh6W^#*VeIg2oWu3?*EQlB-_d60B9mK^o#+{o00tckJebHOUbl4Nio{AG| zIV*n+>HAxecIAq0IP1VZo6UY<q3!5mZ;(5@Z5c*{vKprs$aleM&HtQ+obe|3mE*sK zz4S>T@T_ha9O3j*2d9@wo1hh}ldwc+yJkhj$Zh4(`j@TP)O^d{#~M9VF0Ecdx2R0( zsI_VtwxHm9LVIvo;Qlv^#DG2V=RtL_YjR5kTiV;MgwY36es+OX`W~;<*4JKF+HKZR zpsy`~mh(B^t=j^v*yI9vq-JXF&YUvEB<M@In@WZ^T<-tU2wFPJ_o?crw#w%2K8R<d z>(oU93#>j(+d(KWa799*+~9~J_wrXmem9S=;jwc8x>M2eS)>+WuE7lUtg@>Ms!HE% zKuEi#UD;KL!deaXFvkB$-YjNdnAXap+Qv3b%a2cJ80_mr(}~5yBNwE6YREI~k45`k z`}xuX3-&ISZXSlT%F^$r>}QR>)pJidl%~&EZAGB`bNC%)cHRlQGCGpj3e;){@up4) ziQC9ERoq&xlEtq_f58y=2+_|=PcFUL6@@xJ{-EY73K<_C)`q_&=hpmM=!xQSEa$el zsE?c)t`36x^xXK-ijL2PXM>#?uPLzXaUek4lx~j$qMlk{j|&OjM^DACpLY|*#U25o zl0*9j!@0qS%CU%H!<Dy?hcKI9E3m+-uYkEg$~M`UTBE9)<8fvnzH&jvAU=_Uv%+-h z*>WSsp9mT6jvt7D%+E7(FYpPu@Cgw<lVJZ#&h3NG1@Qh@A30LsvZeXd+<3#jmJNz) zkJsel9p0<(3DNI>jxY|-LT2dQtY`KI7*z>}t$vg}O75+J`J4NGw=sTjPQ6$Lh1uk& z>%Sm_ak81(jJyoUW6H1z(H4QT8-jK($*so8zJbPj#D1$R{+6{oi_Mv4-15%Uxc(b@ zYAWd~@fw*hW~GSY%SfOsCI&OSRv6!*I9(=EZV~*K<dANUQ{tTu<Q&GF-uV!IOQkKr zZGjY9BO}CvhW=*f1LZo@JKTtYd!KPf0_VMuRnZ;kzjQ|;$JQ`sMGklWpX1*IJxmAx zRyU>K-(`oOUA^e-8vl-GX76}ic-R%G_}4EvcLM)PfDcXgqB5aMQs{4M$eS@k8YwaC zT_Yu76U$k659-m2I9B|4aL&OT(Ha+LWubx~DBs})355Epk=tQjB#Gd#2l`S+{~kE` zTt^eq`_=X)*$;cGI(Bt__2{d?11oJTOO-Z!#w#)ctx54gbzHqF9Pp{i0=B_-bs9ks zI}O6mX~IA|xTX!VN^>KZSH*Ic%wcNq1^zI12hRQ)4DC=)!(a%EgnTgC62S>V58woJ zMb1Z%(?QpV@r=rD(3M^3R5k;jE3re7Ux`CF((_ea*_HOdLZ|goUEnyUK#kKnjAv?O zy4DZ#w0?+geTz&&Q1OQy%;M+K*Gk9t2cdUCB-ZX}L~dXj0S*kW<I+&erJ)9h)##VL z{q{`I+w(YR+%x`xKO+79<aF159MbmVn?ZMCKQ=MZg<hK%S!BrIcObOR(bGVh+TD`) zWk1bC!BaI9Nma2k!d0=;P@i~H{T*twhf;-b6XYuT11l@$hBuMkz8fQOk$#aNeQTUY zD&8kA7PKFyc`+oJHNuO>X<n?~^R@a2<e80{Vz!8|(JaKf0tXY&KPC?%yDbI6pj|Dy z{rItFx#%NZx<u329eKOH08?onxCg3DmACCrwY)u&z4@QX+iMRL9L{NsIYl+3?~)(8 zSzr^rOM?hexwbTib1|OfBq3qWH3Yn0NO$=WRzS$-e?SvHeBpf4pPnljxegY=XxaZ_ zAr$<H<s2_VkTr5U>y71P2|Q--yoY5+>-d8uObZ<$q&G{t2<DjAKk7lsa{NEwe2Zsc zcplF8>jUuK1Lxy+y+oS+UcrKbg<!bR8BOe7Ea#WfC-%O=W_s_vUn=SU%id=s^?u#{ zJ@=m9odte(@U<-{_<8|~rQ+-QO&VXDqZ}bXzx(=O2o+MbTp_??(X{xQBlt>WyGy1& zde<ajBzM*0XZc+``2%Kz;AJ^Km<nS##|T{S(pb|Ijwj*wEBj#--u2j;(aFM{<&cgD zGtPHeb9c7Ec!Qxdh_!&@;cOR9ZeUf3!W`j~@K7eRVLv2|#7&BQtSFA`C#Uym*qezk zpCqSbH5>`|Z!Bz!TL(g~eqb;UOt-XIfr>R&6vvBv`8}_(oEQqAy=7zf$XGTOm#%p@ zsli_m(OBA46L+XkQpBnrhL{M7|JA-SN#mhR%#=qiM$_>G)~LEa1P5%!ohYwq=y=x` z@C((!{U0wlJ^N`$M++hKgfEXH|ALkL-^!~HM`7pQgX{r1_|NlkUe0R%1Y2Sjdz}P< z^!QKx193X{()drd9YuuI@vx7a@7PDyZ!q|OC-EPgR2xR3nhfl_sG3+&Z6=BRrigEP zjlnq_R4Dj=ms3>Zza|4)GwP^j+YsF~{sX<crKx6()c0swu;s_)h>(d5bu<f+*g_=e z2WiC?T8TE3Vo=?irukS-T%JtDkmM&oh5&MTSA-;biR~jGO<aiLOIMd5Zm@s;4Zl2B zTH?A%WFv<>R0hR0-Nz=ekh_BlA=`tJjR;RzzoglG{C~L8zt@6Zdsg~?48c3`da*p9 z_V6~}N}vBh>PoNa$H7;ssl`;F)Ds9ml2F7X-Ah{^P*AR6RxuzWjt$#{&r5ApEF7xF zJP!h`S4JV;jmMb=E0;WhHZ7|_C@o2#^UGs)HJy7S14IkLz1OIE<UdEgsV2NnB=r%Z z?!K#k_iP^|{#(m|CK(ypL41D#0(~5c8=3fdd6>Io7)st?!W6xZHs<qerc6%{D3sh^ zOWgwfRyz5@x*j^20>29Y3JM$0Y7Pe}f<tZH+vQN7%Ohv<Lp+f~org-jaP#Bmv7O2I z=}Q;>)Zdo}_-j>_E-~z1&^1CVro2f3pa?fKGz2T{w^Se6aH7yuqPQ>1?#BKZ?z3#n zXgHd`^$?CL?Qp1abmrv!nfo1zz06%YIUl(j4nnc~u6>!bNGHJtHyLEz4d*zRRbZh- ztziEQ^m{l5+k9#WOp~C2Dgg2LHjJO!7BnNVpUrPrz#a4-6ehVSs=<In9oc^xLu{*C zsk0S{!uI9UnUTUu8z&s0Z<o@J^IhP+C2*mG^mUOOaJi@ewKRO%0%Op!Knud<z!rFO zexP-(JpIscK&4m()Mi+3G)%^!aTti~bzL>EA2tlP?CfD7<gOf@anm6tcN=rV&=5Uf zSOF^<eRDy>AuQJA)c256A6i3Bf(F(n2{eV+DU$)3fmkaU+XzeY#Tm;ga$#FzRdl%A z7fGVNjkZFQueD00n>Y=!MvZf-<;}6Cn~!sZQ1#9T-89r3KnUq<n3$V6l7>5_Z%rn( zk5h^6TcGuF2q&EvQ9_AUuq)630AYO~M7S*Gt;Wot%o(lFN#^oZV1e6jC#7MomvBCf ze6lx2MUuvQ6DYD19;B|kf-*~`jG(LVPDesrJ%eNdk(Dg?;U-wHzx4B8KldHV>{|Q! zzZbGEU|&2!_HlBc7Z#haJYZ4qao;uSzIQ;w)KJ*<r1jh7ziI>&Yz*SsJJ>}ykLH{u zPkJ@O`l8<moCJ3^^x!pJ)R2m60h2{DkyRb}F53nU;`Eek)>*ONG>LU~g=#}k9<;Mv zfWj6(k|(Fdr}Z0Kl(RG7SbJEpX7k?G<MQg0k1X}T+rqsP%PZ#htA!jw>|W^wOr9ZC zqWf_v+QTu;Yoys0eG)#Fa}-}=!J}Ku$u^$g3|Y|@xuQayiU!O|pnu5UIK!~k6p%gC zB8C`P812r0%OqNJ!j*O>tT@6Nwg*}dVt1OShB6v*tL-J7=l9{x0kCs?2!T=p&CMjY z(vQdj#QUI&(?t8QOIxa|oV0Z)vXitV*HWDer1cAsmP(Mlr2fsRqZH?Pk?JA))u3~b zeK3GgYqCGK^BwlEbj3}e<^4Ljn#o!}mRU-dHw>$`vkR**zaT{%f`buajo7l#?+lfP z#k_N_6tP0q=<1AsNKh<N+1yx=5n0B(Ma--HR_)bdoMtU*Eu2X^Wrw8n{Xpxz$Wvus zT0mPD3`n6s^J?HxRq4kK`;p7PjY+ITFFb%**ELoEQ(21alL<iel#{Ef^eW+an96ba zT~fonCJh@MR|!8NSSYGup=hs)P6SwX=DA=Q+W87Q&9yQg$4Z3}+UEiyXN3ayz23qD zI-_eslS?fQ6I&nzkPDa2y}`z~$C?;C5D{b6AXNXt1a;NLgB#Ia%lg3FCAe1YSOU#L z6P2h}uO9~i{yY(hcJc+Bf!3!0lg=CPXUzLtAyFdQw`+*hyj1T1F#Z{?@w1|X$U4L1 z3X{0Pfo4TsU8Z+Q^l}IJM%yP-<eLZz0Hcewf4;=ywbW*W>Y+q_*mS^2n8-kRa!7jP zZTv1I%<X<0zhA7Sa2$@clSFXL%(HdG9At#yA8TcYyFFrra?FmA$j60@IIg!yune$& z7#a;r-Zj7{pQsLcANj;OU%EA83Av5>+f{Bhk-ugA$KWlnIs1cn@HaU2w++{_QF@?h zYmGW+O)o6hf#)Qdddw4uc|u_wIfTHoh8)78>;N{g6+EH}%z_&;Rkrp&t3(LMXlA87 z7Bg6uD^7+b1GF9#o(ep~+9>&<Dpy8Z3xxELFWMTyV`VH>#4k9LFbCL+ctECT>n*zI zNYKzL7IQ{lp>7a6vrb(lV_8QGE+z}d=>&0*T7fur{f+3zPY1_?3(R|%?}x;LkMf=7 zv5)ksr|;7%QOgihLH0Vt*$D5Of5JOfuIlI?q;>lbqM6v(#6j1!ma;w)+LZ;q(vGn> zm_p=$gsC}_U2PW@R@orZcc3p|$R;1<Q>%0<0v8yIINcjgKt`~!c<?O3rV`tk*tnG_ zu$(6cudsQ@c>>*pfk2ZWN$7uG{Hc!zpV|Wm??tdgdQALTac;$zC6R99Jn%zTxQN$N z{lHHSSH19=o6TFkSUs>RdHqYI$EsnH2>KdF8;Nwrqc~%OTX9PJv1&~CyFBpP^Y~C+ z%m2PQ67|QbfgtxMmrvGj>YXvZ4HqD?79JV$7|eH%o}g6l>@MkuYb)soMpmJpRfx~f zPt#Av6cPbgCi4mXv=k-?s6}>3D{;1=2rwrJ@uWgL_?js__GVq0B=oX`<l(PFM2B!D zv>cR7L^E^+Sno9v-Dut&BD$3CJrL0hxEy<lXhxSyL=Wor=@-bpYBFlkFA$@4gN|lP z4ZRb`C`=rP<Bc@LA#{<LZ{RcR-+g<<msm{0^A2AYUwL)+WxeAg>UVJEZ-@(Nu+m$; zSj~KM7xa+hYdnP>PX55HxMzA;n$zp}9D4ZieQzC!{s}#_CYSG(9$tqZAnD<@Bzl<f zRS8V3B5BC#0(lT9JD+S~4pzH4<_J=eI)p-CEO_=*E!Y;Rn^!=V_4Fquh5k-|!vuwE z|M~(5scgbIzXzeK9&2%92wMEeZQL}92fvI1)>tzv9$X5`0lcchLe;g2&7Sng2D;-d zAC0V5pnMtEm2u1nA_!Vn0*Ii&ns_iT8)%j|;UqyGuoU9fLUX)oA!tzj022rXwnFX1 zkmmr~3wiAfS2$RW11)#qfdv|A&}iS700JBs-q<PTM>$TVvTy(vA_ETjmG7jhe6`b~ zN3UX!W=k|RoLfRZ=~S^kcE!`6SP#&txjNn&a!S8`;q>cD_6t71eHhR3L4C*#9)>(% zLl46e{?2%VP<0oQ9`FnN`U*7dnGG+$#(8$^|EEchNuLHJXoF37=DQl_VgB7GP5o#; zUAp+o#)E(MRpF^$w{LU)6ZkZ%EZa9^%2zfnPKa~^dmcc>9{eAfeoimxO}L)7VUWEC zLt6L49{Ys<!mqk5(L{95WpYh4b$|X#$a6OIG`-ai!ERTAhSsIUTIBEI@=S<yakK$x z5P}+38A@vKW{;NTI~Hg$Jm}`7efAkaFu5dw3<d&`IquH0KFZGEP%rqQXHdBP@1^{n zru@FUQ=al!m;$|a8sZ_4N_6K<1VItAfiu+3i#BFMd|II<)*xcV0Q<di`Vyg-HoTzU z0Q!5|U9FgXvoj-k&~S4zUTi#XR7RlUwbz{84h{dng0WDw$O+i~%(84i&fZQ7jTUk( z`zF}+Zp@F2r!D|9{%P2DMSrnIyK@H9%&zB*_8Ur>u=?dwk_-1{6)}@T{ID};g*_-L z_(B(0Oxa$RZ3&F@KK-9IV5m?MAOC(A^MyK@@7|vBrK!Kn)L+?CIj6^_JnKKMr+glK z-&erhbSrxOBj;O(D^H&9Yd_TUJ^75@=lcs_nCXDG{xTr4#wgW_(rhVmu+t7MiEN|e zwik6ecdo~IaUfUUG>zSoXiU!!=K>_3>yZ4_$l#K^W$)Q^3r5(7D0oY5#v+Y^OFSs( zfKGlfH_`lMVRpk|5&m@WC#!U&j0;E_Xu&NV$h()|FLk#NvAN1V81WVhfyiZ)CxOQ_ zO@J5NlwVmIDa?;to`lJjKud@H{Etw%5_F?+nF>kBhtPuJ=JOH_X)-H}Eb-zS99~AY zxf~3uw+P9oJ^_l6ZH9yPkjA>~KG94<092eH-?124FC38gBHR)hZ;1f$6*5o<zR@FG zHVX3-dB7=2kaKvz&@GwQ<~9^qHdHwA7|gtOARK7SE5_ibdtn7Vm_#-HI(?CD$gE;U z7qeq!(NTqEI2I%P-Aw8&nApzB(rK7ioYISvLya>W%AHqqZ?eC8lT*4^31Z1N^Ce^v zA%}9eACgu=J#()8R_`yp^eS-wO)et`E|=Z>nHE?pxRh*x0W`+J(c-puinAlC)Z>@d zM{_I{WVGO#Fcj*=5q;V<qm_>1q~c<5LI57+S)+fY)cyDHi}z&+4#(KavKYs(XbH&? zr^TW*7)A|5O&NxdaR8^$08f;?ZbiYtxR&+QnlnDxzwxw(MNc)E21_*H&?qjW?N=2I zV|LFZn<or8w`H8$-umFUfubWl_M+$Uvi%Ix{wZj+%+8PIBV<xd_RJc%$jSV{)`M-# z|7|xs?f*aZx5e2%$O~|cRkIY%yl^pTUXrhFOS}}Q`ov2J(-XR=^Adc~c;NgMeZB{O zian+7jjzaI9o(7zj(I9jE6r0#wV9_PwLqQ(!HePa>-m?EN45V%uKM65?-`xs^nCSV z+VleTyR_*cb&D_E(-nDi==TFFc2+(#D%k_4p7Q$31Y-(`dh-`}^Z#ns`9t3P6MN1- z!XqoQgW>amF(DjO<Jp^G*q7EZk%6%0g5>R)kwKL)*<26(qVqOfz>#>n{qyAM^~&2H zXeLh=<F_K?Jyknb5uoZ(R_vA#4XUG1Ra5D)k^avd%hz|0<_i5b9yM!mXsz=}p16vg zjxxf-3?u0L{@*D*(K9iBf)71<=pT0XnqSkXeLH--v2lzY(lhhbP5K2J1ZNhgEA&eU zFUd`xjwIcdz*EQfj|B%@Z32J4uhzYm#jxs;q40j%4`<w-8AAlPZ?SxB$dwC0;Jcm@ z`=9ld&7bhh@XkAbaN2O}VQK93a7x$;Ot2uhWT@FMX7RuZ&4^&P@yO|c#esORFHY=$ z_Z}`UnRtQa$_^G>!P7z=%G#WT!`=XXhpG-`XLJn+EZB!HVZ2y~ui5Ytwz0dwA+ePp zTME6{;sqW~d~mzM(&q*8ny;{UULdT(3%!)d+`_+8hNkx$VGFtIdT6iFOdYX!{z5K3 zVzv%*A^91u9)$ODuKMjFhl$){o(fc}c?zjp%~O%Okx#Poh)9ScSjk}0`17cu7tm%x zxkZ1I`AM$2<^}JllGF3m>1opo)RAe^L#n?oU4Z8K18Vle&!W&(LsG282|zi*nRCi@ z9ym_om=LxT0&J0iW3j;TEKCn9P#}eI=BYrPWS&B5q<Jb*NAL-7gitpfaJ&eIz2JKh zJ2O`ef5Sshhv*kgPeJ`6^rUk6qLIm>Oj|?ZHcnMu_#yt|^XcGUBx}f*&-Vs@rsu1b zY10eT6KT^!YL+kE1A2M%@YAx~-C(Fk<A#s~Lp}Cmht8dPJ?l9p?<~kE@J0da+a*K& zbd!&vw%~Hf9vSLIUviF880sS^?)1U?>#R=@2ILHmtY>P7>^Y_^W+?doJHOaZ0VIp& z%3_$|oc%W0^#m()&qpbq07WM5lVQYiET>(~#>YAOOpdDQ5`?e9P33=mmMAF>v3118 zNuYYV2PNp;J%0jzCg-1ORXq#&xPvD@&kLwCQgS%`ul4o6o~{LrF6DwMzNO{$YkWm_ zR;mTh30LR#DY~g;F)l0<)QKQQyBiD5vB(?3e`u#VokI?(RlIS@SE9d^VD8wsIGBK2 zz!*mXC^ZDjv4&EIy0FcK((TV=WuRaY5b|iJQh}_xLYk5Fp`M%1jV@hVfKcMNnHQdQ z?)p$C=gCwE)u)H&&Zm=e2)$5$7Zqh|1e{OwlMA6+h{P~8!Jg*4iqg(<->hFWdzzwO zG<&+5FOIkYRYx|^!{}H~3Y)V&3qG1~>}LOW5_=HlnLRGgAxs@_61e+y&LJ$!MQRhq z%NuZOFC8->13KtM8L@G7Ff-ILxi%gw`lK%n-jRB_j7eqAmj$qFVK&eJD9q!u!#>A1 zC~`msSCVtYtxg2S-k#NvJu|E8Fbum-*+SqxZ1sZgpJgH99??nPX<4Lx1%ZrWO4hTe zQBz9?;*kp884_Z_Y4e$FS=ZD>nQ*C6*Z)KMB#X(58TbNgPds=JI-b&@rfK``oDj)f zR=#h1!pv+O1(dzwVl`{M;1>=vQs#INGn^n=?AxjSXc4&BuC9KDZ3&Lm5xpjHk~l9y zsD^1J)(_HO$3M_pABDQ<DfEnZ0V%nY>3QdCK4Z6+Kk)pdx+J9rAAWfGl{pU<_HwM- zKS&IoGinDLE~1Fmu3Aa73<MpymDe05{(HcDl7-Ahito&fofgkp0jem1!^hDs`+KDT zwlg^6WCa!v>;r!k9Ik=EmtWe|Sy+s8tMLnUs{yCgh6kX!Py!S!xOeD#;MD_s!}F47 z1NoD5!&uIJ6Gd3jM`tMS1HExq#`q$Yf$|Vg#)s6lr}R^S`pP`zt53{Ru3CpD4(OVv zfH2MQ#`mZM?)+0C75U)_=5}!;IXz#^N}FDQR??LZsndPw22I@`M}BjU`Z}W9`@H%O zbZDum*x19c#YY42cI6H3qo89;UH^#yf?jW*Jc)k9f?XE@d^XZ>E&^m24lMXc3`l_r zoL6R%7m<%aN_!A~lkge$|FBLMHtci)KJYhCH>9LvJhHTfouwIEFyfwHMm!OA^*8UK z*Id7j)$cch&Dh<*?m&z1Hepe(0d8}k!5j*9AW}!{%s6m)6ql)D4GzioJKphvJ;D%f z>Wz)d#EMpo^O5*T%2}eeV3C?r#p^6=N&~I`j2z-2ACCe&fD)RT5r8hVhdkbi4ijQn z4bG!TCU>SdnzO@iq23lb>g~BG;8Ab49q347YCQz4uKtw3R58Io2$ZN{e>aasYCk-7 zjdQvg+GRIC802>IqkplRXXFB}L+YP+k=jFQ`4hVP;Fz2Xu+2uys;tWX`Fw~Od!6qh zH9c*5iMk{u-6!w3NC9~#LV0HzWq-)I+cC#=Sd7s7mFi6ZfbUw^fvFBsJhxcFJMcBc zT+MAeDY$q9mMad$)Doj65S~S97#0oTmv9`XwU3Ixl6NsUy|T5dmKU-zI%i0W(1VCN zr}c<BP%&9w4(r!vV^t-JnrXY?am}#VDU1lBly1xIS&3?wON`BT)FAqtDLx#<<*`T= z;?b~IOb~&CS*men$z>M_`m-xi<fl!KCC{FpUW?S?lpNmqFHsNeB7J&FdJ6x-rr&k2 z4FehuCli0Skor~zi$D@~&5mZC*C!`<MKJba41KlA6fE6>drT2{Z}JiP{-D5u!A(C- zXvhhV`7x3gSn#7R_9#e`(OYq&%1s*#Yh117LsK&t|L)%iPOcshMj=l7mCOV<6Y#|P zjr-qO%!mIvK2js4b?34jsLs5&s9wQAViV$xtV6t!wTL&e0(X~H+p3DPI~;=Hr(r#& zRsmvWinq$6a4Hu9Md~GDCFVM$N4A3yw%75>>C*1Wg}Co)A2a@MIsR`oIz9@Tr)9<} z{jVNB7!ScY4|;-W?d?ZpHK*-qwHg9GJ#sz8hcLwBA`s8fL{XFyv1_#&22&65yAmSU z)lMbF>TXn`Nk*!_JwKZgf+jN9XHhHb9NR;kl7G!XPOYoe;6$w@{#uVft?(c@?_4fi zpm4;;S_IFDjPD+87|)sk`lHDUJUy1$Z}ilDg%%<yFMjY>U!U8FDpGCiq#w><6I);h zlG;ymYG-T7wGZ~x-Y-%6G=J^aqjt|iHV>?e5E;jso7=bwc>yimei0^B4eC{DCp7?0 zU9mdUU-8~teD)F4=4ttNkx@_af7j~a0Zg+CA4bR3BBzp&+V}_(f%ae_*HJ#En>ug{ z$KR8~qcj?s$V>mgf0p;*zc(HHKW#eX-(94iyo>aqyGY;pmvsFrRvS~(Y41*)H=~a> zgS52+a6PX5`d-1xSYtlT($o88<9-BKWcjic@^O`YQ02r^ci@JQy$}qiAU**GY((5y zqxK#^B&K}T9}_u8lZd5$>Yr^iEK6<0GjN4-3XZf!on^@91g|^~jH$u@bC|1!xd!C< zOYN^qH6WZbTl?zIkQOMU<g1T61USXN@QAxU{)YSVklR1M4*w20@|wf7u>q86H|}U& z9&bENXkNVq)`ar`C7{PJzz1cO_+3uI37bK+s}J{2ER-S9+@zZoY`7<p(~Do08k*Wa zY(sVa44pGPTfAzpfi|*jblHx;{YkqU^zWdHj+MWQ^nzWahk8p-)>k0C5TBX=kESsh zky~Zn)L}ToD|BtC|6)jUAPP1FjK*uJBHTjKH59V?FKWP#1U^B0a?=-LQPj%01}k#Z zsI0fMGT;R_7hY+c_y0U>I7f}@#N({jyHLLjJ=8pPM@C?78|E3Bj~Bi*YB93<=ii%d zsfSY2lk_v3>N5~#Gm#UTMo(xs4wp(#IFnb8VDd4b;NS3qBarj)quP(+<<Tqf^=ZCV zl_2=|Z5%^b&1uING<oUwjU+HE+J?jqHzWoTjz<Qqd^8r>OWGZ%2`sE01cf3X7bLvb z@^!5j%7U7(frZrr)FgD`D}U59;;Mw+@rTtzI@x=^DB09lOVOr|qAU2Tc8&zHxW<=+ z77=Lq5=g;jaUbYP??~~!f#jeEHTuRK5d`FS?2~YdmOx%&U$f5w8_Ixm+Poy*bmE>9 zB7LFH?PTcRIOC=vHXy1mQeQljg+RXX2v9(e8-~GVT%;rGUUTD)jOm5E*We&ft{lzb zii*CWb8J<5_((3ZC!iKmd%eRxnlJXA*2J-7djSan7Rf~m2Rm2wgw&Pj0Li=7U2-M? z&1jeL!WZ|yGoNpL5gRxBY1m5yCA3e^=lnKc|LODsdCJ3+pmaml{7mebd6^q{g7#m1 zjDuO8xc^MYhMtt~xUsr1qhsNRX{!q1RuV8Zx%UPd$BhqSN38p$x;;<}>;@0umC@i9 z|NRO5&sx5erZe(sD5SYF;+)xrYp}?Z85T25ZY!&Xa|b|LEc&+!O06eJ-jkt`LwQ_g z{qQjro+Vv5kX{)hdhQ=-fmy$h8gAtepIU)1{6khqS#%+Gz(q?w&F-3oRtL_AXF&=I zv^L`}Zsr?(%#vFNW;9$tv(x>5V234mrn$@$T%2}9`~j+#16B2MqA&A2s;A35M|m&v zyb@JIM=qwlaxmJfj5QQ!c^v9xH=Gs%EngGlc3<FCp!H)sH#KJB={-CJ7Q@N0<t>8L zvWIB8`ztn04GHeIj#NG@3r*mfMBL{KKPvbo4%PLCOQwdV!Oe&M2mZU_J_PcQxixg# zg{-k&{pAm+krzB;m0ZhDwW^Mv7|yr}z0gj)u@-sZ@Ea*dU3@%yJpt;Kl$iH>(=F78 zM_QSfHLR|1G_$apg#^L^_xK_fU2*A`f!RM`J<@Z0)bILY6sy&0%m6)s=c8o{H^R_0 zmoZ1%<oD&m75L>1F%Qe{liIC##v8<2KSF!yC9DRqQ$Bj}rsICO-=#~hQ9E<smF+LD z_p5mz@qN-<;Ld-b4}rz-FT7waH;Dr+xDOkU2#z`3Y-qQueh|wj)(*iw!(J2ypj5Q0 zC195PdbQPj(x|BeK@kCUJrDUdpEQiG2sTJNBWk`GCyuJ@oP2z(#M;f{%$V`fq^FWH znQk0o^iDUtuhvHP9WypGZErC4BDVH6RI{`@=UPAzd4@+q9Q~8tUd7~>Ber3@edH83 zZkWdLk!eGvbC;oW*iPP)hwFgEV;cJ5<|E37h?adxBMhM!^uB5?T)*+5+I+|j&syI3 zC^LZxge|)k4y_1p{gixx#tClRa8-5d*O8-Oc`wq7x!@n90mAG!aQ~vfg2^FR`M}=G zqSd&P!=H68td3~9UwD?}0u188hu#I6mF6tJnfBRr4ZkJRAA%(T;pSJVdm(~8Gloxh z!4fZuFM3IA5BGSong{8Sp=*Oj9d_d%$bN<^6vBwdgHZr#30J;ibAO)R*{H*y(cDUv z4{QWK6vGV;Ozv&PU@U_OTR?r!Uf!v9KJ>S2e8ZH;ZR`CwF=jU2S*>Tovir$opn~O{ z5^L7ZSvy6~#t_w4VoKz^YChmV*YYkb$1)3%3E`G)4JRgm$u2B?(*Sb;ycw?z2{6x+ zW7O*a&zn(C!<#H7H4Ozs<rckDD7^#M*Qn#;G6b5y1)^w-0D*!9t`2~h)y}itrPya` zRroi_)QbEbe;j?pp+{jNG8HO`0JG~yR1yn@PoumA)(pt5Q465H<KtcUNDTvD&VeMC zOtNd#pa=EWp@@QNkKMrxgQ2E2otQrcij0hO{7#N^4Y|fIIy->%&@CWc@vZ5#)IDNP z|I2cBYXC>;0o-2U9l-a{wlRQZ_-F?3E5lv9JO}YD!4TQ&Gy|CRlV<>Vz5%?tBxL|S z?^kal8%uT8qP!73rw}rk8#LQ&>D2m+LLd(qfIc93ghQkbbw5M|BcJFw%QCuECD|!7 zNZjv-p&9i`%9!0*s#hT{N=3|c8w@{lj2&_bH4Cm|Me6gpL<-5%p(=4A!^v~~DmTw- z$iv$nCW0%Q#?N*e{~n}^#!mwI_TG4gr}6Sc<5#nBY!5+FlPG+?jUqXRY^-k<&}fo> zxl720cI!+4N^c40H~*C{+!bzA{aHQmPv6JlUH^*I=3jZ!$jAKY9lJ=Mmy+(-t9R{R zfGZBvVuT_g$Yf5PIeK%W1OGK@^$HjMW7(FI=Uq>p#}j#mdh>kj$<vz1^W%L4cMq-# z!p7b4r|iGgsy3E%At~9D;Pp^S4!1t>XPCZ=^h;9GwS3OmqzSdB^JStxf59_uF{@2Y zdj$Za2^c0jE3hD!k&SZ@<G5i@1Ut@j-?Ff7x|*Y<&J&{;Wx&~hpb$lgn&CW7Qd6AA z8g(rnDK|pWgRMoh0m_P#NNBM3pQE?mE!9V2)Sp8JKR#DI2aUdpzD^JYC#Bz$8DF4I z`(9gR@Hid=GWKU^sW|UK3EkN`+L>^=M0d1j<bEj7bh7Ii`BE0wa*3bt@G{maTSwo+ z+mnnk7W`G%u_0Uv8U}9+v@8NTLXc~H8o#9QF=P^!+Vj^sz4f>Fj*?%WqD$7Pey9yV z<5-ciPVIw+%2*4HU+}`l#}f5(bVR}e6f-COFlTI=g!R7yvsFxcCze8}8;PB_ur9l7 z4`ExPOag>!RSpzEnWnHha*n18sj)=u&*i~UJJ}`m{vWVa^DknM{+x@xACJDPP2a&C zWm;hv|I58a!s=h!b)8}I%;<+gkBP=hmb#5Ub&uN`RoXLt@RU0%xm-q~Tm#Di0>x_o zdr_ITMii?-eK=VOYecbH^@iI(zQ9fO$8com#cDWek;gh!h{w*yF~}-03lIxwSBl|_ z2VWA_g~${~Ao$?hgtaJm#L1XbEdPJSKEK9~$>z(c59pP1h)0HBqkaN4>|#9~vyCHI zqh3QSh_3#W2Gq?jnts=)>+Uv>lhmcoV~IM?d8}3AokvTB@z^!Wbu2#)wK&tJ3KK5{ zYM;al{2%4zL9H@DrFvK};pIZ=PQ0fLKb|$k%dafe5knI`j^|CURrAuOm#DkbrcY8g zq)o3;XQWN9Q^%%FhyJ&V^v$!=jSuk#)20`zc`4~0`DXVvy%78c;o23%9jH_~&ORu7 zrOLu&L*i+|^pKHM#v(i~)wg_f{f@{nC?S>-L<d`?q7q~TIw5HF>)#r5DpGr)Z=D0V zF0_6fXt|R-3v3WHhm*|!%N!3`{FGp$4VDejy+gh6jfW}*my#+v)IC9mDlRr(j=4XT zDmv5`U`d85hV&>Vcc?<}9#;9}7ElES)}b!Lwy-m<5XbfOw~idpu7b|ELTZeimGL5X zoH*W}pqDt_2!R&d<Jt?g-^3QSZ1#-l6yC~-k1y@*j45iqTmXTIz4uajhZ?-=G1Y*R zu*!9~bsp;sp6*`YPDk@BOvi1Qg?R8`97>|k;q?7tHDQiopP#ZsPij|rsG{>s<kB{o zBK6@q0YW|jQja@cgxwXX<53&f_)Vkr5)@J`&!Z(GNxqRuJJh9MiC|Xy@EA~sdK&<D zlTJfYIkeFtEH>T^Hsreq%almJz?6`xe$@=1SiKfylSW2<-dkHYP&LueHQuBRNRoz9 zH}lZeH(>XPwmx3$wsoGjtx7=^xbF}K1A!C{mLPV;DrEzK9BKU<tk7m@*c&y-V@U0R z$JThDwL@@5yyikG0sulz(h4*rP*I@|5QE0OICunu28_Y@P9-|ff(y?uvpM%%r4{Hs z)lv~|a;EDKkxMNb8(yW|ky<Lj@U}YN*epnIA$1p6u$UsKJ^wO<)gT@mycDJgSolhF zMx&C3<tP~0PZVb<lKo#n33=`YElOtsi%Xin5s?7?<TJBi3_^S-TA>>1EPHO@!|Y}2 zKO2VO94QJGt3Tq>I>1JdXCz{x7}#{*g>?j0q*ZDt1EpY21(Gvx(~<+pb0I{T+$))T zGVR}m&ZbIm=Lsa9b~PQoLzO6>&zFNyrt5Uwc9A+%x1H5gk`c)lQ-tjFwW}jJ8jVNb zSCE|C3N~pmiX7@(G}@%ssEh~(=V)9t28G*IGk6#@t}%jLTG#Voa=W@0Rvc$M?}Dby zcz(Q-(CkUws^9HhUoHFdue%=FtxW*G*1rZf|CKM$za)l-x{FQfWz@|t`oIl|1XHCy z{fxBfA$4rp^ddDVZF)#;Zgo4>L;J<5V;AZ3c9DK}+I0B8rA<e?on53Kn>HQePn%w> zHn${?-(A0FeDwgPkV;oAtkv+6uMNR(1!ju+E$~~x9XWOIU6};mmHM^dN1Mdsyi>2= zGp$(79MuQ+ivj(xWmFNnA(QJiE;$2d*Q8m9nQ_J5eMD>y4jiSqd9m6C7Yl9AAF&?F zoJgWZXDCt^0Q1Z3bzGuu16LVJ3Sd90WKjfVS$dV<6U$xKtL3q9AA2qM*;&#T1Wr4o ztoikL^Ov~D>clK4htLGO`s22C*g|nn{DumI&ijCN(Su=vJP_8JnsO`>W<MQVrARIM z8fz4TPnH>n=-~Oh&s{i942!rU%$IfP?Z~1s`_vumWQkq`U|I|wVM>Hm`#cvAkk?QI zTTAYixbYr49HI<|yH|5t7CKYXwO#`Ue@*UUaukz$I|KygJ^)#3n%n4>=I#EEUjZyD z*xj(&e22>xKE)#@@(s}ySF1wktL1d^H>|2dja>*_K`S+M2s*dJ;gucwJP+%uQ4gUK zH_xS>JUJ*V{HI3U;<Q<$e#z|g$bQglcswa#$hh$#8b3mzkdM&&q>(1*dS1>m2|_zj zQw!~Wele64_A0LztDQ5_rH9qV-qT%sNPe@N--uCvz<rQO6?*$qqwY>lPVh_cKin6W zlAhvE;d6z9XBcjX$@vGDALm@#x*1$Z*U=DBWO>iEEzy9+;n)|<Q-ONQJcZO>%u|v2 zEuRwS+Qd}Q%0PJ9NMsr7gL}lva7z7?7_SX~`I08|r5E@kUHqkQY4U>1S6<vKFHD<W zpvI(452^ip>Aue51@N6jX5ns4)NyN~*4^(xsJ+Xv-+^x>&`iV~?-STz0rWA)dw@QX z1JyvUH$VpoLba{Ji~`XC^s(ltK$Vy$tXJj<{+fK!K)(c+2Yr@g`mVHhBy^Iga8-o3 zf>65c>gZ2BGW@N_qD%Pr12*4<M+TRgFZV+_A`kG&@a^hMuzP-m^?PuSdI`=qeU8~d zm3u=nqOAy~t2dvZqy??$j9m3K0$x?wm%tG9wePT+M}rzv$$;+myK2TKU^H+of)VRZ zR3Wa<p!7MQ8@fP`^(bH-7iesFX*<@>QO4r}{oNK;!4tk}-LrgL)-_N}Sw~9U&an=k zy_k$c_O2MMSzC_1_*SoG-j)tu>jhs|-iFp(oc5I$e0?HqdV!jiHa(=S@ul~GuO&Ww zP2~r2M+p1{69*mkL6t<pkjgVp1uDxt<*V(}bZV~p22Y&q8Pob^=tHtL0n!sQiA;C! z`Wo|8pz6$1NS$Y%ic}S!l9)+}C<|h7PGKfqcxwJ|Av@J0yqTV_#-vRzQ2V7#52+t- z?X`Z@cxyU*(EWR{_wv%e-=$42P`9K_52*`%>B;zz;y)&*GHO)Iqky}XJZjW(P#&!U zSgPCAi^?cIH7b6K4BdO6B>{h~M;mnpum6&>UzLytYkHFhv2CSvxF|%k2bE_m3qO## zEIbENWSHwYMH`5QkI{ms-WC@(?ZYIVIuRT)6VFEQGq}q@bX=>2lsEq&s7Dj@$?Tsl zBR)NzGT-^i+@C1ZU&`QkUsY__l;ON`;_|{;jqQK9#l?1uTpW^_c)cL@H2B^OOoV3T zH=Cydb-j5Csfp$Z@+hA)%1cC0F*4Pvu?)ypPD7Pe32W8Eh;j;(*291V<Y3(qZm(kr zngF2{JQ0?5oKvcusv8ceGt5(gDmPESfAf^9it)r5ey!2OtP86H<r7G4HzX>b9OdAd z7aw5%YZQd>;Da~aQuB6^es`L5yV_E@=y`(H*@r~^NEiNly04Dp^n7(>+Vld|KW%zQ zeR;EYjEVYV)wSxOHz5YOyvWx-yOs0k>brcQzAIAUZxU4|>T||(OCqs{@#d=w)22iI zNt+J&$Cu7Nd;humow;JpA!aCcjay{TdAm!z3qip1fngeDWv5F>w*dUyW17Xyl)3P( z^bm2FtMmw*brd27hW35ZkZ@StIt5Ze(6Z-h13V5<p>Vs(Mh;Vvhq9%jeLWSu@^`nQ z5v=HNhD#KuDY&@p*K~^6_G(veY+!weC)TbWM;X{s=u(x@^X~P}uw<Cs>o9Zm=$Skg zb{l6rcQ%`DSnBT$Y^WD=iarSL_{wu0Tzp7pFFBueYP56nLthB1lM@MMQvK;e)23T$ zXT+`8DNlc{@W?i>W^72~@Nfy|xmarxcnSe0@KdW^$5u7QiEf2m=U3F>?045vND1qe zp||@+gTFtN^6DD(9(*$>gOdxox;<v<9)tw|h|zvvK|$FfsMyf4nTgRwpkS7$+c1DR zdPA~AZCa1f#DdkV6{$t)cGQa#FOs)NEz!v%+~kKJ*V;905?mfdUoKXUWAm6xPcgeT z0eQ;i52s7T8g<GuW}1uC8<WjriCW}5V*dk=Mop@xACG%1&Op~Y-_HG$&iVgIs-C5N z+{Ke0^9}n?N)GRQm#AaYro;Y|lJ22@(Sxj>7IQ4*-EIhhNf72&st5q@q51GkC`i<t zfGO7jn)nj}3SqfhPEdwPclYXOr)z0_KNm_F)>7IWZn;UEjT`ndV8(vId_vKQ5c8nX z{UvmPi4?<wY)SIFmww>y(F82f{vP|G{sdIL@CvJ)H+s`JNg_|xB#_sB9|!46xQpT^ z15F<sTb)`6?=hgMYzPC9)~cItH>0al53&W3P{I%w->C7@inQm%x550@sT)%I<Ic~F zuU244?ARnTMPSiApBt-+Hn!1asKVX^@e2XswHdCUd?sv8RWLji^G^}~aFXbF@;xXG z)42&vkiOt8XV>n4S<IZ(Ao3rAb)@w5hU3M&7CV(^HL7Tsf^|(Mc#SIllEdc4+Ztu` z15WU7>j{FNm5;u1N8rwRFv?ZMPWovW1uxvwqXn<R8(qPx&K11sEkseH;FXIR)Pfi1 zi%$jWKjsPRwRuAP13vMx(~T6M8qM}zy;^|?<0xeef%WRKmz<SojasGEAPSRPe~Er3 zay{e8b>3g4UFK>>E}Yt_7(H>vlp*kc3beKWVjS|*zlR<0X1oBP0uws&e)T@u(sFoM zo$?-A2tGGdGpMi{ih7;ILnP7d<e@K<zvj|sJ#fD{q;V$N#&r)ZFJg+s;)nZ!9N<%* z<4X;xs$R`~F)_vm9x=VIQF&&JwK~^Bo?JIMxoXuHH|V<RbgsudxvHF8b!rK6Ign`d z0Pbo4F1hFTBQJX1T20e2dTDAN>Zy4w7F`U7ULaTb+b{CuT7?r?CRZ79$zxcZz(>I+ z?Tn4-2Oh1DoGkKlfzAl^caV81P}$}wU;TK!R0BNQf+sSnJFX`-F6TC^b9d*1#`8Mi ziLE`e^_EPsCw3JKmNaWrK^UQ;1Ie1iOADpTf9%#x_~goqe4)I!4!`OucBH5E{)|Kd znFs#4^})BTPOZ2uo%~!U@^gP*9lr9SuYP%*+jw&QNJl)qwCT8Su$S~0?kl)tF{a<Q z!X?^|LH@tNSJpp1rk{~EJ*<vRn_i;^rA@C@o3HhbJ-Pil)v=58dAmrzJ54&~Pv++u zU!DYfbUNaHrA<ftue9m#fAOWKvoA}~plz@9i5!UoS$_dPD!0qJU(6?l{u?ABCx&Pe z>{dfbF|kv-yDo!a^kCei3~RJyBUBDpJnT?$2HZHaNZoUdklL9c)oPv!)UD<zU)^Y) za@AFMB1heRwP{6Ef-byK;)I55^=gCm!b{s{_G4u(&LyXV{;y7#UZ6fmn;udx`qBYU z5q*sxuUGV?gj)>Yk;fra`X_(oaMo$by16aH2NAZzk->olftk5-vk+~_>j)T1AiUKH zSJP=2)b}W0dd7EdiA2e}aJu)*hR74H%t0Hx=RU)`&?UJlaQ37gt_mbM&|bcq_w#)V zF~#!S&v&}HpYIrRKVN@{DB)1q|KaUR;G-&%|0g5^0WwTbW(`VU(5TUPL?SvEqBD@_ z8<}XpD=r>Ul+CWXMw!vLqDGTwhR0~u^<0m|b6rooxV#cT5=2f{7d!y*>X20t6#@wJ z|5o)oXC~p=-#?$v<h|ENb#--hb#--hw=eA$zMyY`o;>-2zUO2VF01P9g1$SSCb_pK z7xXc|V|eh(^I)!KJBwlM$3^Pc-9d{gYQp_|hXGp}b5D`i^F5m4dcLo<>-l&a2Vc+k zH)?Hp?;R^e>uAozB*6?>yZ7#F_;5y!n<j7P3-}yU_1pPg;|Uh{V@P+m^EK<>y1kw6 z&rcCuthe(u5=wMC-_3|ZowC4l-dp};y`68A4%WCqY;`B!&Ue@;XL+aUm-8JcQ=w7h z<$QNhg*tE7F6aC8H?5}n<$SoPCf;!ojsAOgIUn&GX>%2Od|z5Fsblpw>G!3b1BDay zOmoi~=RKv>9joUyG4D$o$C#$NFAYsiwdEVp4wtD=+f?_Z_0eH;dtcf&PZ$kxT*nGv zcuM<Ju)x6`3t4%@R-6N$L<$%kdb}>}Rut6nS7d?nve$>((y)^5aG1BHwbA?_A2oyk zhP1(LVdiaVV<_)=R2<!wb}!P<ZD~ZBfDdWiv1RCH#&u~YVzNfZS3}~Myeh9t3!H-F zxA1jo1N2lWu1njzT|(&Ly0qmp45|$6Af*=CSKRX@Lg~6R_pI|Ar{K1<N9ndSzpui3 zOE;ILdB9dZT$UCDlAV{vJ+A_;ep%YFL^CQN0Jv`M%|q$3H0LQOM!zfV6%eH3I{fSQ zuC$i{8mjId-jzo3lRfo1zKy17rz2X=PN(>KociO!F>7HQSKlj~j{T|FrAiUnAH^R) z@krDwoH=4~!(!~sUhry~eCo-Jr!vVoa16Y(Vp(+<nm-uh0_$Wnxo5e431m6?o9DLc z8Ib-<#9)^4IMPzKq84Aqv=lqzWe)Vu{7}quB@&kveO9i{FH@IT&mRa*Y9%0SwF%sn zF|8iw&vlmhDl@{NKz(akSu`hD-!dq0`!<?)PF)E_<4oMzjN&Kq!*vB7fjK84Qmn)l z(NN5JIYM}&E$srY$2}N}e}g;dq}I}?>qy2tt4?(e##<m-IxVxT>7r>_fwt0VI1~he zU{UF`3=}$K8s)Uo)u?~W^KihWIh#P<gB~mWl73tVtqKC+bG2{)&jbg?3AUpxgEp6$ z9>nDB?i>e*z`XQ4mt&NY5pmY}(1;4^jdN>)#Vu1evg61Cb$&8NC}%vE<LLz;L`oHP zK~Y(-n8`}nGV%CEng-YwvKE4qbg;^~thK#!8Ty-4Is7<o6)PMtyyASlA0O@w{Bj*` znv@?xo6^=P(cIS4vK%sBqm~aDa1R7BOqLm5!A%NuV|O(7F{JJ6qeM&Y!%MW}S^Qt* zY{q{_oAa-D5b+T^nZs|S@VMuR`+Ga0&TH{esxAi)4fnes%I2GA(Gee|<evavuW@D| z>LVVqGSCVzP+#22ELjF@GzcF!Iv^Jh(cDQArX4LY6rapPV)}O69y$WN(|Ia3lS*bK zE&==K^i`cp5Xamk`6mz^J&m-`3O)-3oa8f`z@mS_KI^-b1f0Ith<HqO-U(o4`cjoP zj)O;zJdK*y<vqvcC^eYGO-vGi&kpYHyrr!3+p@-%+Eas*T2O_bPnGPT_pB!BS)0p7 zg_<%W2L|e<Hf5wm`UBslth7M%+@|b6TLw)<9rMk*RS2K5qE$da_NSQhNe1eAWCD6K zS_1TETrzywxHTK7l%~%oOit?*go#gL@<$C5YPe=~K6-gm@%-=>iAr|BcWzTgq%S?P z0`AgPWzj)R7DoSH%R9OMPIcy&pwp^r)D<9J<Ep4L2j3B=_<~02lpFDg82BT3Mm+{I zjFOho1OvXQ?>)dCum^*mu5iigunN(~3Nt}ZQFSpcH$gXjo>EKAa=8*4REIX5SVH1< z2u#qPM#T2VRghBwir7X|;{AzoNS4p~X|A6kGA>X^F*2TP;_-Qw#DfkD@G%~%FCsit z+{;`NFDAq}BSC_w!=*dDkXhEz`rlgK3d%-xC;b=2wWEWg%Tu+lNh<D-T5-{mxv5IK z4|%QS=<oXe$lOVs3#D9cmeNNn#UyUJR>~shSfs~>dE5$sx}0P{2mbc0#Z^>;YP83} zQ~(cqC2hsj4xxLp+_Rj&oq~pFcQ<@Z5-H|vpbOog=j1DD?g~Uv3l_4;mr3yceUb#A zas^Qtq`17lq<n>#JP~!Iv}vJ9&KHn*9Ex+#I+x42kIGpQz7c)I7y$3exCgy7(zjG~ zPDOO*S3q+L6^eWqW=oOr{uWUDAhq-!$oP9m#^1vOSJZhn(zRvW0~{b(Pr?UU*!erk zj10ZvE83h#;e+KYL=)yPAgvqNV=P2C7hAMA?)h&sa|tg@TaG2xo5x~LqVrB~y$apM zCcljKdtnrcrb0IV&ES$V`XzRbvA;)gMXO?G;&9M^-9xOuWRdemWM#2PO?e=)8>P$s zCyvD6MdEB=eOG!otG=sOxDOw0pATgyp~DdWimjN7Q2O6ddSvPq&e9YkPOT|N2{~n< zMtwf=Y4urkuTh^H`zCg>DHk&NP>I)(J}vHf5vjoxZ(_9NL&k_&RIRt~wpGihp;lhZ zQ#6XT3~<18R5CcgreD;Rj7P8o(G#@jRBA>z2(}$g38*EiP0ZiPOl*m{m1au}19IFF z-=EAQ@jZW~Z`W#kkvX6rj%wl&A)bxUc@)~_oJ~pbmzbc<dA}Y*RX0aAS!HgY3m|o| zf$;v8<R&oaKaq-|T09A4G^w+-Phu^8zJTZ-^OS)@nBH;EgqT(tFCZ8a;%(yd6n}(I z{jq&1DTV{O2-%L4#7C+<cY|c;UC@}qURHaq1yJZob8z7Sbe@$bWwG|d)dq#$!8cRL zN(U+rM0^Hu$&^#g9J(?}=~dSQh-h3KIT8xNA-Fs`?m3n!399tN_5t2V8FBJ*Xw-ET zl41~*2Q=wW%!)%uoPZQYv*3F;zS%yPto@_^@%6#xtRz8QNQwu%l_MFRQG{7I-VpyP z#TVFSF=moP_=(?=9@79qr-zH^kvqLRdR&U6J<vn8uj=#>QtBG`i^IppwJ3{#wyP58 zK-!~`)#l7b8caMKokQB38F(ipA1umUyyLp_`7rIs54=P*313PyM@h?Fav}iNw`6jv zWSZ#Z&!J>S`KNRFN<#U~NF&Qfscp{N@yRF<e|3Cut}Gwha>jPSA+$?5%6T>e)ew9e z2~0ZcZ+iJYTltG{l`-l+EusEK`KZ5MxKaP}Z1u;NR{x?st3M?(>(AvY3FS8<jkW&x zwABBc6!mAIdi{|=ueJFEKOTitM#JEHFy$h9_5Y|pEFQt|j3Ug!@rLsLMe*JB2j+L@ z-3)@YKvRXi34xJIVrRl61079lLj71eb%l>%>9i8;1L<_|Mrw+ZBBTyQhiPgcTg_P$ z#2YDwZO#Emz~V}pll90}n%T$?8{*mr;a7j`_a~7291g+uA>NV&+iM7A*h#Z&<oBu0 zS(FQ!7PM^Yf>@?=72&4oxTma%D;3teV3Z01q)u;}^A^18U69uRF!AcxI6<<(M(T#9 z9apSExT20cmI_jr@%<z@anI=>kv6tGk|xI%FHM$Nfqrm2jV)=pX)+J)aV36~N4*lN zF>-54^m>==^=+Z75A65hJU@mEIfGae!9i@U3vm^4+;i1k_L{wdEL^jJZO*6gPBrTs zM|#@nn0iDApgKi%Y?^{h2QC`sUpf*;#V;xd^P@(d!MTw7-6&zcL~DGYM2$*L&-oqC zP+Id(w#N~a(cT_U;a2Im=gm9qSZ_PtY>)5pp41+{2N9_fiS024;b@P?kjK&<vw){o ztNvQ8%=YNRwMxsqPUeYw1Tn`Rwa59C1@%eU9*d#!$334l+G{opS@iZe5byT(_~y8T z_V^9BXqb<W_l5q3{e{Mqu>5S<9<w<Y+T%FJJY{=$D6RR&=lds}kqF2N^(V2jf<2}9 zIwp~Q7M=CBy5#C3VGzEDCN%Q3VHREkw|5Rgc%XjA1@624i-6!HcoBHszGP?IJ*%PD z%qMYO=kz=7!$V2`ApRwyzI0+Lgyruw@N()H3R)oSC7K=~?0pLBC&L2Z3<`Ud!nOc1 z(z)oKc7#2KFnpe*eV*EYBp=Bn*K1*ap=|HTu$Q&4$rSd244bE+F+qabp?&@g7rTxo zBtgZlLB+x~c$tpv+~M;B^_^+q)A)Zr>Wg^;P<ToM-5+2&&q2T`8rs`mMZg#Yq-g;i z6mS9p=4h2&O#xm6+@=MzQGgo(yEJ5GAwZfD$ai|l6TKX>@w*SdI{dE2uM)o_KwL*} z{Vz>_u|0d)zS3=9_{c~M(7v5I#~Aje6!&9!%Yh}71$okq%t8H~76}adpkfM5cK7^A z>c01uQ(x<nQ)4hXRvi!F?H27Kcoyxqo0wS|y)+YU&ag6`%A2-WoQD&vVg`O#i_91K zAwacZl!T9;e8+4^Z6td{@dx1viaMB_Ixs0&B1%Kl0!zdv<FHkMjhpKUwz|o{c(9_< zIpEkK(k>nVB_zt15XxJW=*gyU2M@DUrW7r932(>08l~Csm--Y_ZXn3&1A{VNc|`jZ zhNgt{v>ptIxIYec*~E3S--5&k)n}W!1iq)4+6(!sh1AcL+y6U*%XMCP801vZLM7V3 z4k);-6*zf0ZVjv)e*9?rB0ZI0Z0yYP*tn;I(XrSmKlZs`?3@*NZ^HWw3|ni{$&5;Q z5m<+LKK4RjtUewV)*H9>r(QmXdPB_Bibr71j}Q*xI2@~ji1)agw2R{*lS<)TS&Fd# zXkDlO36e1Cbh-1V=tHrZsCxUt87L}w{-`cQ?daxn;#%E1F-P7d@4Vqqqq+_xsVlkS zC@3E8#>;_><cbf@B(A^_le(?@g*#YF`ei+tu7^qfr9&TM&W`^eDF{<Yqqh%s9Y1nH zcn_?Xq8{bvYc`-uwn>qnFD?&4d{f%Ax{~kmx$woP2m3fpp4+RJxKZKUC;+SeA{UEd z&5D`>B97S7A7p!w6MH<k#~!2{iiha<H}b<wtuBF?H$P3cRB!moA>Ez4;*4Or!#%q+ zuWEF!Nao~LkvY0o_<Yd^CCO4|!<$bl<-=d8l&57W%h9ALWi=k6-df6^j8dkWrF^N7 zw+2z*+S|z;0B#&OlB<ul_OhIe1Jm<}><Zd&5Yze5-CkL5_9xn3a@_J=iS{MKH-Y?J zmp$B5JkEawiV6MElHV(aCdDVo8=I)ngx~!{Nh$pN#5os(e_y9->mf=C;6mFhuB6p( z)h+&UI@U1G$iybP$VrMi49z<67b19zB>20sS^r7RdH}{jZdMwGBNURo9xb{X32M@d zZafqyuDkkD{BdU_(xd14(vfnqpFDYnQDwM<w1h9zB<JYssk%3?+1xE=mL*pA>Ypvu z)%a@;@z-IiEY-b}LWZx~eRVDNM;b4>P+s@-%@?Pho>*U9zM3P&!ITEl^+gSqUBp11 z;zVSdd{tC`juF7|es98eVZyh$0JI16CQVL^pq8|ZuOn%E<$Dj|@beu|ZdS)-N6*ei zSPp!ra>Pe2?*8W#;;T@6+;0zPNh7|Me{la{X^-?||FeyyR+`%Kv;W`U`=ViOW4Nx1 z&@-w2-H+$jTF3K2gNR+QGXxmUWeR0eds)VF^e>F(I*AsRX(T#JBhgtoVkX3IGg5#= zXBCRqfG72?y%_A1=v6y*_w<@Kwr6_%31de0^h)N}eg{fQ{5D3GZRb}`Z{9zE`Lm?f z2Evp^cIv#O|MuU70LZIDKv+<rg`BBbAF=NCv-5{vG-+j;8e>v>%JpQqtxp#H2W!z7 zA+X7&T|A9iSc=8;vm$x&oIr2C$V@ID{j*+Vn*FUlt;=eu0e<;(H;USqtPlegbwajM zuu`et&=vR0xs@qsGm7?<zA06D^#EnmK-2w!^V9u+q&3P}{&qA%SRQ8$e*y6Da{=Or z1-OrXUF1h?4zAl<IBL0I@Gx0Tf*G2_8<KS<S?S{}~-8Sg=iLji+Pmz4a(66Q{U+ z7S7@`8J38aG3Wz0LmIY56oy!Ai}*3E6UQ5A<{l`t@Bsu+@Sh?{Xz9=Ap+&H#?UeI- z@DJoPRiZa$!|WJ1#h>69XuFTjm{i#6vq>@wrL45n=WxOpV~ts#O`sd<^CMbZ)~B)) zhYzrNo?H<UHu$sFr;_Iwe>$(H`cRq*aT4tQT%V^-OQ_HPvVFX=KKt1|e?PaU`cNBI ziOEn$xIQ19nou7Lze;0>+{Y6>mYJ9MwU`vUY;w2VbSjOM%f%f4BKdc1WL*jylF=DK zf1O_J^lG#}ghZGoaZ~gB<WY%DC)gRpoV^*Rx>24grQj!}br(2$%dO*y6RL?5PL#@s z2d!cq9COOmWAgaOfp)RvG;GLH%QB&LN!6)1SijKd0aZ%<4{4pxYdrwOAvDkf{IvDo zM`wmmU#K)|VCA1G(6U+_4Ua)nUR&a!k5reiM6t}M6Z~n<BN#Q}PMyETA_G|3oP+EA zg*RIn^r|9yRT8}_h+a5!;_5s<4x5mTMR{s1^g7GvIU^;#z9F=vGEqqKe{i{aC0yum zKt#KE1dSTN9Lz#6qLJRkYCB(|E(WyqtyM%Rg(&3*-qj|hxVzc<TP^CEFSd{Gj$Vbr zH+pyUA{aH|e4T#}L<SqZ{!jSpO+w3}d|CPHs*?X>{`#PzJ9_1d%;MeAOY+wd(8syI ze|1U%y>$LcGV)xF(LrajLcUOJ6uUqduL~a|9rpMhQ1C^Uq88D?vXBYO#OJ4wOjsuV zjDl!9gFGl_gFlAa^UR^P{6?ZETY#t_otdb!nYwX;yvBUxR9rr3?H$k`!RzSF$xig< z{eCpwD!Af9Dd?rNcBPYocY+eV4kO@o*$S_UVze3tKcyQ^EX6H+(1qUnmh2VSFA6() z4Nw1Xfn7TUse>(_o)bFcWZoz4A4PUsbf80(*7fP6PE}L3>bPg*4M?xH&|cJPrB$SN zriau;p=f$2IyN&H%V?3l`PffKNB^RYE`UMDE!<Q+q|n4s4bcS*Pv!<)2wCMzmAGVU zcl1bVPcpPYUR2UyG^){*17-Uy5qYD~Zc_gkplL?uo6Yrj#AvPrgPj#0?DxlUyb0|C zdyKYKT$5h*qsp!K*U>&i2(b|DK?IV21Rb^q3xv|T6Jr1STdxWgY-}!%T~Xo)7XOBe zmepZ~b#JndxNeE)I$5{w^+MC|Y(O3X%2F<<4uP){8~ENtbrTJI^=)9J@6%A!Z4U?4 zKcn<@O7YI{(N^}}d9q~hdr*)Z^1g_y3r26n@j7jteY6*1Y_wfZH=u>ksI<OP+k?D} z)zQT7a4yLh5dKg2efd`gzdw2n^Lq?7ES=v2-|GDS%t_txd)btI;rAbjefNgnPsIrs z3H(Lpi%65^b08NP{rnhA;fp@8D;S-!DHy$3lt(A6FOOcex;#2%MS1jQ+>;2A^-~C^ zh=dCI23xnKmq*8;SB}lcSworS>XiKQ;$@0^ELJuh<*{SZ_%J7hU2aKGgo?!tBLnPw z17UFAhW<E!aolt8OT%6|ET^7B_CiRC3Pkq#Mp6!^evbs@=su3IXT~z%mkdl{a-B)f z*mQozJ!#hy4cCWoeG5edTfc|6;BC^dF&2HMsQ2+11fBhgJ`1T|(U^{XxliY<U|<)K zD4EV5<>+$i0CD-RpcM^T4ICP*-<1~0BN?SoXUGc5dDn|4u?`K^kG{?6I*&dpcH$<2 zZUNX9q!Yl~1<^mK?g~ZU;Iuduf%YFdBFEU$hv?uhx@KcKBP>=^tC^SpIR%&ChGMe7 zQ0xs!h^R#0AWU&<IHx(N4%J1}?I+?Ksp!yP@vsPPH%K9+x=2<>k5JGZ$Hg-K%R6Uq zkjV@p5O!ET#Lu_2ot97YPD>(o9m45gI2;j&4aP7m6C>&U(jwpPXG+ttBPR!qA({2L zbI6G3Q&g-xXo)T^Bykk~2^EK$N@Jf-Y2APsH5``415F-`&o7dLvF~DY&d%`mnx8k3 zmYkZOgX+ZmQ1KFjpGSkAN%mOyxy!=O3)e9}&y0KS#r8SybNy|SpRohjbMgks&z0hl z5zNnV=I5QDR|<YU;acKnh;w<uMzHlq@G}(+9xTKtZ1VG#kop5D8{p>`nX%}@!hY}5 z_6{+e1{Vt(VdXAzroqr7V&mK*3l!BH)+>n14=Ptr(pYyv5$S2CXF}YN!#cKn55o<n z7PePnLslo0i$lS9w78KOcn4kWL_A=yJtjpKJi+!soC;y`eN93SL?!6NS!~q1kKy#h z`M8vk^{b$I5@zg>S3`-Ba)_%gY}^StED`-rKxH*h!RSd!@rcMuA`}hZ2M{La_`McV zy*!FJ5$KP;QMwZyiT3L3Z||_pr_KIx(CJ41u=F3yqbmz(*fa(+D0n^gpKDY0pMj_h z_n+SZ8Y%y_{zDxR!pm=27F4f85UV~n6)MHpHQhmLgKL$7wMy#_s1~2ydZ<#cl?e`W z;2^9{E*D=ztyi#4%skTg*=^q`Y6LwT8o@5=&P&A4$5R3_+N_1qCVC4di)CK)^Bmq1 zNcTq#Al=T3a~g8Q7G~XBAQUe4LCXpsEDOVbUAR3>;H3UljyV~drq1&lrm0*EE{b{! z+W%rN0XSOUGh;Y?=n8moJ#oh}@%?eg0f1|vfFm1MpLDmz#cU#BnUrt9f9EQsj+JN9 zWDZzfjX?r*?HB;8<UCIQFZB<MFy?t)`n|+CIA6kx^If~>C?M!{IODZ?J<fMs4ZUs! zPL*J5@sQtRyeTV+mq%~O!Ox3dK7NJx`SA0LVjLV8RLe6(-LWJ-HlZ848!EAC6j)T| zz*ZdWwo<Rb*@}>`#b1O&iu$Wk@T+ba7@`z(q6G`6fesz5H4x2S8@Jr{9pzKhpD7z! zaG5yaI7+YxE%<BX$6)kg06iTVpwHoMXh1Iys_UqI)Im5@0?r!Z@(X#Sq>~iOe8J)} zKTHMaL|`;+NF6|ncpzT8xBz5p4%V0XGCT9J)|a2gE9h8bgg}*-=F&kJNV+0Ot5!a! zL0~*8<gsJvtVBWs*hlUt2TujTQ^ZaK^}NWFBcA4w_;i>C3Ev{X4yr#gz8U#yrYJdv z_+_<H|9+;N@^1z;wJ9u*|N45(^h%&A7HuHW>J|=UvoBA*y~eU$Gi)Pqi7OKiF=Y;o zs_h}z4r88AIuLT*`(!}JaT?I+*f4pqH&}deei(Kgn&@$-gbW)Y5xR^Kf}%lIONeUh zEMi0OA!wCS^-_2XVCfyewkpvgkkY$5Qhvl_c?UD7X2U>r_AzK-bmlJ$XonyXYji$V zdsjn2465&Uy69gf@fBim%v$pGdCfGiX@@e<p$&D^gy<bm6>yO~=?nJLWNq>=HUp`d z>Dvm3(^%|T<e?s)BW}bQ?A^x~iX(Aodr~}c&Yw-dS_iejhxj06Wt!g*#z<p{M_l{S zXi%Fxw#N_X0X~)gE;?(s`Oi~OzF+j~w)_gAB$bbSLgka%ZygND#QTG=`>-Eqm{u5w z2kSf1B0tWz??+;JHa}ccH_8z%0RQ6zAxBvQHldXI(jvX#Ser(p{d@v}B$4$+Eeq(G zj;D25Ko@VkpT|9GAPwy3*;DhB2AIb&8Qlixv|p)id%y7Ty6vv;kZBjt;E>j^D$<G7 z60icQOPSy_x1jDcM|dOIuEF#$8JwLa7Uq*QgI-K}G<s&-^C|81q8y7dhT(<t11HKr zAT*5F9;@O$L1_Clr1?UV{27d0(f5H-S7&B1l8hqk9G^yt{l0?mNf2*w&)_S2<6_1B z#jQk#1!<iJ)_3&__p9%6g>lQ=y3PzGb}7~}2Pl)qXN<afL{=C*0E#)|L4_fhCpi?y zc)H63^%9zqm<Td{TuY)DZ(a#!vj6}&K2?fQ-EC8<41*EmX&<UVpnfWLAw(bo;Vw{h z1^EE>3m;0j<w6z=rbA{2HKE~_6Xx*4L<$VF*S9XB4sDRyAXY-yBIbC5hDPJ!MXJ_H zCiQFQ9~_1|2)T4(&X`RLWF)9@MQM(3AKBZnh*BP?z_vPRLPq`6gR>w&Mj?fQIZ!o$ z!Mw?jCr!m@W0ew{n&-9FH(i;eAmd<E7sC(q|LZ2n>K;wiJsi~?PSqXK)CaM|QE|@& zND+!Xnm3G)D&BGZyhVNJL@9!-UEPGkebt@HR_uShEN%vET^UUOP+WKfG1kXq{U~_f zJqz7uK6d*yg|g$3pNLa;85!s}&2x2ZrM{{6w}zIcQunUNCPiH;YK|g+XpJAtstm=M z!{NbPpC>Nw?HJuJoHg1N&TMFLH*SY`C1J_bfbb;hu)~)|Fig3sIOx&5N`6jfhg$Lq z*#&}Q0!GcFbpWlsh~TPo_Ab~dq_>inMm)3^wG-y~Ud;2m&~}*WZ{qgDd|!yO4+pr| zv6<iDSdbB0WJ_X(O)UxXabre;q1dtF+um{qFZwrnF1inz=~HZCb-(MD-KQ<B^8jo2 z*-1mwP9lolxYT_tUkB0k5PwAZMJ*lcfvc&nnThC1ZWMGG3L4!{-GuvP>vp*!SP@0w zxd`lB1^vUuPNa`m@=Jaij--TJ_x#icDTtrQNz=kl@)j_8R5bI})|E<Zyp5mW>nZx? z(ddcA0TC=%n1Y{n?hQW?S-fcFkopbFQ(Jw|`%v}qRYVW}G@T&*Idm*SJ6GD0AHWfZ zBBH+Q6nEoF@Eyg+Mh^Q1?T&^4ugi{yOX831k3ehtZioEswtaEOb<gb!k+@Vu52N<& zM9+Ai3<-rGFEc)#q&4{Y39jcSxSpTjdVYfI=?SjSBsK-t<5L&=hR9M_)qc*2lrU{+ zr^HkysoLlqf8SwrjyfcVML>y_{OfCgRyWVhfJpoKS@NQF_}%y6jJ*&JTC4hCXS{hH zTw)!iu`xJii^4{~xHB%!7z8&eNIX^FIKMPr;lmX$4NoC0ocMp-0H`q6)Dl{%Ym@d_ zgU>|`9C~lv8+kY3b0(gDp<q03#`9J@r{Z}Pp10un2%fj%c{`rB;rTW46PT^|z7EeY zp4a0!4$moguER5o=MFq0c)pD14R~(A^F};pb@1)Ms`F~bNg@N{T%&zjP&^7*2*sgz z5{iBCBoyc1NhmJGlTd8JlTbVdPeSoR4aM{EO(<^1lTdsfPeSoecoK>a<4GvG@FWx! zJPAcejWT$ALBv5e-KWtI1P1e4!wFOHSiHhZgl|M@<R^j?3HOP#$VWhlbo)lyIunV{ zH6-?$cp4JL8WQ_NJSK}DLzz{8k?guI9(Xkk+vAH?k(l{w3(bVPl$eqx%7#%tSk3mD zaur$tG_e(u<L51<WVfKh@MMN8K1<^lR8VVZu8T|K**rbN`H%mkw9wL~=TRS{&O2^6 zLB@G+^bH}<&QDwu$IrL(9>SA^LNk5CwupzdlbiZBozMC>!MEw-s3o=<MFTKY1+wu& z&kuO<%f}B2VZeu<A3w~m0>C+GOOoy{gcY#9;-8EwPOf`gzGRF0<x7s3E?>N&UcTgu zzsQ$Dah-heiE8=c7njNx+<PfsXn6`-%oKbXf=heZJN%=8O4OqYziRwy@T*m#w-eu` zs2Z1Gt6!U!+5+`^SH5J6H|0x?cu~IK-U|7WFa9oH3dLXLi%&Gk7r(eoz9`}b`BEXS zkuR0v3i(ncCd!v;F+sl6h@gC_6@GqE8Eq!a@d(i9Aq~Z7Q8KYWWv-C=Jj^qiKChi9 zwHbP|yRnsOPAVGDp5vb0*iH<~)jJp|9HB{GDAP2|)lbC+>4;y>Pl{Q8fmVGm(n|H; zsic2l*Z$X%_J0Yqe=|SnFVH~Aaz-O(`ttglvK--Dbf)i>QMW&b0<mSZF_04tWQF_0 zJq@&%op7c7H~ENlxbsWN+C|8!%O|^U!&lsMCAP$BHYMExCFc-qU$S-tojyF?H31&1 zNf3!0FeG)&rFl54Nb5yGE(p-r0wpdy4pyX46s{t*nfPVn2h&@v7eAa-S_@NhEyelq zgL_161%8$IRpD2SUk!e>q3E1CK<?~K1}XJBT5UlXX7*(1<+(qU{25es?AS@4lMXfV zVmwIYCxVbpM`EHB^F*&~2)L8G8~=djAwr-(F2#Q13rKz1`4+XAGO3U<7-=KLn!bs2 ze?mH`kD$GFSk+DBCUpdcOG{R2FZrpYFO_Yj)XycfVCHTMsOya8ayP#0CUU~QPMG?r zp$Z8<Kk(y*^2a@IV?$~qjtb>XH2_T753?3(6d6reVh04UT!?htXicfn#9EXE>j*4w zOT~?3&uDB3Ml<pvXTb;hu1`VKm}kZp^l-h3M_|rU&`S)!*=UG(g(6^AbH9$^ndk_k zk+)+bxst1{X>I+nJ?nGq-y?WjS}b=dL1YbZNBvZ)!Wn2QYA>ouG1p}KdG?y%FaUFU zyaR{R#7de7iWU8Ei|y0hNQOzO(KBqRMvY+JcQ=gTP*gjXdu}2keiMV*-DB{(-D2<{ zF&i*A%)}tu-EcdHG6oygB#^>_!4~ZKwYFvo8az$ed!&K98h5F9f~;87s_<BJH?*Lc zw8p6I0fX@FF*s#67({-@^*2lRxf_?DbTHO&tATvXa}Raem}>?efjK`AW4#GYwj66Q zIf#9jV!>Un&a`sZbP3_V|6vGUe8v!dz#}l{JAyDpgOCjf-%%_eTx*5USq=nVlG%@t z*-z%|G#wNtYT2<E<nd|Q3vJm47@XdjjvfuWnEGS6y4Bs-1Yd5d@t3m3SYmTG9EPx< zItc9FE*9fHQ<jmN+zmK;1mRhEA=P#HLR#d9uq;??m?zj?mNv#cYf#_Pg831com+AG zO=KgiaPG$3bd=MGd4cCgs)af~Tv+Ps6Fv;LVmB-f5AnGpFfHJyA($-CTgb-NmImgI ztm|~r0}=~pKzDr*y}>=J51De+bui6&U@RC2V}WbhSaK^%YiNml-+5#m1}-eati!(C zH1U9kh7IUhWD<rU1LtOhV2a5o0zzAYkYrWv2ACBcC<o|OY3Ln+{=K)zZAWA5C34#a zB_ijxBUg=y62LNYxgUK(v|B(<Q)EAs_zg=W9yW1l#Ot8hBC@(0F2xI3um9L-^s5?o zL(qWyum<^v-NPKD!|boY^q4Sf-3`Bj*Cn<i_Z()6%;avEjTgeRm9FWL{on6yc*200 zrolXt*sh!QG3(!X6)*`;CV(|2KqY*xMDW9pB{{JG#`1jk@D3q(5E09T*MwK$ZhQgk zjUL+n-vAi%l#-B%xz58QFeewRCGP!)6cMoBdd_DN)GqFR(cyRxBy@COFR0cz<`Dqu z98}I;caFmVZ7=!nrUMfB?;dO_vviJ1cf*G|^*u!zdPiCLZ_hh#Jpk<`erpCM;`bx= zM_KTzVp@T$|NKaj?o!!`m5IH=6e(z^%U5wj9mpcxm4`=Q&PZygj>pV~%B5Jyz;B+{ z8|o5FxTs~`Ar2UdyNomztq#8+IcfwWu|Tu$@4hcx2PYupbT?Gvg@7)`MLil&^v?-0 z8bkj!LKr=N5Bg`W4s(zOGh)I-|J()3mPGdcJ%_niX2M9!cCqDRxCs;e^LYd2Wg1Lg zQ{IF6>u~8_0j@u;Ro3dSp#BEj;d_p2t_~B1Cx#g@VOF62aQCIrEu=aheFvkMIzLo^ z)8?c+^<ntRaujT%(F<p{Esp#b{^^GWu}Xm51KVM*gh~69f_93YpN0*o-#0FHH_im( zl*2^=i@8(ts)FkLV8M0`UN*q_3RW86zHeORZmi?<p*$=;W6dw9wgwBf^^_hyyHdZP z^ff`XC0NkaQ+hAb2WdHj($|uSp<qW(={G@akS_^NnJ9T;Il2NaW1vYB$tDFwN#fwY zdsfQ&T+R8X=9yL$<GMh1!`WISuC-_dKgKOlbg(9sMcNUS6@-07PZY$q>jVpOP~A>J zSh!QtR~iX9Rj6OOc*R9iBWeXWsnr1-;j1YXyk?=qBR>RTNu@Z$-n02-_iX2;73f^D z<jK)9z#TFXyS)^(Y<{^2N{-|YxqhgxXXpv-&^C7uEk}n&;0V7xfwvv-2rV?Gw_^(k z1^M;lQkGvVk7KS<h~>bXOVI3Pm`xHn#qfvGb~twcF|7Nvi(#1l$l->3*8t-Z3F9^r zSus~L9)US@Z7so|<`-WeA?dX=Xx+|&tzE2nMuXCM9^EkUq??Go4BDi45U+rmDWR@e z$xt`q5tx(C47^oLw*XvE2_RgX41gI_LB4(R4V2DaT4NbJoU+9z?JZjzuf64n!?icB zI7EBP7X!7oLeWQi^NF1U2+0r((m!i&is;bZD#SYNtx|lfy;X@N+FP|~)!u5vZ0)U9 zyu@#?+7Xdv@W+SZgZ}UqrfI(TcNS_U%?dCUkli2?zx}c)q{E;<<SydEmWcv9;U0up z=@=Mnu=6`|C@IGqP&}*)&JU?2M#h))c69vfNAx+*VQ0d?LMd91!cOA#E=inB@rm}9 zEk4xVa>RV?%`4_;Z~5Y7?X6Het-blg-?cZtXx82oai{iHA*O0?mEwBstx8mDZ`I-w z?X5<ftG(5VGx<#;aS4BXDE`n7j%To}fKRG5p9$DlXmNxr737sUgP$*I-kH+u5>yxJ z-WD*K5@Q>dBDSBw<Ya7xkybR#zw4)>I4m4~I0d*HXt87N4D>y*1xRRKfrx4e=aphb zzBG1*+!u%AY5!S9)X$xX0V@=JL?B}))^yexE-OQDS3x%AJh1NOD;%_|eTg^+_YcCl z-04FHYFkWQ<{@+$bh~*ZOJc4ic!;y^r%J-EybN3O7bAo%%Hj;{uZNe)XS9II%XvyV z&U!J=(6e17a*=c_fH8?iG<anhv>=n2X+I`ki>^$RU2pZTGvnF5d;svV#Y_K!KsKE_ zj13Ruj#mgDiuq(8f_)j1MD(Q%rsj&jW~kF1v_7jH5t5IwoBXb^COZXdvNwBa-$l&% zcaj>>w4%jDn7K{K#PMTDFjk<DR-7OKzw2>AJWF`RZqB4;M7B#ai8yeQBl{XCbI80L zv`O4^5ZVbbI4mf7BhrTR{Mb2>qZC|_t+Z}W*KWN&I~#V=QY!Pte7IiV>$$PyC#XTi zfy5Sw?^8k@B8;L07sIeZ4i70QZqidN_p)=(G)W$9k5^(mia!d)+lg)=A&AFYJDGUI za4>*ldP{_;Ca;dzg{UaGW3-LU1PzEvusE=75jNg;$574M#^zI0+t@-<b?07z_qgY0 zL=n@+Dq!YC(oXuOjzdX_R9@_SmQkx2O3b-wIg&(sYlpK`5)G<|>#BjhwjI>QZ-uh{ zHl8x;kMkPhp2MkBE5n)bD*POAA8XvxH!+QcJminlJ$>p+-uR|J<|mC0piXoB_$T`H zp=xg;&Ml-KdxH|IWC~(KOezXa4RlMvR}p2U;J@fQH3c7FC^6^D%aA16TkawsnFHjM z`Vx9LBHGrwKlPSCfnNpTClAzq96Kl>fL?i>1kfSK{+SZZ{qk#4b%`TVHH1ba8$Cr= z2B2HXZEG+1?X+f!PqVEuz|7C>74atkFyqy7%8&NC(3-{?Um<Ff%crxcykaEl^|=GM zN?7B6tVEuX0(m*+4e3;F9*1=*pnQl$+tt{X0v8n(OQTUZN0P)K`2^jDWD|)iam@f! zh7LQNfwc5TwWsq`OHqK8kMwt7lP|E!7FV6u(XN+7xkl^lv|lMoT!RIOXiW~SK%gta zQeGqQuXeTg1M;&yzv%nm+oU1m@3x=a*&{E(Fpg)*T0Ci$fYdf}H9bO3y)a(58<vnd zs6JH3QMtch|46C&e!y1{R6h!5H@n|G6GpN5X{G6{4T~diJR9dNS{1-fvI1O+jjbxI zOK+v{97WB5KSXFH99Ub!=d!v>^0ETLb5(eBIV9-G<?2VFf>m-hAoW)evES)XVh<?8 zl&CM21Y2LEqYNYFee)YI)5!vQSojCb$m=Mj5Y;&c3K5B**mz#I@&P`zL;lZ-`{?;M zW&G@}grodeuTp@!X0X8y`|r~zs-2^j{p`M^)qVVm>qlTzrr_2+%`xRtr5KC4kW?hD z@`LWNEyM?2!mhD}K($CvC}Dn4i~IPt8xH*0eG#1S7t(tleotSBgvYci=@{nMgD3dd zKU}$YA9{gw!sUe!x;Ab&cuD<&phNY;Tr#^OKwMkg>TdX%UdR!7BfTIB>7u@l;rN>D zz83rQ@E^jGR=R3PxsmNIFZH5DVNzkpocU-TH@juu7nrS*go+{mt4aRXko>O&)9K<y z{DOmkAR(MDl7yhfP)l0ZgMX3Ea`e#Yrx-^Md1<&n_xft4>|S2+odaEhj~<e0(YiE{ zgVw}BVG>101lV(`EEa&r4gB^%vAajJTzU}tjjkB6Y`Q4VOPWw*6qKJ2T1ff%3$abi z^ZtAyvFr2&P=3Z^R%0kXr3jJA&zX-vy&6j@R5Ks*8$KC88W{+$TEsklqy>=i1SHD} z<ZJ_o6F}OWFJQ9@%0(&3S`>Q1a+01HMTwpm#%j^oD<K+=8f6g;ru<@m)@*9t)cO;~ zd+|`**{ytyA^y~)vraVs9YPY*W}0k(XW$=M$)bghr4oa2`VyM<=;vkAqS;4&yOx^v zjl4Rfhr0=}4=M?t&MSS~z+S+bi7>5=<1bSi%Y9_R0USTnGGQ|-I*i!rASds@S^@%% z;9Syg+Qm;F@bM?COF*B+l1a1FERaVLKesy^@aAi1<c6h?ClI1}P2`I(fkcBhpy8;H zd~pZ1XVFcDn9oD+B4_rRof)`gFXp_O)7&R_d2!4GPNyskvYb+$-;2J<BSWjiHx4Jv zj=+_Ke07?WuQ7a+sQ_-Rul>ytIZnIzl?(HV*R$Xns%Kx6fp$`}DZ5v6VCPRKPVM!) z_@2boD?ULG)m6*;PyW=3o@UMak~O9ZSW+$x=_i1e4e3HF(y!x#ZZI52%?&&hF}#f_ ztQGS&#DjoT`+WU1Up%%GuB#}bLT33hvXD#V%_MeI*DEjfhlX<)IcL!cWf2SkuD?;( zmP7S081vC!Y@hruwH#JZP)4Qr`exo^pjEk2JgsQo)iVAUd~3{6BST)J6l{oCK>>cT zvVND`rcfic{MJh%UoATEik5ioXqo7kUg_}0!?e|h((UYU*$!d{7$^MX_eAVVSqeoo z-Oda_CWnO?R`1F%nPFl)gPGx7<mdT;&JQQr`QfR47Jit8mJ9HXH-js_(z)V+cXY03 zp`+$Zu6Whj_F-y!oueM)gjz$M33M%7p#nb}R~&4`{xN(ISClbVXb_qZsIfvWUONZr zsB+tRMJ;V7k>tH)her5(alQUpDNe>UnVkn|xniD7qeiFFt|Cxe_85}ZL*623%}YyI z*L$0)?s6c#c<N5#7P{<YFg~TI{s*S79n(N)P28YK>6L6f^e4v)<T!`nm~HA6&t%~K z&X(|abbo!DD>;TRA9Y+s)nVh#F5a%ep-*k^WdiJ#1n^u27@67ToP`}Jga`qv5N|Kw zPDTCeRsGc~&Id3Q0f9NX2vx+mJBM<>+|a_$xAP#&*c}UxZsyam@>=n7KlF<F)Z+ok z`yaNUyLKC|h@n8K`}hj6Ykp7h`Qq*#;TMV@(51SCAEPcN3VyRCv5t2>F~A-PCD|HZ zDb}9ZQ~mSB4_!UgzgjHoF}_B;++)07+}&e5>c8DqIXnJZ{p}>O)(`c!N80nlo-!b* z{GRo-H6jEz3=HNMKWXS`BM1M726LQ9q#Y3nu6(>ONlz>Or>>`+wv`5Oh{?42k`F(j zxua9Oi7jGqcT!yo5rAE(rD~hsR~&XXlLqg8x1XFYY!0eHZ?GU}%oH$jfMI9rPYAb9 z7sl&z0)4)aAL6M3?Vssset;!^mF5QF?9TV;fm5_v!tk?(!c4tw+40od;9Hrbcj=wX zN`Kr>-Y1d2Xnv-s18E8~i0&3(U$hTc9Kk|{Gb9rxY@8knF)UYP4vM{+!;<xGLH!%b zF^-UkdtNyKt)V(+;-SPiDipnwQp7z^Qy9?o`M0z|cR_}5Ce7Gh{*~lC<~0P>Ql`YO zm$b?7?)*`h6d@Zf##_xhz_+;@KIX!aljdV^ji`a~aEtCeJwSN72=-Z-;vo5w4L;+L z9O0BNUhx~40BQ2Y&+?^EY?LoP@uht6i`DW)5zFOEg;*qCD#bhUrAoXZU#i6m@})*R zDPL;E!~Al09gr0<eqSbL|3bwAWz2rDJE071-R^EYnP|$CAOi6gplO)R&@{wC8lGY& zoj3O>&2B2le#ZhEeu+eJ%sDDUF@I(`*aw@A`Uj(+Iu2ooDwzs&9!g!mkWQYXiDtHb zMkkvAv8k*w?#Tia-UK`l7^4^HGFs;cKOGiG?E>o_?cO@xm>*lLe{JZ7n)PoOw>{NK zHn-)ojYb>7hc*-ezOP)(A#ST6_?6^@cm?fTzdA2J;47AgFv0o0TwPMC{wF+4D_8Gt z0r$J(aRXT^Cittcb!?M@o=FpYEI?v)QCghYH`JW#(>e&c*AQ*8k5dMU;mx}se2cV? z%K5&J=KDo^J>SR44cwn2vx68;u^RfZIE8i1{t8+onjWk#rR}TH-W{(J4WhmMO}A!t z{0r~2`UtGDRs@TYG14a(yC^TSvqUKlt>{u>7p>@uxEQ~BT#H@YKMdcW9du-6K^INd z=!iNvypROJToW932wo$<YB;PAvtVEWS7<nJ{bPf+VZPpxNn2rmC#gy6drGtyL?DGm zeqod}jMXfGTNW3co|#7bH6h*5M%1R2a&t4cv+Uj#Xj#*yPW*!_jHw}{Na0J3!vVU= z80wR&BOagUXHtN-!~jSM%eBU5Q18LD#v1dmeVX79>xfk%9_O^+^d;h~pQxj83hqfV z5%^0r&dbsFRihoGA&O>;WQ@YT>P^^JEkf!>+U3#ar-2^xOFt<&uxj8~qgcgrSmTR( zZaD_#&0y?2Pywo4DH(B~%Evv|a5xS^<1=x{@pCx1oDq_CBAs7DIJg^@Dd^T^zVxK= zhR2uS)?Xp`c&32O^ey2tLa;#*JDyq&DLyKwE-5egNQZ~<r7!uL4J<AA!0K-X^AikS z%njvW2uyC~!oKx`QVjl!^u?j!z&pPa7e9o4=u(Q)BH4O>uI~VUr4fH^Qwnw&oQ3lp zF^Yg!z+ZSh0I!i>%Zt~C2Vg4`=u&{5&*YC~>>{9SL_3i9DF^l)`ilI*33LKA(*49i zl{`!_i3&#HYX>2Q3FNtXekS#y04cTfxaTB(2b1MPypZ#eMd(Zb>7~%o%|V)hh}6?& zYDmq1#MUI@-fCJos{$9{v>@yFnGgLXas0H#d*hyGjz(dIa7@&1;+|MiJlkvK7VUR` z1dlehU|JaVvN`A<v~eqzD;fbbntS20{$#Bt@Dmr{f{-$N)1M6B(SYS;K4z)MA`bRH z+f`9*&I8RH`esd-eYY*`Z|dau?!fo|^1hXaB|Kdt(Gb<~Rh>6ce0TS)Kw-CKNc>jP zTtOTDN4ZAXzHy&S!uMb*?|*rp%!drG+xq>B;=8LK$v@S3H-n(D&~hc>O$fByCo|)F zjXU)FWNts4x#NR+;*OGHr0(%PncpD+vkMtU&0)9I{IC&PZy(@?`(&124#@Y({2On{ zj5QCT44Wjc4U9!U$bE?NvW@`RK|2pGKn)<k=mNtRACc;~d0*mlolwh_w36RbF6z*% z3TcSLtoWBai&@bq(^_7BVtL;oi&oy~r1E@R-ccnRKS*6(KQ52p*O$EXclf}&8}C4! zF`r-YMsH}gM-N9kK#t-ta@WfolB0!;L&$UvIe&;ulZTK$aY(5aasWaU4jCas!XEZV zE^diB{U}YpKdh()x3@%{$6A84tM?=c<o=xclKzAtxXIo4SBYc+18?+71kOfreK}-` z7E*$c@30<*dzcR~k$j&+{-K2sl236+OooK}Fp^k6lW0BgFk=c!#88+iYLGO*q75@B zEG&`WLc_J9MEG0q4zZ80TdXSX8H$g%C!2!sttXV<&c6arTF`EZrr4F0xC4vZKjyrc z^MF~R<1w7e83RVFpxPc(*Py&Z0TMhFJp=1&KT$JrkH8J-@KcJO;l&S96!R+LIU7%F z@OPqWQhCIhdo)eOX@|tvgrSNHplA{_kHALZ$Dp2_gL4h#7sJQWO>`{apY7$Ig!B7l zq!&R5rZP!%qkqV7gju?*!Rq{?;d6~0A85JIZ2?H+fvaipimm~<Ia_$-ClI(fM`X&6 ze0+Gtj*Undy;&>Y5D@m#wDBdy`O39aq?koOP?~s2zIesc@+Dt9f){zt$iz(46Lf!= zIL{!^Rq`t}fzFbVl0cF+#WG08w>ttE`_<+aq92Hf!ii}NX-!8(p~y#Rsj~vJiwaPr z0?LIe?=?aSG3i8fIn+jR9D(+pNDiK#@FKNbW+3sz(+Oj~B9A9hVG<Cf>IU$jL}b-> zM5)zMrvW;!mph+(mC8;pjZOlEu=l5y`U4XPn&mk8k%MJ*FKPnyQ+grD#cNEb*b3m+ z)NPtAk@hY1aEroi>ML|MtnXW3VO3Z7JPz%!ZkQen7a3b0uo8j!kCk_vKB0QPcpt)( zEdwgf{3K3Rx1&pGj)R+D;Ug3R5KNH%gCRp8FNgET)kCSSr|ZpWQ{@3S2Dk<sz?^Ic zwd`O9CAabqm!QBbT)qvI6?J|`9aVp(IcDJ-_Y0U8y2$SwBSA>Txj?P~uK-)}iv0lk zwSydDGfN9v4Hs70&k=D3)iL=CAO^pA8RN9+Kidz<GkRGZWd92vT1xC)fJ0Ie5mcfB zZCf!-e$FI*R=+_5f_)CuXYp3PZA)iH>6Uk?EWQ1}IBVt-NWIlWp$2-Wq8=1ddxfHi z;!YvSYHAQfWwWRR$-(eb$P3Ja`9yf9c;hRlgG<KgHnK99LckV+Ghwo6VBu1^B~$fr zYM*)s`b*MITuDi8KU2NMe6KGmga5%%nHW=(>1~a_KSg{(dnD<j35Y0B*WCG5{kqNh z48G|vscga+^&REB3n|Pa?PW!@|4dJvbT@6_?rT-K^!8M!9nl50$wpN_g;j_ophHxG z-o!HfLu#LL6@Hg=PPe2o>`;`6>B+=S82o?((-TIcf=u#`NT@8uLqF22D%@t)@_k(X zYC;<2gRk6Z+mMO_649AZ9%tA?zS4=Z`|_&)KbP0_rK}%BvaDYKG~VY5?!JCa|MT+b zx&~Kz3nV!tQ<k{t5OxNqA%J_^Lflqf<<%O%J&O{5@}5lW><A$-rHapJ>Xk5c;~Wh8 zpGNXrBYAVm<lr}ge}j?XzX$8^A4-`4iGxPs_l(3<DHCh_8dBl(<T^mhmL-~yO;f5- zl@M%&KmyfAr79EQaQiThtKQWKrr7dpIja+MN&-@TS^m97{!Ckbj4&1iY7)T6@?GZ{ znU@T<BCi!*YveNVJ=DnZP^v7n14C<L>q9H=8`>7a+%XZEAwKNfk#A%%%X`hplAofy zszQ?<vd!->(s#j{ZMKK3Qk5?;{RAU@d#dz)nVy^KNG++e<1r*<cCAvZ@LWzUg<IT= z6mlioUd0Mq`j6k%=`jxJlju<?6XU<E+p}77XU7l&fhr@7^+n@<BmI95(h;t<CNti3 z{lGO=W^p(EjfDQ2oXvHd2B(jB8UdZ8;l(Q|AdD5LzDGTaW$7Wk;MstHlhGp_TIwuu z15&?*MTt0!%bbM{R67bD_IzF|T7)Ndb#OvQw#9Ghv^Xs}8!3L72Vmw-RG0axY7FeL z9?JGGIzZlay9Q@~*!nxTb0OpMfifdX)w0%Fvhpjp?-^Q7XU99p$?ZF%4rEA7jBk`P z*hqbkk-8~$YEIuVPu9=bajB7>?1(9#YvZBndQ;1jB?^!yk(p;aWMt>{mk=zSaD#+1 z4RxOo*J+9Yp~GY4Fo-8Q_Y^kKRq^H)z@h$Osung-I5U-`X}$sKaUGP8L_5K$<YLQV zy(X~-kaHwR-C}Pdv|+B^%#}J69w3aoga||?;bf8q`86z_H1g-@`6U)qZv#jY0wySa z13V?f>@vZC*N!WdxC<(%RVf`F30;zG@%X6W85dWwOsnKaf%v^MWi1txa9TNfD`-f6 zKS!_hB)t%gbhx8~90l`r`ju+*TaiRRfFkyO(g2lX1%<0uG<@x#2+IUmgd)|yRMuaE z2Pe~oO2<O-lDAf#>P`l99Y3^hKqa8GE=yUGs&3F%!rwewR$aosg5k?uWE#FcDy~~P z%fi+t76$w)CH#9W@GCnq03Y|@=FLC`z;7zeQ|OaA3f}#SDxLeNHGO!e{wj->C?&SC zEPXXnp{kXZs+#<BfTet;qk+8at@P`Gc{WL~DJf{ee{GhPetCNVziW@+Pq4vXIB?JL zC-<K2IKaez^P5)uuh<LtnR^8PUK{+3y?~#+NAO43;6I&B^s)0Vw>L`)TW7J#iJZiu zO!};P!%CmheS`1q9{%+<_+QfzGkeIN`H4U^*`~`6DUS}Y!EZ=}-z`b#6u$1bN6IG& z|Fzex^vT;}_~h8QC-5iO;4kEj3KrqtE&l#JgunSUEB;sPF?>2^a8K~R*9JdhkKtGB zA^Z_G_)oitf9(8E>_kGeTT)df7iHo9SFQ9Z-52;(J;A@;2LJ0U!hcWNm(KU-k^b7y zet-qOucLwC!!!Y9L>B<ihGt+^1Yo*0WaxJv&y<zV6626DQU9M&0~}<h1HJO)ocT#3 zOHQgRwMG_8Z<XcA{FfW~SHqr^RAk-m@*isCe<)S{rtb4YdHLoQy}lDuWo|YyQ+<*C zO(T6ls`L*frf)RT@93AJax)UspJ$|Bk}CakW_s0il$O@n@eibxvxAvN0vokKZ`HN! zWm#8e$F)ZKIX$FbY@|QUNZ-;!`iG75ZX<nr59$ACq+dtdAK2KkqKEXOjP$P<=~wrV zzORw~HY5G|9@4LQNvF@*Mtae0ddUyZXnC^4A;^=&yqk>dl7DE{a=np7z)qbsh3Yc0 z*jkYCOZ&<QBmZ;AZx(5@?>G{z9%lZ{FX}8$$55O3S<%<+Lz&&@f6d6BZ_95hKfC+< z*BkjopKi;~Nu8hQH^RvOoGrgG)q-53`I^@TLe`)1Z+^k3zb(HZ9ku-V-Q<7G$e(Y^ zpICljQvOn&wO()J7rm|Zm-z$gDy@89Vt#GDHNwdMoSvViZavMn`~YQ>_AGxjcpIMA z=~3AeJdlSugr-_bN_gGxx5ee(U=@dWW(iEn*n+|{92jRVo0~(ycXKeWA!3hUOL#2S z5YLU!I$Ao~>rBEgIxch3*let=KbkIGA83Oc!Gz1jsK4~Z1LK=0`G7p2$7ZK#i;101 zy8a6H@0{A>-el@%*7d|fAr=Esm}boTiLLQI(ViU7_8#q~>4V7!F~MsIzI*p-xy)Oe z%r36myVlJ05=m}GP2~FSP%Ix|O;@h*Vj~GJ^MWqBS=42DgL%9^!JifOFh*^lqMl>k z^RvZC7Oy2@6HcL3+Q8N%k5epT@S>Q_uT`%B%EL}+G>X1{jD;KB)s=4--6kvcB+<aK zUJPe#xVg29N1Zf3J|q;Km}6fFR>+%9E&^Lw*xDXg|0TR_?X`P+w6?;sZ3=>XgRR6w zkacZX)Z-TEpdwNr{uPeM-W$X<g4yw}MKMYE+xK@?(RzF}5f!E%-sIWAhgNu%Q6<Cv ziFLNdyNPk`L)VO*?G>kJ=%PCf!j@CGfP#a_+a7&sY)&T_h>xl8%F1PN>P<$+M62L9 z<95-TD>pP0y@a#iPL&AE<)4L96Ky8?CK2uVMMSFiJ8zW0U!lrL%JJ6v6Va)!c@|z? z81ZRWTp-?D0j!(f!#{^y?OQ=$qFDCTDNFdm)4o?2$1u=w6X;wx#ho@J7GTJtOSp@u z@F;F>S8>28Uo=bP0`JriC-WXoi@C(o-)TS2GVCa|)8E=Yg<|#liS1*LpVNIjZsMt5 z-wVy)s=v~^6L%%~M4c3$7U`nfi?Mi(ee%7Cj0uh!)Sqqs#k{^Pos36oPR4UShm&z3 zaly-IPm6!?chmyi_!mRgcHKjygTDYgU*6`%GW={_lAm7ovzZ}3^4ZVkZ}^}h$k&Fp zJ}eQhFQj&6slmPq3#c7*|70oO>Pr6hH1uY7<5kddzy`;qp=8{f>Ve<3CrBTv>tGr7 z0*8&1VZCM8gB&)T!*Vw}IPXV<JQ>xGmT9IS4S#Q^c-6H;CcB8Ue#>FGvt^i~XZ=xr z`}C~uaWYr43?9x|U*NFZsWNQo-CC({$nTwlv{D;5nd>|m{4Ijxo*E9z4al%V^-^z= z-}CjXK~Cm6SO&kqSx3sS-ZJb#4jV4RHq)Nsn5Uk@TrzB}40{Eo#y#8cvB-JoQ*e1C z-nNfAJU);<lHxvlK~QYgch(mmiOD^TuBe14!Xat!cE=$f<dHQ>iQWVrfD748I8p^$ z`K{OE!pWO%$UTE@$Su1bgE_|Pe4Jan%}Gwd6W!d5gRYl@IPAJGK8q>y$!QY3#;ec` zxiq?yaPr1I2NH77A)xRePT=<3Vz6MQ63b|lK1Sz(m-zq^xUm#(#+6+KI1_t0uF(}; z3y?J($02hxRe>^sW2<@Do+@V8k3pXtbPYOBsx2cAeaf*Yki)%X&UI%!yydVd^KqCA zyyWK0IlXoE!kfN)4PTJ1t$@HzHt;`w_&Te<goH=uNhQKN;>__s&8Tm=Rl=)nd;RRK zKRB8a;OXP6{*?Q}n}C;P)TR3!YQ5AB^(7nO!id8LKSB!CdBhX_9qI}ka~E|Uf>%13 z?oC9*&de4AL21^>q*0n^?qR3xG26L)&bby|Kha?rl+n&5-^`%)o6i2`f>vXj$?LqC z(7@?=aD{;D#d5xrKufdm3)+!kCK=7GFG@E2Mw^6@8lrxAfDg)d(RosIQUjddd3O)! z*&d&egU0EEuwT##x2OfQaJPVlFGv^ticalNDBFoo7Wo`|2<Qn<3+jn(ps93bd@M%j z3qIjAWjy@L-d+D&;`ne5ZnCSRdh1G0{ju-;gS?Ath(26oC4?O4^Qb)50mCNfvqa2? zlvY%kM4?4URM1Q^LeeMqOQsL%3HmJ2=u?wrp$|4E==8aLAt7S#-`4suG6jTdclBGl zF0p>Q;V;|-jrPWdc4daR4#Y`n%Z2?@<ElGY_0)F6;}-lu|5KCk1D}8u=srO*icl-) z`(B_USED1;Kw{KFPW)8#8AM8<5*>^*g-Gl0<rX{+m-NY4E8aN`YsH(sBH_J4QvUT0 z-U96T>>4Slyy6KCG52?m2k$mH#bbK>@OO>9)xX25FLx=TAbiwC9hVboU<U<Hu??Fp zzz$rFS1j2Cs*yC!S5(mP*uV7y!9df?DE%g2DQ=?l);_{Y)QcQR!jQWO_(kKkjcb!w zCaN8ehVFzVa>*{Zk^-DqK$Z22St;^do#&_iXYd!YovK7}jc7c4jLcOhb6Gnt1_aJ! z6qCcnXc^A#z8Gr;s0&^~PRliT4|8F&CH83(rLiG~3{<osh73<6cgVs<*Jt2iRsT%> zQp*bK*W-N8aCZHbg%}%RWI_`=6BR-`KOXmXPy3g>Vn9#vxK{)vT=luF%UR)j#c|n* z_jy?2W6T`|-R76_u79`j=ublvt7p;!8Y=E%|ICJ5LVxs&mv<9?_ip0<oD@%TA1AFQ zOd_Fa@YXwAQMX3)y_m!)&KYPT(ULxQJ#~@^Z$Yf<ogtg=XW^O4=cC~l!v26`X~ZB^ zw1S5EO2|O6dYkm5^Y4~j1THa!qpiN=U%Yy*ZSX)m<4bdXoUm4^&3ZBJ#+*0bMc9!t zotbC?&<_%W!+t$BsdiMNRDj|?J3gl-;luFAL|T=pXR$ra_-tFa{$a-F=s~up8Sk}) z>mO!(z8++In(>+glr2`;n`D|&+Ly+T43K=VTCrXih)<xIf@M8|=*RW-CqR;)W_ikP z;xz}Sgj8mJ)2GRr#Eh@91{?2Ye6<l~eF0}Ev@XRO8r`rht4wSBb>LgJfYGv#<Xybg z=ya$79g>&eb$FDS%GTh~8W*i~F)4Kr_i`dT6g~gm<3m&DJ;#UFvXUxwFBfZtqvMlU zpKkKAhPfa4Nd>aiV=v2}v7h;$+t2(n_cQ;T{mkF8r}<OzV|!w5eLg8W!*2O`#eU{r zy`TBl?`M9opZRIPw{h=Y(ywbj^E*h1vi3fdugm8dnTWJXKKX9OXYVFHXE*WQ-Nfhb zCZ1IOp78VSCf>iBc+%#2f?u(lc$y{ll)q{>@zuMDuh~s}?QY`hb`#&eoA?#GiC@j} zsr4!0IY;Vzhu><^`7U`?>U`K<2(_J#?~>MPF~Xwrk%nc_`0e`D+6m0ix-kIcx5g_% zypmGi!=Pbb<bZw}CNt7hIGe!Av<4R1@X^>;wf5I|oQ$&bveEN|_jQ{!_QKZy9M)Jm zmB1OgWe?OvaUAe9&wx0SurqX8LI8?wAv&n3KH2Ky7e9<otS_npJ1(ye!D`1w+nb;u z<G|l(!l`dAUU!K!%9%&3e)cl#a_(6ZVY5Ke_r4=UkXfGU;s*-(8qHI|2cF1uv<d&V zB=|RL@CS3!OZN_b6=(VYnZOsc8GBd~{6h%7IuWY~z{H`0m$bB^Z`uDtR!vEtYR>g1 z6aIS_C(`Gwml(d6Q_i4WiA0_~gkQtC`kC-AO@cpB!Uss;@83)KwVdmD<kIL9zbFy^ z9WOHeP$vO@{Wp7s|6Eq`DB~Gs5sxMn@sKQHG#7D8cSWS&pSg83j1m0rkV~t==p^_) z3I7;QnY%aen|1hineacKm`I}4FEEJ;8U8!8)h|^Or^26=P{RL66aLgB__Y$gkKtdu zH}GfZ__raKMxP-`@N*=5til14owSK=5AnZA<9`$Qd%sU4&RfreIDo8g?j_K2PdY>c z_RPmn9uIaY=yQ|C|0euPli*J@;ImDhQMbZBwkP-+|09Xc{}(3WzvEvz{`nxLB#jmR zQf$KO4u1>(n?*dDRK!C@5in7tDB@3CL<;&?_#a7h{!fDMGvFVS5`MpK;hX$#!vDN7 zkwmMX(@9jA68`hp$H)3<;`lPx<bM<X)Fk+|27F&i_-A$te+JSsSGOUF&i_g9a}4+= zri8z7eK+{){BHt(?}9|)y!B6Ht{>}#{RgKACoq3ALzcQ;iuTp{--Lf@68wo0eqKuW zg}Z^T@jp`O{C|ET{yUy!{Bd+w3j9~BBg%A(zlHzJA|6dD;vreY=#)iVqZg5aJ{JB* zDxLq6;QJ)}V^YF*^#tGKe-r-a=OvP8^)pPO!j$k|TC0&L75*mwoA9S5!LOC@eJSCW z_XOYMf27j+KM8)0gnwd6_}_n_<4@=3**0C}(>Y-NxaZJMF=UvEp3V;{F3?^K^Q2}T zr2T#|*JOBcb^NqA9@p8%cuIeO$@QbqW7mX-HoIr{k9%gXVZ5^^*B9eTRowB|3vZ6d zSENAI+gGrezKx4Xg~dp@COnZeaX)Kn!a?gfv65|JT+;(jRFtsk=V!Ivh(wX&32OK# zE^;&%899JIPL?0e$!+Og)KM$`KQsX7ehhjA$hO-D1KOjX!%-`Fd%e^jvA%Qz9SHLu zz{OkzTj7%lXVA~J<{Ydj#ScFi5cN{b=bXb(5zBlA^~b;(BC{bW@mPQH5d{i~0{H>8 z1IJ2ssh{G0+s`ofXu$H;rf^>Uj*Rf2`W?=&yM9M+S`lg&Z^B)x^E6)Xy%#AvPoy;c zD2)?oB8OvcCC|K2)Lrtd3c5%j?3!FZ^{id}BF@Rt(zABa+03;?ErGdoPDA~UUh2m< z3A5B)ii6<G02CisU>28y?`Y{AiW4CVn)<b)Y4SmpL<=LgFV6o$Pk}y(|8V7S&_n7G zBk^hy2XE5?ehYQX@rS8`f__re512dRo(^JQwH>QzanHwix7Km<%XP(h+HGX+#^uC3 zdi{6E>&#*}_2Z$ssX6gHcjGG*KWRH%J&Kd>vG@@8eEkWru)Fa-MAc0lmUfD}F^X6B zyP;vdl-Sf^z2ctM|1g&i<9osM^X=U4o((UJwzRnCNsf;Ez#~}+;i_Y>iDtUHG&H83 zuoFN}*cta+*9|<ZSpNuk6Et{>&Pa1~X0dC`cf^ml>;$XPA3jB|+CYU?Nj|w$lG&7J zG#SGArwl?8u^I34uwnr~@Wa{uF(BgHkl)2Bj^}_5Ex?H{x<6b2Qde?z9EQ~;&SVTs zZb&|>fiRH#o_e1L*^JrtEjI;14q-VV!Hllwr#Z_0+Tt~QV7tGF$_<lS9&Q6<H^=+< zf+{*JrxIr@(&?TR;D5RtTq#pK%GFIpaZ$Jm9su%uJnn@4dAL@jD}<$inM}m#+9g*X zi90`v<AU*wyrNY>6>9bB0DB8e&zpgC<?0X|)C6a^QWR2HsxC(o9Huyryy&Prs9)hc zZy<gS)aoU45}-n70#?vTI+fJoz?U#bKO|DscFcdm+ND6ReXd`{N_+jP;0=_ze$Rpu zds)AtRr^x8Z)R94C;4fg>sPbFUcWl*t503OMWDo9)^8qp-|kBld)cbEKke7N++M#K zv%9O`x1hw{)(_^seX8G~|FAaU{?u>gGJE}6W_4G;-uqBLxXkWT{l+~0zpCGgrS|%* zf3v	f6jn_IoXD&*cjowfCuhmp}Hus^6v$?e%kXTffuM(tBG!Y=YRQ`rQE+b{ZMv z-~RAtc0&EUZ*<pwlhM+9+y6*O+ZXxr<Rc07!>C7o));*%X{f27K@Vfh2K7F6c%!k; zA5uHOSphyaPSh^J8TT0FW&i`j0d9r(64foo4VN^?E#*OueEy{WV7YoRPTSL*<!G=& zL4`=B4|G&IM*S-+109zNOlWw+*h|=9jH|*JSKYDp?|L23K6{P-oDWjsKYZWt$M%lB zLw>k{JXmaB@bAJzECu~9L$mA){b``u%PL&*@cz)>mm2>k&@B6cKMh2CiT~pd?GOI7 z?J4R1C91VA_|rhMm-w%JaDVWh)0Ptd;Trxli0n=OrGaEG@gKTh_;)QziT`D27NY;& z;!gv`UgCer1N%dNUuyiHK(p)%|Ik3Nm-s(^zXg9E$$y1KKP)gb1%jl#slq*r{O#kO zF&`R6s0YVLBbt|7<uXyM_}jezgk=7vDUkJ?lchBQ#5yL-Ad|2uP#;XCyh~kPrC#1D zWYCOWM<$hbm{}f{7E_h?GwmHT|K$C&wT53Y?x)2q6IU5`)Rsplb(Kf2+Jt)>)Xj97 zzWPU;J>_(Ham8|UY&(*!z*Q_2m=fav)RQ&TQ2i6B`dFH52uPBgD4PC?f+=lUpl)iO z-w_#5zsnguuzpu>cjF64OkYlXMMjG=o{h(Gt=D}m4K0!5(AnairE)u+Je`>CV7d&; z$?A%t#jw-0)69N}*!VZtb*`j44l?0sOefJ}M2=%*Tpd&g@%w~qoXysvz`O_ZQ7Mh5 zSLb<4)g|gDbcIA_`~n{*#w%vdr3fkvsV(X!m}KW;3sxZtiF-moq#2bZU)(yX;%*P8 zr%5N;`DSDU+0FHL@;^OwL!$p{DF%Np4|;G4B)x+MeLrF93#e<#)%B(7#&|RN642#y z>o5rp)bGS$pRk67-FQt8<Gjq0cfpgLeem)zUNofz3PoAbmd4M5>K6CicOxV931~Dh zb0A-ayI~uE;?3!9_))&~b~k*3H`q7tts?VYH7Jcc%ztsu&Q??r_pDgR7Lf2sL3K0& z-IHM}%#C~2AQ%jK;N<$#`oV&xo{bwQ+Ik@}@|AmbnPc*(KJLbY02fX4i=yttl@|c$ zo}J|@Sji`{_Cm_<v2~+iGw2%|8!s*1<Zk#D?`Wl8G6Qpv6=eT7?rGwJ+zlTf0GGP| zf_C2-R9k`tUFQ84?%A2{*@JxYGKH32jjI59vAf|x2G=ew-Ut<&anSBdNQp}LDypGj zKQj%4%A{?vK$<eCU1Z#iT_kGTBEoVIs?`owihE`)Am02as4icWF$@&^Gdjp?{qPz0 z>|l;wB8t#0z)zw8&yIgHT1iETXJbet&0|IhtNEzjgoAa<P@oN0lrEDrl@7-B3@CUb z1OWAydCjum*YNDT#Fi;l1rGxX$rb!~J^?W+7z1#vf(L6AoIvGFdQ^Id)-Os6;HMP- z?4Eunc5i7WIWQvQb~>`tUFi8_$3cf9ZJVs9WX$m!>aEoPimsAcURIH#3ab0mB12qu zjZPHLzf4D`M6&1<cuJ&_mhZoBla{8v71$X55>UZW&?#m?_h<!~{v@ha(4w(^m{8H> zq+M7Vd8;gipgu5Yv6V0Z{-;Q#$^GM#;1`(i(H;r#9Txbs+#$D<@G1=?b*0?NT-k-K zB%836MBw_A^|(G|btqc9qFn7LBa_chN}Ierg(fU3r~{&t4uxd6XCg_4vq%!it*;eD zi^X46u#^Y(Y<uuu5M0y}Y-^#D330SLwybNM78_6BL96XOeI<wNG<lIjXs<&H%1;s8 zZUo0l`yGl-IfqPy%GNJ~Zhs3c0#r>SEH}Zzett1d+xI-gy%Y5YxoM^d3nToCNY>_K z_VyeyW0dfQP~#T7(~N?OperNQWn#fM#J$VKGXUC5{pnGL&YLvk0^1v!Q}o+;b)5Zb zI@u2Ubcw;Mu~&l{V1ac!s1VEO6s>w=^A^SnIUex-pE*d6`=D?)Dp0OP6IG#!s#gTm zZ5W(GlW<n~8h67L@<@*WE^#qNi3$pfxdx-D=+e{~gpGE2s`wmxC>6|PyAX&pxs;}{ z#qYj<k-zB;ZfWr_UCxXof|B5B<Cv=tQiVWBci9L2hAlLfR!45e`R6PQ(5%>|d<EV$ zTRHm1vUfpw*vgC8R*ryow17jo>zu|Jv5*Y@gQvV025v?>uSS8LCrCs3kc1?^ftU0o z1K{7$Dw~$F6N|1#RvHv*Y5fW-ZZ9D|q;_>?1N-s6CzgFghT!5c1>1+Hv2iFjT?upt zgA#;EMW+YpkK*)KS%S+Ow}i9#Qk(NA6e%mQa}RXklmR^~pnfPWdJY%UZ3)!>2AyJ) z`>rXNOhSFS^P%73W7PX*R9%bvC(~ENH(0s_hOl;Ux5m6H4_mBETB&T^pfm9!ccH|X zYsQ6WC>n%6YH?!l!(Q+e3TY)>;^?m=V}8o~h&nBa-`j*Slda+%*w1V2gS%v5K@5Rg zv5?8#P<Ac!AzT`q)Q5)1;t$u0KbMPNT22cpC>}_3iRU&*3@R-cv=|s*bDzWSle`ta zycE4^6Npbr3e>Ho>VL@Ufe&bBINMr;usN)(@oQ8yg7XuwPjE@Rx!Hh)!lAPKmga7R zt0d?l;~z5OVJfEh-pGrap3eu#Vy<}?U@KhNi-aN;nha@VP$F)lghm-G2D11e+JIxW zt}Km(`nkggf_%0W!_xG{!AXk~1<!YlPDkBa#ADQE;mH6IE&?jw0hPFC;Cs}9780WN zUZP{wmy(XzQK$xop;E}Qkh82s_tCTH?LI<Fy`c%Ie??LCvIjXL*HC%bd*`}`Ge5zZ zmzzyS)JA!%4vWt9vd~8e%*%vv%=HJ(_s4{MoSyKUqh+Z^md;zLFh4Sl;Y=q|N2j(e zSJA(_(Aw0i^|JrN!WR9<E2d~b4kI9=kpBSA|I0g6Q;DpeTOm%fWc6uT1$Yy@l8R9t z#3T@m(8r9MVKB+fGA_-GGa2Yo#OZ8Bil^*EL4+DCd?8rtfpeL)E<F#dweer%6DzqI z3{BFZFoCPVd14B#b_F+s9{@kzJktRFUyNEn)rs4SW1bQTxHkd*D*z*B=McnZFh}n? zhl>?RB&NvNWR8}Kjjeaf-frRPpvqit3t@?12{HM8$e!~3k9XMkzDDQ6Gf*AeC-Jt) z#4I{=zOP;@Sup2L653eH>v%yj|1i$?<y&Sxo%u&<S-wF}lUZt!MehObMrLF%<^^D^ zFF`KIe?Y-Nq01g90IX;7I%XHGv{q_tN9~768G4A$bzZTEcY7}vH=wwV0TQ_<8EmNu zHW?!G0>R?WAbULXu~&pOh<OC@ZR&Qw_EKOwiNSt9&xWl+u>D+7Yp0@a0(3Er1^T3? zSa7EtUg6S;d8YxrtP<e!82sHP_*9S$n1r_u)7FP^zc_FAUM?m9GP5tPt(4-JSi5sD zGc86V8TK57IkgIm!`S#fG#1_^UP$*`@>>Ow0I$o08!(l|@9ATy=!FkV7R2^?dM*{4 z@gxtCN+GnjYOz*(s}ldlTjxl)s((~LeZ>=!UFKpu0&{MGX;FMYCkMtn6A=QD3O%t* zT`0=<oO`JkkiJ$+du?Z+SweW$@$*Gi??UR+woB>AE-(}E(C<iJTW~{lx`Tdq{UP1) z3w{saa_3R_Z9o|P=-af$V15z1owCF5ps2XE0oqI6sPW#ZnAEpot4TKe3h1g@DBm5S z;+F6Mf#M2p$Q^2-4`*PJKhH7WzRO~N;iV<OtKaSnpIN`XcepGhF~tZN#EmS_?!rf4 z4n3*@$nx~p&&c|LY)hmgSlk}YE*|d<x<l>so-r+uw_rref|+U7$s7ogdVegeZ`3g% zAS%gV0Un_(sH-QSNofmebOuozw1S&~eg#g^_e%5y4p-HOv}och-1UfCa-%PBn5s4> z=R_ojs%l-zNDfuirj(H!s*Yp5(}Il>y$UQe4ieCYB!X)YT%8<Tjo_-};3@=HCI_Rl zk3)A!gk6DPY#vDrRuG&m=GD>2d=+SM6;2g-i<!3mHm@T*Mp17>du|CIMfZoQ=jYHg zr<C=pOS0$XQ?*G?ejYMIQGceZ8b4K{w*k(znRw>l>805%N?~DY-?w4Tcd#E>xxJN& z72gr?dh4{u=n|42%u7GDbGItJIQ#(9AbrMKwO+Es`_#+961YaJtmx~Yx)2kla9{9f z-1F(1RA1ch6?2`9R5%YG+f~4v@K$T8C*4emy+GK&%mWdJNw{Vv^wAp>8Xf`wxy(`8 zbR{MiSE9Dppw`#q;N44yUDqLZQ&~RE@fVHFNyEKRUi|X#%g1jte#hWfh~J6$`Q#;% zH{C*H>{4PQUp)}G16>GCpnDFZdva%bQ2h<(w<t38I4!l2>==8p3Yjb~F`3hztWqZ1 zIaQWzKwJ9;(a0#YN+$axG1+W;vTB*^mBeJt_GC3OSyN)NKiZSk%4C-%CL3c*_7-(C zneybslsWd4)GRWkD>3B{!~#Zr-=c0WQ+{=G0%aE3Q<C(MDd#4p{JTBn45WOo0{@~n z4*}~<9S2?Q4>K_72GOrUz*Q7*J_S&#N3i9oxb4=15HW!wO7w_}5J9H_O{wC}w-ki{ zfVWNVyv_uCj9~{IO$M&%JTQrzzrb`wg;HnTiM?2*(Wg0PQA6Hzq{sCE+O};z@&hC3 zdT5>+Kn%~0Zqw29MoWjc?$b4!>7X!opN_6t(csZqU$^D@&2+RT+ikiWGaV78+jN^y zO9;3H#<?^QSP;kTEe5|a=|KkTy>*DP$gfx(fa@YG53o{+FdRJ9aYwCbL}dHk|D)|n z;G?RpepVPDVS+LeE#jzABPd3KH4xDmNZ<_wh{YxDu~-^hQ4$CRH8@Gl@R*ibwYF7D zZELMnTU$gxs|g?pq6BecQN*=31QgUl5MjRm|J?Ux-b@y7`TR-dy?3{B&pq2c_uPBo zM1d;viSHd=TtsbF4x<;Ufb#ZI$lLYm4Y<e*^BP;;(!WR+=4IUnAa5aG3oJh$D}o=< z0#f3Qoo6-Z`^9q!DnwW*?l~0hfPskn#k~}dnPwk<$mL!-A<bWJq#?LDWI(JL*{C&c zYoW;GxckO=)i~8lAJGaC&u>t*Tsr>X?6^zEqte{+p9bf6!FJ-M+z%sHaADpmI%lND zgLvcR{%TAAtcI7;FrE5mF#AD#d=bS5P(kTUT{I5Td7M}Dk+?%`4B7r-pJ85xEH^?; zp$<S$N`T6^+LFhslFdCdgkh*dvFvy{x$<PcnZ#9vLR<!Ee&K$w5tlLdFw85&$iX&2 zXu*$aaV^mrckQFZb>ZwReU*z*xUXtpfR2$CbqzZa8f$}xf!@?M8Jf0gsF`+(7sdP| zlIERcWgaFy-eiOZo|4TPN6gNyItiW1ZnLY)va3U5sH!RrsZej1!py-{nKNAx&kNjw z861ag8aOd<O|dJvwU$*;BCJD_-^|DvVR&!9-U1R9c#B#=w|oMSkF$R#7f$ld8-(kj znd@GiD;phUH>&Cdvb(I*S#}*7GI!lHkaO!*q-p3+00ILS*wwckVtmT1AQtg^!<WTj z(c3)9FLCDq>Z1Vd`^I0z2GkYX*(Z{ddKjGMI1lh`kYQKn0jhgYG`81tTP3oB^?lYR zMmrAPrk6a@NNy~?+8aQWs<}Vn2|me!z;};`XSO_-Fj#1;D|83$%>0RbnU~`w$D)q0 zK$e6aGZx&jjWx<4(eqIuIMe{bkLi%=s~@seIv$Gix8ho9o*;@k5{|oLyiEMoU7sfM zcnS}g`~7r;^M3T@UZ78XF8v3!(e!~(7|O*{&!bNO0G>{ZCD`A|^B7lXCWsC4Xn}r5 zhgQh}H0U6Z$C2Z*jd&gO_{MeAAwO~6OvOypA7}Uheh`B{yTm+-k^o$Z`K;;BnrLoj zd{hl!6~oNr-Liz$O!jl(0b#!!98dv(_-dlLid&^+vWn2)A5|M>Uxiy6fz3%Sg}Wa4 zkgcA@1F#8xC<)2opM)Car80d?URmqv+hWrDl~-b0MR+KV4`3EyT2{i#H2ZO7xkA>3 zXgabJgs=pl;*NJh3sCe4A!Z*{C_rFrhv|oGb-E4BI%{}U08IluKF0>{@7z9Z92^C! zo|6Gb`~T7p+3Ih25Nt%-UwiBK-##rTwqIzsKg@3b^bYL@{vX<3Z1<m}N8b9Een9{6 zkkJ1b-+%ufv-@wiKg@3b^bYL@I%~fq$4e#w<=IrHXCA^X;04kfiOr%wOj}5ywz_pt z;xa&jb*taqL(S?|kCWKU$u9Lr{gAC5z=I&91qUORgs#a}%Wg?eQh{HyfVIY03i>Q_ z7)bX0OWy;0oQwg!uYRTB>utlAY{S<M@`#5ooACWjI@Be6_ElZql7Abl@taH9B>mi` zAF|bS8=NTrgl_IYKNvcrxOOdu&RyFBHY0AHtvtq$JHjio@V94WZ~RSh*R`P)BvGPN zSDh1;GQ6%j@op>%8po&#e{-J^EB$6g7qe?t(VpL|sBpDaG^Gj)IhI&F0)Xr7R--!5 z`A`H(h8zXaAHjGrbE3R$X7!La>p&VZUMuxOwpxydcz)k}V~6qj&h2lo+Mi&zKiY18 zM2Ge-`+sPElih#PBI$Lden9{6kkJ1dzW@GjxBG9mKiY18M2Ge-`+sO(+5NxC?!SIO z|M8H}|LZ&HKS=M$<t>-%yOOu<fCTbva9GQ;kpc(g?b-SvTjkmSMdhslfYfFw(1kp+ z<He3p-gXDyZVlgpg&Mx!kr=5Dex)C>RXrZ!<?UnB0pE!3;rovKo5YDV__vQh0s2kR z57}xzs3m^<js-Xg_L7Ys1JV>iw=-G$Hu`PJ+8H9cM1w}<tUo)7G>4cKwvLKf3cMpJ zwH-~xB<zuv5*CgM*C9vPmIywUa*9)ZU#B(=aI)1za|2JOr`UvzT|_H(Gj5Ueo9pn& zt0w=Fq|itGl6*ng@pJu<t!~Fd9PZI8ob>p>Po1_h8&0?%Q%;gB!4d{e4Z>6vAr{(- zM_7{AFfW99!&QsD)G>>6!^hYSXW9*?B{r;b(5AE=-%+dA->&_=R>$urL9ydu{gAC{ z@etQ>_2+5dfBSD)?H^;epJ}(B)}j5J|A+RM+WoJv`>!9+e>^1g|0myn|L?c^Z?~Um zx1ZLb{hV&wkIk2~5Xa&fZK~+p65(DTeo`YzkPHAKv|Ll9#2Wz#gm%^4S}4|$*eDd| z>4$7J6AyxrsL=lPbr6a<^(@eZ&~|X-cZKf^4d0tT*YJHzVjz6)=!b0eIv(QT`(i5K ztCbEN9=>nMKfloYdx<~+{+XyBvQ?1{PSi-g4&ZdnzfsdKuei1W(!pK(BxGpaMg)$3 zm0a03_*Ku!Ucs+mG2btrIk@Fj2<qk`^&CkWgtQ(hb2y#@q21bULfP&zJ<Ci6>h3Pn zFlIU#ZC4HIy19ua5FtlBLyQ`vR7#Tz^h37#As*tn>5?DEV}tRUF&gPYd?rZGO`?$d zs7)Y5X|F{;WUDoJh;Q$cYrlJY%~pFAc6-;@?OoELy;<Kwd&{i$+DSRY=V$sMTYZ9u z`2O|y9@=}%YOmgI?@qhDSsmKDzx=!7^8u^9Y`Z<T-CmCl?VXy?UTnV7g}jqFQrGfs z9@>VytGi3fllw@HlqU=IL$(UyAzq&R=^DtB;XxKSygd1?@SUgO`*^;F?|&R#!nadD zWUCMH5D#A};k#Elba?o_4Zpdp@v0CQK#$kxhir9;4NO$p&AK|CK4SO~-p0xh4teQX zwv|;`lFX8AEN)4=Udp#1D%-TU>nzh&X40~)>r9t0la_5=XSy}ykZm`T4#|sC^+UG0 z91rol__M3x`>yRnY_~~JGEPGdVIC*u_ka@`VIGan1lzs~rzh+5P7;x4WqdeHhj+xF zIJB{>Pr;EK^*@)1Ck@&J{^t_27u5+;U6#wa+;TZrbaXlEv#H^Ao&xF<uk(2Qkgfc9 z5X3mW&Zt6eYq=6@Au!roCtay6X>f6O>mLWP1hm4%S%qHzK-JFm4-#7!_aW_FiF<0& zUpiZGTbZujy@GIdSO76X{Ypag;&g`mPVg(b${J6oU4UN^-CIVZtDLTSV09js2zZnz zb|B;deuQ#upnm>Zc&VLBpx0iNlEhR@0MQH2%fkRFC=7Atzm~=CNxZ6oCq%0MRz)IY zgc7q)iHURY!=ArL=Jje~QA$$VF|qHzwZ5N&@5pwK_4)~xs-w%{jPKVg4eC>|W7<gs zK3ShHM$^_t2ScKr*Q>`-b`e&9)O3(H9$Hj6>72_v>@HA>1r2sLxVmChZ2wpEJ_g*E z#rqg0R;z}~6K`8c+%Goh=0l11vs?@md$E#(`wR?q=%&Q<j^h!3-5Ta!T<y^7Cf0a( zIUYDiNWFK3jDVLT5X0fMq#2CQp3#EC%dOW(en}j{w#J5UgyYRnPg_F?<mCzST=ztg zS70IUCKM9nodJ3m<eiKM3wfp1N(|RzY%g<k{YdT`<9!yqZ;be>P&JozkH0*%?Z!m> zMC+3q%U<Y^9+=ut5>9I{rmieW_2>E*q&W|#0{zFOdk>SITU?*fZTXJr4Ek#whxjN< zO3C|A5whrfKMj|2TkoyrU*k?8ll;GlrOW$(tZ06n?s$i>>=IQ(w$;&AxRavzA>Qc{ zPQN%0V~;y23{Zr6p$tQX(M9ALhQT_V_y-8}ur8#?(&w4Q1rfyX&HE@GMzt8)F3u+| zRmP=gAue6uo$Y{^_&N8e`2Gy&AOHTgC;t7}0rBtW9vA;U;Mn;0a|g!14?uKi9R81w ze{V{7|LLIk^wUm=y%XPH;rK;caHTAYGs^LUp+q^<AFdpOz{7=>E$UH3xbQdk6219| zq6XZ;GFWYG9rs|A2IBEO6bT9V>~y^IH>xSW*CRevnzu&$6|~0@N6<uU#7~EKh>kej zKu(Ps-~LmmG`@Xjx}nN0?l9h6;l~aIjXRI}DX2r(w(TpjNuP^ApAK!fmc+#Ks7C>- z3(xF`)lzXawy2F4X{@Tq@0=k5&*8Hb9UziP#CjeP?&z?yKR)#WDv0kd^*Qxm0TgSK zpPCzWZf^2}qY(t<A5Kx*<QJVMcgb?~-lvuOAE)4sPOa<5WT{{C4I8^K9%Hgqo#QQ6 z&E^|;glS$ifJhCW`J*=c@HDP=E5dNkLVO6Fg`taBndcU$9qgpeb(9G0bvhS95Pi6l ztZ9r7)dFO(qzM|sr`VlfGz7`w4E^JXXTTyPVujL`pG0I%K+Fu^^7R{n4)}J8e)H<L z0s5_gZ_Z#^bAk_$6bK{<Nj88G8gX=J110`o8u`({()l}=u}6@02B-%CD%@UIu^X|a z%DK%BJ0hF0BeEedbq|Ara2lStDkW0Af_t(3*w=)xz2`t!5zi<y9U4;^<`@i~gpX!! z*-msL1dAWauo1o-SU|{M3J?r#Vkln&0FePkoO+55<>Mzc@kcNQSpsKIMz~24md+Xp zNGTdI*X90&TXv}++<#t90rq$^gbSP3r%C)&>I84idHs^ywYah?DSub~UW9zPfAKV4 zO02Dv!3Z{ge+t42MzHsrJHCSvZ2f)*4}SNv7sE2k_%h=8@aIApl>_*y{+EmBA@{Qr zv76iFt}8@V?&juZsV;YOAA?M$-u@G8h!iS!Z5mtPt{N16Q#N-;JWJ3F0IXH`Dto%Q zp&Q$}xu=``>0&?ka;XISxdE4kLb5Y|r(4TI$RFL$&Arch)0-MqO4{7Ch9LEi?f8a$ zuQQbJSVW!!@J^lMK*d-EdYAP$Yz{mR(P0chiFoFOQD@lm_z*}OzE9^n?8On_($=rK z0A$JJBLrkh_khUe><q*veL+4(tE)gu5(U;-_s>7lR^P2X;_m;94Tn8{9c*>~dJB+| z03`Sl4uf2i%!4&^1BJUmkj=n{d*O7%j}<}2czO3NY{dtKHT*a?QmCKyB?NC{FQM~5 zaE+^|5PY!EjbhlJA?qc`;){6F>)GoukhYo$FMb#AoiO3;$k&kxn+~}Ey59b)nkU&z zn7@$@w-Hk^+`kwBJ~F1ZfGu^{IF@ucMNDl*qq#NbC4=vFfWXO=yM*z`Rl;z8kOwf_ z{qg{Y3**6NxSbKtZ9#wvn8<KDRqZKGhFc-zp0=}FhPw}$!ejOE38Z%?tL?-zDu4!1 z|E*xNorqAf*sN0qt1LkXy-ETMHggFx3O{zjUzNvGzJr4RV1`>Qi-7a>(6(wu%|QPK zQ=pieqGTA|4X&1zFl9HGuw$ZTKrj|U7|ZT*5Mi`<ebL!uQMCoM>?p6#6V=5vIf)M9 z*&hJ$oUIr~%xV6DLKdiPu(TYV_~H;S$fFBLvxNv=v<S_;@Jy%;kSSy`hCaA5S$ktS z=?OM~Lh%p?Hn|F?WPnhjg*Jm!NyebjYr(<X$aK0epS67m$BI0LF|)TFaohU?c(=D3 zl~~7)#I_@GkCL_L$kuiIjoBmNiP&HMP~v$b@##->NatArJR%e7G1pR$aMx5oea^^+ zdh}u!dOLQZ?}mC*P><UUvlYy~=2S9!=B3~&$UpooF{^yAy58b(sKkhDw}(daq30OM zLl7q*#p5{TuoU2g1LQrp5Y*%en(=(e`FlrHLES9|BCxxoBs}UaY3KOQ?nbp?Pldce zIQK-0=364CpFmP^{w}RN@Yle+F%Zs38|_{?@N~l*wL};7OHl~tSM>Xtc(2_Wa2LZD zfUisOHGqK+1P}I__dJ^NNdC-O_>OY~@E4R32(Io`2>2FW4>Ll#bvHN+Jug7d-`Ui8 z&(k{g{KBv7o?krP?m4<!G~y=^IFCx-ccJf(oYEtS{W*RQ87b^pfOqL~FMuPv>41qR zk(R%gfy?s0^glNc27{shXS4sh@KsWn{nzgSygU2PuR{EXbpOwm{F$@x9sS2&e{eMr z@KUd$LO{8Y;l6@_I<P2U>!GucV>L&7a1IYkDCg!oPHK3BP9BOo=`~Ls`dxSQjQM_t zbeU?w{)Sn`P*n+w)hBttoSy?#(-N4v+nBlo_cjA`(j>rtvE3RGn?BWZ21dpR_uq>G zM(UJYU~@3y-{-S`GINs<ShNtkF~&Jdh;eB5@c10?Y(eD~JZE))XGlCe*p5VadVW9f z=(#A7gT;9)b6%H|hhw+*1g7%TiHOG^1ML2NiHN#qoFM9=T|kUrYIObZlRCtGOVlt2 z1(PWZ^yC^8(*Jda9}6BJr&D;IMrjLCJvzXXk^qnQNZ@(#PA5F^4zzL-QUwWV2JP=^ zy5hKh;8q{F{*yOA5R`XJFA#Yrnyaq`qD@bru`Bl4Tz}12w8p&2SlB3>oHuVeH-dyS zUZrGIzb|H$<FZPoj&lWgXSlu-Dh&ict@n}qUgI^#xxyt4SijcUz2>E^qHx;AiBlV_ z0<QxREbwm>Ksz|bC^Rn5n2Ie7*h3IHquD_HMmPi6$9dPJCF77I$9qw7hYu-<IZ_ip zq$Pexw?6dOjTEKyNc_+<@q;TlIL-xM$a>4UO4LJ4%pliQgL=w9J^k*8j#j+>%Tw#` zPm~w>{Il4Qc6R=mII8y-55p-G(>bbHuR|Mz#%#jjXWNVGr(%|e@c2TsnxMk!zqE&R zVUazg`CCU^0~NL#LrF|8G79r5`vq6QtY~l*UgMhgS?imU1f@6veC1z~%*3gykme3A zMH0P{CE<*h@Q4j5kpGi0*+}aZ2o?2e$BP%7ndb7>7rFLXZ$++TzS@aJt`xq4LM3mJ zE0wR9&04S61XScY5PePO>(|lO9(+9*eeKCtIA1Sivqf2KH!A{w1HndD0M-woUU(Ul z0Y(kx4$xGIEqKMXA61=&E!m}C_J&b<FU(%h|A9eJU*XJ*6R_*;+!h)~&G?$h*JbbW zRh;Q@<4rL_x4JX_I9@+&!!{LUaQGJ?Phx{@El70Eztq~NzD8#2$iI`&i-f`c{pa>z z|6#N}*yiMn!pXyhf3t1=-RftR<FdiO84ms}0)>zrbI7meHM!=v4B_7=boN~H(u{ci zJ=!Yp1%A<v@b7TVzc9>%e={up&9(S9_HOa7^MmlO^MmlO^MmlO^Mmj&J_!HjuCe&n z`9b*C`GNeKaTxx+kQ*26|Ki89@2?Zb^PBQ7N42!26aJlxRuhJ_dAB{JulVdCCI7+< zv-lUcf5-7}MvQ;eUF$Jnh_P>mJN#@1_7(ocL@CC<xpDl<HwXXf*C_w$*C_w$*C_w$ z*C_w$*C_w$*C_wWYiIlmV@~sLhUVWT*kNV!@1ou0-#0Y>{`v>PzkkM$nvIioHUIvF zukD+^E&mSsRpNN-`G~A3b~_(|ZBSxf>njPL`Quk%goi5Nyer?Z#<vL*4s2`+qZ<jM zz2#GTw6~of9qov@4<5EVPBzTXv<;0pVU}TLoR0la*!ZjGgRa7vu6dtGz4ysRts4rs zc@Rn;M~YZVAENKrj%`khwt0QD&EVXOq&rSD%zfH_M@Old(O2ca0>?oU-6gKVxf%2R z3u#K32+fCc#W+o@0d;YjSWha0WQ6I=^BuA32%UIvmc>)?{Pe;v6Y(3L{&0u%czY}` zRRs@XJ}4$HV(0d|@BSUZ&>LJ!D=&l{R3H}5Kp=()hfKe9mxXBC`cXHH0(6jY`D^Po z-q9a=G20lCT{$AysMX@j^L9%e1?U7+#M)y)Q>))2P1zgGtbJ#e1-Z(Y+DH?Df+_V< zNWa0jiQ_;O4gz@<T4&3y-qbgRs0Edk;K#r0bI`DA#QC^L7|#SKA8p4wEz{Ps-j1%T z*z)O{<HIL?$v|H$d|bOT5g%8bC-`th@sZUjK623|bm4U3W68E7#Rsf8;-jt7!pF-y z1s}i97JNK`AOEtxaBHcjn*<+^Gof>QobcB7fDcU{UjrNq9~ZVI;$vdr5z$9B>Ht1M z09gH5Y=$GH4@_dW&b08cqD}B|V1VEwL-27r@$ttsf{)%^<HP;t_ka&gA3Fh#g%AIZ zM0|`Ic|`Q#LLI<ID|({tmE(Di1Rtai;A7ow7Cs)|A^5mL<KssB_?IDi0_Rb^B>1?V z37ykN1lPLQjAH%9^NY;CeZ%&Oz=#Tws=k1l?Wt{B5r=fSnB6oU-v&$;QqE{iL`v=m z2U6gG9G6A62N@^RAxPR%eM@0~pt2pZZ%Z1rncTNP_U6*2v}fx_4DYIA0Pj#6UJx~! zI4uV6Je3G<b%BGZ32%1y@Q(bp@QQf$4MQ9%u9U&t-C&gSo{3Yp3!YCV+_Sa-&r_p# zz6DKLcwYVAM7SHyCES;2;dH8Djuqh)hvO^?V3EF;<igQ*9!_}#Hs)YAqc!uly(83M zKHq{SEo@_0j}c8L`0u_yH+ayWM`3YDfAl!~0WDko`SO#*{_Ost^hYZn_D7V@5%lM8 zw;Vx#pnLyzBO0*(Gn$}ksHnS$r^2#uTpD7cT1OK?>p!eF8o?x2Tpl}(zdF6W+jP?r zgTnmI_YyM&TMPrH%NWrc2XH%9wsk9U>GyR^PlP|1zS+|!32k)MU&nd3*5bA-Eq|rT z(QB@M3^L3CXtgASX%oC1t4J$`5DwTh*LrQ@0VBXFUbPWmpN9eZ$u$abC7LX`OL!Zj zoGORM8dH1Ek(RhJ-p4QzEyl*UEY7_zFAYaxsL*P)LwuYQ_kw?`KX5I|^3{Ibj=2TK zP99-Y^}4l6gsSzNXu3*5E*(69zV&1)UOm3j6P|)#_e8fO{Xu8Cu0Qt(>IZ!srhXsc z2b!Jm%YwUVCPMVMxG^HwKg6N=rsHDc&F)Xv?Uh;Woq$cs(w-kU`_>JzJ=yX^GGP}3 zW;M7eIy|_lFEAv@_!~}Vj8vxKW;vG(pxT(PdyTm@785a6z~48a!)SlWZ-&bl;xZcd zr*`Cu7(T+D_I}j0P_-aHX=}5(>G_l-|3A<A*Ol}YB;AU5H!~HY-88;t_(V;?S#T!p zPo3qisZJhQ)vKmD<*cey-?NDH^!!^YqwrzTQ&5jwmxy{RPd3b>&Cy?DOnYHvzUI8F zkyTlGvG8BK*-mBSfSyFYiuH%<LviylxDWN(klc-FEK?Qv2=W`Y6<1Xb0}wo%(2M20 z<?PrOkGk(&`2wM;-B@)Kuec9;`Z1HN{G3&ol2o{+5(mGcNU-|rl&T)=SY<l8+?M8Z zFFjO*I0&5Vnq`-m_#8n+ZeS$Xh`s;~$DpH?{eUv5v(Im>9H=j;@&p5iA3-BB4&$d( z5>=V*rCX=DS6r9#!@lm(+jN=J&Q3|vj{NGxnHJ|)P9f=>KY7)sd1x%?^gl)8VU}m3 z(`xS7SfANQb{b%WfVfgjrb_WE1criFtTIA4G_k|Apf>vTc^{yTGQ%8!@Gy7n&t-&r zQs9AouYnI2YiN7}xl`@Jo8?va{~lz31RqZ#4e<qN&Jp_~xC+8yof=NaB?pVDpXfYQ z+sTA_+Qs@obWm59W*I|XGlC!B*ysD8>)_~DzdVb-1S>(Q$LQPKEGV!@`ztjg4@H28 zEKmU$yd>lUpW_h09(c#<wBTd_MoRTUWRt~wV8VEDPkiLojJm|#2Vn%Y&BTRfolz6; zNf7j)d}J~61Z>T5*WMu*n*b@0N@@UmGr9nM&m*!5RAAR3+(uD3LeIzfT`k>-I8uvp zRO?+|<AtC9VSR>^iLY5wunIc4kA<lzF-+Zn-K#|OPljrYT_wK)7J0oX{r<k_1O8i+ zUeBivnn06)&=aDepj~8n);!i=1a#q;EYLQ<mjN#)UV9OD@1DhY+u#_NtL;R1CUE~T zC*kD35`bJ<Vy=|H+;wX8K8cid9z7xr#^~F;xD-*h<!bzx<OCXz5+@$?c)XO^VLbkh zPv34lmbY~nk5lm}Iv$tJx5wiI>$5c;HBzvP@z^RmEZ3<w&(P!Xs{A^}V{e8%9{c#z z#dzqm_1l3^0|8x&@Y~(0dCjQ5vo3etK^%OxCjDW&Bx`;1<1-0HJBM%vM=w{)iwXRU zS2s?r2|*W?L0*()wWaeA8;FXY`ssiX8Z`lRVH!0Y$8D>97sAbh_<9U+xmt0lgj^$< z%>N$_JmsLiYoj<^OieMrkCvw8D)Nl2ZKUL)>!CC-kAQqFPt-VBqH%hQ#z}+M@?f#~ z66zWit?S>Yi-H&d`_baPY!U57Zs;0m<?(B^<SAE+_wyQ<O3eS#Z|{TNm<5<6fwsqG zRi3616S7XQ14b}syollU&1(M{LgV8=<0ll=^O!04;k=r@xjj%QyhVNRC21z}1VE_X zDm{oB!?pvn?%K;?O4bwrB^OFmonWn6)n0;1i*QnW4Nw+(Fh|bO0=#8v1)D3zq2*@! zAGUI;e6QqTXR6hIhNs9yEzs0htjBzmy9`(bp{-_Y5#4oa@9$+yq^&YlU%)pz?eW1F z1Z@R`Js<bdV^gN4E^&-anfeks+8Ud(#IZ@V2K3N860Is5RYix!D&5J@lqq*Phvp(k zb#$&mEgAwieZzJ^v0ui@Ft8PIian;&M_G+ks4HL$;A9f5)GHE|I*k<#o;zA%&cD$r z>+V9QSEzG;W#tf^ej111G2)nNeF(P1K&>AIYhf4k`k!-n6m(y|do;jiCnmtR<E!0; zW9ZEE0lng>Y_I_WTg;m9%kUero)8+;ZL?a0k%2HJq0JCs8c%4*vw^yB&gX|BIOa_h zvev^g7m@S8u0*gHzJWS3KXCC<1%!rzZ9c^_!JDCWUMQ5|Qm>Dacx--qAU7pR6Wq|v zi3C?NObD({&Sx{zi(TvyR2#PN3`sT`+f#vy%MJ_6%RPA*@@habFAB+zZAbz!NcsYj z<(WVX;zO@u&@^B!Q|+e-{gVE7*^lMw13b26gX5N?a+QWkmQ$ccJb#mt2n*3iJv@=) zf>@%Rl_kH==VarTflpj?Vc?VENX%bNA?vt5!<;xnWuFG|7;kSm_Q#Z~s{un->E^{V z3^Oe3I2(a`R<@YF3uA}Qpl-^CCzh#0r*>U`Sl7KZK8v&d3iU#KBJ^i0-Mnux`)!6v zi0Tc*+{X7rYu#A>Fz|76H}x@nQipV{zl3{W8B}zpylO`6OBbc}JOrfHR!dH$w%Sdh zEL#ICZS@d8i?%{oHS8+Pv_jR?R?s0$I5AH@?K48>Jc%0Dr2hebp@A}g+5;3adcwho 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	+{-OAS8wH#p*N%PtBbjSXdJ`nu)Gdvea+N{ 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	=L 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 HF$4b>ZS_{k literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/netId.dat b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/netId.dat new file mode 100755 index 0000000000000000000000000000000000000000..b9952409a17ad62a5e6783fcab07f3381f624c02 GIT binary patch literal 92 zcmWm0I|_g>6hzTyX>I2x+NsNsAVEaL{cpyTfy<dTA`aDcO+>Hk4?H=taN@<pn=>EQ ME&i(4-}rIo53M}|`~Uy| literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/tmp_save/_1 b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/tmp_save/_1 new file mode 100755 index 0000000000000000000000000000000000000000..932f76685284229953b81ea70f5646d75f8ec021 GIT binary patch literal 18697 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 CLt9Y* literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.c b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.c new file mode 100755 index 0000000..95ddd43 --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.c @@ -0,0 +1,31 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2009 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/***********************************************************************/ + +/* This file is designed for use with ISim build 0x7dea747 */ + +#define XSI_HIDE_SYMBOL_SPEC true +#include "xsi.h" +#include <memory.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif + + + + +extern void work_a_1176593161_2718564866_init() +{ + xsi_register_didat("work_a_1176593161_2718564866", "isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.didat"); +} diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.didat b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.didat new file mode 100755 index 0000000000000000000000000000000000000000..17e2e66d402eefc0d998206b5ad997fb61cd72d4 GIT binary patch literal 9520 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 QDCX5-anQ6)-DQ9O1hZ3^+yDRo literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.nt64.obj b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/a_1176593161_2718564866.nt64.obj new file mode 100755 index 0000000000000000000000000000000000000000..d0b5b8f8252cadbee9cc2bfed17efdcb2219c998 GIT binary patch literal 679 zcmaJ;!AiqG5S=suL98b|Dn0hJC2G@ptDul$?;gg)Z0e%5B^xnEq2R5MkMRQv`U!r9 z-(a2D6-labVP<FEdpkSKB+nl3i5-Bpi98UwEOHZD*P-i$?3^@wT(S;~uS62%kwKc> z2*xWBYu&7{%oFRfdciqS?;8)P-Y8srbi?I7GvTs*LD$+Qi?{A;S(ZwxX)jgj3?Foi zDn$k`mN!BcQZV^A%WiuS`u-s3pC0>xk4FQ4*bh#IK_C)EZ2(KKL9)@)7UkPy9_;=^ zdlc;$Or+{gQpD$T4KOiNv{SdJ^@rbyL$hreO_hb(R+x631NJphbt5gKsnI5>Zi8RD yfBjY21b6B>@$W)}oK?^kTvFCBF>wv}-$YT}s~iy3bdFePg_)cvoy!dEHogD@5?%ZN literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.c b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.c new file mode 100755 index 0000000..a9c7620 --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.c @@ -0,0 +1,48 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2009 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/***********************************************************************/ + +#include "xsi.h" + +struct XSI_INFO xsi_info; + +char *IEEE_P_2592010699; +char *STD_STANDARD; +char *IEEE_P_3499444699; +char *IEEE_P_3620187407; + + +int main(int argc, char **argv) +{ + xsi_init_design(argc, argv); + xsi_register_info(&xsi_info); + + xsi_register_min_prec_unit(-12); + ieee_p_2592010699_init(); + ieee_p_3499444699_init(); + ieee_p_3620187407_init(); + xilinxcorelib_a_4048593843_3212880686_init(); + xilinxcorelib_a_3173924170_3212880686_init(); + xilinxcorelib_a_1848741551_3212880686_init(); + work_a_1176593161_2718564866_init(); + + + xsi_register_tops("work_a_1176593161_2718564866"); + + IEEE_P_2592010699 = xsi_get_engine_memory("ieee_p_2592010699"); + xsi_register_ieee_std_logic_1164(IEEE_P_2592010699); + STD_STANDARD = xsi_get_engine_memory("std_standard"); + IEEE_P_3499444699 = xsi_get_engine_memory("ieee_p_3499444699"); + IEEE_P_3620187407 = xsi_get_engine_memory("ieee_p_3620187407"); + + return xsi_run_simulation(argc, argv); + +} diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.nt64.obj b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/work/fifo_usb_if_isim_beh.exe_main.nt64.obj new file mode 100755 index 0000000000000000000000000000000000000000..affe88d4e6be01b1ab0701e446505cb451be4926 GIT binary patch literal 2092 zcmah~O^DM#6rOG)D7yaP|8Eudw#KAM({vHs!md<=b#<5BgXnD9rggMUYLaU8BrGUZ z7Z&xjCqcZ3w>^206$QbIg5XKeqX$po#e>#2lQch@RtNIU_rCXL=4I0NTE4vo(Xo_7 z=rCg(;vK!^Fz&(!m_Ebvc)+!H!<0gkb9`BIG*{}2qiAx4FWPqB0MBuY##zw~=fL+o z5nT!Ujq+tnFFDuruICYu4PI_tZ4?PBvolkL`R}Rr`$GHEH|i*~f3$yfwllggNGI2L z@v{Si=`4;xWijB4h3rCjH5mKp=JzO~&c{NVU1_2H%0KE@#IZ1Ve3d;Bu|rwTze%0H zh+i+Vaox18U=536R>|ZfQ4w)EE2<eqRuu&iUDt5~r!%><APPz@his>eZAUZ8npN() zB{`RqWtqCY1(E{sYE~AqD0Nh;k*ZNL>-7=bvI!<e#T=F+@~QFhaXcA1W>|{&r>4j7 z)O3DgEPrlnmCIWiq|nFjCp0V}M8DEjcsR5Ra2sO>0jbWRAwc@sI3xh>U@QZ;m$4DR zeT?M+>DS@VNx%b)od%>kap){yim@5MLyTPjT*p`ma3^DzeeEhRnh%F=0&Zk%9*|ZB zhwcKpYaasJ#Iz+}djf1T)1LX-GO#U7dkMIQF}^}--JkfM4nkE{2^{!>f$JJEJTn3B zFc7I-x*(Z&2T1b@M!0Ti*(BM{fuFK)%|dJF9TTconpZM02N)gUTBT)?OgxANc-9e^ z>8;S=mNE})Ewj5yKBk<BDaD9_arlPdetNtqJ)%j$8}8}%yC%%8@-(KrjVWJa%I}ym z6w1Nf`Gl`PhAe(IrkFA1PE1*jDPLmBdiMZ0g`UNORUs7<H|-)O6-;bW$3^`TueWq| zb9@Q;odDrj@gu19px*s}pu_{ouWE!bsW-5<Epc#Jx1sBVWlOIT+tDr7fO<OW#J~;s z7r;$}I6WgAvtfrFRo%h5Q6&bvm|i!n8)0W~Anl^Gan{T#DM71M<Val8z;H#)n&uD_ zQjRrU$e8BS?X7;dU8Vb%;pr_>BSx!aT6&EXp~cIBtU`-dWeH1ZF|DeCqAGo2B{3`I a(z2Kp{vRu<GPHUzlM&;w|N3`vkNyjk&3!Nc literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.c b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.c new file mode 100755 index 0000000..71180df --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.c @@ -0,0 +1,1090 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2009 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/***********************************************************************/ + +/* This file is designed for use with ISim build 0x7dea747 */ + +#define XSI_HIDE_SYMBOL_SPEC true +#include "xsi.h" +#include <memory.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif +extern char *IEEE_P_2592010699; +extern char *STD_STANDARD; +static const char *ng2 = "Function int_2_std_logic_vector ended without a return statement"; + +unsigned char ieee_p_2592010699_sub_1605435078_2592010699(char *, unsigned char , unsigned char ); +unsigned char ieee_p_2592010699_sub_1690584930_2592010699(char *, unsigned char ); + + +char *xilinxcorelib_a_1848741551_3212880686_sub_445809469_3212880686(char *t1, char *t2, char *t3, char *t4) +{ + char t5[248]; + char t6[24]; + char t16[16]; + char t37[8]; + char *t0; + int t7; + char *t8; + int t9; + char *t10; + int t11; + char *t12; + int t13; + int t14; + unsigned int t15; + int t17; + char *t18; + int t19; + char *t20; + int t21; + char *t22; + int t23; + char *t24; + char *t25; + int t26; + unsigned int t27; + char *t28; + char *t29; + char *t30; + char *t31; + char *t32; + char *t33; + char *t34; + char *t35; + char *t36; + char *t38; + char *t39; + char *t40; + unsigned char t41; + char *t42; + int t43; + char *t44; + int t45; + char *t46; + int t47; + char *t48; + int t49; + int t50; + int t51; + char *t52; + char *t53; + int t54; + unsigned char t55; + int t56; + char *t57; + int t58; + int t59; + char *t60; + int t61; + unsigned int t62; + unsigned int t63; + char *t64; + unsigned char t65; + unsigned char t66; + char *t67; + char *t68; + int t69; + char *t70; + int t71; + int t72; + unsigned int t73; + char *t74; + int t75; + unsigned int t76; + unsigned int t77; + char *t78; + +LAB0: t8 = (t4 + 0U); + t9 = *((int *)t8); + t10 = (t4 + 4U); + t11 = *((int *)t10); + t12 = (t4 + 8U); + t13 = *((int *)t12); + if (t9 > t11) + goto LAB2; + +LAB3: if (t13 == -1) + goto LAB7; + +LAB8: t7 = t11; + +LAB4: t14 = (0 - t7); + t15 = (t14 * -1); + t15 = (t15 + 1); + t15 = (t15 * 1U); + t18 = (t4 + 0U); + t19 = *((int *)t18); + t20 = (t4 + 4U); + t21 = *((int *)t20); + t22 = (t4 + 8U); + t23 = *((int *)t22); + if (t19 > t21) + goto LAB9; + +LAB10: if (t23 == -1) + goto LAB14; + +LAB15: t17 = t21; + +LAB11: t24 = (t16 + 0U); + t25 = (t24 + 0U); + *((int *)t25) = t17; + t25 = (t24 + 4U); + *((int *)t25) = 0; + t25 = (t24 + 8U); + *((int *)t25) = -1; + t26 = (0 - t17); + t27 = (t26 * -1); + t27 = (t27 + 1); + t25 = (t24 + 12U); + *((unsigned int *)t25) = t27; + t25 = (t5 + 4U); + t28 = ((IEEE_P_2592010699) + 4024); + t29 = (t25 + 88U); + *((char **)t29) = t28; + t30 = (char *)alloca(t15); + t31 = (t25 + 56U); + *((char **)t31) = t30; + xsi_type_set_default_value(t28, t30, t16); + t32 = (t25 + 64U); + *((char **)t32) = t16; + t33 = (t25 + 80U); + *((unsigned int *)t33) = t15; + t34 = (t5 + 124U); + t35 = ((STD_STANDARD) + 384); + t36 = (t34 + 88U); + *((char **)t36) = t35; + t38 = (t34 + 56U); + *((char **)t38) = t37; + *((int *)t37) = 0; + t39 = (t34 + 80U); + *((unsigned int *)t39) = 4U; + t40 = (t6 + 4U); + t41 = (t3 != 0); + if (t41 == 1) + goto LAB17; + +LAB16: t42 = (t6 + 12U); + *((char **)t42) = t4; + t44 = (t4 + 0U); + t45 = *((int *)t44); + t46 = (t4 + 4U); + t47 = *((int *)t46); + t48 = (t4 + 8U); + t49 = *((int *)t48); + if (t45 > t47) + goto LAB22; + +LAB23: if (t49 == -1) + goto LAB27; + +LAB28: t43 = t47; + +LAB24: t50 = 0; + t51 = t43; + +LAB18: if (t50 <= t51) + goto LAB19; + +LAB21: t8 = (t25 + 56U); + t10 = *((char **)t8); + t8 = (t16 + 12U); + t15 = *((unsigned int *)t8); + t15 = (t15 * 1U); + t0 = xsi_get_transient_memory(t15); + memcpy(t0, t10, t15); + t12 = (t16 + 0U); + t7 = *((int *)t12); + t18 = (t16 + 4U); + t9 = *((int *)t18); + t20 = (t16 + 8U); + t11 = *((int *)t20); + t22 = (t2 + 0U); + t24 = (t22 + 0U); + *((int *)t24) = t7; + t24 = (t22 + 4U); + *((int *)t24) = t9; + t24 = (t22 + 8U); + *((int *)t24) = t11; + t13 = (t9 - t7); + t27 = (t13 * t11); + t27 = (t27 + 1); + t24 = (t22 + 12U); + *((unsigned int *)t24) = t27; + +LAB1: return t0; +LAB2: if (t13 == 1) + goto LAB5; + +LAB6: t7 = t9; + goto LAB4; + +LAB5: t7 = t11; + goto LAB4; + +LAB7: t7 = t9; + goto LAB4; + +LAB9: if (t23 == 1) + goto LAB12; + +LAB13: t17 = t19; + goto LAB11; + +LAB12: t17 = t21; + goto LAB11; + +LAB14: t17 = t19; + goto LAB11; + +LAB17: *((char **)t40) = *((char **)t3); + goto LAB16; + +LAB19: t52 = (t34 + 56U); + t53 = *((char **)t52); + t54 = *((int *)t53); + t55 = (t54 == 1); + if (t55 != 0) + goto LAB29; + +LAB31: t8 = (t4 + 0U); + t7 = *((int *)t8); + t10 = (t4 + 8U); + t9 = *((int *)t10); + t11 = (t50 - t7); + t15 = (t11 * t9); + t12 = (t4 + 4U); + t13 = *((int *)t12); + xsi_vhdl_check_range_of_index(t7, t13, t9, t50); + t27 = (1U * t15); + t62 = (0 + t27); + t18 = (t3 + t62); + t41 = *((unsigned char *)t18); + t20 = (t25 + 56U); + t22 = *((char **)t20); + t20 = (t16 + 0U); + t14 = *((int *)t20); + t24 = (t16 + 8U); + t17 = *((int *)t24); + t19 = (t50 - t14); + t63 = (t19 * t17); + t28 = (t16 + 4U); + t21 = *((int *)t28); + xsi_vhdl_check_range_of_index(t14, t21, t17, t50); + t73 = (1U * t63); + t76 = (0 + t73); + t29 = (t22 + t76); + *((unsigned char *)t29) = t41; + t8 = (t4 + 0U); + t7 = *((int *)t8); + t10 = (t4 + 8U); + t9 = *((int *)t10); + t11 = (t50 - t7); + t15 = (t11 * t9); + t12 = (t4 + 4U); + t13 = *((int *)t12); + xsi_vhdl_check_range_of_index(t7, t13, t9, t50); + t27 = (1U * t15); + t62 = (0 + t27); + t18 = (t3 + t62); + t41 = *((unsigned char *)t18); + t55 = (t41 == (unsigned char)3); + if (t55 != 0) + goto LAB35; + +LAB37: +LAB36: +LAB30: +LAB20: if (t50 == t51) + goto LAB21; + +LAB38: t7 = (t50 + 1); + t50 = t7; + goto LAB18; + +LAB22: if (t49 == 1) + goto LAB25; + +LAB26: t43 = t45; + goto LAB24; + +LAB25: t43 = t47; + goto LAB24; + +LAB27: t43 = t45; + goto LAB24; + +LAB29: t52 = (t4 + 0U); + t56 = *((int *)t52); + t57 = (t4 + 8U); + t58 = *((int *)t57); + t59 = (t50 - t56); + t27 = (t59 * t58); + t60 = (t4 + 4U); + t61 = *((int *)t60); + xsi_vhdl_check_range_of_index(t56, t61, t58, t50); + t62 = (1U * t27); + t63 = (0 + t62); + t64 = (t3 + t63); + t65 = *((unsigned char *)t64); + t66 = (t65 == (unsigned char)2); + if (t66 != 0) + goto LAB32; + +LAB34: t8 = (t25 + 56U); + t10 = *((char **)t8); + t8 = (t16 + 0U); + t7 = *((int *)t8); + t12 = (t16 + 8U); + t9 = *((int *)t12); + t11 = (t50 - t7); + t15 = (t11 * t9); + t18 = (t16 + 4U); + t13 = *((int *)t18); + xsi_vhdl_check_range_of_index(t7, t13, t9, t50); + t27 = (1U * t15); + t62 = (0 + t27); + t20 = (t10 + t62); + *((unsigned char *)t20) = (unsigned char)2; + +LAB33: goto LAB30; + +LAB32: t67 = (t25 + 56U); + t68 = *((char **)t67); + t67 = (t16 + 0U); + t69 = *((int *)t67); + t70 = (t16 + 8U); + t71 = *((int *)t70); + t72 = (t50 - t69); + t73 = (t72 * t71); + t74 = (t16 + 4U); + t75 = *((int *)t74); + xsi_vhdl_check_range_of_index(t69, t75, t71, t50); + t76 = (1U * t73); + t77 = (0 + t76); + t78 = (t68 + t77); + *((unsigned char *)t78) = (unsigned char)3; + goto LAB33; + +LAB35: t20 = (t34 + 56U); + t22 = *((char **)t20); + t20 = (t22 + 0); + *((int *)t20) = 1; + goto LAB36; + +LAB39:; +} + +char *xilinxcorelib_a_1848741551_3212880686_sub_1670819029_3212880686(char *t1, char *t2, int t3, int t4) +{ + char t5[248]; + char t6[16]; + char t10[8]; + char t16[16]; + char t39[16]; + char *t0; + char *t7; + char *t8; + char *t9; + char *t11; + char *t12; + int t13; + int t14; + unsigned int t15; + int t17; + char *t18; + char *t19; + int t20; + unsigned int t21; + char *t22; + char *t23; + char *t24; + char *t25; + char *t26; + char *t27; + char *t28; + char *t29; + unsigned char t30; + int t31; + int t32; + char *t33; + char *t34; + int t35; + int t36; + int t37; + unsigned int t38; + +LAB0: t7 = (t5 + 4U); + t8 = ((STD_STANDARD) + 384); + t9 = (t7 + 88U); + *((char **)t9) = t8; + t11 = (t7 + 56U); + *((char **)t11) = t10; + *((int *)t10) = t3; + t12 = (t7 + 80U); + *((unsigned int *)t12) = 4U; + t13 = (t4 - 1); + t14 = (0 - t13); + t15 = (t14 * -1); + t15 = (t15 + 1); + t15 = (t15 * 1U); + t17 = (t4 - 1); + t18 = (t16 + 0U); + t19 = (t18 + 0U); + *((int *)t19) = t17; + t19 = (t18 + 4U); + *((int *)t19) = 0; + t19 = (t18 + 8U); + *((int *)t19) = -1; + t20 = (0 - t17); + t21 = (t20 * -1); + t21 = (t21 + 1); + t19 = (t18 + 12U); + *((unsigned int *)t19) = t21; + t19 = (t5 + 124U); + t22 = ((IEEE_P_2592010699) + 4024); + t23 = (t19 + 88U); + *((char **)t23) = t22; + t24 = (char *)alloca(t15); + t25 = (t19 + 56U); + *((char **)t25) = t24; + xsi_type_set_default_value(t22, t24, t16); + t26 = (t19 + 64U); + *((char **)t26) = t16; + t27 = (t19 + 80U); + *((unsigned int *)t27) = t15; + t28 = (t6 + 4U); + *((int *)t28) = t3; + t29 = (t6 + 8U); + *((int *)t29) = t4; + t30 = (t3 < 0); + if (t30 != 0) + goto LAB2; + +LAB4: +LAB3: t13 = (t4 - 1); + t14 = 0; + t17 = t13; + +LAB5: if (t14 <= t17) + goto LAB6; + +LAB8: t30 = (t3 < 0); + if (t30 != 0) + goto LAB13; + +LAB15: t8 = (t19 + 56U); + t9 = *((char **)t8); + t8 = (t16 + 12U); + t15 = *((unsigned int *)t8); + t15 = (t15 * 1U); + t0 = xsi_get_transient_memory(t15); + memcpy(t0, t9, t15); + t11 = (t16 + 0U); + t13 = *((int *)t11); + t12 = (t16 + 4U); + t14 = *((int *)t12); + t18 = (t16 + 8U); + t17 = *((int *)t18); + t22 = (t2 + 0U); + t23 = (t22 + 0U); + *((int *)t23) = t13; + t23 = (t22 + 4U); + *((int *)t23) = t14; + t23 = (t22 + 8U); + *((int *)t23) = t17; + t20 = (t14 - t13); + t21 = (t20 * t17); + t21 = (t21 + 1); + t23 = (t22 + 12U); + *((unsigned int *)t23) = t21; + +LAB1: return t0; +LAB2: t31 = (1 * t3); + t32 = (-(t31)); + t33 = (t7 + 56U); + t34 = *((char **)t33); + t33 = (t34 + 0); + *((int *)t33) = t32; + goto LAB3; + +LAB6: t8 = (t7 + 56U); + t9 = *((char **)t8); + t20 = *((int *)t9); + t31 = xsi_vhdl_mod(t20, 2); + t30 = (t31 == 0); + if (t30 != 0) + goto LAB9; + +LAB11: t8 = (t19 + 56U); + t9 = *((char **)t8); + t8 = (t16 + 0U); + t13 = *((int *)t8); + t11 = (t16 + 8U); + t20 = *((int *)t11); + t31 = (t14 - t13); + t15 = (t31 * t20); + t12 = (t16 + 4U); + t32 = *((int *)t12); + xsi_vhdl_check_range_of_index(t13, t32, t20, t14); + t21 = (1U * t15); + t38 = (0 + t21); + t18 = (t9 + t38); + *((unsigned char *)t18) = (unsigned char)3; + +LAB10: t8 = (t7 + 56U); + t9 = *((char **)t8); + t13 = *((int *)t9); + t20 = (t13 / 2); + t8 = (t7 + 56U); + t11 = *((char **)t8); + t8 = (t11 + 0); + *((int *)t8) = t20; + +LAB7: if (t14 == t17) + goto LAB8; + +LAB12: t13 = (t14 + 1); + t14 = t13; + goto LAB5; + +LAB9: t8 = (t19 + 56U); + t11 = *((char **)t8); + t8 = (t16 + 0U); + t32 = *((int *)t8); + t12 = (t16 + 8U); + t35 = *((int *)t12); + t36 = (t14 - t32); + t15 = (t36 * t35); + t18 = (t16 + 4U); + t37 = *((int *)t18); + xsi_vhdl_check_range_of_index(t32, t37, t35, t14); + t21 = (1U * t15); + t38 = (0 + t21); + t22 = (t11 + t38); + *((unsigned char *)t22) = (unsigned char)2; + goto LAB10; + +LAB13: t8 = (t19 + 56U); + t9 = *((char **)t8); + t8 = xilinxcorelib_a_1848741551_3212880686_sub_445809469_3212880686(t1, t39, t9, t16); + t11 = (t39 + 12U); + t15 = *((unsigned int *)t11); + t15 = (t15 * 1U); + t0 = xsi_get_transient_memory(t15); + memcpy(t0, t8, t15); + t12 = (t39 + 0U); + t13 = *((int *)t12); + t18 = (t39 + 4U); + t14 = *((int *)t18); + t22 = (t39 + 8U); + t17 = *((int *)t22); + t23 = (t2 + 0U); + t25 = (t23 + 0U); + *((int *)t25) = t13; + t25 = (t23 + 4U); + *((int *)t25) = t14; + t25 = (t23 + 8U); + *((int *)t25) = t17; + t20 = (t14 - t13); + t21 = (t20 * t17); + t21 = (t21 + 1); + t25 = (t23 + 12U); + *((unsigned int *)t25) = t21; + goto LAB1; + +LAB14: xsi_error(ng2); + t0 = 0; + goto LAB1; + +LAB16: goto LAB14; + +LAB17: goto LAB14; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_0(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 25040); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_1(char *t0) +{ + unsigned char t1; + char *t2; + +LAB0: t1 = (1 != 4); + if (t1 == 0) + goto LAB2; + +LAB3: +LAB1: return; +LAB2: t2 = (t0 + 39421); + xsi_report(t2, 370U, (unsigned char)3); + goto LAB3; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_2(char *t0) +{ + unsigned char t1; + char *t2; + +LAB0: t1 = (2 != 2); + if (t1 == 0) + goto LAB2; + +LAB3: +LAB1: return; +LAB2: t2 = (t0 + 39791); + xsi_report(t2, 428U, (unsigned char)0); + goto LAB3; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_3(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 3952U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25104); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast(t1); + +LAB2: t8 = (t0 + 24784); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_4(char *t0) +{ + unsigned char t1; + char *t2; + char *t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + char *t10; + unsigned char t11; + char *t12; + char *t13; + char *t14; + char *t15; + char *t16; + +LAB0: t1 = (1 == 0); + if (t1 != 0) + goto LAB3; + +LAB4: +LAB5: t9 = (t0 + 4432U); + t10 = *((char **)t9); + t11 = *((unsigned char *)t10); + t9 = (t0 + 25168); + t12 = (t9 + 56U); + t13 = *((char **)t12); + t14 = (t13 + 56U); + t15 = *((char **)t14); + *((unsigned char *)t15) = t11; + xsi_driver_first_trans_fast(t9); + +LAB2: t16 = (t0 + 24800); + *((int *)t16) = 1; + +LAB1: return; +LAB3: t2 = (t0 + 4272U); + t3 = *((char **)t2); + t4 = *((unsigned char *)t3); + t2 = (t0 + 25168); + t5 = (t2 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = t4; + xsi_driver_first_trans_fast(t2); + goto LAB2; + +LAB6: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_5(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = (t0 + 9552U); + t2 = *((char **)t1); + t1 = (t0 + 25232); + t3 = (t1 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + memcpy(t6, t2, 13U); + xsi_driver_first_trans_fast_port(t1); + +LAB2: t7 = (t0 + 24816); + *((int *)t7) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_6(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = (t0 + 9712U); + t2 = *((char **)t1); + t1 = (t0 + 25296); + t3 = (t1 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + memcpy(t6, t2, 13U); + xsi_driver_first_trans_fast_port(t1); + +LAB2: t7 = (t0 + 24832); + *((int *)t7) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_7(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + unsigned char t5; + unsigned char t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 4112U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 10832U); + t4 = *((char **)t1); + t5 = *((unsigned char *)t4); + t6 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t3, t5); + t1 = (t0 + 25360); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((unsigned char *)t10) = t6; + xsi_driver_first_trans_fast(t1); + +LAB2: t11 = (t0 + 24848); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_8(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + unsigned char t5; + unsigned char t6; + unsigned char t7; + char *t8; + char *t9; + char *t10; + char *t11; + char *t12; + +LAB0: +LAB3: t1 = (t0 + 4912U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 10512U); + t4 = *((char **)t1); + t5 = *((unsigned char *)t4); + t6 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t5); + t7 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t3, t6); + t1 = (t0 + 25424); + t8 = (t1 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = t7; + xsi_driver_first_trans_fast(t1); + +LAB2: t12 = (t0 + 24864); + *((int *)t12) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_9(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = (t0 + 10672U); + t2 = *((char **)t1); + t1 = (t0 + 25488); + t3 = (t1 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + memcpy(t6, t2, 8U); + xsi_driver_first_trans_fast_port(t1); + +LAB2: t7 = (t0 + 24880); + *((int *)t7) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_10(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10832U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25552); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 24896); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_11(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10992U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25616); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 24912); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_12(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 11312U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25680); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 24928); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_13(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 11152U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25744); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 24944); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_1848741551_3212880686_p_14(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10512U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 25808); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 24960); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + + +extern void xilinxcorelib_a_1848741551_3212880686_init() +{ + static char *pe[] = {(void *)xilinxcorelib_a_1848741551_3212880686_p_0,(void *)xilinxcorelib_a_1848741551_3212880686_p_1,(void *)xilinxcorelib_a_1848741551_3212880686_p_2,(void *)xilinxcorelib_a_1848741551_3212880686_p_3,(void *)xilinxcorelib_a_1848741551_3212880686_p_4,(void *)xilinxcorelib_a_1848741551_3212880686_p_5,(void *)xilinxcorelib_a_1848741551_3212880686_p_6,(void *)xilinxcorelib_a_1848741551_3212880686_p_7,(void *)xilinxcorelib_a_1848741551_3212880686_p_8,(void *)xilinxcorelib_a_1848741551_3212880686_p_9,(void *)xilinxcorelib_a_1848741551_3212880686_p_10,(void *)xilinxcorelib_a_1848741551_3212880686_p_11,(void *)xilinxcorelib_a_1848741551_3212880686_p_12,(void *)xilinxcorelib_a_1848741551_3212880686_p_13,(void *)xilinxcorelib_a_1848741551_3212880686_p_14}; + static char *se[] = {(void *)xilinxcorelib_a_1848741551_3212880686_sub_445809469_3212880686,(void *)xilinxcorelib_a_1848741551_3212880686_sub_1670819029_3212880686}; + xsi_register_didat("xilinxcorelib_a_1848741551_3212880686", "isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.didat"); + xsi_register_executes(pe); + xsi_register_subprogram_executes(se); +} diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.didat b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.didat new file mode 100755 index 0000000000000000000000000000000000000000..a51605d9f8ac8cc92bcb97320466c0902d2ae1bf GIT binary patch literal 31612 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.nt64.obj b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_1848741551_3212880686.nt64.obj new file mode 100755 index 0000000000000000000000000000000000000000..8f84d6af6a4007e9f9c3c43c07b8ad082cbbf54d GIT binary patch literal 5937 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.c b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.c new file mode 100755 index 0000000..aa33fb3 --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.c @@ -0,0 +1,2229 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2009 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/***********************************************************************/ + +/* This file is designed for use with ISim build 0x7dea747 */ + +#define XSI_HIDE_SYMBOL_SPEC true +#include "xsi.h" +#include <memory.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif +extern char *IEEE_P_2592010699; +extern char *STD_STANDARD; + +unsigned char ieee_p_2592010699_sub_1605435078_2592010699(char *, unsigned char , unsigned char ); +unsigned char ieee_p_2592010699_sub_1690584930_2592010699(char *, unsigned char ); +unsigned char ieee_p_2592010699_sub_2545490612_2592010699(char *, unsigned char , unsigned char ); + + +char *xilinxcorelib_a_3173924170_3212880686_sub_3703097363_3212880686(char *t1, char *t2, char *t3, char *t4, int t5) +{ + char t6[368]; + char t7[24]; + char t16[16]; + char t28[16]; + char t34[8]; + char t41[8]; + char *t0; + int t8; + int t9; + unsigned int t10; + char *t11; + char *t12; + int t13; + int t14; + unsigned int t15; + int t17; + char *t18; + char *t19; + int t20; + unsigned int t21; + char *t22; + char *t23; + char *t24; + char *t25; + char *t26; + char *t27; + char *t29; + char *t30; + int t31; + char *t32; + char *t33; + char *t35; + char *t36; + char *t37; + char *t38; + char *t39; + char *t40; + char *t42; + char *t43; + char *t44; + unsigned char t45; + char *t46; + char *t47; + char *t48; + int t49; + int t50; + char *t51; + int t52; + char *t53; + int t54; + int t55; + int t56; + int t57; + int t58; + char *t59; + int t60; + char *t61; + int t62; + int t63; + unsigned int t64; + unsigned int t65; + char *t66; + unsigned char t67; + char *t68; + char *t69; + unsigned int t70; + char *t71; + char *t72; + char *t73; + char *t74; + char *t75; + unsigned int t76; + int t77; + static char *nl0[] = {&&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB9, &&LAB10, &&LAB11, &&LAB12, &&LAB13, &&LAB14, &&LAB15, &&LAB16, &&LAB17, &&LAB18, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB19, &&LAB21, &&LAB23, &&LAB25, &&LAB27, &&LAB29, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB20, &&LAB22, &&LAB24, &&LAB26, &&LAB28, &&LAB30, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31}; + +LAB0: t8 = (t5 - 1); + t9 = (0 - t8); + t10 = (t9 * -1); + t10 = (t10 + 1); + t10 = (t10 * 1U); + t11 = xsi_get_transient_memory(t10); + memset(t11, 0, t10); + t12 = t11; + memset(t12, (unsigned char)2, t10); + t13 = (t5 - 1); + t14 = (0 - t13); + t15 = (t14 * -1); + t15 = (t15 + 1); + t15 = (t15 * 1U); + t17 = (t5 - 1); + t18 = (t16 + 0U); + t19 = (t18 + 0U); + *((int *)t19) = t17; + t19 = (t18 + 4U); + *((int *)t19) = 0; + t19 = (t18 + 8U); + *((int *)t19) = -1; + t20 = (0 - t17); + t21 = (t20 * -1); + t21 = (t21 + 1); + t19 = (t18 + 12U); + *((unsigned int *)t19) = t21; + t19 = (t6 + 4U); + t22 = ((IEEE_P_2592010699) + 4024); + t23 = (t19 + 88U); + *((char **)t23) = t22; + t24 = (char *)alloca(t15); + t25 = (t19 + 56U); + *((char **)t25) = t24; + memcpy(t24, t11, t15); + t26 = (t19 + 64U); + *((char **)t26) = t16; + t27 = (t19 + 80U); + *((unsigned int *)t27) = t15; + t29 = (t28 + 0U); + t30 = (t29 + 0U); + *((int *)t30) = 3; + t30 = (t29 + 4U); + *((int *)t30) = 0; + t30 = (t29 + 8U); + *((int *)t30) = -1; + t31 = (0 - 3); + t21 = (t31 * -1); + t21 = (t21 + 1); + t30 = (t29 + 12U); + *((unsigned int *)t30) = t21; + t30 = (t6 + 124U); + t32 = ((IEEE_P_2592010699) + 4024); + t33 = (t30 + 88U); + *((char **)t33) = t32; + t35 = (t30 + 56U); + *((char **)t35) = t34; + xsi_type_set_default_value(t32, t34, t28); + t36 = (t30 + 64U); + *((char **)t36) = t28; + t37 = (t30 + 80U); + *((unsigned int *)t37) = 4U; + t38 = (t6 + 244U); + t39 = ((STD_STANDARD) + 384); + t40 = (t38 + 88U); + *((char **)t40) = t39; + t42 = (t38 + 56U); + *((char **)t42) = t41; + *((int *)t41) = 0; + t43 = (t38 + 80U); + *((unsigned int *)t43) = 4U; + t44 = (t7 + 4U); + t45 = (t3 != 0); + if (t45 == 1) + goto LAB3; + +LAB2: t46 = (t7 + 12U); + *((char **)t46) = t4; + t47 = (t7 + 20U); + *((int *)t47) = t5; + t48 = (t4 + 8U); + t49 = *((int *)t48); + t50 = (t49 * -1); + t51 = (t4 + 0U); + t52 = *((int *)t51); + t53 = (t4 + 4U); + t54 = *((int *)t53); + t55 = t54; + t56 = t52; + +LAB4: t57 = (t56 * t50); + t58 = (t55 * t50); + if (t58 <= t57) + goto LAB5; + +LAB7: t11 = (t19 + 56U); + t12 = *((char **)t11); + t11 = (t16 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t0 = xsi_get_transient_memory(t10); + memcpy(t0, t12, t10); + t18 = (t16 + 0U); + t8 = *((int *)t18); + t22 = (t16 + 4U); + t9 = *((int *)t22); + t23 = (t16 + 8U); + t13 = *((int *)t23); + t25 = (t2 + 0U); + t26 = (t25 + 0U); + *((int *)t26) = t8; + t26 = (t25 + 4U); + *((int *)t26) = t9; + t26 = (t25 + 8U); + *((int *)t26) = t13; + t14 = (t9 - t8); + t15 = (t14 * t13); + t15 = (t15 + 1); + t26 = (t25 + 12U); + *((unsigned int *)t26) = t15; + +LAB1: return t0; +LAB3: *((char **)t44) = *((char **)t3); + goto LAB2; + +LAB5: t59 = (t4 + 0U); + t60 = *((int *)t59); + t61 = (t4 + 8U); + t62 = *((int *)t61); + t63 = (t55 - t60); + t21 = (t63 * t62); + t64 = (1U * t21); + t65 = (0 + t64); + t66 = (t3 + t65); + t67 = *((unsigned char *)t66); + t68 = (char *)((nl0) + t67); + goto **((char **)t68); + +LAB6: if (t55 == t56) + goto LAB7; + +LAB45: t8 = (t55 + t50); + t55 = t8; + goto LAB4; + +LAB8: t8 = 0; + t9 = 3; + +LAB37: if (t8 <= t9) + goto LAB38; + +LAB40: t11 = (t38 + 56U); + t12 = *((char **)t11); + t8 = *((int *)t12); + t9 = (t8 + 1); + t11 = (t38 + 56U); + t18 = *((char **)t11); + t11 = (t18 + 0); + *((int *)t11) = t9; + goto LAB6; + +LAB9: t69 = (t28 + 12U); + t70 = *((unsigned int *)t69); + t70 = (t70 * 1U); + t71 = xsi_get_transient_memory(t70); + memset(t71, 0, t70); + t72 = t71; + memset(t72, (unsigned char)2, t70); + t73 = (t30 + 56U); + t74 = *((char **)t73); + t73 = (t74 + 0); + t75 = (t28 + 12U); + t76 = *((unsigned int *)t75); + t76 = (t76 * 1U); + memcpy(t73, t71, t76); + goto LAB8; + +LAB10: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB11: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB12: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB13: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB14: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB15: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB16: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (3 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB17: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (3 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB18: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (3 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB19: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB20: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB21: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB22: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB23: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB24: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB25: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB26: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB27: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB28: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB29: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t30 + 56U); + t23 = *((char **)t22); + t22 = (t23 + 0); + t25 = (t28 + 12U); + t15 = *((unsigned int *)t25); + t15 = (t15 * 1U); + memcpy(t22, t12, t15); + goto LAB8; + +LAB30: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t30 + 56U); + t23 = *((char **)t22); + t22 = (t23 + 0); + t25 = (t28 + 12U); + t15 = *((unsigned int *)t25); + t15 = (t15 * 1U); + memcpy(t22, t12, t15); + goto LAB8; + +LAB31: t8 = 0; + t9 = 3; + +LAB32: if (t8 <= t9) + goto LAB33; + +LAB35: goto LAB8; + +LAB33: t11 = (t30 + 56U); + t12 = *((char **)t11); + t11 = (t28 + 0U); + t13 = *((int *)t11); + t18 = (t28 + 8U); + t14 = *((int *)t18); + t17 = (t8 - t13); + t10 = (t17 * t14); + t22 = (t28 + 4U); + t20 = *((int *)t22); + xsi_vhdl_check_range_of_index(t13, t20, t14, t8); + t15 = (1U * t10); + t21 = (0 + t15); + t23 = (t12 + t21); + *((unsigned char *)t23) = (unsigned char)1; + +LAB34: if (t8 == t9) + goto LAB35; + +LAB36: t13 = (t8 + 1); + t8 = t13; + goto LAB32; + +LAB38: t11 = (t38 + 56U); + t12 = *((char **)t11); + t13 = *((int *)t12); + t14 = (t13 * 4); + t17 = (t14 + t8); + t45 = (t17 < t5); + if (t45 != 0) + goto LAB41; + +LAB43: +LAB42: +LAB39: if (t8 == t9) + goto LAB40; + +LAB44: t13 = (t8 + 1); + t8 = t13; + goto LAB37; + +LAB41: t11 = (t30 + 56U); + t18 = *((char **)t11); + t11 = (t28 + 0U); + t20 = *((int *)t11); + t22 = (t28 + 8U); + t31 = *((int *)t22); + t49 = (t8 - t20); + t10 = (t49 * t31); + t23 = (t28 + 4U); + t52 = *((int *)t23); + xsi_vhdl_check_range_of_index(t20, t52, t31, t8); + t15 = (1U * t10); + t21 = (0 + t15); + t25 = (t18 + t21); + t67 = *((unsigned char *)t25); + t26 = (t19 + 56U); + t27 = *((char **)t26); + t26 = (t38 + 56U); + t29 = *((char **)t26); + t54 = *((int *)t29); + t57 = (t54 * 4); + t58 = (t57 + t8); + t26 = (t16 + 0U); + t60 = *((int *)t26); + t32 = (t16 + 8U); + t62 = *((int *)t32); + t63 = (t58 - t60); + t64 = (t63 * t62); + t33 = (t16 + 4U); + t77 = *((int *)t33); + xsi_vhdl_check_range_of_index(t60, t77, t62, t58); + t65 = (1U * t64); + t70 = (0 + t65); + t35 = (t27 + t70); + *((unsigned char *)t35) = t67; + goto LAB42; + +LAB46:; +} + +static void xilinxcorelib_a_3173924170_3212880686_p_0(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 14656); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_1(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 14720); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_2(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + unsigned char t5; + unsigned char t6; + char *t7; + unsigned char t8; + unsigned char t9; + unsigned char t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + +LAB0: +LAB3: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 5448U); + t4 = *((char **)t1); + t5 = *((unsigned char *)t4); + t6 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t5); + t1 = (t0 + 2568U); + t7 = *((char **)t1); + t8 = *((unsigned char *)t7); + t9 = ieee_p_2592010699_sub_2545490612_2592010699(IEEE_P_2592010699, t6, t8); + t10 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t3, t9); + t1 = (t0 + 14784); + t11 = (t1 + 56U); + t12 = *((char **)t11); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((unsigned char *)t14) = t10; + xsi_driver_first_trans_fast(t1); + +LAB2: t15 = (t0 + 14304); + *((int *)t15) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_3(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + unsigned char t6; + unsigned char t7; + char *t8; + unsigned char t9; + unsigned char t10; + unsigned char t11; + char *t12; + char *t13; + char *t14; + char *t15; + char *t16; + +LAB0: +LAB3: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t3); + t1 = (t0 + 5128U); + t5 = *((char **)t1); + t6 = *((unsigned char *)t5); + t7 = ieee_p_2592010699_sub_2545490612_2592010699(IEEE_P_2592010699, t4, t6); + t1 = (t0 + 2728U); + t8 = *((char **)t1); + t9 = *((unsigned char *)t8); + t10 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t9); + t11 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t7, t10); + t1 = (t0 + 14848); + t12 = (t1 + 56U); + t13 = *((char **)t12); + t14 = (t13 + 56U); + t15 = *((char **)t14); + *((unsigned char *)t15) = t11; + xsi_driver_first_trans_fast(t1); + +LAB2: t16 = (t0 + 14320); + *((int *)t16) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_4(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 5128U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 14912); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast(t1); + +LAB2: t8 = (t0 + 14336); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_5(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + unsigned char t5; + unsigned char t6; + unsigned char t7; + char *t8; + unsigned char t9; + unsigned char t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + +LAB0: +LAB3: t1 = (t0 + 2568U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 2728U); + t4 = *((char **)t1); + t5 = *((unsigned char *)t4); + t6 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t5); + t7 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t3, t6); + t1 = (t0 + 4968U); + t8 = *((char **)t1); + t9 = *((unsigned char *)t8); + t10 = ieee_p_2592010699_sub_2545490612_2592010699(IEEE_P_2592010699, t7, t9); + t1 = (t0 + 14976); + t11 = (t1 + 56U); + t12 = *((char **)t11); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((unsigned char *)t14) = t10; + xsi_driver_first_trans_fast(t1); + +LAB2: t15 = (t0 + 14352); + *((int *)t15) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_6(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + unsigned char t10; + unsigned char t11; + unsigned char t12; + unsigned char t13; + char *t14; + char *t15; + +LAB0: t1 = (t0 + 6728U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 2048U); + t4 = xsi_signal_has_event(t1); + if (t4 == 1) + goto LAB7; + +LAB8: t3 = (unsigned char)0; + +LAB9: if (t3 != 0) + goto LAB5; + +LAB6: +LAB3: t1 = (t0 + 14368); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 15040); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15040); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB3; + +LAB5: t2 = (t0 + 6888U); + t6 = *((char **)t2); + t12 = *((unsigned char *)t6); + t13 = (t12 == (unsigned char)3); + if (t13 != 0) + goto LAB10; + +LAB12: t1 = (t0 + 5768U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB13; + +LAB15: t1 = (t0 + 5608U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB16; + +LAB18: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15040); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15040); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + +LAB17: +LAB14: +LAB11: goto LAB3; + +LAB7: t2 = (t0 + 2088U); + t5 = *((char **)t2); + t10 = *((unsigned char *)t5); + t11 = (t10 == (unsigned char)3); + t3 = t11; + goto LAB9; + +LAB10: t2 = (t0 + 15040); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t14 = *((char **)t9); + *((unsigned char *)t14) = (unsigned char)2; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t15 = (t0 + 15040); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + goto LAB11; + +LAB13: t1 = (t0 + 15040); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15040); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB14; + +LAB16: t1 = (t0 + 15040); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15040); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB17; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_7(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + unsigned char t10; + unsigned char t11; + unsigned char t12; + unsigned char t13; + char *t14; + char *t15; + +LAB0: t1 = (t0 + 6728U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 2048U); + t4 = xsi_signal_has_event(t1); + if (t4 == 1) + goto LAB7; + +LAB8: t3 = (unsigned char)0; + +LAB9: if (t3 != 0) + goto LAB5; + +LAB6: +LAB3: t1 = (t0 + 14384); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 15104); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15104); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB3; + +LAB5: t2 = (t0 + 6888U); + t6 = *((char **)t2); + t12 = *((unsigned char *)t6); + t13 = (t12 == (unsigned char)3); + if (t13 != 0) + goto LAB10; + +LAB12: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 5448U); + t5 = *((char **)t1); + t4 = *((unsigned char *)t5); + t1 = (t0 + 2568U); + t6 = *((char **)t1); + t10 = *((unsigned char *)t6); + t11 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t10); + t12 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t4, t11); + t13 = ieee_p_2592010699_sub_2545490612_2592010699(IEEE_P_2592010699, t3, t12); + t1 = (t0 + 15104); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t14 = *((char **)t9); + *((unsigned char *)t14) = t13; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t15 = (t0 + 15104); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + +LAB11: goto LAB3; + +LAB7: t2 = (t0 + 2088U); + t5 = *((char **)t2); + t10 = *((unsigned char *)t5); + t11 = (t10 == (unsigned char)3); + t3 = t11; + goto LAB9; + +LAB10: t2 = (t0 + 15104); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t14 = *((char **)t9); + *((unsigned char *)t14) = (unsigned char)2; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t15 = (t0 + 15104); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + goto LAB11; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_8(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + unsigned char t10; + unsigned char t11; + unsigned char t12; + unsigned char t13; + char *t14; + char *t15; + unsigned char t16; + unsigned char t17; + unsigned char t18; + unsigned char t19; + char *t20; + +LAB0: t1 = (t0 + 6728U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 2048U); + t4 = xsi_signal_has_event(t1); + if (t4 == 1) + goto LAB7; + +LAB8: t3 = (unsigned char)0; + +LAB9: if (t3 != 0) + goto LAB5; + +LAB6: +LAB3: t1 = (t0 + 14400); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 15168); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15168); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB3; + +LAB5: t2 = (t0 + 6888U); + t6 = *((char **)t2); + t12 = *((unsigned char *)t6); + t13 = (t12 == (unsigned char)3); + if (t13 != 0) + goto LAB10; + +LAB12: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t3); + t1 = (t0 + 5448U); + t5 = *((char **)t1); + t10 = *((unsigned char *)t5); + t11 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t10); + t12 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t4, t11); + t1 = (t0 + 5288U); + t6 = *((char **)t1); + t13 = *((unsigned char *)t6); + t16 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t13); + t1 = (t0 + 2568U); + t7 = *((char **)t1); + t17 = *((unsigned char *)t7); + t18 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t16, t17); + t19 = ieee_p_2592010699_sub_2545490612_2592010699(IEEE_P_2592010699, t12, t18); + t1 = (t0 + 15168); + t8 = (t1 + 56U); + t9 = *((char **)t8); + t14 = (t9 + 56U); + t15 = *((char **)t14); + *((unsigned char *)t15) = t19; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 15168); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + +LAB11: goto LAB3; + +LAB7: t2 = (t0 + 2088U); + t5 = *((char **)t2); + t10 = *((unsigned char *)t5); + t11 = (t10 == (unsigned char)3); + t3 = t11; + goto LAB9; + +LAB10: t2 = (t0 + 15168); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t14 = *((char **)t9); + *((unsigned char *)t14) = (unsigned char)3; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t15 = (t0 + 15168); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + goto LAB11; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_9(char *t0) +{ + unsigned char t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + unsigned char t6; + unsigned char t7; + char *t8; + unsigned char t9; + unsigned char t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + +LAB0: t2 = (t0 + 2048U); + t3 = xsi_signal_has_event(t2); + if (t3 == 1) + goto LAB5; + +LAB6: t1 = (unsigned char)0; + +LAB7: if (t1 != 0) + goto LAB2; + +LAB4: +LAB3: t2 = (t0 + 14416); + *((int *)t2) = 1; + +LAB1: return; +LAB2: t4 = (t0 + 6888U); + t8 = *((char **)t4); + t9 = *((unsigned char *)t8); + t10 = (t9 == (unsigned char)3); + if (t10 != 0) + goto LAB8; + +LAB10: t2 = (t0 + 5928U); + t4 = *((char **)t2); + t1 = *((unsigned char *)t4); + t2 = (t0 + 15232); + t5 = (t2 + 56U); + t8 = *((char **)t5); + t11 = (t8 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = t1; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t13 = (t0 + 15232); + xsi_driver_intertial_reject(t13, 100LL, 100LL); + +LAB9: goto LAB3; + +LAB5: t4 = (t0 + 2088U); + t5 = *((char **)t4); + t6 = *((unsigned char *)t5); + t7 = (t6 == (unsigned char)3); + t1 = t7; + goto LAB7; + +LAB8: t4 = (t0 + 15232); + t11 = (t4 + 56U); + t12 = *((char **)t11); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((unsigned char *)t14) = (unsigned char)3; + xsi_driver_first_trans_delta(t4, 0U, 1, 100LL); + t15 = (t0 + 15232); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + goto LAB9; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_10(char *t0) +{ + unsigned char t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + unsigned char t6; + unsigned char t7; + char *t8; + unsigned char t9; + unsigned char t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + +LAB0: t2 = (t0 + 2048U); + t3 = xsi_signal_has_event(t2); + if (t3 == 1) + goto LAB5; + +LAB6: t1 = (unsigned char)0; + +LAB7: if (t1 != 0) + goto LAB2; + +LAB4: +LAB3: t2 = (t0 + 14432); + *((int *)t2) = 1; + +LAB1: return; +LAB2: t4 = (t0 + 6888U); + t8 = *((char **)t4); + t9 = *((unsigned char *)t8); + t10 = (t9 == (unsigned char)3); + if (t10 != 0) + goto LAB8; + +LAB10: t2 = (t0 + 2568U); + t4 = *((char **)t2); + t1 = *((unsigned char *)t4); + t2 = (t0 + 15296); + t5 = (t2 + 56U); + t8 = *((char **)t5); + t11 = (t8 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = t1; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t13 = (t0 + 15296); + xsi_driver_intertial_reject(t13, 100LL, 100LL); + +LAB9: goto LAB3; + +LAB5: t4 = (t0 + 2088U); + t5 = *((char **)t4); + t6 = *((unsigned char *)t5); + t7 = (t6 == (unsigned char)3); + t1 = t7; + goto LAB7; + +LAB8: t4 = (t0 + 15296); + t11 = (t4 + 56U); + t12 = *((char **)t11); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((unsigned char *)t14) = (unsigned char)2; + xsi_driver_first_trans_delta(t4, 0U, 1, 100LL); + t15 = (t0 + 15296); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + goto LAB9; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_11(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + unsigned char t10; + unsigned char t11; + unsigned char t12; + unsigned char t13; + char *t14; + char *t15; + unsigned char t16; + unsigned char t17; + unsigned char t18; + unsigned char t19; + unsigned char t20; + unsigned char t21; + char *t22; + char *t23; + +LAB0: t1 = (t0 + 6728U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 2048U); + t4 = xsi_signal_has_event(t1); + if (t4 == 1) + goto LAB7; + +LAB8: t3 = (unsigned char)0; + +LAB9: if (t3 != 0) + goto LAB5; + +LAB6: +LAB3: t1 = (t0 + 14448); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 15360); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15360); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + t1 = (t0 + 15424); + t2 = (t1 + 56U); + t5 = *((char **)t2); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 15424); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + goto LAB3; + +LAB5: t2 = (t0 + 6888U); + t6 = *((char **)t2); + t12 = *((unsigned char *)t6); + t13 = (t12 == (unsigned char)3); + if (t13 != 0) + goto LAB10; + +LAB12: t1 = (t0 + 5608U); + t2 = *((char **)t1); + t4 = *((unsigned char *)t2); + t10 = (t4 == (unsigned char)3); + if (t10 == 1) + goto LAB16; + +LAB17: t1 = (t0 + 2728U); + t5 = *((char **)t1); + t13 = *((unsigned char *)t5); + t16 = (t13 == (unsigned char)2); + if (t16 == 1) + goto LAB22; + +LAB23: t12 = (unsigned char)0; + +LAB24: if (t12 == 1) + goto LAB19; + +LAB20: t11 = (unsigned char)0; + +LAB21: t3 = t11; + +LAB18: if (t3 != 0) + goto LAB13; + +LAB15: +LAB14: t1 = (t0 + 6408U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15424); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15424); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + +LAB11: goto LAB3; + +LAB7: t2 = (t0 + 2088U); + t5 = *((char **)t2); + t10 = *((unsigned char *)t5); + t11 = (t10 == (unsigned char)3); + t3 = t11; + goto LAB9; + +LAB10: t2 = (t0 + 15360); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t14 = *((char **)t9); + *((unsigned char *)t14) = (unsigned char)3; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t15 = (t0 + 15360); + xsi_driver_intertial_reject(t15, 100LL, 100LL); + t1 = (t0 + 15424); + t2 = (t1 + 56U); + t5 = *((char **)t2); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 15424); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + goto LAB11; + +LAB13: t1 = (t0 + 2728U); + t8 = *((char **)t1); + t21 = *((unsigned char *)t8); + t1 = (t0 + 15360); + t9 = (t1 + 56U); + t14 = *((char **)t9); + t15 = (t14 + 56U); + t22 = *((char **)t15); + *((unsigned char *)t22) = t21; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t23 = (t0 + 15360); + xsi_driver_intertial_reject(t23, 100LL, 100LL); + goto LAB14; + +LAB16: t3 = (unsigned char)1; + goto LAB18; + +LAB19: t1 = (t0 + 2568U); + t7 = *((char **)t1); + t19 = *((unsigned char *)t7); + t20 = (t19 == (unsigned char)2); + t11 = t20; + goto LAB21; + +LAB22: t1 = (t0 + 5448U); + t6 = *((char **)t1); + t17 = *((unsigned char *)t6); + t18 = (t17 == (unsigned char)3); + t12 = t18; + goto LAB24; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_12(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 5928U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15488); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 14464); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_13(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 6408U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15552); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 14480); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_14(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 5768U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15616); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 14496); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_15(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 5288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15680); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 14512); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_16(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 5448U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15744); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 14528); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_17(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + unsigned char t5; + unsigned char t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 6088U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 6248U); + t4 = *((char **)t1); + t5 = *((unsigned char *)t4); + t6 = ieee_p_2592010699_sub_1605435078_2592010699(IEEE_P_2592010699, t3, t5); + t1 = (t0 + 15808); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((unsigned char *)t10) = t6; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t11 = (t0 + 14544); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_18(char *t0) +{ + char t10[16]; + char *t1; + char *t2; + unsigned char t3; + unsigned char t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + char *t11; + char *t12; + char *t13; + unsigned char t14; + unsigned char t15; + unsigned char t16; + unsigned char t17; + +LAB0: t1 = (t0 + 6728U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 2048U); + t4 = xsi_signal_has_event(t1); + if (t4 == 1) + goto LAB10; + +LAB11: t3 = (unsigned char)0; + +LAB12: if (t3 != 0) + goto LAB8; + +LAB9: +LAB3: t1 = (t0 + 14560); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 15872); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15872); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + t1 = (t0 + 15936); + t2 = (t1 + 56U); + t5 = *((char **)t2); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 15936); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + t3 = (0 == 1); + if (t3 != 0) + goto LAB5; + +LAB7: +LAB6: goto LAB3; + +LAB5: t1 = (t0 + 22492); + t5 = (t0 + 22340U); + t6 = xilinxcorelib_a_3173924170_3212880686_sub_3703097363_3212880686(t0, t10, t1, t5, 8); + t7 = (t0 + 16000); + t8 = (t7 + 56U); + t9 = *((char **)t8); + t11 = (t9 + 56U); + t12 = *((char **)t11); + memcpy(t12, t6, 8U); + xsi_driver_first_trans_delta(t7, 0U, 8U, 100LL); + t13 = (t0 + 16000); + xsi_driver_intertial_reject(t13, 100LL, 100LL); + goto LAB6; + +LAB8: t2 = (t0 + 6888U); + t6 = *((char **)t2); + t16 = *((unsigned char *)t6); + t17 = (t16 == (unsigned char)3); + if (t17 != 0) + goto LAB13; + +LAB15: t1 = (t0 + 5608U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t4 = (t3 == (unsigned char)3); + if (t4 != 0) + goto LAB19; + +LAB21: +LAB20: +LAB14: goto LAB3; + +LAB10: t2 = (t0 + 2088U); + t5 = *((char **)t2); + t14 = *((unsigned char *)t5); + t15 = (t14 == (unsigned char)3); + t3 = t15; + goto LAB12; + +LAB13: t2 = (t0 + 15872); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t11 = *((char **)t9); + *((unsigned char *)t11) = (unsigned char)2; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t12 = (t0 + 15872); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 15936); + t2 = (t1 + 56U); + t5 = *((char **)t2); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 15936); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + t3 = (0 == 1); + if (t3 != 0) + goto LAB16; + +LAB18: +LAB17: goto LAB14; + +LAB16: t1 = (t0 + 22493); + t5 = (t0 + 22340U); + t6 = xilinxcorelib_a_3173924170_3212880686_sub_3703097363_3212880686(t0, t10, t1, t5, 8); + t7 = (t0 + 16000); + t8 = (t7 + 56U); + t9 = *((char **)t8); + t11 = (t9 + 56U); + t12 = *((char **)t11); + memcpy(t12, t6, 8U); + xsi_driver_first_trans_delta(t7, 0U, 8U, 100LL); + t13 = (t0 + 16000); + xsi_driver_intertial_reject(t13, 100LL, 100LL); + goto LAB17; + +LAB19: t1 = (t0 + 2888U); + t5 = *((char **)t1); + t1 = (t0 + 16000); + t6 = (t1 + 56U); + t7 = *((char **)t6); + t8 = (t7 + 56U); + t9 = *((char **)t8); + memcpy(t9, t5, 8U); + xsi_driver_first_trans_delta(t1, 0U, 8U, 100LL); + t11 = (t0 + 16000); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t1 = (t0 + 3048U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15872); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15872); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + t1 = (t0 + 3208U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 15936); + t5 = (t1 + 56U); + t6 = *((char **)t5); + t7 = (t6 + 56U); + t8 = *((char **)t7); + *((unsigned char *)t8) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t9 = (t0 + 15936); + xsi_driver_intertial_reject(t9, 100LL, 100LL); + goto LAB20; + +} + +static void xilinxcorelib_a_3173924170_3212880686_p_19(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = (t0 + 4808U); + t2 = *((char **)t1); + t1 = (t0 + 16064); + t3 = (t1 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + memcpy(t6, t2, 8U); + xsi_driver_first_trans_fast_port(t1); + +LAB2: t7 = (t0 + 14576); + *((int *)t7) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + + +extern void xilinxcorelib_a_3173924170_3212880686_init() +{ + static char *pe[] = {(void *)xilinxcorelib_a_3173924170_3212880686_p_0,(void *)xilinxcorelib_a_3173924170_3212880686_p_1,(void *)xilinxcorelib_a_3173924170_3212880686_p_2,(void *)xilinxcorelib_a_3173924170_3212880686_p_3,(void *)xilinxcorelib_a_3173924170_3212880686_p_4,(void *)xilinxcorelib_a_3173924170_3212880686_p_5,(void *)xilinxcorelib_a_3173924170_3212880686_p_6,(void *)xilinxcorelib_a_3173924170_3212880686_p_7,(void *)xilinxcorelib_a_3173924170_3212880686_p_8,(void *)xilinxcorelib_a_3173924170_3212880686_p_9,(void *)xilinxcorelib_a_3173924170_3212880686_p_10,(void *)xilinxcorelib_a_3173924170_3212880686_p_11,(void *)xilinxcorelib_a_3173924170_3212880686_p_12,(void *)xilinxcorelib_a_3173924170_3212880686_p_13,(void *)xilinxcorelib_a_3173924170_3212880686_p_14,(void *)xilinxcorelib_a_3173924170_3212880686_p_15,(void *)xilinxcorelib_a_3173924170_3212880686_p_16,(void *)xilinxcorelib_a_3173924170_3212880686_p_17,(void *)xilinxcorelib_a_3173924170_3212880686_p_18,(void *)xilinxcorelib_a_3173924170_3212880686_p_19}; + static char *se[] = {(void *)xilinxcorelib_a_3173924170_3212880686_sub_3703097363_3212880686}; + xsi_register_didat("xilinxcorelib_a_3173924170_3212880686", "isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.didat"); + xsi_register_executes(pe); + xsi_register_subprogram_executes(se); +} diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.didat b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.didat new file mode 100755 index 0000000000000000000000000000000000000000..82cfa7a4dbc3d2bbd80ca40e974b041db1abc7c6 GIT binary patch literal 13772 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 Usbs3ZKhf9U*W(v(%8P#P-v$3PQvd(} literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.nt64.obj b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_3173924170_3212880686.nt64.obj new file mode 100755 index 0000000000000000000000000000000000000000..2143c7a3de2c0ac330e0ac4405ed67e54c72c2ee GIT binary patch literal 17809 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.c b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.c new file mode 100755 index 0000000..fb896d3 --- /dev/null +++ b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.c @@ -0,0 +1,5654 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2009 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/***********************************************************************/ + +/* This file is designed for use with ISim build 0x7dea747 */ + +#define XSI_HIDE_SYMBOL_SPEC true +#include "xsi.h" +#include <memory.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif +extern char *STD_STANDARD; +static const char *ng1 = "Function int_2_std_logic ended without a return statement"; +extern char *IEEE_P_2592010699; +static const char *ng3 = "Function get_lesser ended without a return statement"; +static const char *ng4 = ""; +extern char *IEEE_P_3499444699; +extern char *IEEE_P_3620187407; + +unsigned char ieee_p_2592010699_sub_1690584930_2592010699(char *, unsigned char ); +char *ieee_p_3499444699_sub_2213602152_3499444699(char *, char *, int , int ); +int ieee_p_3620187407_sub_514432868_3620187407(char *, char *, char *); + + +int xilinxcorelib_a_4048593843_3212880686_sub_1842417276_3212880686(char *t1, int t2, int t3, int t4) +{ + char t6[16]; + int t0; + char *t7; + char *t8; + char *t9; + int t10; + +LAB0: t7 = (t6 + 4U); + *((int *)t7) = t2; + t8 = (t6 + 8U); + *((int *)t8) = t3; + t9 = (t6 + 12U); + *((int *)t9) = t4; + t10 = (t2 - 1); + t0 = t10; + +LAB1: return t0; +LAB2:; +} + +int xilinxcorelib_a_4048593843_3212880686_sub_1315575287_3212880686(char *t1, int t2, int t3) +{ + char t4[128]; + char t5[16]; + char t9[8]; + int t0; + char *t6; + char *t7; + char *t8; + char *t10; + char *t11; + char *t12; + char *t13; + int t14; + char *t15; + char *t16; + unsigned char t17; + int t18; + int t19; + +LAB0: t6 = (t4 + 4U); + t7 = ((STD_STANDARD) + 384); + t8 = (t6 + 88U); + *((char **)t8) = t7; + t10 = (t6 + 56U); + *((char **)t10) = t9; + xsi_type_set_default_value(t7, t9, 0); + t11 = (t6 + 80U); + *((unsigned int *)t11) = 4U; + t12 = (t5 + 4U); + *((int *)t12) = t2; + t13 = (t5 + 8U); + *((int *)t13) = t3; + t14 = (t2 / t3); + t15 = (t6 + 56U); + t16 = *((char **)t15); + t15 = (t16 + 0); + *((int *)t15) = t14; + t14 = xsi_vhdl_mod(t2, t3); + t17 = (t14 != 0); + if (t17 != 0) + goto LAB2; + +LAB4: +LAB3: t7 = (t6 + 56U); + t8 = *((char **)t7); + t14 = *((int *)t8); + t0 = t14; + +LAB1: return t0; +LAB2: t7 = (t6 + 56U); + t8 = *((char **)t7); + t18 = *((int *)t8); + t19 = (t18 + 1); + t7 = (t6 + 56U); + t10 = *((char **)t7); + t7 = (t10 + 0); + *((int *)t7) = t19; + goto LAB3; + +LAB5:; +} + +unsigned char xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686(char *t1, int t2) +{ + char t4[8]; + unsigned char t0; + char *t5; + unsigned char t6; + +LAB0: t5 = (t4 + 4U); + *((int *)t5) = t2; + t6 = (t2 == 1); + if (t6 != 0) + goto LAB2; + +LAB4: t0 = (unsigned char)2; + +LAB1: return t0; +LAB2: t0 = (unsigned char)3; + goto LAB1; + +LAB3: xsi_error(ng1); + t0 = 0; + goto LAB1; + +LAB5: goto LAB3; + +LAB6: goto LAB3; + +} + +int xilinxcorelib_a_4048593843_3212880686_sub_3672023036_3212880686(char *t1, unsigned char t2, int t3, int t4) +{ + char t5[128]; + char t6[16]; + char t10[8]; + int t0; + char *t7; + char *t8; + char *t9; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + unsigned char t16; + char *t17; + char *t18; + int t19; + +LAB0: t7 = (t5 + 4U); + t8 = ((STD_STANDARD) + 384); + t9 = (t7 + 88U); + *((char **)t9) = t8; + t11 = (t7 + 56U); + *((char **)t11) = t10; + *((int *)t10) = 0; + t12 = (t7 + 80U); + *((unsigned int *)t12) = 4U; + t13 = (t6 + 4U); + *((unsigned char *)t13) = t2; + t14 = (t6 + 5U); + *((int *)t14) = t3; + t15 = (t6 + 9U); + *((int *)t15) = t4; + t16 = (!(t2)); + if (t16 != 0) + goto LAB2; + +LAB4: t8 = (t7 + 56U); + t9 = *((char **)t8); + t8 = (t9 + 0); + *((int *)t8) = t3; + +LAB3: t8 = (t7 + 56U); + t9 = *((char **)t8); + t19 = *((int *)t9); + t0 = t19; + +LAB1: return t0; +LAB2: t17 = (t7 + 56U); + t18 = *((char **)t17); + t17 = (t18 + 0); + *((int *)t17) = t4; + goto LAB3; + +LAB5:; +} + +char *xilinxcorelib_a_4048593843_3212880686_sub_3703097363_3212880686(char *t1, char *t2, char *t3, char *t4, int t5) +{ + char t6[368]; + char t7[24]; + char t16[16]; + char t28[16]; + char t34[8]; + char t41[8]; + char *t0; + int t8; + int t9; + unsigned int t10; + char *t11; + char *t12; + int t13; + int t14; + unsigned int t15; + int t17; + char *t18; + char *t19; + int t20; + unsigned int t21; + char *t22; + char *t23; + char *t24; + char *t25; + char *t26; + char *t27; + char *t29; + char *t30; + int t31; + char *t32; + char *t33; + char *t35; + char *t36; + char *t37; + char *t38; + char *t39; + char *t40; + char *t42; + char *t43; + char *t44; + unsigned char t45; + char *t46; + char *t47; + char *t48; + int t49; + int t50; + char *t51; + int t52; + char *t53; + int t54; + int t55; + int t56; + int t57; + int t58; + char *t59; + int t60; + char *t61; + int t62; + int t63; + unsigned int t64; + unsigned int t65; + char *t66; + unsigned char t67; + char *t68; + char *t69; + unsigned int t70; + char *t71; + char *t72; + char *t73; + char *t74; + char *t75; + unsigned int t76; + int t77; + static char *nl0[] = {&&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB9, &&LAB10, &&LAB11, &&LAB12, &&LAB13, &&LAB14, &&LAB15, &&LAB16, &&LAB17, &&LAB18, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB19, &&LAB21, &&LAB23, &&LAB25, &&LAB27, &&LAB29, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB20, &&LAB22, &&LAB24, &&LAB26, &&LAB28, &&LAB30, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31, &&LAB31}; + +LAB0: t8 = (t5 - 1); + t9 = (0 - t8); + t10 = (t9 * -1); + t10 = (t10 + 1); + t10 = (t10 * 1U); + t11 = xsi_get_transient_memory(t10); + memset(t11, 0, t10); + t12 = t11; + memset(t12, (unsigned char)2, t10); + t13 = (t5 - 1); + t14 = (0 - t13); + t15 = (t14 * -1); + t15 = (t15 + 1); + t15 = (t15 * 1U); + t17 = (t5 - 1); + t18 = (t16 + 0U); + t19 = (t18 + 0U); + *((int *)t19) = t17; + t19 = (t18 + 4U); + *((int *)t19) = 0; + t19 = (t18 + 8U); + *((int *)t19) = -1; + t20 = (0 - t17); + t21 = (t20 * -1); + t21 = (t21 + 1); + t19 = (t18 + 12U); + *((unsigned int *)t19) = t21; + t19 = (t6 + 4U); + t22 = ((IEEE_P_2592010699) + 4024); + t23 = (t19 + 88U); + *((char **)t23) = t22; + t24 = (char *)alloca(t15); + t25 = (t19 + 56U); + *((char **)t25) = t24; + memcpy(t24, t11, t15); + t26 = (t19 + 64U); + *((char **)t26) = t16; + t27 = (t19 + 80U); + *((unsigned int *)t27) = t15; + t29 = (t28 + 0U); + t30 = (t29 + 0U); + *((int *)t30) = 3; + t30 = (t29 + 4U); + *((int *)t30) = 0; + t30 = (t29 + 8U); + *((int *)t30) = -1; + t31 = (0 - 3); + t21 = (t31 * -1); + t21 = (t21 + 1); + t30 = (t29 + 12U); + *((unsigned int *)t30) = t21; + t30 = (t6 + 124U); + t32 = ((IEEE_P_2592010699) + 4024); + t33 = (t30 + 88U); + *((char **)t33) = t32; + t35 = (t30 + 56U); + *((char **)t35) = t34; + xsi_type_set_default_value(t32, t34, t28); + t36 = (t30 + 64U); + *((char **)t36) = t28; + t37 = (t30 + 80U); + *((unsigned int *)t37) = 4U; + t38 = (t6 + 244U); + t39 = ((STD_STANDARD) + 384); + t40 = (t38 + 88U); + *((char **)t40) = t39; + t42 = (t38 + 56U); + *((char **)t42) = t41; + *((int *)t41) = 0; + t43 = (t38 + 80U); + *((unsigned int *)t43) = 4U; + t44 = (t7 + 4U); + t45 = (t3 != 0); + if (t45 == 1) + goto LAB3; + +LAB2: t46 = (t7 + 12U); + *((char **)t46) = t4; + t47 = (t7 + 20U); + *((int *)t47) = t5; + t48 = (t4 + 8U); + t49 = *((int *)t48); + t50 = (t49 * -1); + t51 = (t4 + 0U); + t52 = *((int *)t51); + t53 = (t4 + 4U); + t54 = *((int *)t53); + t55 = t54; + t56 = t52; + +LAB4: t57 = (t56 * t50); + t58 = (t55 * t50); + if (t58 <= t57) + goto LAB5; + +LAB7: t11 = (t19 + 56U); + t12 = *((char **)t11); + t11 = (t16 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t0 = xsi_get_transient_memory(t10); + memcpy(t0, t12, t10); + t18 = (t16 + 0U); + t8 = *((int *)t18); + t22 = (t16 + 4U); + t9 = *((int *)t22); + t23 = (t16 + 8U); + t13 = *((int *)t23); + t25 = (t2 + 0U); + t26 = (t25 + 0U); + *((int *)t26) = t8; + t26 = (t25 + 4U); + *((int *)t26) = t9; + t26 = (t25 + 8U); + *((int *)t26) = t13; + t14 = (t9 - t8); + t15 = (t14 * t13); + t15 = (t15 + 1); + t26 = (t25 + 12U); + *((unsigned int *)t26) = t15; + +LAB1: return t0; +LAB3: *((char **)t44) = *((char **)t3); + goto LAB2; + +LAB5: t59 = (t4 + 0U); + t60 = *((int *)t59); + t61 = (t4 + 8U); + t62 = *((int *)t61); + t63 = (t55 - t60); + t21 = (t63 * t62); + t64 = (1U * t21); + t65 = (0 + t64); + t66 = (t3 + t65); + t67 = *((unsigned char *)t66); + t68 = (char *)((nl0) + t67); + goto **((char **)t68); + +LAB6: if (t55 == t56) + goto LAB7; + +LAB45: t8 = (t55 + t50); + t55 = t8; + goto LAB4; + +LAB8: t8 = 0; + t9 = 3; + +LAB37: if (t8 <= t9) + goto LAB38; + +LAB40: t11 = (t38 + 56U); + t12 = *((char **)t11); + t8 = *((int *)t12); + t9 = (t8 + 1); + t11 = (t38 + 56U); + t18 = *((char **)t11); + t11 = (t18 + 0); + *((int *)t11) = t9; + goto LAB6; + +LAB9: t69 = (t28 + 12U); + t70 = *((unsigned int *)t69); + t70 = (t70 * 1U); + t71 = xsi_get_transient_memory(t70); + memset(t71, 0, t70); + t72 = t71; + memset(t72, (unsigned char)2, t70); + t73 = (t30 + 56U); + t74 = *((char **)t73); + t73 = (t74 + 0); + t75 = (t28 + 12U); + t76 = *((unsigned int *)t75); + t76 = (t76 * 1U); + memcpy(t73, t71, t76); + goto LAB8; + +LAB10: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB11: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB12: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB13: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB14: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB15: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB16: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (3 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB17: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (3 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB18: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)2, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)3; + t14 = (3 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)3; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB19: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB20: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (2 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB21: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB22: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (2 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB23: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB24: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t14 = (1 - t8); + t64 = (t14 * t9); + t65 = (1U * t64); + t26 = (t18 + t65); + *((unsigned char *)t26) = (unsigned char)2; + t27 = (t30 + 56U); + t29 = *((char **)t27); + t27 = (t29 + 0); + t32 = (t28 + 12U); + t70 = *((unsigned int *)t32); + t70 = (t70 * 1U); + memcpy(t27, t12, t70); + goto LAB8; + +LAB25: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB26: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (1 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB27: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB28: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t28 + 0U); + t8 = *((int *)t22); + t23 = (t28 + 8U); + t9 = *((int *)t23); + t13 = (0 - t8); + t15 = (t13 * t9); + t21 = (1U * t15); + t25 = (t18 + t21); + *((unsigned char *)t25) = (unsigned char)2; + t26 = (t30 + 56U); + t27 = *((char **)t26); + t26 = (t27 + 0); + t29 = (t28 + 12U); + t64 = *((unsigned int *)t29); + t64 = (t64 * 1U); + memcpy(t26, t12, t64); + goto LAB8; + +LAB29: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t30 + 56U); + t23 = *((char **)t22); + t22 = (t23 + 0); + t25 = (t28 + 12U); + t15 = *((unsigned int *)t25); + t15 = (t15 * 1U); + memcpy(t22, t12, t15); + goto LAB8; + +LAB30: t11 = (t28 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t12 = xsi_get_transient_memory(t10); + memset(t12, 0, t10); + t18 = t12; + memset(t18, (unsigned char)3, t10); + t22 = (t30 + 56U); + t23 = *((char **)t22); + t22 = (t23 + 0); + t25 = (t28 + 12U); + t15 = *((unsigned int *)t25); + t15 = (t15 * 1U); + memcpy(t22, t12, t15); + goto LAB8; + +LAB31: t8 = 0; + t9 = 3; + +LAB32: if (t8 <= t9) + goto LAB33; + +LAB35: goto LAB8; + +LAB33: t11 = (t30 + 56U); + t12 = *((char **)t11); + t11 = (t28 + 0U); + t13 = *((int *)t11); + t18 = (t28 + 8U); + t14 = *((int *)t18); + t17 = (t8 - t13); + t10 = (t17 * t14); + t22 = (t28 + 4U); + t20 = *((int *)t22); + xsi_vhdl_check_range_of_index(t13, t20, t14, t8); + t15 = (1U * t10); + t21 = (0 + t15); + t23 = (t12 + t21); + *((unsigned char *)t23) = (unsigned char)1; + +LAB34: if (t8 == t9) + goto LAB35; + +LAB36: t13 = (t8 + 1); + t8 = t13; + goto LAB32; + +LAB38: t11 = (t38 + 56U); + t12 = *((char **)t11); + t13 = *((int *)t12); + t14 = (t13 * 4); + t17 = (t14 + t8); + t45 = (t17 < t5); + if (t45 != 0) + goto LAB41; + +LAB43: +LAB42: +LAB39: if (t8 == t9) + goto LAB40; + +LAB44: t13 = (t8 + 1); + t8 = t13; + goto LAB37; + +LAB41: t11 = (t30 + 56U); + t18 = *((char **)t11); + t11 = (t28 + 0U); + t20 = *((int *)t11); + t22 = (t28 + 8U); + t31 = *((int *)t22); + t49 = (t8 - t20); + t10 = (t49 * t31); + t23 = (t28 + 4U); + t52 = *((int *)t23); + xsi_vhdl_check_range_of_index(t20, t52, t31, t8); + t15 = (1U * t10); + t21 = (0 + t15); + t25 = (t18 + t21); + t67 = *((unsigned char *)t25); + t26 = (t19 + 56U); + t27 = *((char **)t26); + t26 = (t38 + 56U); + t29 = *((char **)t26); + t54 = *((int *)t29); + t57 = (t54 * 4); + t58 = (t57 + t8); + t26 = (t16 + 0U); + t60 = *((int *)t26); + t32 = (t16 + 8U); + t62 = *((int *)t32); + t63 = (t58 - t60); + t64 = (t63 * t62); + t33 = (t16 + 4U); + t77 = *((int *)t33); + xsi_vhdl_check_range_of_index(t60, t77, t62, t58); + t65 = (1U * t64); + t70 = (0 + t65); + t35 = (t27 + t70); + *((unsigned char *)t35) = t67; + goto LAB42; + +LAB46:; +} + +int xilinxcorelib_a_4048593843_3212880686_sub_2234054365_3212880686(char *t1, int t2, int t3) +{ + char t5[16]; + int t0; + char *t6; + char *t7; + unsigned char t8; + +LAB0: t6 = (t5 + 4U); + *((int *)t6) = t2; + t7 = (t5 + 8U); + *((int *)t7) = t3; + t8 = (t2 < t3); + if (t8 != 0) + goto LAB2; + +LAB4: t0 = t3; + +LAB1: return t0; +LAB2: t0 = t2; + goto LAB1; + +LAB3: xsi_error(ng3); + t0 = 0; + goto LAB1; + +LAB5: goto LAB3; + +LAB6: goto LAB3; + +} + +void xilinxcorelib_a_4048593843_3212880686_sub_1807611230_3212880686(char *t0, char *t1, char *t2, char *t3, char *t4) +{ + char t6[32]; + char *t7; + char *t8; + char *t9; + char *t10; + +LAB0: t7 = (t6 + 4U); + *((char **)t7) = t2; + t8 = (t6 + 12U); + *((char **)t8) = t3; + t9 = (t6 + 20U); + *((char **)t9) = t4; + xsi_access_variable_set_value(t2, 0); + xsi_access_variable_set_value(t3, 0); + t10 = (t4 + 0); + *((int *)t10) = 0; + +LAB1: return; +} + +void xilinxcorelib_a_4048593843_3212880686_sub_2129810750_3212880686(char *t0, char *t1, char *t2, char *t3, char *t4, char *t5, char *t6, char *t7) +{ + char t8[272]; + char t9[64]; + char t10[16]; + char t26[16]; + char t32[8]; + char t64[16]; + char t66[16]; + char t73[16]; + char t75[16]; + char *t11; + char *t12; + int t13; + unsigned int t14; + char *t15; + char *t16; + char *t17; + char *t18; + char *t19; + char *t20; + char *t21; + char *t22; + char *t23; + char *t24; + char *t25; + char *t27; + char *t28; + int t29; + char *t30; + char *t31; + char *t33; + char *t34; + char *t35; + char *t36; + char *t37; + char *t38; + unsigned char t39; + char *t40; + char *t41; + char *t42; + unsigned char t43; + char *t44; + unsigned char t45; + int t46; + int t47; + int t48; + int t49; + int t50; + unsigned int t51; + unsigned int t52; + int t53; + int t54; + int t55; + int t56; + int t57; + int t58; + int t59; + unsigned int t60; + unsigned int t61; + unsigned int t62; + unsigned char t63; + unsigned int t65; + unsigned int t67; + unsigned int t68; + unsigned int t69; + int t70; + char *t71; + char *t72; + char *t74; + int t76; + char *t77; + int t78; + char *t79; + int t80; + char *t81; + int t82; + int t83; + int t84; + char *t85; + int t86; + char *t87; + int t88; + char *t89; + int t90; + char *t91; + char *t92; + int t93; + char *t94; + char *t95; + char *t96; + int t97; + char *t98; + int t99; + char *t100; + int t101; + char *t102; + int t103; + int t104; + int t105; + char *t106; + int t107; + char *t108; + int t109; + char *t110; + int t111; + int t112; + unsigned int t113; + unsigned int t114; + unsigned int t115; + +LAB0: t11 = (t10 + 0U); + t12 = (t11 + 0U); + *((int *)t12) = 2; + t12 = (t11 + 4U); + *((int *)t12) = 0; + t12 = (t11 + 8U); + *((int *)t12) = -1; + t13 = (0 - 2); + t14 = (t13 * -1); + t14 = (t14 + 1); + t12 = (t11 + 12U); + *((unsigned int *)t12) = t14; + t12 = (t8 + 4U); + t15 = (t0 + 33256); + t16 = (t12 + 56U); + *((char **)t16) = t15; + t17 = (t12 + 40U); + *((char **)t17) = 0; + t18 = (t12 + 64U); + *((int *)t18) = 1; + t19 = (t12 + 48U); + *((char **)t19) = 0; + t20 = (t8 + 76U); + t21 = (t0 + 33256); + t22 = (t20 + 56U); + *((char **)t22) = t21; + t23 = (t20 + 40U); + *((char **)t23) = 0; + t24 = (t20 + 64U); + *((int *)t24) = 1; + t25 = (t20 + 48U); + *((char **)t25) = 0; + t27 = (t26 + 0U); + t28 = (t27 + 0U); + *((int *)t28) = 1; + t28 = (t27 + 4U); + *((int *)t28) = 0; + t28 = (t27 + 8U); + *((int *)t28) = -1; + t29 = (0 - 1); + t14 = (t29 * -1); + t14 = (t14 + 1); + t28 = (t27 + 12U); + *((unsigned int *)t28) = t14; + t28 = (t8 + 148U); + t30 = ((IEEE_P_2592010699) + 4024); + t31 = (t28 + 88U); + *((char **)t31) = t30; + t33 = (t28 + 56U); + *((char **)t33) = t32; + xsi_type_set_default_value(t30, t32, t26); + t34 = (t28 + 64U); + *((char **)t34) = t26; + t35 = (t28 + 80U); + *((unsigned int *)t35) = 2U; + t36 = (t9 + 4U); + *((char **)t36) = t2; + t37 = (t9 + 12U); + *((char **)t37) = t3; + t38 = (t9 + 20U); + t39 = (t4 != 0); + if (t39 == 1) + goto LAB3; + +LAB2: t40 = (t9 + 28U); + *((char **)t40) = t5; + t41 = (t9 + 36U); + *((char **)t41) = t6; + t42 = (t9 + 44U); + t43 = (t7 != 0); + if (t43 == 1) + goto LAB5; + +LAB4: t44 = (t9 + 52U); + *((char **)t44) = t10; + t45 = xsi_access_variable_is_null(t2); + if ((!(t45)) != 0) + goto LAB6; + +LAB8: +LAB7: t11 = (t0 + 32744); + t15 = xsi_variable_create(ng4, t11, 0, 0, 0, 0); + xsi_access_variable_set_value(t20, t15); + t11 = xsi_access_variable_all(t20); + t15 = (t11 + 56U); + t16 = *((char **)t15); + t15 = (t16 + 16U); + xsi_access_variable_assign(t15, t12); + t39 = xsi_access_variable_is_null(t2); + if ((!(t39)) != 0) + goto LAB9; + +LAB11: +LAB10: t11 = (t5 + 0U); + t29 = *((int *)t11); + t15 = (t5 + 4U); + t46 = *((int *)t15); + t16 = (t5 + 8U); + t47 = *((int *)t16); + if (t29 > t46) + goto LAB12; + +LAB13: if (t47 == -1) + goto LAB17; + +LAB18: t13 = t46; + +LAB14: t17 = (t5 + 0U); + t48 = *((int *)t17); + t18 = (t5 + 8U); + t49 = *((int *)t18); + t50 = (t13 - t48); + t14 = (t50 * t49); + t51 = (1U * t14); + t52 = (0 + t51); + t19 = (t4 + t52); + t39 = *((unsigned char *)t19); + t43 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t39); + t21 = (t5 + 0U); + t54 = *((int *)t21); + t22 = (t5 + 4U); + t55 = *((int *)t22); + t23 = (t5 + 8U); + t56 = *((int *)t23); + if (t54 > t55) + goto LAB19; + +LAB20: if (t56 == -1) + goto LAB24; + +LAB25: t53 = t54; + +LAB21: t24 = (t5 + 0U); + t57 = *((int *)t24); + t25 = (t5 + 8U); + t58 = *((int *)t25); + t59 = (t53 - t57); + t60 = (t59 * t58); + t61 = (1U * t60); + t62 = (0 + t61); + t27 = (t4 + t62); + t45 = *((unsigned char *)t27); + t63 = ieee_p_2592010699_sub_1690584930_2592010699(IEEE_P_2592010699, t45); + t31 = ((IEEE_P_2592010699) + 4024); + t30 = xsi_base_array_concat(t30, t64, t31, (char)99, t43, (char)99, t63, (char)101); + t33 = (t28 + 56U); + t34 = *((char **)t33); + t33 = (t34 + 0); + t65 = (1U + 1U); + memcpy(t33, t30, t65); + t11 = (t10 + 0U); + t13 = *((int *)t11); + t15 = (t10 + 8U); + t29 = *((int *)t15); + t46 = (1 - t13); + t14 = (t46 * t29); + t51 = (1U * t14); + t52 = (0 + t51); + t16 = (t7 + t52); + t39 = *((unsigned char *)t16); + t43 = (t39 == (unsigned char)2); + if (t43 != 0) + goto LAB26; + +LAB28: t11 = (t10 + 0U); + t13 = *((int *)t11); + t15 = (t10 + 8U); + t29 = *((int *)t15); + t46 = (2 - t13); + t14 = (t46 * t29); + t51 = (1U * t14); + t52 = (0 + t51); + t16 = (t7 + t52); + t39 = *((unsigned char *)t16); + t43 = (t39 == (unsigned char)3); + if (t43 != 0) + goto LAB29; + +LAB31: t11 = (t10 + 0U); + t13 = *((int *)t11); + t15 = (t10 + 8U); + t29 = *((int *)t15); + t46 = (1 - t13); + t14 = (t46 * t29); + t51 = (1U * t14); + t52 = (0 + t51); + t16 = (t7 + t52); + t39 = *((unsigned char *)t16); + t18 = ((IEEE_P_2592010699) + 4024); + t17 = xsi_base_array_concat(t17, t64, t18, (char)99, t39, (char)99, (unsigned char)2, (char)101); + t19 = (t28 + 56U); + t21 = *((char **)t19); + t22 = ((IEEE_P_2592010699) + 4024); + t19 = xsi_base_array_concat(t19, t66, t22, (char)97, t17, t64, (char)97, t21, t26, (char)101); + t23 = (t5 + 0U); + t47 = *((int *)t23); + t24 = (t5 + 0U); + t49 = *((int *)t24); + t25 = (t5 + 4U); + t50 = *((int *)t25); + t27 = (t5 + 8U); + t53 = *((int *)t27); + if (t49 > t50) + goto LAB32; + +LAB33: if (t53 == -1) + goto LAB37; + +LAB38: t48 = t50; + +LAB34: t54 = (t48 - 2); + t60 = (t47 - t54); + t30 = (t5 + 0U); + t56 = *((int *)t30); + t31 = (t5 + 4U); + t57 = *((int *)t31); + t33 = (t5 + 8U); + t58 = *((int *)t33); + if (t56 > t57) + goto LAB39; + +LAB40: if (t58 == -1) + goto LAB44; + +LAB45: t55 = t56; + +LAB41: t34 = (t5 + 4U); + t59 = *((int *)t34); + t35 = (t5 + 8U); + t70 = *((int *)t35); + xsi_vhdl_check_range_of_slice(t47, t59, t70, t54, t55, -1); + t61 = (t60 * 1U); + t62 = (0 + t61); + t71 = (t4 + t62); + t74 = ((IEEE_P_2592010699) + 4024); + t77 = (t5 + 0U); + t78 = *((int *)t77); + t79 = (t5 + 4U); + t80 = *((int *)t79); + t81 = (t5 + 8U); + t82 = *((int *)t81); + if (t78 > t80) + goto LAB46; + +LAB47: if (t82 == -1) + goto LAB51; + +LAB52: t76 = t80; + +LAB48: t83 = (t76 - 2); + t85 = (t5 + 0U); + t86 = *((int *)t85); + t87 = (t5 + 4U); + t88 = *((int *)t87); + t89 = (t5 + 8U); + t90 = *((int *)t89); + if (t86 > t88) + goto LAB53; + +LAB54: if (t90 == -1) + goto LAB58; + +LAB59: t84 = t86; + +LAB55: t91 = (t75 + 0U); + t92 = (t91 + 0U); + *((int *)t92) = t83; + t92 = (t91 + 4U); + *((int *)t92) = t84; + t92 = (t91 + 8U); + *((int *)t92) = -1; + t93 = (t84 - t83); + t65 = (t93 * -1); + t65 = (t65 + 1); + t92 = (t91 + 12U); + *((unsigned int *)t92) = t65; + t72 = xsi_base_array_concat(t72, t73, t74, (char)97, t19, t66, (char)97, t71, t75, (char)101); + t92 = xsi_access_variable_all(t20); + t94 = (t92 + 56U); + t95 = *((char **)t94); + t65 = (0 + 0U); + t94 = (t95 + t65); + t67 = (1U + 1U); + t96 = (t26 + 12U); + t68 = *((unsigned int *)t96); + t68 = (t68 * 1U); + t69 = (t67 + t68); + t98 = (t5 + 0U); + t99 = *((int *)t98); + t100 = (t5 + 4U); + t101 = *((int *)t100); + t102 = (t5 + 8U); + t103 = *((int *)t102); + if (t99 > t101) + goto LAB60; + +LAB61: if (t103 == -1) + goto LAB65; + +LAB66: t97 = t101; + +LAB62: t104 = (t97 - 2); + t106 = (t5 + 0U); + t107 = *((int *)t106); + t108 = (t5 + 4U); + t109 = *((int *)t108); + t110 = (t5 + 8U); + t111 = *((int *)t110); + if (t107 > t109) + goto LAB67; + +LAB68: if (t111 == -1) + goto LAB72; + +LAB73: t105 = t107; + +LAB69: t112 = (t105 - t104); + t113 = (t112 * -1); + t113 = (t113 + 1); + t114 = (1U * t113); + t115 = (t69 + t114); + memcpy(t94, t72, t115); + +LAB30: +LAB27: t13 = *((int *)t6); + t29 = (t13 + 1); + t11 = (t6 + 0); + *((int *)t11) = t29; + t11 = xsi_access_variable_all(t20); + t15 = (t11 + 56U); + t16 = *((char **)t15); + t15 = (t16 + 16U); + t39 = xsi_access_variable_is_null(t15); + if (t39 != 0) + goto LAB74; + +LAB76: +LAB75: xsi_access_variable_assign(t2, t20); + +LAB1: xsi_access_variable_delete(t20); + xsi_access_variable_delete(t12); + return; +LAB3: *((char **)t38) = *((char **)t4); + goto LAB2; + +LAB5: *((char **)t42) = *((char **)t7); + goto LAB4; + +LAB6: xsi_access_variable_assign(t12, t2); + goto LAB7; + +LAB9: t11 = xsi_access_variable_all(t12); + t15 = (t11 + 56U); + t16 = *((char **)t15); + t15 = (t16 + 88U); + xsi_access_variable_assign(t15, t20); + goto LAB10; + +LAB12: if (t47 == 1) + goto LAB15; + +LAB16: t13 = t29; + goto LAB14; + +LAB15: t13 = t46; + goto LAB14; + +LAB17: t13 = t29; + goto LAB14; + +LAB19: if (t56 == 1) + goto LAB22; + +LAB23: t53 = t55; + goto LAB21; + +LAB22: t53 = t54; + goto LAB21; + +LAB24: t53 = t55; + goto LAB21; + +LAB26: t17 = (t10 + 0U); + t47 = *((int *)t17); + t18 = (t10 + 8U); + t48 = *((int *)t18); + t49 = (0 - t47); + t60 = (t49 * t48); + t61 = (1U * t60); + t62 = (0 + t61); + t19 = (t7 + t62); + t45 = *((unsigned char *)t19); + t22 = ((IEEE_P_2592010699) + 4024); + t21 = xsi_base_array_concat(t21, t64, t22, (char)99, (unsigned char)2, (char)99, t45, (char)101); + t24 = ((IEEE_P_2592010699) + 4024); + t23 = xsi_base_array_concat(t23, t66, t24, (char)97, t21, t64, (char)97, t4, t5, (char)101); + t25 = xsi_access_variable_all(t20); + t27 = (t25 + 56U); + t30 = *((char **)t27); + t65 = (0 + 0U); + t27 = (t30 + t65); + t67 = (1U + 1U); + t31 = (t5 + 12U); + t68 = *((unsigned int *)t31); + t68 = (t68 * 1U); + t69 = (t67 + t68); + memcpy(t27, t23, t69); + goto LAB27; + +LAB29: t17 = (t10 + 0U); + t47 = *((int *)t17); + t18 = (t10 + 8U); + t48 = *((int *)t18); + t49 = (1 - t47); + t60 = (t49 * t48); + t61 = (1U * t60); + t62 = (0 + t61); + t19 = (t7 + t62); + t45 = *((unsigned char *)t19); + t22 = ((IEEE_P_2592010699) + 4024); + t21 = xsi_base_array_concat(t21, t64, t22, (char)99, t45, (char)99, (unsigned char)2, (char)101); + t23 = (t28 + 56U); + t24 = *((char **)t23); + t25 = ((IEEE_P_2592010699) + 4024); + t23 = xsi_base_array_concat(t23, t66, t25, (char)97, t21, t64, (char)97, t24, t26, (char)101); + t27 = xsi_access_variable_all(t20); + t30 = (t27 + 56U); + t31 = *((char **)t30); + t65 = (0 + 0U); + t30 = (t31 + t65); + t67 = (1U + 1U); + t33 = (t26 + 12U); + t68 = *((unsigned int *)t33); + t68 = (t68 * 1U); + t69 = (t67 + t68); + memcpy(t30, t23, t69); + goto LAB30; + +LAB32: if (t53 == 1) + goto LAB35; + +LAB36: t48 = t49; + goto LAB34; + +LAB35: t48 = t50; + goto LAB34; + +LAB37: t48 = t49; + goto LAB34; + +LAB39: if (t58 == 1) + goto LAB42; + +LAB43: t55 = t57; + goto LAB41; + +LAB42: t55 = t56; + goto LAB41; + +LAB44: t55 = t57; + goto LAB41; + +LAB46: if (t82 == 1) + goto LAB49; + +LAB50: t76 = t78; + goto LAB48; + +LAB49: t76 = t80; + goto LAB48; + +LAB51: t76 = t78; + goto LAB48; + +LAB53: if (t90 == 1) + goto LAB56; + +LAB57: t84 = t88; + goto LAB55; + +LAB56: t84 = t86; + goto LAB55; + +LAB58: t84 = t88; + goto LAB55; + +LAB60: if (t103 == 1) + goto LAB63; + +LAB64: t97 = t99; + goto LAB62; + +LAB63: t97 = t101; + goto LAB62; + +LAB65: t97 = t99; + goto LAB62; + +LAB67: if (t111 == 1) + goto LAB70; + +LAB71: t105 = t109; + goto LAB69; + +LAB70: t105 = t107; + goto LAB69; + +LAB72: t105 = t109; + goto LAB69; + +LAB74: xsi_access_variable_assign(t3, t20); + goto LAB75; + +} + +void xilinxcorelib_a_4048593843_3212880686_sub_2966016925_3212880686(char *t0, char *t1, char *t2, char *t3, char *t4, char *t5) +{ + char t6[128]; + char t7[48]; + char t8[16]; + char t24[16]; + char *t9; + char *t10; + int t11; + unsigned int t12; + char *t13; + int t14; + int t15; + int t16; + char *t17; + char *t18; + char *t19; + int t20; + int t21; + int t22; + unsigned int t23; + char *t25; + int t26; + int t27; + char *t28; + int t29; + unsigned int t30; + char *t31; + char *t32; + char *t33; + char *t34; + char *t35; + char *t36; + char *t37; + char *t38; + char *t39; + char *t40; + char *t41; + char *t42; + char *t43; + char *t44; + char *t45; + char *t46; + char *t47; + char *t48; + int t49; + int t50; + int t51; + unsigned int t52; + unsigned int t53; + int t54; + +LAB0: t9 = (t8 + 0U); + t10 = (t9 + 0U); + *((int *)t10) = 1; + t10 = (t9 + 4U); + *((int *)t10) = 0; + t10 = (t9 + 8U); + *((int *)t10) = -1; + t11 = (0 - 1); + t12 = (t11 * -1); + t12 = (t12 + 1); + t10 = (t9 + 12U); + *((unsigned int *)t10) = t12; + t10 = (t0 + 20224U); + t13 = *((char **)t10); + t14 = *((int *)t13); + t15 = (t14 + 1); + t16 = (0 - t15); + t12 = (t16 * -1); + t12 = (t12 + 1); + t12 = (t12 * 1U); + t10 = xsi_get_transient_memory(t12); + memset(t10, 0, t12); + t17 = t10; + memset(t17, (unsigned char)2, t12); + t18 = (t0 + 20224U); + t19 = *((char **)t18); + t20 = *((int *)t19); + t21 = (t20 + 1); + t22 = (0 - t21); + t23 = (t22 * -1); + t23 = (t23 + 1); + t23 = (t23 * 1U); + t18 = (t0 + 20224U); + t25 = *((char **)t18); + t26 = *((int *)t25); + t27 = (t26 + 1); + t18 = (t24 + 0U); + t28 = (t18 + 0U); + *((int *)t28) = t27; + t28 = (t18 + 4U); + *((int *)t28) = 0; + t28 = (t18 + 8U); + *((int *)t28) = -1; + t29 = (0 - t27); + t30 = (t29 * -1); + t30 = (t30 + 1); + t28 = (t18 + 12U); + *((unsigned int *)t28) = t30; + t28 = (t6 + 4U); + t31 = ((IEEE_P_2592010699) + 4024); + t32 = (t28 + 88U); + *((char **)t32) = t31; + t33 = (char *)alloca(t23); + t34 = (t28 + 56U); + *((char **)t34) = t33; + memcpy(t33, t10, t23); + t35 = (t28 + 64U); + *((char **)t35) = t24; + t36 = (t28 + 80U); + *((unsigned int *)t36) = t23; + t37 = (t7 + 4U); + *((char **)t37) = t2; + t38 = (t7 + 12U); + *((char **)t38) = t3; + t39 = (t7 + 20U); + *((char **)t39) = t4; + t40 = (t7 + 28U); + *((char **)t40) = t5; + t41 = (t7 + 36U); + *((char **)t41) = t8; + t42 = xsi_access_variable_all(t2); + t43 = (t42 + 56U); + t44 = *((char **)t43); + t30 = (0 + 0U); + t43 = (t44 + t30); + t45 = (t28 + 56U); + t46 = *((char **)t45); + t45 = (t46 + 0); + t47 = (t0 + 20224U); + t48 = *((char **)t47); + t49 = *((int *)t48); + t50 = (t49 + 1); + t51 = (0 - t50); + t52 = (t51 * -1); + t52 = (t52 + 1); + t52 = (t52 * 1U); + memcpy(t45, t43, t52); + t9 = (t28 + 56U); + t10 = *((char **)t9); + t9 = (t24 + 0U); + t11 = *((int *)t9); + t13 = (t0 + 20224U); + t17 = *((char **)t13); + t14 = *((int *)t17); + t15 = (t14 - 1); + t12 = (t11 - t15); + t13 = (t24 + 4U); + t16 = *((int *)t13); + t18 = (t24 + 8U); + t20 = *((int *)t18); + xsi_vhdl_check_range_of_slice(t11, t16, t20, t15, 0, -1); + t23 = (t12 * 1U); + t30 = (0 + t23); + t19 = (t10 + t30); + t25 = (t3 + 0); + t31 = (t0 + 20224U); + t32 = *((char **)t31); + t21 = *((int *)t32); + t22 = (t21 - 1); + t26 = (0 - t22); + t52 = (t26 * -1); + t52 = (t52 + 1); + t53 = (1U * t52); + memcpy(t25, t19, t53); + t9 = (t28 + 56U); + t10 = *((char **)t9); + t9 = (t24 + 0U); + t11 = *((int *)t9); + t13 = (t24 + 0U); + t15 = *((int *)t13); + t17 = (t24 + 4U); + t16 = *((int *)t17); + t18 = (t24 + 8U); + t20 = *((int *)t18); + if (t15 > t16) + goto LAB2; + +LAB3: if (t20 == -1) + goto LAB7; + +LAB8: t14 = t16; + +LAB4: t12 = (t11 - t14); + t19 = (t0 + 20224U); + t25 = *((char **)t19); + t21 = *((int *)t25); + t19 = (t24 + 4U); + t22 = *((int *)t19); + t31 = (t24 + 8U); + t26 = *((int *)t31); + xsi_vhdl_check_range_of_slice(t11, t22, t26, t14, t21, -1); + t23 = (t12 * 1U); + t30 = (0 + t23); + t32 = (t10 + t30); + t34 = (t5 + 0); + t35 = (t24 + 0U); + t29 = *((int *)t35); + t36 = (t24 + 4U); + t49 = *((int *)t36); + t42 = (t24 + 8U); + t50 = *((int *)t42); + if (t29 > t49) + goto LAB9; + +LAB10: if (t50 == -1) + goto LAB14; + +LAB15: t27 = t49; + +LAB11: t43 = (t0 + 20224U); + t44 = *((char **)t43); + t51 = *((int *)t44); + t54 = (t51 - t27); + t52 = (t54 * -1); + t52 = (t52 + 1); + t53 = (1U * t52); + memcpy(t34, t32, t53); + +LAB1: return; +LAB2: if (t20 == 1) + goto LAB5; + +LAB6: t14 = t15; + goto LAB4; + +LAB5: t14 = t16; + goto LAB4; + +LAB7: t14 = t15; + goto LAB4; + +LAB9: if (t50 == 1) + goto LAB12; + +LAB13: t27 = t29; + goto LAB11; + +LAB12: t27 = t49; + goto LAB11; + +LAB14: t27 = t29; + goto LAB11; + +} + +void xilinxcorelib_a_4048593843_3212880686_sub_2068494565_3212880686(char *t0, char *t1, char *t2, char *t3, char *t4) +{ + char t5[152]; + char t6[32]; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t15; + char *t16; + char *t17; + char *t18; + char *t19; + char *t20; + char *t21; + unsigned char t22; + int t23; + int t24; + +LAB0: t7 = (t5 + 4U); + t8 = (t0 + 33256); + t9 = (t7 + 56U); + *((char **)t9) = t8; + t10 = (t7 + 40U); + *((char **)t10) = 0; + t11 = (t7 + 64U); + *((int *)t11) = 1; + t12 = (t7 + 48U); + *((char **)t12) = 0; + t13 = (t5 + 76U); + t14 = (t0 + 33256); + t15 = (t13 + 56U); + *((char **)t15) = t14; + t16 = (t13 + 40U); + *((char **)t16) = 0; + t17 = (t13 + 64U); + *((int *)t17) = 1; + t18 = (t13 + 48U); + *((char **)t18) = 0; + t19 = (t6 + 4U); + *((char **)t19) = t2; + t20 = (t6 + 12U); + *((char **)t20) = t3; + t21 = (t6 + 20U); + *((char **)t21) = t4; + xsi_access_variable_assign(t7, t3); + t8 = xsi_access_variable_all(t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + t9 = (t10 + 88U); + t22 = xsi_access_variable_is_null(t9); + if (t22 != 0) + goto LAB2; + +LAB4: t8 = xsi_access_variable_all(t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + t9 = (t10 + 88U); + xsi_access_variable_assign(t13, t9); + t8 = xsi_access_variable_all(t13); + t9 = (t8 + 56U); + t10 = *((char **)t9); + t9 = (t10 + 16U); + xsi_access_variable_set_value(t9, 0); + +LAB3: xsi_access_variable_deallocate(t7); + t22 = xsi_access_variable_is_null(t13); + if (t22 != 0) + goto LAB5; + +LAB7: +LAB6: xsi_access_variable_assign(t3, t13); + t23 = *((int *)t4); + t24 = (t23 - 1); + t8 = (t4 + 0); + *((int *)t8) = t24; + +LAB1: xsi_access_variable_delete(t13); + xsi_access_variable_delete(t7); + return; +LAB2: xsi_access_variable_set_value(t13, 0); + goto LAB3; + +LAB5: xsi_access_variable_set_value(t2, 0); + goto LAB6; + +} + +void xilinxcorelib_a_4048593843_3212880686_sub_3751606365_3212880686(char *t0, char *t1, char *t2, char *t3) +{ + char t4[200]; + char t5[24]; + char t15[8]; + char *t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + char *t12; + char *t13; + char *t14; + char *t16; + char *t17; + char *t18; + char *t19; + unsigned char t20; + int t21; + int t22; + +LAB0: t6 = (t4 + 4U); + t7 = (t0 + 33256); + t8 = (t6 + 56U); + *((char **)t8) = t7; + t9 = (t6 + 40U); + *((char **)t9) = 0; + t10 = (t6 + 64U); + *((int *)t10) = 1; + t11 = (t6 + 48U); + *((char **)t11) = 0; + t12 = (t4 + 76U); + t13 = ((STD_STANDARD) + 384); + t14 = (t12 + 88U); + *((char **)t14) = t13; + t16 = (t12 + 56U); + *((char **)t16) = t15; + *((int *)t15) = 0; + t17 = (t12 + 80U); + *((unsigned int *)t17) = 4U; + t18 = (t5 + 4U); + *((char **)t18) = t2; + t19 = (t5 + 12U); + *((char **)t19) = t3; + t20 = xsi_access_variable_is_null(t2); + if ((!(t20)) != 0) + goto LAB2; + +LAB4: +LAB3: t7 = (t12 + 56U); + t8 = *((char **)t7); + t21 = *((int *)t8); + t7 = (t3 + 0); + *((int *)t7) = t21; + +LAB1: xsi_access_variable_delete(t6); + return; +LAB2: xsi_access_variable_assign(t6, t2); + t7 = (t12 + 56U); + t8 = *((char **)t7); + t7 = (t8 + 0); + *((int *)t7) = 1; + +LAB5: t7 = xsi_access_variable_all(t6); + t8 = (t7 + 56U); + t9 = *((char **)t8); + t8 = (t9 + 16U); + t20 = xsi_access_variable_is_null(t8); + if ((!(t20)) != 0) + goto LAB6; + +LAB8: goto LAB3; + +LAB6: t10 = (t12 + 56U); + t11 = *((char **)t10); + t21 = *((int *)t11); + t22 = (t21 + 1); + t10 = (t12 + 56U); + t13 = *((char **)t10); + t10 = (t13 + 0); + *((int *)t10) = t22; + t7 = xsi_access_variable_all(t6); + t8 = (t7 + 56U); + t9 = *((char **)t8); + t8 = (t9 + 16U); + xsi_access_variable_assign(t6, t8); + goto LAB5; + +LAB7:; +} + +char *xilinxcorelib_a_4048593843_3212880686_sub_4190946951_3212880686(char *t1, char *t2, int t3, int t4, int t5) +{ + char t6[248]; + char t7[16]; + char t16[16]; + char t35[16]; + char t50[16]; + char *t0; + int t8; + int t9; + unsigned int t10; + char *t11; + char *t12; + int t13; + int t14; + unsigned int t15; + int t17; + char *t18; + char *t19; + int t20; + unsigned int t21; + char *t22; + char *t23; + char *t24; + char *t25; + char *t26; + char *t27; + int t28; + int t29; + char *t30; + char *t31; + int t32; + int t33; + unsigned int t34; + int t36; + char *t37; + char *t38; + int t39; + unsigned int t40; + char *t41; + char *t42; + char *t43; + char *t44; + char *t45; + char *t46; + char *t47; + char *t48; + char *t49; + char *t51; + char *t52; + char *t53; + char *t54; + unsigned char t55; + +LAB0: t8 = (t4 - 1); + t9 = (0 - t8); + t10 = (t9 * -1); + t10 = (t10 + 1); + t10 = (t10 * 1U); + t11 = xsi_get_transient_memory(t10); + memset(t11, 0, t10); + t12 = t11; + memset(t12, (unsigned char)2, t10); + t13 = (t4 - 1); + t14 = (0 - t13); + t15 = (t14 * -1); + t15 = (t15 + 1); + t15 = (t15 * 1U); + t17 = (t4 - 1); + t18 = (t16 + 0U); + t19 = (t18 + 0U); + *((int *)t19) = t17; + t19 = (t18 + 4U); + *((int *)t19) = 0; + t19 = (t18 + 8U); + *((int *)t19) = -1; + t20 = (0 - t17); + t21 = (t20 * -1); + t21 = (t21 + 1); + t19 = (t18 + 12U); + *((unsigned int *)t19) = t21; + t19 = (t6 + 4U); + t22 = ((IEEE_P_2592010699) + 4024); + t23 = (t19 + 88U); + *((char **)t23) = t22; + t24 = (char *)alloca(t15); + t25 = (t19 + 56U); + *((char **)t25) = t24; + memcpy(t24, t11, t15); + t26 = (t19 + 64U); + *((char **)t26) = t16; + t27 = (t19 + 80U); + *((unsigned int *)t27) = t15; + t28 = (t5 - 1); + t29 = (0 - t28); + t21 = (t29 * -1); + t21 = (t21 + 1); + t21 = (t21 * 1U); + t30 = xsi_get_transient_memory(t21); + memset(t30, 0, t21); + t31 = t30; + memset(t31, (unsigned char)2, t21); + t32 = (t5 - 1); + t33 = (0 - t32); + t34 = (t33 * -1); + t34 = (t34 + 1); + t34 = (t34 * 1U); + t36 = (t5 - 1); + t37 = (t35 + 0U); + t38 = (t37 + 0U); + *((int *)t38) = t36; + t38 = (t37 + 4U); + *((int *)t38) = 0; + t38 = (t37 + 8U); + *((int *)t38) = -1; + t39 = (0 - t36); + t40 = (t39 * -1); + t40 = (t40 + 1); + t38 = (t37 + 12U); + *((unsigned int *)t38) = t40; + t38 = (t6 + 124U); + t41 = ((IEEE_P_2592010699) + 4024); + t42 = (t38 + 88U); + *((char **)t42) = t41; + t43 = (char *)alloca(t34); + t44 = (t38 + 56U); + *((char **)t44) = t43; + memcpy(t43, t30, t34); + t45 = (t38 + 64U); + *((char **)t45) = t35; + t46 = (t38 + 80U); + *((unsigned int *)t46) = t34; + t47 = (t7 + 4U); + *((int *)t47) = t3; + t48 = (t7 + 8U); + *((int *)t48) = t4; + t49 = (t7 + 12U); + *((int *)t49) = t5; + t51 = ieee_p_3499444699_sub_2213602152_3499444699(IEEE_P_3499444699, t50, t3, t4); + t52 = (t19 + 56U); + t53 = *((char **)t52); + t52 = (t53 + 0); + t54 = (t50 + 12U); + t40 = *((unsigned int *)t54); + t40 = (t40 * 1U); + memcpy(t52, t51, t40); + t55 = (t5 <= t4); + if (t55 != 0) + goto LAB2; + +LAB4: t11 = (t19 + 56U); + t12 = *((char **)t11); + t11 = (t16 + 0U); + t8 = *((int *)t11); + t9 = (t5 - 1); + t10 = (t8 - t9); + t18 = (t16 + 4U); + t13 = *((int *)t18); + t22 = (t16 + 8U); + t14 = *((int *)t22); + xsi_vhdl_check_range_of_slice(t8, t13, t14, t9, 0, -1); + t15 = (t10 * 1U); + t21 = (0 + t15); + t23 = (t12 + t21); + t25 = (t38 + 56U); + t26 = *((char **)t25); + t25 = (t26 + 0); + t17 = (t5 - 1); + t20 = (0 - t17); + t34 = (t20 * -1); + t34 = (t34 + 1); + t40 = (1U * t34); + memcpy(t25, t23, t40); + +LAB3: t11 = (t38 + 56U); + t12 = *((char **)t11); + t11 = (t35 + 12U); + t10 = *((unsigned int *)t11); + t10 = (t10 * 1U); + t0 = xsi_get_transient_memory(t10); + memcpy(t0, t12, t10); + t18 = (t35 + 0U); + t8 = *((int *)t18); + t22 = (t35 + 4U); + t9 = *((int *)t22); + t23 = (t35 + 8U); + t13 = *((int *)t23); + t25 = (t2 + 0U); + t26 = (t25 + 0U); + *((int *)t26) = t8; + t26 = (t25 + 4U); + *((int *)t26) = t9; + t26 = (t25 + 8U); + *((int *)t26) = t13; + t14 = (t9 - t8); + t15 = (t14 * t13); + t15 = (t15 + 1); + t26 = (t25 + 12U); + *((unsigned int *)t26) = t15; + +LAB1: return t0; +LAB2: t11 = (t19 + 56U); + t12 = *((char **)t11); + t11 = (t16 + 0U); + t8 = *((int *)t11); + t9 = (t4 - 1); + t10 = (t8 - t9); + t13 = (t4 - t5); + t18 = (t16 + 4U); + t14 = *((int *)t18); + t22 = (t16 + 8U); + t17 = *((int *)t22); + xsi_vhdl_check_range_of_slice(t8, t14, t17, t9, t13, -1); + t15 = (t10 * 1U); + t21 = (0 + t15); + t23 = (t12 + t21); + t25 = (t38 + 56U); + t26 = *((char **)t25); + t25 = (t26 + 0); + t20 = (t4 - 1); + t28 = (t4 - t5); + t29 = (t28 - t20); + t34 = (t29 * -1); + t34 = (t34 + 1); + t40 = (1U * t34); + memcpy(t25, t23, t40); + goto LAB3; + +LAB5:; +} + +static void xilinxcorelib_a_4048593843_3212880686_p_0(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 29624); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_1(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 29688); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_2(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + +LAB0: +LAB3: t1 = (t0 + 29752); + t2 = (t1 + 56U); + t3 = *((char **)t2); + t4 = (t3 + 56U); + t5 = *((char **)t4); + *((unsigned char *)t5) = (unsigned char)2; + xsi_driver_first_trans_fast(t1); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_3(char *t0) +{ + char *t1; + char *t2; + int t3; + char *t4; + int t5; + int t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 8528U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 * t5); + t1 = (t0 + 29816); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t6; + xsi_driver_first_trans_fast(t1); + +LAB2: t11 = (t0 + 29208); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_4(char *t0) +{ + char *t1; + char *t2; + int t3; + char *t4; + int t5; + int t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 8688U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 * t5); + t1 = (t0 + 29880); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t6; + xsi_driver_first_trans_fast(t1); + +LAB2: t11 = (t0 + 29224); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_5(char *t0) +{ + char *t1; + char *t2; + int t3; + char *t4; + int t5; + int t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 8848U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 * t5); + t1 = (t0 + 29944); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t6; + xsi_driver_first_trans_fast(t1); + +LAB2: t11 = (t0 + 29240); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_6(char *t0) +{ + char *t1; + char *t2; + int t3; + char *t4; + int t5; + int t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: +LAB3: t1 = (t0 + 9008U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 * t5); + t1 = (t0 + 30008); + t7 = (t1 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t6; + xsi_driver_first_trans_fast(t1); + +LAB2: t11 = (t0 + 29256); + *((int *)t11) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_7(char *t0) +{ + unsigned char t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + char *t10; + char *t11; + +LAB0: t1 = (8 == 2); + if (t1 != 0) + goto LAB3; + +LAB4: +LAB5: t7 = (t0 + 30072); + t8 = (t7 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = (unsigned char)2; + xsi_driver_first_trans_fast(t7); + +LAB2: +LAB1: return; +LAB3: t2 = (t0 + 30072); + t3 = (t2 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + *((unsigned char *)t6) = (unsigned char)3; + xsi_driver_first_trans_fast(t2); + goto LAB2; + +LAB6: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_8(char *t0) +{ + char *t1; + char *t2; + int t3; + char *t4; + int t5; + unsigned char t6; + char *t7; + int t8; + char *t9; + int t10; + int t11; + char *t12; + char *t13; + char *t14; + char *t15; + int t16; + +LAB0: t1 = (t0 + 9488U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 9968U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 >= t5); + if (t6 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 20464U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t5 = (8192 * t3); + t1 = (t0 + 9488U); + t4 = *((char **)t1); + t8 = *((int *)t4); + t10 = (t5 + t8); + t1 = (t0 + 9968U); + t7 = *((char **)t1); + t11 = *((int *)t7); + t16 = (t10 - t11); + t1 = (t0 + 30136); + t9 = (t1 + 56U); + t12 = *((char **)t9); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((int *)t14) = t16; + xsi_driver_first_trans_fast(t1); + +LAB3: t1 = (t0 + 9808U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 9648U); + t4 = *((char **)t1); + t5 = *((int *)t4); + t6 = (t3 >= t5); + if (t6 != 0) + goto LAB5; + +LAB7: t1 = (t0 + 20344U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t5 = (8192 * t3); + t1 = (t0 + 9808U); + t4 = *((char **)t1); + t8 = *((int *)t4); + t10 = (t5 + t8); + t1 = (t0 + 9648U); + t7 = *((char **)t1); + t11 = *((int *)t7); + t16 = (t10 - t11); + t1 = (t0 + 30200); + t9 = (t1 + 56U); + t12 = *((char **)t9); + t13 = (t12 + 56U); + t14 = *((char **)t13); + *((int *)t14) = t16; + xsi_driver_first_trans_fast(t1); + +LAB6: t1 = (t0 + 29272); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t1 = (t0 + 9488U); + t7 = *((char **)t1); + t8 = *((int *)t7); + t1 = (t0 + 9968U); + t9 = *((char **)t1); + t10 = *((int *)t9); + t11 = (t8 - t10); + t1 = (t0 + 30136); + t12 = (t1 + 56U); + t13 = *((char **)t12); + t14 = (t13 + 56U); + t15 = *((char **)t14); + *((int *)t15) = t11; + xsi_driver_first_trans_fast(t1); + goto LAB3; + +LAB5: t1 = (t0 + 9808U); + t7 = *((char **)t1); + t8 = *((int *)t7); + t1 = (t0 + 9648U); + t9 = *((char **)t1); + t10 = *((int *)t9); + t11 = (t8 - t10); + t1 = (t0 + 30200); + t12 = (t1 + 56U); + t13 = *((char **)t12); + t14 = (t13 + 56U); + t15 = *((char **)t14); + *((int *)t15) = t11; + xsi_driver_first_trans_fast(t1); + goto LAB6; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_9(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 13168U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30264); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29288); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_10(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 13328U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30328); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29304); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_11(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 13808U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30392); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29320); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_12(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 13968U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30456); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29336); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_13(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 14288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30520); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29352); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_14(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 14608U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30584); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29368); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_15(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = xsi_get_transient_memory(13U); + memset(t1, 0, 13U); + t2 = t1; + memset(t2, (unsigned char)2, 13U); + t3 = (t0 + 30648); + t4 = (t3 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + memcpy(t7, t1, 13U); + xsi_driver_first_trans_fast_port(t3); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_16(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = xsi_get_transient_memory(13U); + memset(t1, 0, 13U); + t2 = t1; + memset(t2, (unsigned char)2, 13U); + t3 = (t0 + 30712); + t4 = (t3 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + memcpy(t7, t1, 13U); + xsi_driver_first_trans_fast_port(t3); + +LAB2: +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_17(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10288U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30776); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29384); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_18(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10128U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30840); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29400); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_19(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10608U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30904); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29416); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_20(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + +LAB0: +LAB3: t1 = (t0 + 10448U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 30968); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_fast_port(t1); + +LAB2: t8 = (t0 + 29432); + *((int *)t8) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_21(char *t0) +{ + char t13[16]; + char t26[16]; + char t77[16]; + char *t1; + char *t2; + int t3; + char *t4; + unsigned char t5; + unsigned char t6; + unsigned char t7; + char *t8; + char *t9; + char *t10; + char *t11; + char *t12; + unsigned char t14; + unsigned char t15; + unsigned char t16; + unsigned char t17; + unsigned char t18; + unsigned char t19; + char *t20; + char *t21; + int t22; + int t23; + int t24; + int t25; + char *t27; + int t28; + int t29; + int t30; + char *t31; + int t32; + char *t33; + char *t34; + unsigned int t35; + int t36; + int t37; + unsigned int t38; + unsigned int t39; + int t40; + int t41; + int t42; + int t43; + char *t44; + char *t45; + int t46; + int t47; + int t48; + int t49; + int t50; + unsigned int t51; + unsigned int t52; + char *t53; + char *t54; + char *t55; + int t56; + int t57; + int t58; + int t59; + char *t60; + char *t61; + int t62; + int t63; + int t64; + int t65; + char *t66; + char *t67; + int t68; + unsigned int t69; + char *t70; + char *t71; + char *t72; + char *t73; + char *t74; + char *t75; + char *t76; + char *t78; + unsigned int t79; + char *t80; + char *t81; + char *t82; + char *t83; + char *t84; + +LAB0: t1 = (t0 + 20824U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20944U); + t4 = *((char **)t1); + t1 = (t4 + 0); + *((int *)t1) = t3; + t1 = (t0 + 12528U); + t2 = *((char **)t1); + t5 = *((unsigned char *)t2); + t6 = (t5 == (unsigned char)3); + if (t6 != 0) + goto LAB2; + +LAB4: t1 = (t0 + 4328U); + t6 = xsi_signal_has_event(t1); + if (t6 == 1) + goto LAB10; + +LAB11: t5 = (unsigned char)0; + +LAB12: if (t5 != 0) + goto LAB8; + +LAB9: +LAB3: t1 = (t0 + 11568U); + t2 = *((char **)t1); + t5 = *((unsigned char *)t2); + t6 = (t5 == (unsigned char)3); + if (t6 != 0) + goto LAB112; + +LAB114: t1 = (t0 + 4008U); + t6 = xsi_signal_has_event(t1); + if (t6 == 1) + goto LAB120; + +LAB121: t5 = (unsigned char)0; + +LAB122: if (t5 != 0) + goto LAB118; + +LAB119: +LAB113: t1 = (t0 + 21064U); + t2 = *((char **)t1); + t1 = (t0 + 31928); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t2, 8U); + xsi_driver_first_trans_delta(t1, 0U, 8U, 100LL); + t11 = (t0 + 31928); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t1 = (t0 + 21184U); + t2 = *((char **)t1); + t3 = (0 - 1); + t35 = (t3 * -1); + t38 = (1U * t35); + t39 = (0 + t38); + t1 = (t2 + t39); + t5 = *((unsigned char *)t1); + t4 = (t0 + 31992); + t8 = (t4 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = t5; + xsi_driver_first_trans_delta(t4, 0U, 1, 100LL); + t12 = (t0 + 31992); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 21184U); + t2 = *((char **)t1); + t3 = (1 - 1); + t35 = (t3 * -1); + t38 = (1U * t35); + t39 = (0 + t38); + t1 = (t2 + t39); + t5 = *((unsigned char *)t1); + t4 = (t0 + 32056); + t8 = (t4 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = t5; + xsi_driver_first_trans_delta(t4, 0U, 1, 100LL); + t12 = (t0 + 32056); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 29448); + *((int *)t1) = 1; + +LAB1: return; +LAB2: t7 = xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686(t0, 0); + t1 = (t0 + 31032); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((unsigned char *)t10) = t7; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31032); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t5 = xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686(t0, 0); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = t5; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31160); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((int *)t9) = 0; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31160); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31224); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((int *)t9) = 0; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31224); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = xsi_get_transient_memory(14U); + memset(t1, 0, 14U); + t2 = t1; + memset(t2, (unsigned char)2, 14U); + t4 = (t0 + 31288); + t8 = (t4 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + memcpy(t11, t1, 14U); + xsi_driver_first_trans_delta(t4, 0U, 14U, 100LL); + t12 = (t0 + 31288); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t5 = xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686(t0, 0); + t1 = (t0 + 31352); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = t5; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31352); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t5 = xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686(t0, 0); + t1 = (t0 + 31416); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = t5; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31416); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 27952); + t2 = (t0 + 22064U); + t4 = (t0 + 22136U); + t8 = (t0 + 20824U); + t9 = *((char **)t8); + t8 = (t9 + 0); + xilinxcorelib_a_4048593843_3212880686_sub_1807611230_3212880686(t0, t1, t2, t4, t8); + t5 = (0 == 1); + if (t5 != 0) + goto LAB5; + +LAB7: t1 = (t0 + 21064U); + t2 = *((char **)t1); + t1 = (t0 + 21064U); + t4 = *((char **)t1); + t1 = (t4 + 0); + memcpy(t1, t2, 8U); + +LAB6: t1 = xsi_get_transient_memory(2U); + memset(t1, 0, 2U); + t2 = t1; + memset(t2, (unsigned char)2, 2U); + t4 = (t0 + 21184U); + t8 = *((char **)t4); + t4 = (t8 + 0); + memcpy(t4, t1, 2U); + goto LAB3; + +LAB5: t1 = (t0 + 47480); + t4 = (t0 + 46584U); + t8 = xilinxcorelib_a_4048593843_3212880686_sub_3703097363_3212880686(t0, t13, t1, t4, 8); + t9 = (t0 + 21064U); + t10 = *((char **)t9); + t9 = (t10 + 0); + memcpy(t9, t8, 8U); + goto LAB6; + +LAB8: t2 = (t0 + 12688U); + t8 = *((char **)t2); + t16 = *((unsigned char *)t8); + t17 = (t16 == (unsigned char)3); + if (t17 == 1) + goto LAB16; + +LAB17: t15 = (unsigned char)0; + +LAB18: if (t15 != 0) + goto LAB13; + +LAB15: t1 = (t0 + 14128U); + t2 = *((char **)t1); + t5 = *((unsigned char *)t2); + t1 = (t0 + 31416); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((unsigned char *)t10) = t5; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31416); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + +LAB14: t1 = (t0 + 8528U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 31224); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31224); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t5 = (0 == 0); + if (t5 != 0) + goto LAB19; + +LAB21: t1 = (t0 + 9168U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 8368U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 + t22); + t1 = (t0 + 20464U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t25 = (t23 / t24); + t28 = (13 + 1); + t1 = ieee_p_3499444699_sub_2213602152_3499444699(IEEE_P_3499444699, t13, t25, t28); + t9 = (t0 + 31288); + t10 = (t9 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + memcpy(t20, t1, 14U); + xsi_driver_first_trans_delta(t9, 0U, 14U, 100LL); + t21 = (t0 + 31288); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + +LAB20: t1 = (t0 + 4528U); + t2 = *((char **)t1); + t6 = *((unsigned char *)t2); + t7 = (t6 == (unsigned char)3); + if (t7 == 1) + goto LAB28; + +LAB29: t5 = (unsigned char)0; + +LAB30: if (t5 != 0) + goto LAB25; + +LAB27: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 19984U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t22 - 1); + t1 = (t0 + 20464U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t25 = (t23 * t24); + t28 = (t25 + 1); + t5 = (t3 >= t28); + if (t5 != 0) + goto LAB36; + +LAB38: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 19984U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t22 - 2); + t1 = (t0 + 20464U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t25 = (t23 * t24); + t28 = (t25 + 1); + t5 = (t3 >= t28); + if (t5 != 0) + goto LAB39; + +LAB40: t1 = (t0 + 31032); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31032); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + +LAB37: +LAB26: t1 = (t0 + 4528U); + t2 = *((char **)t1); + t5 = *((unsigned char *)t2); + t6 = (t5 == (unsigned char)3); + if (t6 != 0) + goto LAB41; + +LAB43: +LAB42: t5 = (0 == 1); + if (t5 != 0) + goto LAB69; + +LAB71: t5 = (0 == 2); + if (t5 != 0) + goto LAB78; + +LAB79: t5 = (0 == 3); + if (t5 != 0) + goto LAB86; + +LAB87: t5 = (0 == 4); + if (t5 != 0) + goto LAB94; + +LAB95: +LAB70: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 - 1); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t23 = *((int *)t4); + t24 = (t22 / t23); + t25 = (1 + t24); + t1 = (t0 + 21544U); + t8 = *((char **)t1); + t28 = *((int *)t8); + t29 = (t28 - 1); + t6 = (t25 == t29); + if (t6 == 1) + goto LAB105; + +LAB106: t5 = (unsigned char)0; + +LAB107: if (t5 != 0) + goto LAB102; + +LAB104: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 - 1); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t23 = *((int *)t4); + t24 = (t22 / t23); + t25 = (1 + t24); + t1 = (t0 + 21544U); + t8 = *((char **)t1); + t28 = *((int *)t8); + t5 = (t25 >= t28); + if (t5 != 0) + goto LAB108; + +LAB109: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 - 1); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t23 = *((int *)t4); + t24 = (t22 / t23); + t25 = (1 + t24); + t1 = (t0 + 21664U); + t8 = *((char **)t1); + t28 = *((int *)t8); + t5 = (t25 < t28); + if (t5 != 0) + goto LAB110; + +LAB111: +LAB103: goto LAB3; + +LAB10: t2 = (t0 + 4368U); + t4 = *((char **)t2); + t7 = *((unsigned char *)t4); + t14 = (t7 == (unsigned char)3); + t5 = t14; + goto LAB12; + +LAB13: t2 = (t0 + 31416); + t10 = (t2 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + *((unsigned char *)t20) = (unsigned char)2; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t21 = (t0 + 31416); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + goto LAB14; + +LAB16: t2 = (t0 + 12528U); + t9 = *((char **)t2); + t18 = *((unsigned char *)t9); + t19 = (t18 == (unsigned char)2); + t15 = t19; + goto LAB18; + +LAB19: t1 = (t0 + 9168U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t6 = (t3 < 1); + if (t6 != 0) + goto LAB22; + +LAB24: t1 = (t0 + 9168U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 - 1); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t23 = *((int *)t4); + t24 = (t22 / t23); + t25 = (1 + t24); + t1 = ieee_p_3499444699_sub_2213602152_3499444699(IEEE_P_3499444699, t13, t25, 13); + t9 = ((IEEE_P_2592010699) + 4024); + t8 = xsi_base_array_concat(t8, t26, t9, (char)97, t1, t13, (char)99, (unsigned char)2, (char)101); + t10 = (t0 + 31288); + t11 = (t10 + 56U); + t12 = *((char **)t11); + t20 = (t12 + 56U); + t21 = *((char **)t20); + memcpy(t21, t8, 14U); + xsi_driver_first_trans_delta(t10, 0U, 14U, 100LL); + t27 = (t0 + 31288); + xsi_driver_intertial_reject(t27, 100LL, 100LL); + +LAB23: goto LAB20; + +LAB22: t1 = xsi_get_transient_memory(14U); + memset(t1, 0, 14U); + t4 = t1; + memset(t4, (unsigned char)2, 14U); + t8 = (t0 + 31288); + t9 = (t8 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + memcpy(t12, t1, 14U); + xsi_driver_first_trans_delta(t8, 0U, 14U, 100LL); + t20 = (t0 + 31288); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + goto LAB23; + +LAB25: t1 = (t0 + 20944U); + t8 = *((char **)t1); + t3 = *((int *)t8); + t1 = (t0 + 20464U); + t9 = *((char **)t1); + t22 = *((int *)t9); + t23 = (t3 + t22); + t1 = (t0 + 19984U); + t10 = *((char **)t1); + t24 = *((int *)t10); + t25 = (t24 - 1); + t1 = (t0 + 20464U); + t11 = *((char **)t1); + t28 = *((int *)t11); + t29 = (t25 * t28); + t30 = (t29 + 1); + t16 = (t23 >= t30); + if (t16 != 0) + goto LAB31; + +LAB33: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 + t22); + t1 = (t0 + 19984U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t25 = (t24 - 2); + t1 = (t0 + 20464U); + t9 = *((char **)t1); + t28 = *((int *)t9); + t29 = (t25 * t28); + t30 = (t29 + 1); + t5 = (t23 >= t30); + if (t5 != 0) + goto LAB34; + +LAB35: t1 = (t0 + 31032); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31032); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + +LAB32: goto LAB26; + +LAB28: t1 = (t0 + 10288U); + t4 = *((char **)t1); + t14 = *((unsigned char *)t4); + t15 = (t14 == (unsigned char)2); + t5 = t15; + goto LAB30; + +LAB31: t1 = (t0 + 31032); + t12 = (t1 + 56U); + t20 = *((char **)t12); + t21 = (t20 + 56U); + t27 = *((char **)t21); + *((unsigned char *)t27) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t31 = (t0 + 31032); + xsi_driver_intertial_reject(t31, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB32; + +LAB34: t1 = (t0 + 31032); + t10 = (t1 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + *((unsigned char *)t20) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t21 = (t0 + 31032); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB32; + +LAB36: t1 = (t0 + 31032); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31032); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB37; + +LAB39: t1 = (t0 + 31032); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31032); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + t1 = (t0 + 31096); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31096); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB37; + +LAB41: t1 = (t0 + 10288U); + t4 = *((char **)t1); + t7 = *((unsigned char *)t4); + t14 = (t7 != (unsigned char)3); + if (t14 != 0) + goto LAB44; + +LAB46: +LAB45: goto LAB42; + +LAB44: t1 = (t0 + 20944U); + t8 = *((char **)t1); + t3 = *((int *)t8); + t1 = (t0 + 20464U); + t9 = *((char **)t1); + t22 = *((int *)t9); + t23 = (t3 / t22); + t1 = (t0 + 19984U); + t10 = *((char **)t1); + t24 = *((int *)t10); + t15 = (t23 == t24); + if (t15 != 0) + goto LAB47; + +LAB49: t1 = (t0 + 20944U); + t11 = *((char **)t1); + t25 = *((int *)t11); + t1 = (t0 + 20464U); + t12 = *((char **)t1); + t28 = *((int *)t12); + t29 = (t25 / t28); + t30 = (t29 + 1); + t1 = (t0 + 19984U); + t20 = *((char **)t1); + t32 = *((int *)t20); + t16 = (t30 == t32); + if (t16 != 0) + goto LAB50; + +LAB51: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20464U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t24 = (t23 + 2); + t1 = (t0 + 19984U); + t8 = *((char **)t1); + t25 = *((int *)t8); + t5 = (t24 == t25); + if (t5 != 0) + goto LAB57; + +LAB58: t1 = (t0 + 20464U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 47497); + *((int *)t1) = t3; + t4 = (t0 + 47501); + *((int *)t4) = 1; + t22 = t3; + t23 = 1; + +LAB64: if (t22 >= t23) + goto LAB65; + +LAB67: t1 = (t0 + 8528U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31160); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31160); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + +LAB48: goto LAB45; + +LAB47: goto LAB48; + +LAB50: t1 = (t0 + 31032); + t21 = (t1 + 56U); + t27 = *((char **)t21); + t31 = (t27 + 56U); + t33 = *((char **)t31); + *((unsigned char *)t33) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t34 = (t0 + 31032); + xsi_driver_intertial_reject(t34, 100LL, 100LL); + t1 = (t0 + 20464U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 47481); + *((int *)t1) = t3; + t4 = (t0 + 47485); + *((int *)t4) = 1; + t22 = t3; + t23 = 1; + +LAB52: if (t22 >= t23) + goto LAB53; + +LAB55: t1 = (t0 + 8528U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31160); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31160); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + goto LAB48; + +LAB53: t8 = (t0 + 27952); + t9 = (t0 + 22064U); + t10 = (t0 + 22136U); + t11 = (t0 + 3888U); + t12 = *((char **)t11); + t11 = (t0 + 20224U); + t20 = *((char **)t11); + t24 = *((int *)t20); + t11 = (t0 + 47481); + t25 = *((int *)t11); + t28 = (t24 * t25); + t29 = (t28 - 1); + t35 = (7 - t29); + t21 = (t0 + 20224U); + t27 = *((char **)t21); + t30 = *((int *)t27); + t21 = (t0 + 47481); + t32 = *((int *)t21); + t36 = (t32 - 1); + t37 = (t30 * t36); + xsi_vhdl_check_range_of_slice(7, 0, -1, t29, t37, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t31 = (t12 + t39); + t33 = (t0 + 20224U); + t34 = *((char **)t33); + t40 = *((int *)t34); + t33 = (t0 + 47481); + t41 = *((int *)t33); + t42 = (t40 * t41); + t43 = (t42 - 1); + t44 = (t0 + 20224U); + t45 = *((char **)t44); + t46 = *((int *)t45); + t44 = (t0 + 47481); + t47 = *((int *)t44); + t48 = (t47 - 1); + t49 = (t46 * t48); + t50 = (t49 - t43); + t51 = (t50 * -1); + t51 = (t51 + 1); + t52 = (1U * t51); + t53 = (char *)alloca(t52); + memcpy(t53, t31, t52); + t54 = (t0 + 20224U); + t55 = *((char **)t54); + t56 = *((int *)t55); + t54 = (t0 + 47481); + t57 = *((int *)t54); + t58 = (t56 * t57); + t59 = (t58 - 1); + t60 = (t0 + 20224U); + t61 = *((char **)t60); + t62 = *((int *)t61); + t60 = (t0 + 47481); + t63 = *((int *)t60); + t64 = (t63 - 1); + t65 = (t62 * t64); + t66 = (t13 + 0U); + t67 = (t66 + 0U); + *((int *)t67) = t59; + t67 = (t66 + 4U); + *((int *)t67) = t65; + t67 = (t66 + 8U); + *((int *)t67) = -1; + t68 = (t65 - t59); + t69 = (t68 * -1); + t69 = (t69 + 1); + t67 = (t66 + 12U); + *((unsigned int *)t67) = t69; + t67 = (t0 + 20824U); + t70 = *((char **)t67); + t67 = (t70 + 0); + t71 = (t0 + 14928U); + t72 = *((char **)t71); + t5 = *((unsigned char *)t72); + t71 = (t0 + 5648U); + t73 = *((char **)t71); + t6 = *((unsigned char *)t73); + t74 = ((IEEE_P_2592010699) + 4024); + t71 = xsi_base_array_concat(t71, t26, t74, (char)99, t5, (char)99, t6, (char)101); + t75 = (t0 + 5808U); + t76 = *((char **)t75); + t7 = *((unsigned char *)t76); + t78 = ((IEEE_P_2592010699) + 4024); + t75 = xsi_base_array_concat(t75, t77, t78, (char)97, t71, t26, (char)99, t7, (char)101); + t69 = (1U + 1U); + t79 = (t69 + 1U); + t80 = (char *)alloca(t79); + memcpy(t80, t75, t79); + xilinxcorelib_a_4048593843_3212880686_sub_2129810750_3212880686(t0, t8, t9, t10, t53, t13, t67, t80); + +LAB54: t1 = (t0 + 47481); + t22 = *((int *)t1); + t2 = (t0 + 47485); + t23 = *((int *)t2); + if (t22 == t23) + goto LAB55; + +LAB56: t3 = (t22 + -1); + t22 = t3; + t4 = (t0 + 47481); + *((int *)t4) = t22; + goto LAB52; + +LAB57: t1 = (t0 + 31096); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31096); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + t1 = (t0 + 20464U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 47489); + *((int *)t1) = t3; + t4 = (t0 + 47493); + *((int *)t4) = 1; + t22 = t3; + t23 = 1; + +LAB59: if (t22 >= t23) + goto LAB60; + +LAB62: t1 = (t0 + 8528U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31160); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31160); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + goto LAB48; + +LAB60: t8 = (t0 + 27952); + t9 = (t0 + 22064U); + t10 = (t0 + 22136U); + t11 = (t0 + 3888U); + t12 = *((char **)t11); + t11 = (t0 + 20224U); + t20 = *((char **)t11); + t24 = *((int *)t20); + t11 = (t0 + 47489); + t25 = *((int *)t11); + t28 = (t24 * t25); + t29 = (t28 - 1); + t35 = (7 - t29); + t21 = (t0 + 20224U); + t27 = *((char **)t21); + t30 = *((int *)t27); + t21 = (t0 + 47489); + t32 = *((int *)t21); + t36 = (t32 - 1); + t37 = (t30 * t36); + xsi_vhdl_check_range_of_slice(7, 0, -1, t29, t37, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t31 = (t12 + t39); + t33 = (t0 + 20224U); + t34 = *((char **)t33); + t40 = *((int *)t34); + t33 = (t0 + 47489); + t41 = *((int *)t33); + t42 = (t40 * t41); + t43 = (t42 - 1); + t44 = (t0 + 20224U); + t45 = *((char **)t44); + t46 = *((int *)t45); + t44 = (t0 + 47489); + t47 = *((int *)t44); + t48 = (t47 - 1); + t49 = (t46 * t48); + t50 = (t49 - t43); + t51 = (t50 * -1); + t51 = (t51 + 1); + t52 = (1U * t51); + t54 = (char *)alloca(t52); + memcpy(t54, t31, t52); + t55 = (t0 + 20224U); + t60 = *((char **)t55); + t56 = *((int *)t60); + t55 = (t0 + 47489); + t57 = *((int *)t55); + t58 = (t56 * t57); + t59 = (t58 - 1); + t61 = (t0 + 20224U); + t66 = *((char **)t61); + t62 = *((int *)t66); + t61 = (t0 + 47489); + t63 = *((int *)t61); + t64 = (t63 - 1); + t65 = (t62 * t64); + t67 = (t13 + 0U); + t70 = (t67 + 0U); + *((int *)t70) = t59; + t70 = (t67 + 4U); + *((int *)t70) = t65; + t70 = (t67 + 8U); + *((int *)t70) = -1; + t68 = (t65 - t59); + t69 = (t68 * -1); + t69 = (t69 + 1); + t70 = (t67 + 12U); + *((unsigned int *)t70) = t69; + t70 = (t0 + 20824U); + t71 = *((char **)t70); + t70 = (t71 + 0); + t72 = (t0 + 14928U); + t73 = *((char **)t72); + t5 = *((unsigned char *)t73); + t72 = (t0 + 5648U); + t74 = *((char **)t72); + t6 = *((unsigned char *)t74); + t75 = ((IEEE_P_2592010699) + 4024); + t72 = xsi_base_array_concat(t72, t26, t75, (char)99, t5, (char)99, t6, (char)101); + t76 = (t0 + 5808U); + t78 = *((char **)t76); + t7 = *((unsigned char *)t78); + t81 = ((IEEE_P_2592010699) + 4024); + t76 = xsi_base_array_concat(t76, t77, t81, (char)97, t72, t26, (char)99, t7, (char)101); + t69 = (1U + 1U); + t79 = (t69 + 1U); + t82 = (char *)alloca(t79); + memcpy(t82, t76, t79); + xilinxcorelib_a_4048593843_3212880686_sub_2129810750_3212880686(t0, t8, t9, t10, t54, t13, t70, t82); + +LAB61: t1 = (t0 + 47489); + t22 = *((int *)t1); + t2 = (t0 + 47493); + t23 = *((int *)t2); + if (t22 == t23) + goto LAB62; + +LAB63: t3 = (t22 + -1); + t22 = t3; + t4 = (t0 + 47489); + *((int *)t4) = t22; + goto LAB59; + +LAB65: t8 = (t0 + 27952); + t9 = (t0 + 22064U); + t10 = (t0 + 22136U); + t11 = (t0 + 3888U); + t12 = *((char **)t11); + t11 = (t0 + 20224U); + t20 = *((char **)t11); + t24 = *((int *)t20); + t11 = (t0 + 47497); + t25 = *((int *)t11); + t28 = (t24 * t25); + t29 = (t28 - 1); + t35 = (7 - t29); + t21 = (t0 + 20224U); + t27 = *((char **)t21); + t30 = *((int *)t27); + t21 = (t0 + 47497); + t32 = *((int *)t21); + t36 = (t32 - 1); + t37 = (t30 * t36); + xsi_vhdl_check_range_of_slice(7, 0, -1, t29, t37, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t31 = (t12 + t39); + t33 = (t0 + 20224U); + t34 = *((char **)t33); + t40 = *((int *)t34); + t33 = (t0 + 47497); + t41 = *((int *)t33); + t42 = (t40 * t41); + t43 = (t42 - 1); + t44 = (t0 + 20224U); + t45 = *((char **)t44); + t46 = *((int *)t45); + t44 = (t0 + 47497); + t47 = *((int *)t44); + t48 = (t47 - 1); + t49 = (t46 * t48); + t50 = (t49 - t43); + t51 = (t50 * -1); + t51 = (t51 + 1); + t52 = (1U * t51); + t55 = (char *)alloca(t52); + memcpy(t55, t31, t52); + t60 = (t0 + 20224U); + t61 = *((char **)t60); + t56 = *((int *)t61); + t60 = (t0 + 47497); + t57 = *((int *)t60); + t58 = (t56 * t57); + t59 = (t58 - 1); + t66 = (t0 + 20224U); + t67 = *((char **)t66); + t62 = *((int *)t67); + t66 = (t0 + 47497); + t63 = *((int *)t66); + t64 = (t63 - 1); + t65 = (t62 * t64); + t70 = (t13 + 0U); + t71 = (t70 + 0U); + *((int *)t71) = t59; + t71 = (t70 + 4U); + *((int *)t71) = t65; + t71 = (t70 + 8U); + *((int *)t71) = -1; + t68 = (t65 - t59); + t69 = (t68 * -1); + t69 = (t69 + 1); + t71 = (t70 + 12U); + *((unsigned int *)t71) = t69; + t71 = (t0 + 20824U); + t72 = *((char **)t71); + t71 = (t72 + 0); + t73 = (t0 + 14928U); + t74 = *((char **)t73); + t5 = *((unsigned char *)t74); + t73 = (t0 + 5648U); + t75 = *((char **)t73); + t6 = *((unsigned char *)t75); + t76 = ((IEEE_P_2592010699) + 4024); + t73 = xsi_base_array_concat(t73, t26, t76, (char)99, t5, (char)99, t6, (char)101); + t78 = (t0 + 5808U); + t81 = *((char **)t78); + t7 = *((unsigned char *)t81); + t83 = ((IEEE_P_2592010699) + 4024); + t78 = xsi_base_array_concat(t78, t77, t83, (char)97, t73, t26, (char)99, t7, (char)101); + t69 = (1U + 1U); + t79 = (t69 + 1U); + t84 = (char *)alloca(t79); + memcpy(t84, t78, t79); + xilinxcorelib_a_4048593843_3212880686_sub_2129810750_3212880686(t0, t8, t9, t10, t55, t13, t71, t84); + +LAB66: t1 = (t0 + 47497); + t22 = *((int *)t1); + t2 = (t0 + 47501); + t23 = *((int *)t2); + if (t22 == t23) + goto LAB67; + +LAB68: t3 = (t22 + -1); + t22 = t3; + t4 = (t0 + 47497); + *((int *)t4) = t22; + goto LAB64; + +LAB69: t7 = (1 == 1); + if (t7 == 1) + goto LAB75; + +LAB76: t6 = (unsigned char)0; + +LAB77: if (t6 != 0) + goto LAB72; + +LAB74: t1 = (t0 + 21544U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 8191; + t1 = (t0 + 21664U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 8191; + +LAB73: goto LAB70; + +LAB72: t1 = (t0 + 20584U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (8191 - t3); + t1 = (t0 + 21544U); + t4 = *((char **)t1); + t1 = (t4 + 0); + *((int *)t1) = t22; + t1 = (t0 + 20584U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (8191 - t3); + t1 = (t0 + 21664U); + t4 = *((char **)t1); + t1 = (t4 + 0); + *((int *)t1) = t22; + goto LAB73; + +LAB75: t14 = (0 == 0); + t6 = t14; + goto LAB77; + +LAB78: t7 = (1 == 1); + if (t7 == 1) + goto LAB83; + +LAB84: t6 = (unsigned char)0; + +LAB85: if (t6 != 0) + goto LAB80; + +LAB82: t1 = (t0 + 21544U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 8191; + t1 = (t0 + 21664U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 8190; + +LAB81: goto LAB70; + +LAB80: t1 = (t0 + 20584U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (8191 - t3); + t1 = (t0 + 21544U); + t4 = *((char **)t1); + t1 = (t4 + 0); + *((int *)t1) = t22; + t1 = (t0 + 20584U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (8190 - t3); + t1 = (t0 + 21664U); + t4 = *((char **)t1); + t1 = (t4 + 0); + *((int *)t1) = t22; + goto LAB81; + +LAB83: t14 = (0 == 0); + t6 = t14; + goto LAB85; + +LAB86: t7 = (1 == 1); + if (t7 == 1) + goto LAB91; + +LAB92: t6 = (unsigned char)0; + +LAB93: if (t6 != 0) + goto LAB88; + +LAB90: t1 = (t0 + 5168U); + t2 = *((char **)t1); + t1 = (t0 + 46664U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21544U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + t1 = (t0 + 5168U); + t2 = *((char **)t1); + t1 = (t0 + 46664U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21664U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + +LAB89: goto LAB70; + +LAB88: t1 = (t0 + 5168U); + t2 = *((char **)t1); + t1 = (t0 + 46664U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 20584U); + t8 = *((char **)t4); + t22 = *((int *)t8); + t23 = (t3 - t22); + t4 = (t0 + 21544U); + t9 = *((char **)t4); + t4 = (t9 + 0); + *((int *)t4) = t23; + t1 = (t0 + 5168U); + t2 = *((char **)t1); + t1 = (t0 + 46664U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 20584U); + t8 = *((char **)t4); + t22 = *((int *)t8); + t23 = (t3 - t22); + t4 = (t0 + 21664U); + t9 = *((char **)t4); + t4 = (t9 + 0); + *((int *)t4) = t23; + goto LAB89; + +LAB91: t14 = (0 == 0); + t6 = t14; + goto LAB93; + +LAB94: t7 = (1 == 1); + if (t7 == 1) + goto LAB99; + +LAB100: t6 = (unsigned char)0; + +LAB101: if (t6 != 0) + goto LAB96; + +LAB98: t1 = (t0 + 5328U); + t2 = *((char **)t1); + t1 = (t0 + 46680U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21544U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + t1 = (t0 + 5488U); + t2 = *((char **)t1); + t1 = (t0 + 46696U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21664U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + +LAB97: goto LAB70; + +LAB96: t1 = (t0 + 5328U); + t2 = *((char **)t1); + t1 = (t0 + 46680U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 20584U); + t8 = *((char **)t4); + t22 = *((int *)t8); + t23 = (t3 - t22); + t4 = (t0 + 21544U); + t9 = *((char **)t4); + t4 = (t9 + 0); + *((int *)t4) = t23; + t1 = (t0 + 5488U); + t2 = *((char **)t1); + t1 = (t0 + 46696U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 20584U); + t8 = *((char **)t4); + t22 = *((int *)t8); + t23 = (t3 - t22); + t4 = (t0 + 21664U); + t9 = *((char **)t4); + t4 = (t9 + 0); + *((int *)t4) = t23; + goto LAB97; + +LAB99: t14 = (0 == 0); + t6 = t14; + goto LAB101; + +LAB102: t1 = (t0 + 31352); + t10 = (t1 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + *((unsigned char *)t20) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t21 = (t0 + 31352); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + goto LAB103; + +LAB105: t1 = (t0 + 4528U); + t9 = *((char **)t1); + t7 = *((unsigned char *)t9); + t14 = (t7 == (unsigned char)3); + t5 = t14; + goto LAB107; + +LAB108: t1 = (t0 + 31352); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31352); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + goto LAB103; + +LAB110: t1 = (t0 + 31352); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31352); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + goto LAB103; + +LAB112: t1 = (t0 + 31480); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((unsigned char *)t10) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31480); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t1 = (t0 + 31544); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31544); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31608); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((int *)t9) = 0; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31608); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31672); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((int *)t9) = 0; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31672); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = xsi_get_transient_memory(14U); + memset(t1, 0, 14U); + t2 = t1; + memset(t2, (unsigned char)2, 14U); + t4 = (t0 + 31736); + t8 = (t4 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + memcpy(t11, t1, 14U); + xsi_driver_first_trans_delta(t4, 0U, 14U, 100LL); + t12 = (t0 + 31736); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 31800); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31800); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31864); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31864); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t5 = (0 == 1); + if (t5 != 0) + goto LAB115; + +LAB117: t1 = (t0 + 21064U); + t2 = *((char **)t1); + t1 = (t0 + 21064U); + t4 = *((char **)t1); + t1 = (t4 + 0); + memcpy(t1, t2, 8U); + +LAB116: t1 = xsi_get_transient_memory(2U); + memset(t1, 0, 2U); + t2 = t1; + memset(t2, (unsigned char)2, 2U); + t4 = (t0 + 21184U); + t8 = *((char **)t4); + t4 = (t8 + 0); + memcpy(t4, t1, 2U); + goto LAB113; + +LAB115: t1 = (t0 + 47505); + t4 = (t0 + 46584U); + t8 = xilinxcorelib_a_4048593843_3212880686_sub_3703097363_3212880686(t0, t13, t1, t4, 8); + t9 = (t0 + 21064U); + t10 = *((char **)t9); + t9 = (t10 + 0); + memcpy(t9, t8, 8U); + goto LAB116; + +LAB118: t2 = (t0 + 14448U); + t8 = *((char **)t2); + t15 = *((unsigned char *)t8); + t2 = (t0 + 31864); + t9 = (t2 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = t15; + xsi_driver_first_trans_delta(t2, 0U, 1, 100LL); + t20 = (t0 + 31864); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + t1 = (t0 + 8688U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 31672); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31672); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + t5 = (0 == 0); + if (t5 != 0) + goto LAB123; + +LAB125: t1 = (t0 + 9328U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t24 = (t23 + 2); + t25 = (13 + 1); + t1 = ieee_p_3499444699_sub_2213602152_3499444699(IEEE_P_3499444699, t13, t24, t25); + t8 = (t0 + 31736); + t9 = (t8 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + memcpy(t12, t1, 14U); + xsi_driver_first_trans_delta(t8, 0U, 14U, 100LL); + t20 = (t0 + 31736); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + +LAB124: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t5 = (t23 == 0); + if (t5 != 0) + goto LAB126; + +LAB128: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t5 = (t23 == 1); + if (t5 != 0) + goto LAB129; + +LAB130: t1 = (t0 + 31480); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31480); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 31544); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31544); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + +LAB127: t1 = (t0 + 4208U); + t2 = *((char **)t1); + t5 = *((unsigned char *)t2); + t6 = (t5 == (unsigned char)3); + if (t6 != 0) + goto LAB131; + +LAB133: +LAB132: t5 = (0 == 1); + if (t5 != 0) + goto LAB159; + +LAB161: t5 = (0 == 2); + if (t5 != 0) + goto LAB168; + +LAB169: t5 = (0 == 3); + if (t5 != 0) + goto LAB176; + +LAB177: t5 = (0 == 4); + if (t5 != 0) + goto LAB184; + +LAB185: +LAB160: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t1 = (t0 + 21304U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t25 = (t24 + 1); + t6 = (t23 == t25); + if (t6 == 1) + goto LAB195; + +LAB196: t5 = (unsigned char)0; + +LAB197: if (t5 != 0) + goto LAB192; + +LAB194: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t1 = (t0 + 21304U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t5 = (t23 <= t24); + if (t5 != 0) + goto LAB198; + +LAB199: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t1 = (t0 + 21424U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t5 = (t23 > t24); + if (t5 != 0) + goto LAB200; + +LAB201: +LAB193: goto LAB113; + +LAB120: t2 = (t0 + 4048U); + t4 = *((char **)t2); + t7 = *((unsigned char *)t4); + t14 = (t7 == (unsigned char)3); + t5 = t14; + goto LAB122; + +LAB123: t1 = (t0 + 9328U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t1 = ieee_p_3499444699_sub_2213602152_3499444699(IEEE_P_3499444699, t13, t23, 13); + t9 = ((IEEE_P_2592010699) + 4024); + t8 = xsi_base_array_concat(t8, t26, t9, (char)97, t1, t13, (char)99, (unsigned char)2, (char)101); + t10 = (t0 + 31736); + t11 = (t10 + 56U); + t12 = *((char **)t11); + t20 = (t12 + 56U); + t21 = *((char **)t20); + memcpy(t21, t8, 14U); + xsi_driver_first_trans_delta(t10, 0U, 14U, 100LL); + t27 = (t0 + 31736); + xsi_driver_intertial_reject(t27, 100LL, 100LL); + goto LAB124; + +LAB126: t1 = (t0 + 31480); + t8 = (t1 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t12 = (t0 + 31480); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 31544); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31544); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB127; + +LAB129: t1 = (t0 + 31480); + t8 = (t1 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t12 = (t0 + 31480); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 31544); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31544); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + goto LAB127; + +LAB131: t1 = (t0 + 10128U); + t4 = *((char **)t1); + t7 = *((unsigned char *)t4); + t14 = (t7 != (unsigned char)3); + if (t14 != 0) + goto LAB134; + +LAB136: +LAB135: goto LAB132; + +LAB134: t1 = (t0 + 20944U); + t8 = *((char **)t1); + t3 = *((int *)t8); + t1 = (t0 + 20344U); + t9 = *((char **)t1); + t22 = *((int *)t9); + t23 = (t3 / t22); + t15 = (t23 == 2); + if (t15 != 0) + goto LAB137; + +LAB139: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t5 = (t23 == 1); + if (t5 != 0) + goto LAB145; + +LAB146: t1 = (t0 + 20944U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 20344U); + t4 = *((char **)t1); + t22 = *((int *)t4); + t23 = (t3 / t22); + t5 = (t23 == 0); + if (t5 != 0) + goto LAB152; + +LAB153: t1 = (t0 + 20344U); + t8 = *((char **)t1); + t24 = *((int *)t8); + t1 = (t0 + 47522); + *((int *)t1) = t24; + t9 = (t0 + 47526); + *((int *)t9) = 1; + t25 = t24; + t28 = 1; + +LAB154: if (t25 >= t28) + goto LAB155; + +LAB157: t1 = (t0 + 8688U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31608); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31608); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + +LAB138: goto LAB135; + +LAB137: t1 = (t0 + 31544); + t10 = (t1 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + *((unsigned char *)t20) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t21 = (t0 + 31544); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + t1 = (t0 + 20344U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 47506); + *((int *)t1) = t3; + t4 = (t0 + 47510); + *((int *)t4) = 1; + t22 = t3; + t23 = 1; + +LAB140: if (t22 >= t23) + goto LAB141; + +LAB143: t1 = (t0 + 8688U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31608); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31608); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + goto LAB138; + +LAB141: t8 = (t0 + 27952); + t9 = (t0 + 22136U); + t10 = (t0 + 21064U); + t11 = *((char **)t10); + t10 = (t0 + 20224U); + t12 = *((char **)t10); + t24 = *((int *)t12); + t10 = (t0 + 47506); + t25 = *((int *)t10); + t28 = (t24 * t25); + t29 = (t28 - 1); + t35 = (7 - t29); + t20 = (t0 + 20224U); + t21 = *((char **)t20); + t30 = *((int *)t21); + t20 = (t0 + 47506); + t32 = *((int *)t20); + t36 = (t32 - 1); + t37 = (t30 * t36); + xsi_vhdl_check_range_of_slice(7, 0, -1, t29, t37, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t27 = (t11 + t39); + t31 = (t0 + 20224U); + t33 = *((char **)t31); + t40 = *((int *)t33); + t31 = (t0 + 47506); + t41 = *((int *)t31); + t42 = (t40 * t41); + t43 = (t42 - 1); + t34 = (t0 + 20224U); + t44 = *((char **)t34); + t46 = *((int *)t44); + t34 = (t0 + 47506); + t47 = *((int *)t34); + t48 = (t47 - 1); + t49 = (t46 * t48); + t45 = (t13 + 0U); + t60 = (t45 + 0U); + *((int *)t60) = t43; + t60 = (t45 + 4U); + *((int *)t60) = t49; + t60 = (t45 + 8U); + *((int *)t60) = -1; + t50 = (t49 - t43); + t51 = (t50 * -1); + t51 = (t51 + 1); + t60 = (t45 + 12U); + *((unsigned int *)t60) = t51; + t60 = (t0 + 21184U); + t61 = *((char **)t60); + xilinxcorelib_a_4048593843_3212880686_sub_2966016925_3212880686(t0, t8, t9, t27, t13, t61); + t1 = (t0 + 27952); + t2 = (t0 + 22064U); + t4 = (t0 + 22136U); + t8 = (t0 + 20824U); + t9 = *((char **)t8); + t8 = (t9 + 0); + xilinxcorelib_a_4048593843_3212880686_sub_2068494565_3212880686(t0, t1, t2, t4, t8); + +LAB142: t1 = (t0 + 47506); + t22 = *((int *)t1); + t2 = (t0 + 47510); + t23 = *((int *)t2); + if (t22 == t23) + goto LAB143; + +LAB144: t3 = (t22 + -1); + t22 = t3; + t4 = (t0 + 47506); + *((int *)t4) = t22; + goto LAB140; + +LAB145: t1 = (t0 + 31544); + t8 = (t1 + 56U); + t9 = *((char **)t8); + t10 = (t9 + 56U); + t11 = *((char **)t10); + *((unsigned char *)t11) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t12 = (t0 + 31544); + xsi_driver_intertial_reject(t12, 100LL, 100LL); + t1 = (t0 + 31480); + t2 = (t1 + 56U); + t4 = *((char **)t2); + t8 = (t4 + 56U); + t9 = *((char **)t8); + *((unsigned char *)t9) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t10 = (t0 + 31480); + xsi_driver_intertial_reject(t10, 100LL, 100LL); + t1 = (t0 + 20344U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t1 = (t0 + 47514); + *((int *)t1) = t3; + t4 = (t0 + 47518); + *((int *)t4) = 1; + t22 = t3; + t23 = 1; + +LAB147: if (t22 >= t23) + goto LAB148; + +LAB150: t1 = (t0 + 8688U); + t2 = *((char **)t1); + t3 = *((int *)t2); + t22 = (t3 + 1); + t23 = xsi_vhdl_mod(t22, 8192); + t1 = (t0 + 31608); + t4 = (t1 + 56U); + t8 = *((char **)t4); + t9 = (t8 + 56U); + t10 = *((char **)t9); + *((int *)t10) = t23; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t11 = (t0 + 31608); + xsi_driver_intertial_reject(t11, 100LL, 100LL); + goto LAB138; + +LAB148: t8 = (t0 + 27952); + t9 = (t0 + 22136U); + t10 = (t0 + 21064U); + t11 = *((char **)t10); + t10 = (t0 + 20224U); + t12 = *((char **)t10); + t24 = *((int *)t12); + t10 = (t0 + 47514); + t25 = *((int *)t10); + t28 = (t24 * t25); + t29 = (t28 - 1); + t35 = (7 - t29); + t20 = (t0 + 20224U); + t21 = *((char **)t20); + t30 = *((int *)t21); + t20 = (t0 + 47514); + t32 = *((int *)t20); + t36 = (t32 - 1); + t37 = (t30 * t36); + xsi_vhdl_check_range_of_slice(7, 0, -1, t29, t37, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t27 = (t11 + t39); + t31 = (t0 + 20224U); + t33 = *((char **)t31); + t40 = *((int *)t33); + t31 = (t0 + 47514); + t41 = *((int *)t31); + t42 = (t40 * t41); + t43 = (t42 - 1); + t34 = (t0 + 20224U); + t44 = *((char **)t34); + t46 = *((int *)t44); + t34 = (t0 + 47514); + t47 = *((int *)t34); + t48 = (t47 - 1); + t49 = (t46 * t48); + t45 = (t13 + 0U); + t60 = (t45 + 0U); + *((int *)t60) = t43; + t60 = (t45 + 4U); + *((int *)t60) = t49; + t60 = (t45 + 8U); + *((int *)t60) = -1; + t50 = (t49 - t43); + t51 = (t50 * -1); + t51 = (t51 + 1); + t60 = (t45 + 12U); + *((unsigned int *)t60) = t51; + t60 = (t0 + 21184U); + t61 = *((char **)t60); + xilinxcorelib_a_4048593843_3212880686_sub_2966016925_3212880686(t0, t8, t9, t27, t13, t61); + t1 = (t0 + 27952); + t2 = (t0 + 22064U); + t4 = (t0 + 22136U); + t8 = (t0 + 20824U); + t9 = *((char **)t8); + t8 = (t9 + 0); + xilinxcorelib_a_4048593843_3212880686_sub_2068494565_3212880686(t0, t1, t2, t4, t8); + +LAB149: t1 = (t0 + 47514); + t22 = *((int *)t1); + t2 = (t0 + 47518); + t23 = *((int *)t2); + if (t22 == t23) + goto LAB150; + +LAB151: t3 = (t22 + -1); + t22 = t3; + t4 = (t0 + 47514); + *((int *)t4) = t22; + goto LAB147; + +LAB152: goto LAB138; + +LAB155: t10 = (t0 + 27952); + t11 = (t0 + 22136U); + t12 = (t0 + 21064U); + t20 = *((char **)t12); + t12 = (t0 + 20224U); + t21 = *((char **)t12); + t29 = *((int *)t21); + t12 = (t0 + 47522); + t30 = *((int *)t12); + t32 = (t29 * t30); + t36 = (t32 - 1); + t35 = (7 - t36); + t27 = (t0 + 20224U); + t31 = *((char **)t27); + t37 = *((int *)t31); + t27 = (t0 + 47522); + t40 = *((int *)t27); + t41 = (t40 - 1); + t42 = (t37 * t41); + xsi_vhdl_check_range_of_slice(7, 0, -1, t36, t42, -1); + t38 = (t35 * 1U); + t39 = (0 + t38); + t33 = (t20 + t39); + t34 = (t0 + 20224U); + t44 = *((char **)t34); + t43 = *((int *)t44); + t34 = (t0 + 47522); + t46 = *((int *)t34); + t47 = (t43 * t46); + t48 = (t47 - 1); + t45 = (t0 + 20224U); + t60 = *((char **)t45); + t49 = *((int *)t60); + t45 = (t0 + 47522); + t50 = *((int *)t45); + t56 = (t50 - 1); + t57 = (t49 * t56); + t61 = (t13 + 0U); + t66 = (t61 + 0U); + *((int *)t66) = t48; + t66 = (t61 + 4U); + *((int *)t66) = t57; + t66 = (t61 + 8U); + *((int *)t66) = -1; + t58 = (t57 - t48); + t51 = (t58 * -1); + t51 = (t51 + 1); + t66 = (t61 + 12U); + *((unsigned int *)t66) = t51; + t66 = (t0 + 21184U); + t67 = *((char **)t66); + xilinxcorelib_a_4048593843_3212880686_sub_2966016925_3212880686(t0, t10, t11, t33, t13, t67); + t1 = (t0 + 27952); + t2 = (t0 + 22064U); + t4 = (t0 + 22136U); + t8 = (t0 + 20824U); + t9 = *((char **)t8); + t8 = (t9 + 0); + xilinxcorelib_a_4048593843_3212880686_sub_2068494565_3212880686(t0, t1, t2, t4, t8); + +LAB156: t1 = (t0 + 47522); + t25 = *((int *)t1); + t2 = (t0 + 47526); + t28 = *((int *)t2); + if (t25 == t28) + goto LAB157; + +LAB158: t3 = (t25 + -1); + t25 = t3; + t4 = (t0 + 47522); + *((int *)t4) = t25; + goto LAB154; + +LAB159: t7 = (1 == 1); + if (t7 == 1) + goto LAB165; + +LAB166: t6 = (unsigned char)0; + +LAB167: if (t6 != 0) + goto LAB162; + +LAB164: t1 = (t0 + 21304U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 4; + t1 = (t0 + 21424U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 4; + +LAB163: goto LAB160; + +LAB162: t3 = (4 - 2); + t1 = (t0 + 21304U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = t3; + t3 = (4 - 2); + t1 = (t0 + 21424U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = t3; + goto LAB163; + +LAB165: t14 = (0 == 0); + t6 = t14; + goto LAB167; + +LAB168: t7 = (1 == 1); + if (t7 == 1) + goto LAB173; + +LAB174: t6 = (unsigned char)0; + +LAB175: if (t6 != 0) + goto LAB170; + +LAB172: t1 = (t0 + 21304U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 4; + t1 = (t0 + 21424U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = 5; + +LAB171: goto LAB160; + +LAB170: t3 = (4 - 2); + t1 = (t0 + 21304U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = t3; + t3 = (5 - 2); + t1 = (t0 + 21424U); + t2 = *((char **)t1); + t1 = (t2 + 0); + *((int *)t1) = t3; + goto LAB171; + +LAB173: t14 = (0 == 0); + t6 = t14; + goto LAB175; + +LAB176: t7 = (1 == 1); + if (t7 == 1) + goto LAB181; + +LAB182: t6 = (unsigned char)0; + +LAB183: if (t6 != 0) + goto LAB178; + +LAB180: t1 = (t0 + 4688U); + t2 = *((char **)t1); + t1 = (t0 + 46616U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21304U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + t1 = (t0 + 4688U); + t2 = *((char **)t1); + t1 = (t0 + 46616U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21424U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + +LAB179: goto LAB160; + +LAB178: t1 = (t0 + 4688U); + t2 = *((char **)t1); + t1 = (t0 + 46616U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t22 = (t3 - 2); + t4 = (t0 + 21304U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t22; + t1 = (t0 + 4688U); + t2 = *((char **)t1); + t1 = (t0 + 46616U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t22 = (t3 - 2); + t4 = (t0 + 21424U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t22; + goto LAB179; + +LAB181: t14 = (0 == 0); + t6 = t14; + goto LAB183; + +LAB184: t7 = (1 == 1); + if (t7 == 1) + goto LAB189; + +LAB190: t6 = (unsigned char)0; + +LAB191: if (t6 != 0) + goto LAB186; + +LAB188: t1 = (t0 + 4848U); + t2 = *((char **)t1); + t1 = (t0 + 46632U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21304U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + t1 = (t0 + 5008U); + t2 = *((char **)t1); + t1 = (t0 + 46648U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t4 = (t0 + 21424U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t3; + +LAB187: goto LAB160; + +LAB186: t1 = (t0 + 4848U); + t2 = *((char **)t1); + t1 = (t0 + 46632U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t22 = (t3 - 2); + t4 = (t0 + 21304U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t22; + t1 = (t0 + 5008U); + t2 = *((char **)t1); + t1 = (t0 + 46648U); + t3 = ieee_p_3620187407_sub_514432868_3620187407(IEEE_P_3620187407, t2, t1); + t22 = (t3 - 2); + t4 = (t0 + 21424U); + t8 = *((char **)t4); + t4 = (t8 + 0); + *((int *)t4) = t22; + goto LAB187; + +LAB189: t14 = (0 == 0); + t6 = t14; + goto LAB191; + +LAB192: t1 = (t0 + 31800); + t10 = (t1 + 56U); + t11 = *((char **)t10); + t12 = (t11 + 56U); + t20 = *((char **)t12); + *((unsigned char *)t20) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t21 = (t0 + 31800); + xsi_driver_intertial_reject(t21, 100LL, 100LL); + goto LAB193; + +LAB195: t1 = (t0 + 4208U); + t9 = *((char **)t1); + t7 = *((unsigned char *)t9); + t14 = (t7 == (unsigned char)3); + t5 = t14; + goto LAB197; + +LAB198: t1 = (t0 + 31800); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31800); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + goto LAB193; + +LAB200: t1 = (t0 + 31800); + t9 = (t1 + 56U); + t10 = *((char **)t9); + t11 = (t10 + 56U); + t12 = *((char **)t11); + *((unsigned char *)t12) = (unsigned char)2; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t20 = (t0 + 31800); + xsi_driver_intertial_reject(t20, 100LL, 100LL); + goto LAB193; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_22(char *t0) +{ + char *t1; + char *t2; + char *t3; + char *t4; + char *t5; + char *t6; + char *t7; + +LAB0: +LAB3: t1 = (t0 + 14768U); + t2 = *((char **)t1); + t1 = (t0 + 32120); + t3 = (t1 + 56U); + t4 = *((char **)t3); + t5 = (t4 + 56U); + t6 = *((char **)t5); + memcpy(t6, t2, 8U); + xsi_driver_first_trans_fast_port(t1); + +LAB2: t7 = (t0 + 29512); + *((int *)t7) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_23(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + +LAB0: +LAB3: t1 = (t0 + 15088U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 32184); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 32184); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + +LAB2: t9 = (t0 + 29528); + *((int *)t9) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + +static void xilinxcorelib_a_4048593843_3212880686_p_24(char *t0) +{ + char *t1; + char *t2; + unsigned char t3; + char *t4; + char *t5; + char *t6; + char *t7; + char *t8; + char *t9; + +LAB0: +LAB3: t1 = (t0 + 15248U); + t2 = *((char **)t1); + t3 = *((unsigned char *)t2); + t1 = (t0 + 32248); + t4 = (t1 + 56U); + t5 = *((char **)t4); + t6 = (t5 + 56U); + t7 = *((char **)t6); + *((unsigned char *)t7) = t3; + xsi_driver_first_trans_delta(t1, 0U, 1, 100LL); + t8 = (t0 + 32248); + xsi_driver_intertial_reject(t8, 100LL, 100LL); + +LAB2: t9 = (t0 + 29544); + *((int *)t9) = 1; + +LAB1: return; +LAB4: goto LAB2; + +} + + +extern void xilinxcorelib_a_4048593843_3212880686_init() +{ + static char *pe[] = {(void *)xilinxcorelib_a_4048593843_3212880686_p_0,(void *)xilinxcorelib_a_4048593843_3212880686_p_1,(void *)xilinxcorelib_a_4048593843_3212880686_p_2,(void *)xilinxcorelib_a_4048593843_3212880686_p_3,(void *)xilinxcorelib_a_4048593843_3212880686_p_4,(void *)xilinxcorelib_a_4048593843_3212880686_p_5,(void *)xilinxcorelib_a_4048593843_3212880686_p_6,(void *)xilinxcorelib_a_4048593843_3212880686_p_7,(void *)xilinxcorelib_a_4048593843_3212880686_p_8,(void *)xilinxcorelib_a_4048593843_3212880686_p_9,(void *)xilinxcorelib_a_4048593843_3212880686_p_10,(void *)xilinxcorelib_a_4048593843_3212880686_p_11,(void *)xilinxcorelib_a_4048593843_3212880686_p_12,(void *)xilinxcorelib_a_4048593843_3212880686_p_13,(void *)xilinxcorelib_a_4048593843_3212880686_p_14,(void *)xilinxcorelib_a_4048593843_3212880686_p_15,(void *)xilinxcorelib_a_4048593843_3212880686_p_16,(void *)xilinxcorelib_a_4048593843_3212880686_p_17,(void *)xilinxcorelib_a_4048593843_3212880686_p_18,(void *)xilinxcorelib_a_4048593843_3212880686_p_19,(void *)xilinxcorelib_a_4048593843_3212880686_p_20,(void *)xilinxcorelib_a_4048593843_3212880686_p_21,(void *)xilinxcorelib_a_4048593843_3212880686_p_22,(void *)xilinxcorelib_a_4048593843_3212880686_p_23,(void *)xilinxcorelib_a_4048593843_3212880686_p_24}; + static char *se[] = {(void *)xilinxcorelib_a_4048593843_3212880686_sub_1842417276_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_1315575287_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_2978940197_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_3672023036_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_3703097363_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_2234054365_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_1807611230_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_2129810750_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_2966016925_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_2068494565_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_3751606365_3212880686,(void *)xilinxcorelib_a_4048593843_3212880686_sub_4190946951_3212880686}; + xsi_register_didat("xilinxcorelib_a_4048593843_3212880686", "isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.didat"); + xsi_register_executes(pe); + xsi_register_subprogram_executes(se); +} diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.didat b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.didat new file mode 100755 index 0000000000000000000000000000000000000000..3761deab3b70efb5cbb71e493a480bbf8bbc496f GIT binary patch literal 30484 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.nt64.obj b/ipcore_dir/isim/fifo_usb_if_isim_beh.exe.sim/xilinxcorelib/a_4048593843_3212880686.nt64.obj new file mode 100755 index 0000000000000000000000000000000000000000..c5a321a061df30dde47ce0244df9510238bcef82 GIT binary patch literal 32216 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 BGqC^w literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/isim_usage_statistics.html b/ipcore_dir/isim/isim_usage_statistics.html new file mode 100755 index 0000000..3112e2f --- /dev/null +++ b/ipcore_dir/isim/isim_usage_statistics.html @@ -0,0 +1,16 @@ +<TABLE BORDER CELLSPACING=0 WIDTH='100%'> +<xtag-section name="ISimStatistics"> +<TR ALIGN=CENTER BGCOLOR='#99CCFF'><TD COLSPAN=1><B>ISim Statistics</B></TD></TR> +<TR><TD><xtag-isim-property-name>Xilinx HDL Libraries Used</xtag-isim-property-name>=<xtag-isim-property-value>xilinxcorelib</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Fuse Resource Usage</xtag-isim-property-name>=<xtag-isim-property-value>389 ms, 20568 KB</xtag-isim-property-value></TD></TR> + +<TR><TD><xtag-isim-property-name>Total Signals</xtag-isim-property-name>=<xtag-isim-property-value>194</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Total Nets</xtag-isim-property-name>=<xtag-isim-property-value>346</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Total Blocks</xtag-isim-property-name>=<xtag-isim-property-value>25</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Total Processes</xtag-isim-property-name>=<xtag-isim-property-value>60</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Total Simulation Time</xtag-isim-property-name>=<xtag-isim-property-value>1 us</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Simulation Resource Usage</xtag-isim-property-name>=<xtag-isim-property-value>0.0624 sec, 472461 KB</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Simulation Mode</xtag-isim-property-name>=<xtag-isim-property-value>gui</xtag-isim-property-value></TD></TR> +<TR><TD><xtag-isim-property-name>Hardware CoSim</xtag-isim-property-name>=<xtag-isim-property-value>0</xtag-isim-property-value></TD></TR> +</xtag-section> +</TABLE> diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_0017514958.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_0017514958.didat new file mode 100755 index 0000000000000000000000000000000000000000..41ab5b9628b522e08cf48a885f48a3035af1fce0 GIT binary patch literal 3620 zcmeHJJ7^S96n)v9?8YyWMiG%M#4fwD`Iu}B7D*%tej=KvSU7I7lkC9khn>-UDvLlY zw6qY!LJLbFilo!hLc}6SY^+iUij{?k5YL%?Z+DX2OcGRVa^cLq@80w7yK~>0w>$9k zQ*>hR^%(*A7UffjCm|u`fQLS4;qtf#x?KaQQHXvZ3)}_f;D1ZNUIKmrI`WMG%fMIQ z2XLqfexL`S48pgWEQ0f99dGY0A?l%N4{`z*B#!MDg2>`sR)FsjAzq+14f+W19(61O zcYsA%6MYJ-P1#EO*KJr=JjV)XN5xjYdKzW1of~oy@?z9MqH+gu82bq#w~&0w5(|(* zA7iR^>SjRYRvNBt$*Pp{Qmd<+ybm}GSim$8D@51^aT1{aUkK};2Uy1gfbX{>|Dgl( zA9>6?;hsFk1D~w8EzbZ0*Z4TVhY&nIWlIPb+*cg<a&SLaWDfD@i<g`8H_Gu6+z-sL zBb5%ICEj<=UY5VpO2{)9rzp*>sb}-PpfINLsGQVlj^9>%Y6`zgHJ6*I=Bu1)?9Xu! zJe8Ywi{ilaZ0~a6ppG2JMDo==%=2~~KCZnRV9b98G4#gIpcgsVL^!uu=3|ZOem#o8 zjd!2D^BTLipph4ck3V-@lRrt+gYY$^o_joTf1#}5-;ux90msc4j+@SB(xr?z-<>!Y z?`X>;O72ABRyJcNoYHv0GEFl<o?V!<#*LiijK>k&CVOoHv2MsUjH1!nk!sbG`iWFZ zI5YV|(V21JZEMrJ+Pm~ty%W<)W`5Gm(#RXrdNL-BtTgP3XI6S<rDw{PoGDv|re>8# zSB9MwIV)etrKfw-j;ZX5_7-F5H_N?n(_^;jG3!RkRj%i6vvKa2jUB?<R`dLM24l9) z5%Pbd>OTU%Mf&mA(-Ufrc|X)j1ErA?3PnO%B%*~P;b>S3N401)T#Z((U|w~F;2By) zf_c^GrICK)?C`))pK<wg-^lPqx6nH@BJJ+j)mTf*shA#2y0R70wXKjww?b;El18^w zc>v2-dH~B;djQK<d;qJadavPYI$fSE{WTRze@#u&UsHwj%XKZs$|Z^=bG(o%TDF;q co6}~TKJRiX8oHkB>`1n!I=bQ+E0cD`Z}42W6#xJL literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_0774719531.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_0774719531.didat new file mode 100755 index 0000000000000000000000000000000000000000..aaee773fc0fa3cc0965e1d27cfc04cc21c2bd600 GIT binary patch literal 2120 zcmeH|zfZzI6vq#(;(!SQyDJ0f54c)tbTg5}ACr57^nfP(N?Qqoabou$aB*^T(b2)d z!NJAE*)aGgFq+`^K}!naK%xl)FZuM{eed<&yX!S~aQhK27oH9oEVe<<k#$!XyN)2O zj{3XsTw<&P9zhRCYm9ZFzk+?VkAM$eKo6wW8A}5WPC*THfYq|pcZ_S?)bo~ier9Q0 zGfd8TK5uD;KGZYmb{{bk;)S3$)Zs`W&e$xzpeL}7R6qfqsA4Uj-~n@Gzy;`n1maWR z8T0ok2U3t0LPdq`&`0ye!VL>N_5T{0dOA;#Zo-9mC&U?@duY*EEfPaIKIwRTR-d$a zZ4ekf0c<d!=O)+!b#MuiZ+DcM?E%vN!>INvKy};z9NDEUcVJ<5ApEzIsEE#J2%Xcg zy)eZt3mNZ#=i8R&7aMlbwb{vzaxCjPTXFre(yrPy#dAxFBZN>WuGXwLCChUv4Pna| zo;!Ye681x&T)4@yx|vlqb=x#qpyaqo7c42in&UZjrR9oJv)*!Qs8Mu;Oxkb-xPlFX Q8=9%-G}(6SqE8cj1KH__G5`Po literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_1242562249.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_1242562249.didat new file mode 100755 index 0000000000000000000000000000000000000000..c6e1ca7768ad72e766ace82b6ef6bde79be0d407 GIT binary patch literal 8376 zcmeHL&ubi29DiAVB-IK%h<JST;t#@ZvL+!L+CogmWHq~OcQ?|5uuf*4y92W`%lwF` z7O5znDhT!<+JgtdgCh0TLxq49a<tHcCr>>T1oaOP;^#X%Z+B)p*=80~u*`$cyzl$I z@2~m3?|ZxR*1r9HQd{4BgQ5K~Nl(UpdX}+|bBtY!;GdA5dyKK^#~Hi)1Y@^=d%*E0 z8M_4jEx;oh_y)KMdv|~fQ;eCw4)6tV9k>Zl+Y5b8ef9&aGWPr@z5c~Zy`FfBkX;Yu z?_KTjuN-4632#5m*e<Xa;s$4o&_?`sfvfQM7GnDzxC5MnoeRJeun15ip2RNVk+kfi zekXb={U?njkeWVCJh+dIr5yFcve7wA2YS?xYEoyE49(q!AYQ$1^G~d|Y-9t=*pHRs zIsr)AvIi?w+YcM%fU*63dOib`01dE#bDz(VJGKZA|0o*8|31)*<0w32Hb-UP@2|?i z8k0;=Yk0`okF5!cj>c3r(%x?%EEMPEYXci3Q-lpVMgn_Mn0nZtT8`S7gpf_lkLtmB zLt->k!KWkU#9!Y9{FgwJy`cEfMQto#!lgJq{IPF?h+n{`n*KGk@iOT1K$49wA-hAu z|I>B@aR>Q9Pq~usNaUx$5)nt#$gc#gKhd;?ME4g2G&LFHa}k=3JIN=S^a!%ioU}_k zc|1xvse61#E~*oy$%c%NXo@j9Pv@(&O?^_k0;i-$KB<q^W0L$ZkL344U5cOLA>Qo> zkA4$~XF`DX0>$zaK=L2pG4b{5!QQ?8^I-pBDr^5y23${Xx}Iw3s-v^&QlXNce?>1i z-aCcuwr&<&M=KaYh=S#Jgkxxs)$^E1BN|a<QJU;FyUpT!sW>w`vrsCfF{;_!i;mH1 zdzS4Pnqa==8ZArcEbLOeilzE#JX@-pO5AR~t2&lpwb+(zn?kjkp1Ng<S5;TUIYXlq zZ_rUat=%)5R2H<C<ZnxGZemP4+ILcZcuaedc*jD4;W4pS<QnkVQfZ!-6-CMOWz*!r z!noWKu5h-6o)2yGECvIZChHU76BG@D7A1ydCS=R4mfxJ_m9wkU+;(_Psqn3f{5|2= zxtw8n!m(773&+8nVR5f5xNdA4u3=kTHCwi0c<oNEx>-?b<&|c=v6??wIJv~n`=}*h zdA#BHmZo|_KZHo!j3YWQR1+Q5uyo-ZVCkVq<#O@RI<}6`Dz@&MzI#Am4^!q0qOp8b zi|Vv+xFGGi@Pvk}Por`?KiD(;wdIYv5?cn+>j+QXR!tx4dT5=@*Pz<791e1EYRoz$ zy|i_h`HJu5EQgUgJUwn9l49yg%)H(I({d`yWPE>~8MjIT#k4h<c}x1cGfquD%9$Lu zB*)2P<|}?4WH}uCUKb8m9F5v$Jcoha=%X=N=fNK^$$FWu-WUF(xn7O4&2qJ&tSPnd zb2{mZcqaM<9n~0J8waWdrFevnHmmjWT2)zH;@h|pz%7oKbR&ZoIgA)qzgbystgMen z(0%^}BT5@DY$(;W#yT&Y=CzO>c|{S?Jup$3!&E87QqRneSikD>=1_@0K)jCIz)qp- m2+i(v4HK7?Vn^hO7hHFDo3q8a;`~CfI9JN+hOT<JoBS8*rSh2o literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_1367372525.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_1367372525.didat new file mode 100755 index 0000000000000000000000000000000000000000..d8abdf91be76893abc025bcfc2683f1147fef459 GIT binary patch literal 15964 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_2592010699.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_2592010699.didat new file mode 100755 index 0000000000000000000000000000000000000000..fd11435f8bf9624901a32daa50c36cb1141ca4af GIT binary patch literal 5664 zcmeHJO=w(I6uy&Wl2)rt|ExbLJj60CbS6{VK>Puzg0&i{P=6^*p7UOl!O6T~<|Pcl z#UKS;bP+6qi!P#@AR<I4BHG0)yAUj*AVegKR^5n|Di$~K`|iDG-b<X0$xMR_d*IAH z_q*qO@0@eryLX;i_+cP_r16Y`{4~H{rDpn+I@P1p*_i%r?FV|5x)1Ab_bc@!^a^x0 z;zHo(p~qpLfS!U5-J;YR(D_@HItOh)m!a37ecQ~l%2?O(>qlT!YVfidoh368tHXZ| zN?E>Y@NW>`N*4!}D(_ILX4SbvDe5HhzXW}Jt5T05x6{x|(D%SI4?PC0Ln*{WKSMrZ z%NT!d!h|$`ITyvFnzmrAMx>!`YvYS0&BL*s2zNUlt}S7oSStM~3%c{hCWbaCwwpG` zebyF!i37ZDS+PQHrB+t>%bNE?3(y*L@yx*_2K5M(_-05axo<`u|2NM1-cOou8Ta5U zes*HKc;4(e`|&(~@cmNwx)@8T5`52L66fH1v}8HzUl<O?UytKs_<pyB1D}D~1tR9* zSdI_ca9jq*&uchX)KSaP_}t`iwGGD*e6L|$?Tq@tm;O!Qw__Z)98cm|JU?3X<2Zb` zV7)#Rao`wMCs5EHhBQnbV{JIn@Erk9{oaU!=g_;r@5FfJLvzl)*oI>QzGLLLKjPSe z*sp-!gK^Gs<l1n&4_^-)Hzn!-+NIB4j%*D_v`LSA-#F(x!;$+=AMPFJa_8_`<=kGI zup%K&k#YALTh?S-WQ_aMhq$aUKau8#4nQC1c7eHy2p8v!6&}Wl9ruab<P;yNA5gO% z+U$q;@SPMp&cj{_&VGp<_hJ78=bcGg*7w40C0_#+Kk@wynCzkO{RK?+Q~KA30NGpV z<91-IlU&lzEGAs%9m+MHm;BCX?|`y?VvBef>*pSGB=#dP*310a17iD-0PDLO$~9sb zn!@>8n7spK9v7fz7GBYH{z42kYxu+B%#8%Zne$cz(f{9s&-s*bR>?{1dyLW-sdo>Y z#E-cX-w$B<@KN2S#qp<;jD5`dvG3cV?9DM?&J)IO&^3OiZLi3=3(9`Y153EZPrYvZ z8o=Z`!(U5ne+z8R`i)z^KY_`2co+O=Z$m*BtzQFvfNshS?m#v4a@Ei+d2Yp1&pn(O zOCNg3%T&UXnVCtin5kCsnS$^88Tu82i9$Y?&5j&QV{wDts|i$#>9poosTWdC>SgFK zGz)zd`V#b6=n?3HDIIOxb2ENE3@Q;{D@&Ye!&zl@md31_=Ct`^=Ch=*wR(r$svn=X zwnO)|qQBZzLy@<cZmhu-zZw*$!$MHXbrOzE?I<p&bQD(WFs>AY_Iak~*by_={ak~o z>&|Ce1z9kPS`BdH{}C2}HY^5gZ2$5zs4U3w73(x`wzEk6Mz=gEcuw=omNS`m2In%$ z9V_=~9EV%;4wl0>&d2o|Jtt=*2`ehmljwmYR3gz!fzi|3m+T+VMiQcp{$#%~29ilG zNw~g>apRCDK_!_M@?fe7&C<GjOasv@<byDikLJ<o@h7&l4xeVtHf3FoO{^CQL!)xm z<zu5Xhc1#Gvz3~X-O9xDlwS&~PH@r*X8cMqa6R91QaDLcPEhtME{<Bqt@sW;S~`W3 zzEgFle5dG_Cc??hBPey9LiY?orMo6{8(;d*32?-B*MjZ|x^6;ky$pqFVJcIu`1xR} iTqycp+OPR(V*3A3Id|aD=z-zv@W|+B+ADZ&sMOy+TVdD$ literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_2717149903.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_2717149903.didat new file mode 100755 index 0000000000000000000000000000000000000000..bd4933d5bae08805630e76b0e8b51af7947b2c99 GIT binary patch literal 12072 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3039841270.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3039841270.didat new file mode 100755 index 0000000000000000000000000000000000000000..0fd53f51107e5035b82c6b2c49893168e4da27e0 GIT binary patch literal 5400 zcmeHKJ!lj`6dpDH;18tmCxyizDHOu(X`&`U1vP6tVlH^Oh=_1*ZpXWYz1=Xo8-I&{ zA{HquEmBx%lR_J@5KLudVXFbLNaZyOis|C__I7kH+=bj}0>VA`cHVpQ-kUdXXJ%&y zpMBaY&d&`o(EF|QWNd0XWA`^QHWS15i0|6OSZ5n!J)0T33CsX<fDip^;NTX<lE7u4 z1M!l;H1GtN1>OM*z*m5%Ginz<lo1vFA1m#vsGTa8+icj}jqD!HSNi9+VcZ(nkKC^U zW`vGC$O9-M{{^58aoUmFHDC(3j~LUy3BU#xf0o-wr|@vGS|)vb+zpg;j7V0X2`Qdh z3|}S3`%t>Nedr4Ns9lLvyp?RI?+Of6ZX~}ztrRWKlk9c?Dz<8s{c78#h^PjPEiKV= z7jO*711|9S@qD-jdLuoWe@>Kti`Ksa&%dN_N>qs6!8d>u#8=h?7^3!yOv|OBVC*fJ zbJ!s5<v%gVhr^kU1&TrY=Qkk+$?+IJAP<uA-e|bS$d<$rIAcpQ{$MuL9|BMDC=a4| zj81e6RSi_J`Cpz-k!UzKv@}mOM`G^)$B9`ZqHz_}Ik>!(D!09nEv2%%4o_zX5&5Wi zB$GW6>EimGkX3wowTj;d{%?ua$V&vF1w?UaUZi^y)8SLoqBW?1=bJgtHyqQDCQJ8g z!-=EarY8OC+GNqRHBaU>O9-JkK}kp}pBuOQ1bP}Vjk&To-@s^jcjA_`3Ps;>eJd|m z;CNQS5hjb820}ST&`|P**O0lJyJ1Mjatbxx6|HS`K8EK9WYW=ESLVxQ(w|kc=ZE|H zj`EbQ>j{3^ws}|*k4xbRIVsEpV*{y6U3_?Cpo_bbXY^q{ev98061M}(@r85@n+qw? zXF1$23T|4HmS?#RH|&BdEx%Y|>9JuwlRBF_lgcIzXb1ZF#Q;SYj?c3)aPo#P%vG3F zhmoR$Kp9aoEXNeGPNa3QLOrX}FS#aC!!xi0uTEm?X>$tMI00U+Aq&`ZD7z_qkw?|L z@S^=7TwMIz=?kNJ)jV2$*mO1Oa-zw4w*2bU^JKFHZ8@&6dz&rJsg`5?sy17jmS63? zudS{y+00n=x2fevH$uL=F4>V>DxK8_^-T21ul1!*#=r7Sd5on;Q-f)Jpr23T9)Y`` zU+W%+(Dlr4Lo8_%Qsmvzgk|HNDQ=1c>B2vQiClNGyRWzB@R8%mglU<EPj}W|6o7X5 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3499444699.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3499444699.didat new file mode 100755 index 0000000000000000000000000000000000000000..c0acd525ea08a8c18a422d52df1b4e05b5aad74e GIT binary patch literal 4232 zcmeHJOKTKC5UxCYzXIkUqS6N;3c4G0BdmCcibNyE2l0t8ne4RL!P(hmW{mN1@Sq@g z5xnY2(2Ih2@v7ia#G41j2lxX7qj(6$@0*!kht;SF(SxMm+pezus=B7Tx_f)>yq<G% z*P}fG8J)vlk<M8nmzqUxWH6TMg%*)@ts-B5t>6ui3tWKx2?6~nFbeEPyfV-}S7Z&) z4GaJyz$JikBAs(dQ_?S=n+;Eq51)E5gGd|f%&Rr!4}4DS{qsbAhF9}NRxA)%o#INH z2vJ7<?*T!qyO?1NSTS2<8R975Ipb6R(%VX#0dp|AX|waDX_FQU`vzE!x^8R}wOj^{ zF~vp>OtFpauf+KMio>zXAaZfZr`Yj|CpvA++l;ea3YgfYg=tbUo(jKDWPF^zi-48D zDd0Tt;p5AA&$p&_G}A83|0<B=G40`J0{(6VZoY{3m^AJM&;3HQwKvJ$(~jeZgU=sU zN>VG--vX=XbnANz?&C$+NWcFsi9!E~VjKW>HDk<3eFeB22Il_Z9gr2XWbH6!b@H=k ziDM=P{mG{op7Bk$H;zR;>yy>#%Uo!quy`6{nV7623a>N6#}!}a8$Y%tPpCi0Ls&R& z?qt^B3-mcRo|QNrZQUR-{t|#W(uU@bh5Vaf)7Ruf+wF{v-$L7Cw5)0J@WjPAJY#>X zH@>}}cRy$)Z#f8yQy%YE#?Hew@HOFG+xDP-{xCEpVGj3z>vxV#$^U<M3M0n~BincE zz>&T!`MtTWO-??DPUeTpj+YOEQr^{C=gIS`LvG2k12-z?FgjU!LkMZ?a~`W^ZR{#; z?A*|~xmc9be&`PQ+7Z)KY|pb?Ka#MnMT4FdovrEZcBsX4zAKabBnB9CeLFZCho}sD zMQgBH^|bBRC&(IqU`=*W+|U}CsK!{kgt;I1w~zh!y+GU8he?{6np+Zp*+lf0b)c0S zD%)2bhdM5F90iU5$AR@7%Jn%C?`lOyZb?;ZIzU0JQ&Cx~K!>NjNS$##PYr4X=QTQ9 zo0|zbv!>HrQq3*f4)(B4qiR)ob})pZ_0^7jeTS{xef>Lob{_mIMVFmmi<<frI5EnN zRM`%3PPDH|Rex9qk#_Jssx$XLf7?G=!l~~~H1S2|hHfQa3v{VkskxqZa(YDPXp3LH VnzgA=EEWm{yhb_4b?k_D>^J`hvU~sl literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3564397177.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3564397177.didat new file mode 100755 index 0000000000000000000000000000000000000000..0c7837be0712b92c5c4429939bc20862b4b33b1c GIT binary patch literal 4624 zcmeHJKWrOS7=KQkrUr^42I%-;aUv1hX_5vPkPJy0M}*pP9TGZlJ$#q=q_fXDUqd>8 zBE-N(B^VH4V1uCx0R$sRj0{~75@qNP44_I3;rF}qJOAm6zyw5weA4f|_x=Cwdw=ZZ zkAEE7EPnlh0R2A3QHYzPLcBF1#D_gdo{IQqFwZ81ScJ{nz%Af5?IHgT7(Xq<IiLXC zM7+;|YiEQAfL-7t;49!;fb>Zx=lidh5T#4!L^<XQuq}7&mBo80A#_MSgxY}B4#por zO+X#rau+Bd-#tVwqP{w?fjHNIai9Q@C{uW9uQaOGYVOUOh+N{4yaL)3ua!(Uqb$KT z=ya5k)Esg8QTgk&U8#qJsy0f$i8~$Tp-$;JqkZ?)2GLM-&>?=S5C;bw&jODE4d4x+ z{N)c!C!Pf;|1XF=dIw+~9{@PAC-i@G;OFndy=H3e$z2S%j=0p-2RM<!>o^{*d3>T3 z-W1rD$o$rg!To$31AT748^s9y8C(<NSIEmyi9fnAcotqk3_KlTcdrwJ{)fcK!1fB% zC)DkLY8Pkj31{6Mqnt#YZmnbwhgOjd<B>S4*yNQBV<{URE}adZI%UK2)@#FkS9$sV zsM>mMc$AdQV_56xEDY$wT(srcEn~r&_%lWwWqXjZh6e%Wq6||^<ZprdB9<J!pzR%~ znS(i1?f0<$W#hB(uI+xhpQPOrFi_vb-yN=>hAi=NWcO3Y&ZZ1Hf|rsp-vra@*cJBo z!?+Ni(7)J$c3>Ipz-(HkZ;8tnvoB`mW~{6qY-YFXmYZ$+wX9>?c9wRox8>A~z}^WQ zF9Y?^_Jcu$RuCl+Ol!1^^K<$0x#`@6d|ouR-F(Zv-WKV#v`lXRIba&N3akUGKoOWq zOWXH7U)1WRZ#YfM-mxv?)f)ywJa4vbtwJxPOK%8<3`6J?VU2^<ap8lCI1ImPP<g1= z&}|P34LpOD5A7Uw5Y7y8B<FDFv?rJE6z_fb8;Y3^6ZvSkpQmbVBR73@eYH46=5G@+ zjqqjB5Fe-TPeG&`O@z;z#_*VlQp3=hRBGgu-eC;l(@G^$qlr{famRYDEIqe4aizLw ztgV)oR~9Da5-<Kmxq!oN)&kp?>9q81(|S_cJ1rX$OLonr>%hcxGXr6amzEZ)rONS$ z);V#w61)|OL^NT<65vQtsGu+sM+<Uv(8-JZXw|O@S|m+0tEW$<EZRGgFF@4EiQLqs z$xNSH)xY61w`AajJ(k;Ou;<IyoS-hvrt~aJPBguyY+QE(r{&tx+my4D(zTmgLA@`~ zCDU=SH7Zb0x3Nu?mCMV;^~y?hNtJn&d`IbH=*u>;t!#JL)<mN8mpyFCQY|pu{x;4} zX8Jt;!Dr2=HueQNw2h^swlU79ZH3cz8rha_*StoH8=1i`Zice(-$ToonY%DMlb@fS MpU+s1Wd;oLC+5;%e*gdg literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3620187407.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3620187407.didat new file mode 100755 index 0000000000000000000000000000000000000000..9521ac3ecc96d1fa351bc398f1ab92fc6dfcc620 GIT binary patch literal 2232 zcmeH`zb^zq6vqd5C<ujrKqCs-Ic^UtiYp{899Iy9W^--^lkEM-?%w4j%KHzrDh;JV zLZMJ76iSIs6e^8IE9d)ecP|?@5(%QXZ}QoB^PRc(-p$S~9zXPLXRekR^wLL9PmONI z4nxFxy!kvvJ;qoaT!Kdsi!;`Me+w26XMqcDz#|yxWo#ViU>#VX4oG)cC!NgYT2Xq_ z8!wK$arQJ9f5l47-=9AB{0w@H!s=&iA2fU}FcQ1?FHhhMxhB9qXn+Ca83EVG|LWHu zFM#dk;z1mY;ksR3`|T&qe;P{uu}-^SC<y9?tjKT_8^e1iL%YbwD{Zew&B^<&n!fM~ zpk|YvgJ2ZggJ&>&Fh-@B4aoluQSWbn`WV6lSGJ?h3H+NAp!-Q026RUQ=$_J=_x&K~ z=wF?H;|kMp^CgkD1zVltD_SZkxGdH9QhCeaYpPha@^0DYnT2dt!Py9c+ODv;V;8uR zQgX^;m3LIZtd<<LQ<5UW((s$VDe}1;7GY86X2qOJ8B>YL#I#{B-%09*q3b$1Ur0Hs l$Sbxil#3N*NukNQ)W~a{NX1M}Bkk;ro|w^u5_y+Wy#obes^9<s literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3972351953.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_3972351953.didat new file mode 100755 index 0000000000000000000000000000000000000000..d83a301f7b49b7cb0edabde28c62699128589785 GIT binary patch literal 8004 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 literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/ieee/p_4165608084.didat b/ipcore_dir/isim/precompiled.exe.sim/ieee/p_4165608084.didat new file mode 100755 index 0000000000000000000000000000000000000000..1ee3dddaecb710b5801b0b993a9f9c48ffc3519d GIT binary patch literal 4604 zcmeHK&2Jk;6d%4?VnCu2LL3K9adEusI!W!eR%<6#Y_MZv8!5Pl?bbWB7yQL~u~I;y zha8Z&aOBVf2M~8ITyx;Sp(p+TPUQqb^unbP;rDiT(zU(oBua8X@TA|onfE<!XU56K zcfXv!Q`mi*fqp(uBV(y^jO{$l*nJ=Ny!rAojK!X1?AmjT-2=V>egZy){6|2AFZtgh zj(AmI2iOH30I}y8TL-E@Hn)0p9kSfzD;(4w*aKe5=8{(<5wMgav{jxlU}FQSkN5&( zLFl}|*yq5P9`-IUM(Cjahrk}{dJX6R+rUHA@jGxIcmPB`i7b#z;^Ii$lyk}bd7pAy zb}-Uf0&O~&lMLx6*3wRLw9nB?F69tAa^myIZ$HnjfI?&~WM`rek|+k{mo<<bS~*iU zM8~3ik0>5v`};J$1f+m3fUkgCkKT=du@XS?vmn~vw}4y6S!DP>=DZHv`|ww~77jVz z0t228_VvE|?N!WQCap8jNpa5#iSEF*2JVkR-|>+bL!O@-kcGwg9=7$V7<AS%2;{G$ zIw!{8h|z%l-%5X>aBRV$D2-mPY5D_@rpXx*<(0W*3b}sOr^AzdU^hJ{Kk{)N3vW&~ zM06hHoNVOWFQ>Wm#dLz+fD`$V4RJbuH!z{KUxwwG66Jl-%X<!-&M3*YJXsYSKU2pd zxUg4f@F@1%&U@F3e|#oIv_BP#3rp*b$FDE!dYrcZpQVv)Xd_$i8@gq%%_~YdzLGQ) z(H|>~N?j?em#QDMN6NTkbQMzwp;%&MTV~4^hSJmRj@BCVhF!58hs8<V{qfkuf--AE zEt$T2DY=qJuOv^Jsx=tiwaj+M?hkCUC730c*<;>b*l;j1ZF4L%OX%I{m1Xu@=1}iy zW4-&4V8f|(Pj55bYRg#KaM0DQla}i?<F-B$TH+LAy?;8fJ{Hzs=Kj!~qPJIaX|N_c z&lBnNDlg{q`8dyZyWII4BaZVWtg$fS(!t?>UY}SVEN11Uc(%5|GkmF>Z4|U>k(+&< zSuDkB(ORe`$VUlx@>I=$c-2ZNThkg9ZLLzSmhxMR&1jHWHdhbR)HXsiOCj>L%H~@k zs`@*%Mu;lERdqDAJbI<ZRgM>cH{->!w?x-U6}Oc6CYO#7CZRe;<?IH(=4SJSpZ#1i z@r=EjE6~AJ&3Jg316@4b{Ov6^W4UZSAEiMSKd`v7%<u#nC%59-HRCfi96v;0xiU=9 zd8!vTL%#D`CG4cZrx5N$s-SD}X6RKqOcNe0NV620=P*rpv>?sJ&^(7}!lPwvTl9uD z$A9~VIW`T!z1M)>zRMSJ*<y6#qNiboIH6%Q=P{bh8C0|q+5%T|gajxfJn|9zpEPCa wk*3?_R$-3Jo-(uq{YINz{62_n5ht1RSIJOYPOPr1swp+K95+lux9KP1A4I_LApigX literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/precompiled.exe.sim/std/textio.didat b/ipcore_dir/isim/precompiled.exe.sim/std/textio.didat new file mode 100755 index 0000000000000000000000000000000000000000..6d3350d808d4e0b1c0677e8eb826e37ac25e9985 GIT binary patch literal 2368 zcmeH{ziU)M5XUDPjS7Nbkh8O}lzZThMif#6G!bLK3u<FHvm4*a<?eWIW3C9qB7$IP zBPy6K%@r0R78X(RM+5{B$)AuyK{&tPd%Ne}<%(B$LLdX5o!Ob$nSHyrcWwRK$b;(} zHw5x)grmqwuzEn`O~8(`&m9ywJ1i1|CMX;dxdJTwpTIKgRnP=uheZ^437TLNY=hrm z)b+XxoAUkhB&z+DSI(UNGCABp&NG+y+WB{|z8_mhM1BG}nlT1VV(fn#6i`QDZ|}h- z_=q|ipbpl+TP&l`!*<^GI_x{dgg`j&1;?_>7v^AFop`U!Ii<Hx=ItJR&2I1R*$=pU zA4abRDXhVmk5l6~I{VAp153K3<%IP_S}l&p9e1GbgSF+0xDk=_fU!YHo^u>T-~F2Z z?*!hV72h0%e*^x`pTjQD3Hb_`!}u|f{Vqj5z&;K3g7kZf{##GE58#~dmqMF=jTE2f z^@+^g_Ium8I_jxg$4AO_eA1nuo7bRi=p2yE{wv_c`n`YBf#0H0$)879l(9!H)-N9B z?gcxwYBsgyswyW+rY=V}i<d5_D6#X=<5*RqG?|N#5?S4_rdEV6Us9GYPE|}*w{1y{ z(vp~mu{~4K^H!FOvauU;bvM=eqRqF5+M;D{f5A1bxchtJGj5m0XD6nnXG%0~&6Hr7 c)GS2xM9<Y0>ZYPqQ8#pvzTi-lQRQ}<Kb`r!<p2Nx literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/temp/fifo_usb_if.vdb b/ipcore_dir/isim/temp/fifo_usb_if.vdb new file mode 100755 index 0000000000000000000000000000000000000000..880f2ab15b85dec558d25f4df664f441ab9df0e0 GIT binary patch literal 8343 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 O{G6b*WWD^Cg#QCwiC@<M literal 0 HcmV?d00001 diff --git a/ipcore_dir/isim/work/fifo_usb_if.vdb b/ipcore_dir/isim/work/fifo_usb_if.vdb new file mode 100755 index 0000000000000000000000000000000000000000..77de9e51a0202bd646d4aa17d008983d8560ccad GIT binary patch literal 8338 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 LXf4?w{~O`|jAvXM literal 0 HcmV?d00001 diff --git a/ipcore_dir/tmp/_xmsgs/ngcbuild.xmsgs b/ipcore_dir/tmp/_xmsgs/ngcbuild.xmsgs new file mode 100644 index 0000000..f84336a --- /dev/null +++ b/ipcore_dir/tmp/_xmsgs/ngcbuild.xmsgs @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated + by the Xilinx ISE software. Any direct editing or + changes made to this file may result in unpredictable + behavior or data corruption. It is strongly advised that + users do not edit the contents of this file. --> +<messages> +</messages> + diff --git a/ipcore_dir/tmp/_xmsgs/pn_parser.xmsgs b/ipcore_dir/tmp/_xmsgs/pn_parser.xmsgs new file mode 100644 index 0000000..0fd9d6a --- /dev/null +++ b/ipcore_dir/tmp/_xmsgs/pn_parser.xmsgs @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated --> +<!-- by the Xilinx ISE software. Any direct editing or --> +<!-- changes made to this file may result in unpredictable --> +<!-- behavior or data corruption. It is strongly advised that --> +<!-- users do not edit the contents of this file. --> +<!-- --> +<!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. --> + +<messages> +<msg type="info" file="ProjectMgmt" num="1061" ><arg fmt="%s" index="1">Parsing VHDL file "/home/horacio/Dropbox/work_private/lago/lago-fpga-sync_vhdl/ipcore_dir/tmp/_cg/fifo.vhd" into library work</arg> +</msg> + +</messages> + diff --git a/ipcore_dir/tmp/_xmsgs/xst.xmsgs b/ipcore_dir/tmp/_xmsgs/xst.xmsgs new file mode 100644 index 0000000..0d2735a --- /dev/null +++ b/ipcore_dir/tmp/_xmsgs/xst.xmsgs @@ -0,0 +1,2274 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- IMPORTANT: This is an internal file that has been generated + by the Xilinx ISE software. Any direct editing or + changes made to this file may result in unpredictable + behavior or data corruption. It is strongly advised that + users do not edit the contents of this file. --> +<messages> +<msg type="warning" file="UtilitiesC" num="159" delta="new" >Message file "<arg fmt="%s" index="1">usenglish/ip.msg</arg>" wasn't found. +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">0</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">1</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">2</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">3</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">4</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">5</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">6</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">7</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">8</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">9</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">10</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">11</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">12</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">13</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">14</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">15</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">0</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">1</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">2</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">3</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">4</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">5</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">6</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">7</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">8</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">9</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">10</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">11</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">12</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">13</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">14</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">15</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_input_block.vhd</arg>" line <arg fmt="%d" index="2">88</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_input_block.vhd</arg>" line <arg fmt="%d" index="2">88</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">780</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/fifo_generator_v6_2/ramfifo/fifo_generator_ramfifo.vhd</arg>" line <arg fmt="%d" index="2">358</arg>: Unconnected output port '<arg fmt="%s" index="3">INT_CLK_I</arg>' of component '<arg fmt="%s" index="4">input_blk</arg>'. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/fifo_generator_v6_2/ramfifo/memory.vhd</arg>" line <arg fmt="%d" index="2">470</arg>: Unconnected output port '<arg fmt="%s" index="3">DOUTA</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_v4_2_xst</arg>'. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/fifo_generator_v6_2/ramfifo/memory.vhd</arg>" line <arg fmt="%d" index="2">470</arg>: Unconnected output port '<arg fmt="%s" index="3">RDADDRECC</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_v4_2_xst</arg>'. +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">0</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">1</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">2</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">3</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">4</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">5</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">6</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">7</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">8</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">9</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">10</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">11</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">12</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">13</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">14</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">15</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">0</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">1</arg>: (<arg fmt="%d" index="2">0</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">2</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">3</arg>: (<arg fmt="%d" index="2">1</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">4</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">5</arg>: (<arg fmt="%d" index="2">2</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">6</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">7</arg>: (<arg fmt="%d" index="2">3</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">8</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">9</arg>: (<arg fmt="%d" index="2">4</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">10</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">11</arg>: (<arg fmt="%d" index="2">5</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">12</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">13</arg>: (<arg fmt="%d" index="2">6</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">14</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">0</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="info" file="ip" num="0" delta="new" ><arg fmt="%d" index="1">15</arg>: (<arg fmt="%d" index="2">7</arg>,<arg fmt="%d" index="3">16384</arg>) : <arg fmt="%d" index="4">1</arg>x<arg fmt="%d" index="5">16384</arg> u:<arg fmt="%d" index="6">1</arg> +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_input_block.vhd</arg>" line <arg fmt="%d" index="2">691</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_input_block.vhd</arg>" line <arg fmt="%d" index="2">707</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1539</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1552</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="752" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected input port '<arg fmt="%s" index="3">ADDR_IN</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>' is tied to default value. +</msg> + +<msg type="warning" file="Xst" num="752" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected input port '<arg fmt="%s" index="3">SBITERRIN</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>' is tied to default value. +</msg> + +<msg type="warning" file="Xst" num="752" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected input port '<arg fmt="%s" index="3">DBITERRIN</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>' is tied to default value. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected output port '<arg fmt="%s" index="3">SBITERR</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>'. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected output port '<arg fmt="%s" index="3">DBITERR</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>'. +</msg> + +<msg type="warning" file="Xst" num="753" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_generic_cstr.vhd</arg>" line <arg fmt="%d" index="2">1599</arg>: Unconnected output port '<arg fmt="%s" index="3">RDADDRECC</arg>' of component '<arg fmt="%s" index="4">blk_mem_gen_mux</arg>'. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">976</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addra_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="2096" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_prim_width.vhd</arg>" line <arg fmt="%d" index="2">977</arg>: Use of null array slice on signal <<arg fmt="%s" index="3">addrb_pad</arg>> is not supported. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">470</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">472</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">872</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="info" file="Xst" num="2679" delta="new" >Register <<arg fmt="%s" index="1">rdaddrecc_lat</arg>> in unit <<arg fmt="%s" index="2">blk_mem_gen_mux.1</arg>> has a constant value of <arg fmt="%s" index="3">000000000000000</arg> during circuit operation. The register is replaced by logic. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">470</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">472</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="warning" file="Xst" num="795" delta="new" >"<arg fmt="%s" index="1">/home/horacio/work/lago/lago-fpga-sync_vhdl/ipcore_dir/./tmp/_cg/_bbx/blk_mem_gen_v4_2/blk_mem_gen_mux.vhd</arg>" line <arg fmt="%d" index="2">872</arg>: Size of operands are different : result is <false>. +</msg> + +<msg type="info" file="Xst" num="2679" delta="new" >Register <<arg fmt="%s" index="1">rdaddrecc_lat</arg>> in unit <<arg fmt="%s" index="2">blk_mem_gen_mux.2</arg>> has a constant value of <arg fmt="%s" index="3">000000000000000</arg> during circuit operation. The register is replaced by logic. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RD_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WR_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SRST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH_ASSERT</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">CLK</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH_NEGATE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH_ASSERT</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INT_CLK</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH_NEGATE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WR_ACK_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">ALMOST_EMPTY_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DATA_COUNT_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SBITERR_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">UNDERFLOW_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WR_DATA_COUNT_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">OVERFLOW_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">ALMOST_FULL_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">VALID_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RD_DATA_COUNT_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DBITERR_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">INJECTSBITERR_I</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RSTA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WEB<0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DINB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">INJECTDBITERR_I</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RDADDRECC_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DOUTA_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SBITERR_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">CLKB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">RDADDRECC</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DBITERR_I</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">ERROR_INTERNAL</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DECODER_DOUTB</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DECODER_DOUTA</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_LAT_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">ADDR_IN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DBITERRIN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_REGCE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_REG_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MUX_REGCE<0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MUX_RST<0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SBITERRIN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_lat</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_LAT_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">ADDR_IN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">DBITERRIN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_REGCE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MEM_REG_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MUX_REGCE<0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">MUX_RST<0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SBITERRIN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_lat</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH_NEGATE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH_ASSERT</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RD_PNTR_WR<1:0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_FULL_THRESH</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">wr_rst_d1</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">diff_pntr_pad<0></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEA</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">REGCEB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_b</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_doutp_a</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_b<31:1></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">pad_dout_a<31:4></arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_b</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a4</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_dinp_a</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_b<31:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a32</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">pad_din_a<31:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_b9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">pad_addr_a9</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_b<35:1></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">full_dout_a<35:4></arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">full_din_a72</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">RAM_ALMOST_EMPTY</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RD_PNTR_PLUS2</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WR_PNTR_PLUS3</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RD_PNTR_WR<1:0></arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">WR_RST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">ram_almost_full_i</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">1</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH_ASSERT</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DATA_COUNT</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">RAM_REGOUT_EN</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">ALMOST_FULL_FB</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH_NEGATE</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">PROG_EMPTY_THRESH</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RAM_WR_EN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">valid_fwft_dc</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">valid_fwft</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_almost_empty</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SRST_FULL_FF</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">RAM_RD_EN</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">wr_ack_i</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_afull_i</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">ram_afull_fb</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">overflow_i</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">DBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTDBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">SBITERR</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="1305" delta="new" >Output <<arg fmt="%s" index="1">RDADDRECC</arg>> is never assigned. Tied to value <arg fmt="%s" index="2">000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INJECTSBITERR</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">sbiterr_sdp</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">sbiterr_array</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">rst_enb</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">rst_ena</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_reg</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_out</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_lat</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">rdaddrecc_last</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr9</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr8</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr7</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr6</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr5</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr4</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr3</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr2</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr14</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr13</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr12</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr11</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr10</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr1</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr0</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_sbiterr</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr9</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr8</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr7</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr6</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr5</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr4</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr3</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr2</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr14</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr13</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr12</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr11</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr10</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr1</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr0</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">ram_dbiterr</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">dbiterr_sdp</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">dbiterr_array</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0000000000000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">addrb_in</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">SRST</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">zero_din_width</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">00000000</arg>. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">tmp_ram_regout_en</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">tmp_ram_regce</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">sbiterr_i</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="653" delta="new" >Signal <<arg fmt="%s" index="1">ram_rd_en_d1</arg>> is used but never assigned. This sourceless signal will be automatically connected to value <arg fmt="%s" index="2">0</arg>. +</msg> + +<msg type="warning" file="Xst" num="646" delta="new" >Signal <<arg fmt="%s" index="1">dbiterr_i</arg>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">regce_i</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">memsrst_i</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">memrd_rst_i</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">BACKUP_MARKER</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">INT_CLK</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="647" delta="new" >Input <<arg fmt="%s" index="1">BACKUP</arg>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_wr_pntr_w</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_wr_pntr_r</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_wr_pntr_plus2_w</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_wr_pntr_plus1_w</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_rd_pntr_w</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_rd_pntr_r</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">debug_rd_pntr_plus1_r</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_WR_PNTR</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_RD_PNTR</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_RAM_WR_EN</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_RAM_RD_EN</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_RAM_FULL</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="1780" delta="new" >Signal <<arg fmt="%s" index="1">DEBUG_RAM_EMPTY</arg>> is never used or assigned. This unconnected signal will be trimmed during the optimization process. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_0</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_1</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_2</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_3</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_4</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_5</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_6</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_7</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_8</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_9</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_10</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_11</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">diff_pntr_pad_12</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">wr_pf_as</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">U0/grf.rf/gcx.clkx/rd_pntr_bin_1</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">fifo_fifo_generator_v6_2_xst_1</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">U0/grf.rf/gcx.clkx/rd_pntr_bin_0</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">fifo_fifo_generator_v6_2_xst_1</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_1</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">fifo_fifo_generator_v6_2_xst_1</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_0</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">fifo_fifo_generator_v6_2_xst_1</arg>>. +</msg> + +<msg type="warning" file="Xst" num="2677" delta="new" >Node <<arg fmt="%s" index="1">U0/grf.rf/mem/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/has_mux_a.A/sel_pipe_0</arg>> of sequential type is unconnected in block <<arg fmt="%s" index="2">fifo_fifo_generator_v6_2_xst_1</arg>>. +</msg> + +<msg type="info" file="Xst" num="2169" delta="new" >HDL ADVISOR - Some clock signals were not automatically buffered by XST with BUFG/BUFR resources. Please use the buffer_type constraint in order to insert these buffers to the clock signals to help prevent skew problems. +</msg> + +</messages> + diff --git a/ipcore_dir/xaw2verilog.log b/ipcore_dir/xaw2verilog.log new file mode 100755 index 0000000..d09c75c --- /dev/null +++ b/ipcore_dir/xaw2verilog.log @@ -0,0 +1 @@ +xaw2verilog: Completed successfully diff --git a/ipcore_dir/xaw2vhdl.log b/ipcore_dir/xaw2vhdl.log new file mode 100755 index 0000000..2c5d2b8 --- /dev/null +++ b/ipcore_dir/xaw2vhdl.log @@ -0,0 +1 @@ +xaw2vhdl: Completed successfully diff --git a/kcpsm3.vhd b/kcpsm3.vhd new file mode 100644 index 0000000..e1e5804 --- /dev/null +++ b/kcpsm3.vhd @@ -0,0 +1,1901 @@ +-- PicoBlaze +-- +-- Constant (K) Coded Programmable State Machine for Spartan-3 Devices. +-- Also suitable for use with Virtex-II(PRO) and Virtex-4 devices. +-- +-- Includes additional code for enhanced VHDL simulation. +-- +-- Version : 1.30 +-- Version Date : 14th June 2004 +-- Reasons : Avoid issue caused when ENABLE INTERRUPT is used when interrupts are +-- already enabled when an an interrupt input is applied. +-- Improved design for faster ZERO and CARRY flag logic +-- +-- +-- Previous Version : 1.20 +-- Version Date : 9th July 2003 +-- +-- Start of design entry : 19th May 2003 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +-- Instruction disassembly concept inspired by the work of Prof. Dr.-Ing. Bernhard Lang. +-- University of Applied Sciences, Osnabrueck, Germany. +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2003. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Furthermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Format of this file. +-- +-- This file contains the definition of KCPSM3 as one complete module with sections +-- created using generate loops. This 'flat' approach has been adopted to decrease +-- the time taken to load the module into simulators and the synthesis process. +-- +-- The module defines the implementation of the logic using Xilinx primitives. +-- These ensure predictable synthesis results and maximise the density of the implementation. +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- Standard IEEE libraries +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for KCPSM3 +-- +entity kcpsm3 is + Port ( address : out std_logic_vector(9 downto 0); + instruction : in std_logic_vector(17 downto 0); + port_id : out std_logic_vector(7 downto 0); + write_strobe : out std_logic; + out_port : out std_logic_vector(7 downto 0); + read_strobe : out std_logic; + in_port : in std_logic_vector(7 downto 0); + interrupt : in std_logic; + interrupt_ack : out std_logic; + reset : in std_logic; + clk : in std_logic); + end kcpsm3; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for KCPSM3 +-- +architecture low_level_definition of kcpsm3 is +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in KCPSM3 +-- +------------------------------------------------------------------------------------ +-- +-- Fundamental control and decode signals +-- +signal t_state : std_logic; +signal not_t_state : std_logic; +signal internal_reset : std_logic; +signal reset_delay : std_logic; +signal move_group : std_logic; +signal condition_met : std_logic; +signal normal_count : std_logic; +signal call_type : std_logic; +signal push_or_pop_type : std_logic; +signal valid_to_move : std_logic; +-- +-- Flag signals +-- +signal flag_type : std_logic; +signal flag_write : std_logic; +signal flag_enable : std_logic; +signal zero_flag : std_logic; +signal sel_shadow_zero : std_logic; +signal low_zero : std_logic; +signal high_zero : std_logic; +signal low_zero_carry : std_logic; +signal high_zero_carry : std_logic; +signal zero_carry : std_logic; +signal zero_fast_route : std_logic; +signal low_parity : std_logic; +signal high_parity : std_logic; +signal parity_carry : std_logic; +signal parity : std_logic; +signal carry_flag : std_logic; +signal sel_parity : std_logic; +signal sel_arith_carry : std_logic; +signal sel_shift_carry : std_logic; +signal sel_shadow_carry : std_logic; +signal sel_carry : std_logic_vector(3 downto 0); +signal carry_fast_route : std_logic; +-- +-- Interrupt signals +-- +signal active_interrupt : std_logic; +signal int_pulse : std_logic; +signal clean_int : std_logic; +signal shadow_carry : std_logic; +signal shadow_zero : std_logic; +signal int_enable : std_logic; +signal int_update_enable : std_logic; +signal int_enable_value : std_logic; +signal interrupt_ack_internal : std_logic; +-- +-- Program Counter signals +-- +signal pc : std_logic_vector(9 downto 0); +signal pc_vector : std_logic_vector(9 downto 0); +signal pc_vector_carry : std_logic_vector(8 downto 0); +signal inc_pc_vector : std_logic_vector(9 downto 0); +signal pc_value : std_logic_vector(9 downto 0); +signal pc_value_carry : std_logic_vector(8 downto 0); +signal inc_pc_value : std_logic_vector(9 downto 0); +signal pc_enable : std_logic; +-- +-- Data Register signals +-- +signal sx : std_logic_vector(7 downto 0); +signal sy : std_logic_vector(7 downto 0); +signal register_type : std_logic; +signal register_write : std_logic; +signal register_enable : std_logic; +signal second_operand : std_logic_vector(7 downto 0); +-- +-- Scratch Pad Memory signals +-- +signal memory_data : std_logic_vector(7 downto 0); +signal store_data : std_logic_vector(7 downto 0); +signal memory_type : std_logic; +signal memory_write : std_logic; +signal memory_enable : std_logic; +-- +-- Stack signals +-- +signal stack_pop_data : std_logic_vector(9 downto 0); +signal stack_ram_data : std_logic_vector(9 downto 0); +signal stack_address : std_logic_vector(4 downto 0); +signal half_stack_address : std_logic_vector(4 downto 0); +signal stack_address_carry : std_logic_vector(3 downto 0); +signal next_stack_address : std_logic_vector(4 downto 0); +signal stack_write_enable : std_logic; +signal not_active_interrupt : std_logic; +-- +-- ALU signals +-- +signal logical_result : std_logic_vector(7 downto 0); +signal logical_value : std_logic_vector(7 downto 0); +signal sel_logical : std_logic; +signal shift_result : std_logic_vector(7 downto 0); +signal shift_value : std_logic_vector(7 downto 0); +signal sel_shift : std_logic; +signal high_shift_in : std_logic; +signal low_shift_in : std_logic; +signal shift_in : std_logic; +signal shift_carry : std_logic; +signal shift_carry_value : std_logic; +signal arith_result : std_logic_vector(7 downto 0); +signal arith_value : std_logic_vector(7 downto 0); +signal half_arith : std_logic_vector(7 downto 0); +signal arith_internal_carry : std_logic_vector(7 downto 0); +signal sel_arith_carry_in : std_logic; +signal arith_carry_in : std_logic; +signal invert_arith_carry : std_logic; +signal arith_carry_out : std_logic; +signal sel_arith : std_logic; +signal arith_carry : std_logic; +-- +-- ALU multiplexer signals +-- +signal input_fetch_type : std_logic; +signal sel_group : std_logic; +signal alu_group : std_logic_vector(7 downto 0); +signal input_group : std_logic_vector(7 downto 0); +signal alu_result : std_logic_vector(7 downto 0); +-- +-- read and write strobes +-- +signal io_initial_decode : std_logic; +signal write_active : std_logic; +signal read_active : std_logic; +-- +-- +------------------------------------------------------------------------------------ +-- +-- Attributes to define LUT contents during implementation for primitives not +-- contained within generate loops. In each case the information is repeated +-- in the generic map for functional simulation +-- +attribute INIT : string; +attribute INIT of t_state_lut : label is "1"; +attribute INIT of int_pulse_lut : label is "0080"; +attribute INIT of int_update_lut : label is "EAAA"; +attribute INIT of int_value_lut : label is "04"; +attribute INIT of move_group_lut : label is "7400"; +attribute INIT of condition_met_lut : label is "5A3C"; +attribute INIT of normal_count_lut : label is "2F"; +attribute INIT of call_type_lut : label is "1000"; +attribute INIT of push_pop_lut : label is "5400"; +attribute INIT of valid_move_lut : label is "D"; +attribute INIT of flag_type_lut : label is "41FC"; +attribute INIT of flag_enable_lut : label is "8"; +attribute INIT of low_zero_lut : label is "0001"; +attribute INIT of high_zero_lut : label is "0001"; +attribute INIT of sel_shadow_zero_lut : label is "3F"; +attribute INIT of low_parity_lut : label is "6996"; +attribute INIT of high_parity_lut : label is "6996"; +attribute INIT of sel_parity_lut : label is "F3FF"; +attribute INIT of sel_arith_carry_lut : label is "F3"; +attribute INIT of sel_shift_carry_lut : label is "C"; +attribute INIT of sel_shadow_carry_lut : label is "3"; +attribute INIT of register_type_lut : label is "0145"; +attribute INIT of register_enable_lut : label is "8"; +attribute INIT of memory_type_lut : label is "0400"; +attribute INIT of memory_enable_lut : label is "8000"; +attribute INIT of sel_logical_lut : label is "FFE2"; +attribute INIT of low_shift_in_lut : label is "E4"; +attribute INIT of high_shift_in_lut : label is "E4"; +attribute INIT of shift_carry_lut : label is "E4"; +attribute INIT of sel_arith_lut : label is "1F"; +attribute INIT of input_fetch_type_lut : label is "0002"; +attribute INIT of io_decode_lut : label is "0010"; +attribute INIT of write_active_lut : label is "4000"; +attribute INIT of read_active_lut : label is "0100"; +-- +------------------------------------------------------------------------------------ +-- +-- Start of KCPSM3 circuit description +-- +------------------------------------------------------------------------------------ +-- +begin +-- +------------------------------------------------------------------------------------ +-- +-- Fundamental Control +-- +-- Definition of T-state and internal reset +-- +------------------------------------------------------------------------------------ +-- + t_state_lut: LUT1 + --synthesis translate_off + generic map (INIT => X"1") + --synthesis translate_on + port map( I0 => t_state, + O => not_t_state ); + + toggle_flop: FDR + port map ( D => not_t_state, + Q => t_state, + R => internal_reset, + C => clk); + + reset_flop1: FDS + port map ( D => '0', + Q => reset_delay, + S => reset, + C => clk); + + reset_flop2: FDS + port map ( D => reset_delay, + Q => internal_reset, + S => reset, + C => clk); +-- +------------------------------------------------------------------------------------ +-- +-- Interrupt input logic, Interrupt enable and shadow Flags. +-- +-- Captures interrupt input and enables the shadow flags. +-- Decodes instructions which set and reset the interrupt enable flip-flop. +-- +------------------------------------------------------------------------------------ +-- + + -- Interrupt capture + + int_capture_flop: FDR + port map ( D => interrupt, + Q => clean_int, + R => internal_reset, + C => clk); + + int_pulse_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0080") + --synthesis translate_on + port map( I0 => t_state, + I1 => clean_int, + I2 => int_enable, + I3 => active_interrupt, + O => int_pulse ); + + int_flop: FDR + port map ( D => int_pulse, + Q => active_interrupt, + R => internal_reset, + C => clk); + + ack_flop: FD + port map ( D => active_interrupt, + Q => interrupt_ack_internal, + C => clk); + + interrupt_ack <= interrupt_ack_internal; + + -- Shadow flags + + shadow_carry_flop: FDE + port map ( D => carry_flag, + Q => shadow_carry, + CE => active_interrupt, + C => clk); + + shadow_zero_flop: FDE + port map ( D => zero_flag, + Q => shadow_zero, + CE => active_interrupt, + C => clk); + + -- Decode instructions that set or reset interrupt enable + + int_update_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"EAAA") + --synthesis translate_on + port map( I0 => active_interrupt, + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => int_update_enable ); + + int_value_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"04") + --synthesis translate_on + port map( I0 => active_interrupt, + I1 => instruction(0), + I2 => interrupt_ack_internal, + O => int_enable_value ); + + int_enable_flop: FDRE + port map ( D => int_enable_value, + Q => int_enable, + CE => int_update_enable, + R => internal_reset, + C => clk); +-- +------------------------------------------------------------------------------------ +-- +-- Decodes for the control of the program counter and CALL/RETURN stack +-- +------------------------------------------------------------------------------------ +-- + move_group_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"7400") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => move_group ); + + condition_met_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"5A3C") + --synthesis translate_on + port map( I0 => carry_flag, + I1 => zero_flag, + I2 => instruction(10), + I3 => instruction(11), + O => condition_met ); + + normal_count_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"2F") + --synthesis translate_on + port map( I0 => instruction(12), + I1 => condition_met, + I2 => move_group, + O => normal_count ); + + call_type_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"1000") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => call_type ); + + push_pop_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"5400") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => push_or_pop_type ); + + valid_move_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"D") + --synthesis translate_on + port map( I0 => instruction(12), + I1 => condition_met, + O => valid_to_move ); +-- +------------------------------------------------------------------------------------ +-- +-- The ZERO and CARRY Flags +-- +------------------------------------------------------------------------------------ +-- + -- Enable for flags + + flag_type_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"41FC") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => flag_type ); + + flag_write_flop: FD + port map ( D => flag_type, + Q => flag_write, + C => clk); + + flag_enable_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"8") + --synthesis translate_on + port map( I0 => t_state, + I1 => flag_write, + O => flag_enable ); + + -- Zero Flag + + low_zero_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0001") + --synthesis translate_on + port map( I0 => alu_result(0), + I1 => alu_result(1), + I2 => alu_result(2), + I3 => alu_result(3), + O => low_zero ); + + high_zero_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0001") + --synthesis translate_on + port map( I0 => alu_result(4), + I1 => alu_result(5), + I2 => alu_result(6), + I3 => alu_result(7), + O => high_zero ); + + low_zero_muxcy: MUXCY + port map( DI => '0', + CI => '1', + S => low_zero, + O => low_zero_carry ); + + high_zero_cymux: MUXCY + port map( DI => '0', + CI => low_zero_carry, + S => high_zero, + O => high_zero_carry ); + + sel_shadow_zero_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"3F") + --synthesis translate_on + port map( I0 => shadow_zero, + I1 => instruction(16), + I2 => instruction(17), + O => sel_shadow_zero ); + + zero_cymux: MUXCY + port map( DI => shadow_zero, + CI => high_zero_carry, + S => sel_shadow_zero, + O => zero_carry ); + + zero_xor: XORCY + port map( LI => '0', + CI => zero_carry, + O => zero_fast_route); + + zero_flag_flop: FDRE + port map ( D => zero_fast_route, + Q => zero_flag, + CE => flag_enable, + R => internal_reset, + C => clk); + + -- Parity detection + + low_parity_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"6996") + --synthesis translate_on + port map( I0 => logical_result(0), + I1 => logical_result(1), + I2 => logical_result(2), + I3 => logical_result(3), + O => low_parity ); + + high_parity_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"6996") + --synthesis translate_on + port map( I0 => logical_result(4), + I1 => logical_result(5), + I2 => logical_result(6), + I3 => logical_result(7), + O => high_parity ); + + parity_muxcy: MUXCY + port map( DI => '0', + CI => '1', + S => low_parity, + O => parity_carry ); + + parity_xor: XORCY + port map( LI => high_parity, + CI => parity_carry, + O => parity); + + -- CARRY flag selection + + sel_parity_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"F3FF") + --synthesis translate_on + port map( I0 => parity, + I1 => instruction(13), + I2 => instruction(15), + I3 => instruction(16), + O => sel_parity ); + + sel_arith_carry_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"F3") + --synthesis translate_on + port map( I0 => arith_carry, + I1 => instruction(16), + I2 => instruction(17), + O => sel_arith_carry ); + + sel_shift_carry_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"C") + --synthesis translate_on + port map( I0 => shift_carry, + I1 => instruction(15), + O => sel_shift_carry ); + + sel_shadow_carry_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"3") + --synthesis translate_on + port map( I0 => shadow_carry, + I1 => instruction(17), + O => sel_shadow_carry ); + + sel_shadow_muxcy: MUXCY + port map( DI => shadow_carry, + CI => '0', + S => sel_shadow_carry, + O => sel_carry(0) ); + + sel_shift_muxcy: MUXCY + port map( DI => shift_carry, + CI => sel_carry(0), + S => sel_shift_carry, + O => sel_carry(1) ); + + sel_arith_muxcy: MUXCY + port map( DI => arith_carry, + CI => sel_carry(1), + S => sel_arith_carry, + O => sel_carry(2) ); + + sel_parity_muxcy: MUXCY + port map( DI => parity, + CI => sel_carry(2), + S => sel_parity, + O => sel_carry(3) ); + + carry_xor: XORCY + port map( LI => '0', + CI => sel_carry(3), + O => carry_fast_route); + + carry_flag_flop: FDRE + port map ( D => carry_fast_route, + Q => carry_flag, + CE => flag_enable, + R => internal_reset, + C => clk); +-- +------------------------------------------------------------------------------------ +-- +-- The Program Counter +-- +-- Definition of a 10-bit counter which can be loaded from two sources +-- +------------------------------------------------------------------------------------ +-- + + invert_enable: INV -- Inverter should be implemented in the CE to flip flops + port map( I => t_state, + O => pc_enable); + + pc_loop: for i in 0 to 9 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of vector_select_mux : label is "E4"; + attribute INIT of value_select_mux : label is "E4"; + -- + begin + + vector_select_mux: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(15), + I1 => instruction(i), + I2 => stack_pop_data(i), + O => pc_vector(i) ); + + value_select_mux: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => normal_count, + I1 => inc_pc_vector(i), + I2 => pc(i), + O => pc_value(i) ); + + register_bit: FDRSE + port map ( D => inc_pc_value(i), + Q => pc(i), + R => internal_reset, + S => active_interrupt, + CE => pc_enable, + C => clk); + + pc_lsb_carry: if i=0 generate + begin + + pc_vector_muxcy: MUXCY + port map( DI => '0', + CI => instruction(13), + S => pc_vector(i), + O => pc_vector_carry(i)); + + pc_vector_xor: XORCY + port map( LI => pc_vector(i), + CI => instruction(13), + O => inc_pc_vector(i)); + + pc_value_muxcy: MUXCY + port map( DI => '0', + CI => normal_count, + S => pc_value(i), + O => pc_value_carry(i)); + + pc_value_xor: XORCY + port map( LI => pc_value(i), + CI => normal_count, + O => inc_pc_value(i)); + + end generate pc_lsb_carry; + + pc_mid_carry: if i>0 and i<9 generate + begin + + pc_vector_muxcy: MUXCY + port map( DI => '0', + CI => pc_vector_carry(i-1), + S => pc_vector(i), + O => pc_vector_carry(i)); + + pc_vector_xor: XORCY + port map( LI => pc_vector(i), + CI => pc_vector_carry(i-1), + O => inc_pc_vector(i)); + + pc_value_muxcy: MUXCY + port map( DI => '0', + CI => pc_value_carry(i-1), + S => pc_value(i), + O => pc_value_carry(i)); + + pc_value_xor: XORCY + port map( LI => pc_value(i), + CI => pc_value_carry(i-1), + O => inc_pc_value(i)); + + end generate pc_mid_carry; + + pc_msb_carry: if i=9 generate + begin + + pc_vector_xor: XORCY + port map( LI => pc_vector(i), + CI => pc_vector_carry(i-1), + O => inc_pc_vector(i)); + + pc_value_xor: XORCY + port map( LI => pc_value(i), + CI => pc_value_carry(i-1), + O => inc_pc_value(i)); + + end generate pc_msb_carry; + + end generate pc_loop; + + address <= pc; +-- +------------------------------------------------------------------------------------ +-- +-- Register Bank and second operand selection. +-- +-- Definition of an 8-bit dual port RAM with 16 locations +-- including write enable decode. +-- +-- Outputs are assigned to PORT_ID and OUT_PORT. +-- +------------------------------------------------------------------------------------ +-- + -- Forming decode signal + + register_type_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0145") + --synthesis translate_on + port map( I0 => active_interrupt, + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => register_type ); + + register_write_flop: FD + port map ( D => register_type, + Q => register_write, + C => clk); + + register_enable_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"8") + --synthesis translate_on + port map( I0 => t_state, + I1 => register_write, + O => register_enable ); + + reg_loop: for i in 0 to 7 generate + -- + -- Attribute to define RAM contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of register_bit : label is "0000"; + attribute INIT of operand_select_mux : label is "E4"; + -- + begin + + register_bit: RAM16X1D + --synthesis translate_off + generic map(INIT => X"0000") + --synthesis translate_on + port map ( D => alu_result(i), + WE => register_enable, + WCLK => clk, + A0 => instruction(8), + A1 => instruction(9), + A2 => instruction(10), + A3 => instruction(11), + DPRA0 => instruction(4), + DPRA1 => instruction(5), + DPRA2 => instruction(6), + DPRA3 => instruction(7), + SPO => sx(i), + DPO => sy(i)); + + operand_select_mux: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(12), + I1 => instruction(i), + I2 => sy(i), + O => second_operand(i) ); + + end generate reg_loop; + + out_port <= sx; + port_id <= second_operand; +-- +------------------------------------------------------------------------------------ +-- +-- Store Memory +-- +-- Definition of an 8-bit single port RAM with 64 locations +-- including write enable decode. +-- +------------------------------------------------------------------------------------ +-- + -- Forming decode signal + + memory_type_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0400") + --synthesis translate_on + port map( I0 => active_interrupt, + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => memory_type ); + + memory_write_flop: FD + port map ( D => memory_type, + Q => memory_write, + C => clk); + + memory_enable_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"8000") + --synthesis translate_on + port map( I0 => t_state, + I1 => instruction(13), + I2 => instruction(14), + I3 => memory_write, + O => memory_enable ); + + store_loop: for i in 0 to 7 generate + -- + -- Attribute to define RAM contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of memory_bit : label is "0000000000000000"; + -- + begin + + memory_bit: RAM64X1S + --synthesis translate_off + generic map(INIT => X"0000000000000000") + --synthesis translate_on + port map ( D => sx(i), + WE => memory_enable, + WCLK => clk, + A0 => second_operand(0), + A1 => second_operand(1), + A2 => second_operand(2), + A3 => second_operand(3), + A4 => second_operand(4), + A5 => second_operand(5), + O => memory_data(i)); + + store_flop: FD + port map ( D => memory_data(i), + Q => store_data(i), + C => clk); + + end generate store_loop; +-- +------------------------------------------------------------------------------------ +-- +-- Logical operations +-- +-- Definition of AND, OR, XOR and LOAD functions which also provides TEST. +-- Includes pipeline stage used to form ALU multiplexer including decode. +-- +------------------------------------------------------------------------------------ +-- + sel_logical_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"FFE2") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => sel_logical ); + + logical_loop: for i in 0 to 7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of logical_lut : label is "6E8A"; + -- + begin + + logical_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"6E8A") + --synthesis translate_on + port map( I0 => second_operand(i), + I1 => sx(i), + I2 => instruction(13), + I3 => instruction(14), + O => logical_value(i)); + + logical_flop: FDR + port map ( D => logical_value(i), + Q => logical_result(i), + R => sel_logical, + C => clk); + + end generate logical_loop; +-- +-- +------------------------------------------------------------------------------------ +-- +-- Shift and Rotate operations +-- +-- Includes pipeline stage used to form ALU multiplexer including decode. +-- +------------------------------------------------------------------------------------ +-- + sel_shift_inv: INV -- Inverter should be implemented in the reset to flip flops + port map( I => instruction(17), + O => sel_shift); + + -- Bit to input to shift register + + high_shift_in_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(1), + I1 => sx(0), + I2 => instruction(0), + O => high_shift_in ); + + low_shift_in_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(1), + I1 => carry_flag, + I2 => sx(7), + O => low_shift_in ); + + shift_in_muxf5: MUXF5 + port map( I1 => high_shift_in, + I0 => low_shift_in, + S => instruction(2), + O => shift_in ); + + -- Forming shift carry signal + + shift_carry_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(3), + I1 => sx(7), + I2 => sx(0), + O => shift_carry_value ); + + pipeline_bit: FD + port map ( D => shift_carry_value, + Q => shift_carry, + C => clk); + + shift_loop: for i in 0 to 7 generate + begin + + lsb_shift: if i=0 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of shift_mux_lut : label is "E4"; + -- + begin + + shift_mux_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(3), + I1 => shift_in, + I2 => sx(i+1), + O => shift_value(i) ); + + end generate lsb_shift; + + mid_shift: if i>0 and i<7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of shift_mux_lut : label is "E4"; + -- + begin + + shift_mux_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(3), + I1 => sx(i-1), + I2 => sx(i+1), + O => shift_value(i) ); + + end generate mid_shift; + + msb_shift: if i=7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of shift_mux_lut : label is "E4"; + -- + begin + + shift_mux_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(3), + I1 => sx(i-1), + I2 => shift_in, + O => shift_value(i) ); + + end generate msb_shift; + + shift_flop: FDR + port map ( D => shift_value(i), + Q => shift_result(i), + R => sel_shift, + C => clk); + + end generate shift_loop; +-- +------------------------------------------------------------------------------------ +-- +-- Arithmetic operations +-- +-- Definition of ADD, ADDCY, SUB and SUBCY functions which also provides COMPARE. +-- Includes pipeline stage used to form ALU multiplexer including decode. +-- +------------------------------------------------------------------------------------ +-- + sel_arith_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"1F") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + O => sel_arith ); + + arith_loop: for i in 0 to 7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of arith_lut : label is "96"; + -- + begin + + lsb_arith: if i=0 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of arith_carry_in_lut : label is "6C"; + -- + begin + + arith_carry_in_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"6C") + --synthesis translate_on + port map( I0 => instruction(13), + I1 => instruction(14), + I2 => carry_flag, + O => sel_arith_carry_in ); + + arith_carry_in_muxcy: MUXCY + port map( DI => '0', + CI => '1', + S => sel_arith_carry_in, + O => arith_carry_in); + + arith_muxcy: MUXCY + port map( DI => sx(i), + CI => arith_carry_in, + S => half_arith(i), + O => arith_internal_carry(i)); + + arith_xor: XORCY + port map( LI => half_arith(i), + CI => arith_carry_in, + O => arith_value(i)); + + end generate lsb_arith; + + mid_arith: if i>0 and i<7 generate + begin + + arith_muxcy: MUXCY + port map( DI => sx(i), + CI => arith_internal_carry(i-1), + S => half_arith(i), + O => arith_internal_carry(i)); + + arith_xor: XORCY + port map( LI => half_arith(i), + CI => arith_internal_carry(i-1), + O => arith_value(i)); + + end generate mid_arith; + + msb_arith: if i=7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of arith_carry_out_lut : label is "2"; + -- + begin + + arith_muxcy: MUXCY + port map( DI => sx(i), + CI => arith_internal_carry(i-1), + S => half_arith(i), + O => arith_internal_carry(i)); + + arith_xor: XORCY + port map( LI => half_arith(i), + CI => arith_internal_carry(i-1), + O => arith_value(i)); + + arith_carry_out_lut: LUT1 + --synthesis translate_off + generic map (INIT => X"2") + --synthesis translate_on + port map( I0 => instruction(14), + O => invert_arith_carry ); + + arith_carry_out_xor: XORCY + port map( LI => invert_arith_carry, + CI => arith_internal_carry(i), + O => arith_carry_out); + + arith_carry_flop: FDR + port map ( D => arith_carry_out, + Q => arith_carry, + R => sel_arith, + C => clk); + + end generate msb_arith; + + arith_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"96") + --synthesis translate_on + port map( I0 => sx(i), + I1 => second_operand(i), + I2 => instruction(14), + O => half_arith(i)); + + arith_flop: FDR + port map ( D => arith_value(i), + Q => arith_result(i), + R => sel_arith, + C => clk); + + end generate arith_loop; +-- +-- +------------------------------------------------------------------------------------ +-- +-- ALU multiplexer +-- +------------------------------------------------------------------------------------ +-- + input_fetch_type_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0002") + --synthesis translate_on + port map( I0 => instruction(14), + I1 => instruction(15), + I2 => instruction(16), + I3 => instruction(17), + O => input_fetch_type ); + + sel_group_flop: FD + port map ( D => input_fetch_type, + Q => sel_group, + C => clk); + + alu_mux_loop: for i in 0 to 7 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + attribute INIT : string; + attribute INIT of or_lut : label is "FE"; + attribute INIT of mux_lut : label is "E4"; + -- + begin + + or_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"FE") + --synthesis translate_on + port map( I0 => logical_result(i), + I1 => arith_result(i), + I2 => shift_result(i), + O => alu_group(i)); + + mux_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"E4") + --synthesis translate_on + port map( I0 => instruction(13), + I1 => in_port(i), + I2 => store_data(i), + O => input_group(i)); + + shift_in_muxf5: MUXF5 + port map( I1 => input_group(i), + I0 => alu_group(i), + S => sel_group, + O => alu_result(i) ); + + end generate alu_mux_loop; +-- +------------------------------------------------------------------------------------ +-- +-- Read and Write Strobes +-- +------------------------------------------------------------------------------------ +-- + io_decode_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0010") + --synthesis translate_on + port map( I0 => active_interrupt, + I1 => instruction(13), + I2 => instruction(14), + I3 => instruction(16), + O => io_initial_decode ); + + write_active_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"4000") + --synthesis translate_on + port map( I0 => t_state, + I1 => instruction(15), + I2 => instruction(17), + I3 => io_initial_decode, + O => write_active ); + + write_strobe_flop: FDR + port map ( D => write_active, + Q => write_strobe, + R => internal_reset, + C => clk); + + read_active_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0100") + --synthesis translate_on + port map( I0 => t_state, + I1 => instruction(15), + I2 => instruction(17), + I3 => io_initial_decode, + O => read_active ); + + read_strobe_flop: FDR + port map ( D => read_active, + Q => read_strobe, + R => internal_reset, + C => clk); +-- +------------------------------------------------------------------------------------ +-- +-- Program CALL/RETURN stack +-- +-- Provided the counter and memory for a 32 deep stack supporting nested +-- subroutine calls to a depth of 31 levels. +-- +------------------------------------------------------------------------------------ +-- + -- Stack memory is 32 locations of 10-bit single port. + + stack_ram_inv: INV -- Inverter should be implemented in the WE to RAM + port map( I => t_state, + O => stack_write_enable); + + stack_ram_loop: for i in 0 to 9 generate + -- + -- Attribute to define RAM contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of stack_bit : label is "00000000"; + -- + begin + + stack_bit: RAM32X1S + --synthesis translate_off + generic map(INIT => X"00000000") + --synthesis translate_on + port map ( D => pc(i), + WE => stack_write_enable, + WCLK => clk, + A0 => stack_address(0), + A1 => stack_address(1), + A2 => stack_address(2), + A3 => stack_address(3), + A4 => stack_address(4), + O => stack_ram_data(i)); + + stack_flop: FD + port map ( D => stack_ram_data(i), + Q => stack_pop_data(i), + C => clk); + + end generate stack_ram_loop; + + -- Stack address pointer is a 5-bit counter + + stack_count_inv: INV -- Inverter should be implemented in the CE to the flip-flops + port map( I => active_interrupt, + O => not_active_interrupt); + + stack_count_loop: for i in 0 to 4 generate + begin + + register_bit: FDRE + port map ( D => next_stack_address(i), + Q => stack_address(i), + R => internal_reset, + CE => not_active_interrupt, + C => clk); + + lsb_stack_count: if i=0 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of count_lut : label is "6555"; + -- + begin + + count_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"6555") + --synthesis translate_on + port map( I0 => stack_address(i), + I1 => t_state, + I2 => valid_to_move, + I3 => push_or_pop_type, + O => half_stack_address(i) ); + + count_muxcy: MUXCY + port map( DI => stack_address(i), + CI => '0', + S => half_stack_address(i), + O => stack_address_carry(i)); + + count_xor: XORCY + port map( LI => half_stack_address(i), + CI => '0', + O => next_stack_address(i)); + + end generate lsb_stack_count; + + mid_stack_count: if i>0 and i<4 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of count_lut : label is "A999"; + -- + begin + + count_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"A999") + --synthesis translate_on + port map( I0 => stack_address(i), + I1 => t_state, + I2 => valid_to_move, + I3 => call_type, + O => half_stack_address(i) ); + + count_muxcy: MUXCY + port map( DI => stack_address(i), + CI => stack_address_carry(i-1), + S => half_stack_address(i), + O => stack_address_carry(i)); + + count_xor: XORCY + port map( LI => half_stack_address(i), + CI => stack_address_carry(i-1), + O => next_stack_address(i)); + + end generate mid_stack_count; + + + msb_stack_count: if i=4 generate + -- + -- Attribute to define LUT contents during implementation + -- The information is repeated in the generic map for functional simulation + -- + attribute INIT : string; + attribute INIT of count_lut : label is "A999"; + -- + begin + + count_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"A999") + --synthesis translate_on + port map( I0 => stack_address(i), + I1 => t_state, + I2 => valid_to_move, + I3 => call_type, + O => half_stack_address(i) ); + + count_xor: XORCY + port map( LI => half_stack_address(i), + CI => stack_address_carry(i-1), + O => next_stack_address(i)); + + end generate msb_stack_count; + + end generate stack_count_loop; + +-- +------------------------------------------------------------------------------------ +-- +-- End of description for KCPSM3 macro. +-- +------------------------------------------------------------------------------------ +-- +--********************************************************************************** +-- Code for simulation purposes only after this line +--********************************************************************************** +-- +------------------------------------------------------------------------------------ +-- +-- Code for simulation. +-- +-- Disassemble the instruction codes to form a text string variable for display. +-- Determine status of reset and flags and present in the form of a text string. +-- Provide a local variables to simulate the contents of each register and scratch +-- pad memory location. +-- +------------------------------------------------------------------------------------ +-- + --All of this section is ignored during synthesis. + --synthesis translate off + + simulation: process (clk, instruction) + -- + --complete instruction decode + -- + variable kcpsm3_opcode : string(1 to 19); + -- + --Status of flags and processor + -- + variable kcpsm3_status : string(1 to 13):= "NZ, NC, Reset"; + + -- + --contents of each register + -- + variable s0_contents : std_logic_vector(7 downto 0):=X"00"; + variable s1_contents : std_logic_vector(7 downto 0):=X"00"; + variable s2_contents : std_logic_vector(7 downto 0):=X"00"; + variable s3_contents : std_logic_vector(7 downto 0):=X"00"; + variable s4_contents : std_logic_vector(7 downto 0):=X"00"; + variable s5_contents : std_logic_vector(7 downto 0):=X"00"; + variable s6_contents : std_logic_vector(7 downto 0):=X"00"; + variable s7_contents : std_logic_vector(7 downto 0):=X"00"; + variable s8_contents : std_logic_vector(7 downto 0):=X"00"; + variable s9_contents : std_logic_vector(7 downto 0):=X"00"; + variable sa_contents : std_logic_vector(7 downto 0):=X"00"; + variable sb_contents : std_logic_vector(7 downto 0):=X"00"; + variable sc_contents : std_logic_vector(7 downto 0):=X"00"; + variable sd_contents : std_logic_vector(7 downto 0):=X"00"; + variable se_contents : std_logic_vector(7 downto 0):=X"00"; + variable sf_contents : std_logic_vector(7 downto 0):=X"00"; + -- + --contents of each scratch pad memory location + -- + variable spm00_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm01_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm02_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm03_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm04_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm05_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm06_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm07_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm08_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm09_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0a_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0b_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0c_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0d_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0e_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm0f_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm10_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm11_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm12_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm13_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm14_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm15_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm16_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm17_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm18_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm19_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1a_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1b_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1c_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1d_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1e_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm1f_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm20_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm21_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm22_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm23_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm24_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm25_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm26_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm27_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm28_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm29_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2a_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2b_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2c_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2d_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2e_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm2f_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm30_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm31_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm32_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm33_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm34_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm35_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm36_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm37_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm38_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm39_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3a_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3b_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3c_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3d_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3e_contents : std_logic_vector(7 downto 0):=X"00"; + variable spm3f_contents : std_logic_vector(7 downto 0):=X"00"; + -- + --temporary variables + -- + variable sx_decode : string(1 to 2); --sX register specification + variable sy_decode : string(1 to 2); --sY register specification + variable kk_decode : string(1 to 2); --constant value specification + variable aaa_decode : string(1 to 3); --address specification + -- + -------------------------------------------------------------------------------- + -- + -- Function to convert 4-bit binary nibble to hexadecimal character + -- + -------------------------------------------------------------------------------- + -- + function hexcharacter (nibble: std_logic_vector(3 downto 0)) + return character is + variable hex: character; + begin + case nibble is + when "0000" => hex := '0'; + when "0001" => hex := '1'; + when "0010" => hex := '2'; + when "0011" => hex := '3'; + when "0100" => hex := '4'; + when "0101" => hex := '5'; + when "0110" => hex := '6'; + when "0111" => hex := '7'; + when "1000" => hex := '8'; + when "1001" => hex := '9'; + when "1010" => hex := 'A'; + when "1011" => hex := 'B'; + when "1100" => hex := 'C'; + when "1101" => hex := 'D'; + when "1110" => hex := 'E'; + when "1111" => hex := 'F'; + when others => hex := 'x'; + end case; + return hex; + end hexcharacter; + -- + -------------------------------------------------------------------------------- + -- + begin + + -- decode first register + sx_decode(1) := 's'; + sx_decode(2) := hexcharacter(instruction(11 downto 8)); + + -- decode second register + sy_decode(1) := 's'; + sy_decode(2) := hexcharacter(instruction(7 downto 4)); + + -- decode constant value + kk_decode(1) := hexcharacter(instruction(7 downto 4)); + kk_decode(2) := hexcharacter(instruction(3 downto 0)); + + -- address value + aaa_decode(1) := hexcharacter("00" & instruction(9 downto 8)); + aaa_decode(2) := hexcharacter(instruction(7 downto 4)); + aaa_decode(3) := hexcharacter(instruction(3 downto 0)); + + -- decode instruction + case instruction(17 downto 12) is + when "000000" => kcpsm3_opcode := "LOAD " & sx_decode & ',' & kk_decode & " "; + when "000001" => kcpsm3_opcode := "LOAD " & sx_decode & ',' & sy_decode & " "; + when "001010" => kcpsm3_opcode := "AND " & sx_decode & ',' & kk_decode & " "; + when "001011" => kcpsm3_opcode := "AND " & sx_decode & ',' & sy_decode & " "; + when "001100" => kcpsm3_opcode := "OR " & sx_decode & ',' & kk_decode & " "; + when "001101" => kcpsm3_opcode := "OR " & sx_decode & ',' & sy_decode & " "; + when "001110" => kcpsm3_opcode := "XOR " & sx_decode & ',' & kk_decode & " "; + when "001111" => kcpsm3_opcode := "XOR " & sx_decode & ',' & sy_decode & " "; + when "010010" => kcpsm3_opcode := "TEST " & sx_decode & ',' & kk_decode & " "; + when "010011" => kcpsm3_opcode := "TEST " & sx_decode & ',' & sy_decode & " "; + when "011000" => kcpsm3_opcode := "ADD " & sx_decode & ',' & kk_decode & " "; + when "011001" => kcpsm3_opcode := "ADD " & sx_decode & ',' & sy_decode & " "; + when "011010" => kcpsm3_opcode := "ADDCY " & sx_decode & ',' & kk_decode & " "; + when "011011" => kcpsm3_opcode := "ADDCY " & sx_decode & ',' & sy_decode & " "; + when "011100" => kcpsm3_opcode := "SUB " & sx_decode & ',' & kk_decode & " "; + when "011101" => kcpsm3_opcode := "SUB " & sx_decode & ',' & sy_decode & " "; + when "011110" => kcpsm3_opcode := "SUBCY " & sx_decode & ',' & kk_decode & " "; + when "011111" => kcpsm3_opcode := "SUBCY " & sx_decode & ',' & sy_decode & " "; + when "010100" => kcpsm3_opcode := "COMPARE " & sx_decode & ',' & kk_decode & " "; + when "010101" => kcpsm3_opcode := "COMPARE " & sx_decode & ',' & sy_decode & " "; + when "100000" => + case instruction(3 downto 0) is + when "0110" => kcpsm3_opcode := "SL0 " & sx_decode & " "; + when "0111" => kcpsm3_opcode := "SL1 " & sx_decode & " "; + when "0100" => kcpsm3_opcode := "SLX " & sx_decode & " "; + when "0000" => kcpsm3_opcode := "SLA " & sx_decode & " "; + when "0010" => kcpsm3_opcode := "RL " & sx_decode & " "; + when "1110" => kcpsm3_opcode := "SR0 " & sx_decode & " "; + when "1111" => kcpsm3_opcode := "SR1 " & sx_decode & " "; + when "1010" => kcpsm3_opcode := "SRX " & sx_decode & " "; + when "1000" => kcpsm3_opcode := "SRA " & sx_decode & " "; + when "1100" => kcpsm3_opcode := "RR " & sx_decode & " "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when "101100" => kcpsm3_opcode := "OUTPUT " & sx_decode & ',' & kk_decode & " "; + when "101101" => kcpsm3_opcode := "OUTPUT " & sx_decode & ",(" & sy_decode & ") "; + when "000100" => kcpsm3_opcode := "INPUT " & sx_decode & ',' & kk_decode & " "; + when "000101" => kcpsm3_opcode := "INPUT " & sx_decode & ",(" & sy_decode & ") "; + when "101110" => kcpsm3_opcode := "STORE " & sx_decode & ',' & kk_decode & " "; + when "101111" => kcpsm3_opcode := "STORE " & sx_decode & ",(" & sy_decode & ") "; + when "000110" => kcpsm3_opcode := "FETCH " & sx_decode & ',' & kk_decode & " "; + when "000111" => kcpsm3_opcode := "FETCH " & sx_decode & ",(" & sy_decode & ") "; + when "110100" => kcpsm3_opcode := "JUMP " & aaa_decode & " "; + when "110101" => + case instruction(11 downto 10) is + when "00" => kcpsm3_opcode := "JUMP Z," & aaa_decode & " "; + when "01" => kcpsm3_opcode := "JUMP NZ," & aaa_decode & " "; + when "10" => kcpsm3_opcode := "JUMP C," & aaa_decode & " "; + when "11" => kcpsm3_opcode := "JUMP NC," & aaa_decode & " "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when "110000" => kcpsm3_opcode := "CALL " & aaa_decode & " "; + when "110001" => + case instruction(11 downto 10) is + when "00" => kcpsm3_opcode := "CALL Z," & aaa_decode & " "; + when "01" => kcpsm3_opcode := "CALL NZ," & aaa_decode & " "; + when "10" => kcpsm3_opcode := "CALL C," & aaa_decode & " "; + when "11" => kcpsm3_opcode := "CALL NC," & aaa_decode & " "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when "101010" => kcpsm3_opcode := "RETURN "; + when "101011" => + case instruction(11 downto 10) is + when "00" => kcpsm3_opcode := "RETURN Z "; + when "01" => kcpsm3_opcode := "RETURN NZ "; + when "10" => kcpsm3_opcode := "RETURN C "; + when "11" => kcpsm3_opcode := "RETURN NC "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when "111000" => + case instruction(0) is + when '0' => kcpsm3_opcode := "RETURNI DISABLE "; + when '1' => kcpsm3_opcode := "RETURNI ENABLE "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when "111100" => + case instruction(0) is + when '0' => kcpsm3_opcode := "DISABLE INTERRUPT "; + when '1' => kcpsm3_opcode := "ENABLE INTERRUPT "; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + when others => kcpsm3_opcode := "Invalid Instruction"; + end case; + + if clk'event and clk='1' then + + --reset and flag status information + if reset='1' or reset_delay='1' then + kcpsm3_status := "NZ, NC, Reset"; + else + kcpsm3_status(7 to 13) := " "; + if flag_enable='1' then + if zero_carry='1' then + kcpsm3_status(1 to 4) := " Z, "; + else + kcpsm3_status(1 to 4) := "NZ, "; + end if; + if sel_carry(3)='1' then + kcpsm3_status(5 to 6) := " C"; + else + kcpsm3_status(5 to 6) := "NC"; + end if; + end if; + end if; + + --simulation of register contents + if register_enable='1' then + case instruction(11 downto 8) is + when "0000" => s0_contents := alu_result; + when "0001" => s1_contents := alu_result; + when "0010" => s2_contents := alu_result; + when "0011" => s3_contents := alu_result; + when "0100" => s4_contents := alu_result; + when "0101" => s5_contents := alu_result; + when "0110" => s6_contents := alu_result; + when "0111" => s7_contents := alu_result; + when "1000" => s8_contents := alu_result; + when "1001" => s9_contents := alu_result; + when "1010" => sa_contents := alu_result; + when "1011" => sb_contents := alu_result; + when "1100" => sc_contents := alu_result; + when "1101" => sd_contents := alu_result; + when "1110" => se_contents := alu_result; + when "1111" => sf_contents := alu_result; + when others => null; + end case; + end if; + + --simulation of scratch pad memory contents + if memory_enable='1' then + case second_operand(5 downto 0) is + when "000000" => spm00_contents := sx; + when "000001" => spm01_contents := sx; + when "000010" => spm02_contents := sx; + when "000011" => spm03_contents := sx; + when "000100" => spm04_contents := sx; + when "000101" => spm05_contents := sx; + when "000110" => spm06_contents := sx; + when "000111" => spm07_contents := sx; + when "001000" => spm08_contents := sx; + when "001001" => spm09_contents := sx; + when "001010" => spm0a_contents := sx; + when "001011" => spm0b_contents := sx; + when "001100" => spm0c_contents := sx; + when "001101" => spm0d_contents := sx; + when "001110" => spm0e_contents := sx; + when "001111" => spm0f_contents := sx; + when "010000" => spm10_contents := sx; + when "010001" => spm11_contents := sx; + when "010010" => spm12_contents := sx; + when "010011" => spm13_contents := sx; + when "010100" => spm14_contents := sx; + when "010101" => spm15_contents := sx; + when "010110" => spm16_contents := sx; + when "010111" => spm17_contents := sx; + when "011000" => spm18_contents := sx; + when "011001" => spm19_contents := sx; + when "011010" => spm1a_contents := sx; + when "011011" => spm1b_contents := sx; + when "011100" => spm1c_contents := sx; + when "011101" => spm1d_contents := sx; + when "011110" => spm1e_contents := sx; + when "011111" => spm1f_contents := sx; + when "100000" => spm20_contents := sx; + when "100001" => spm21_contents := sx; + when "100010" => spm22_contents := sx; + when "100011" => spm23_contents := sx; + when "100100" => spm24_contents := sx; + when "100101" => spm25_contents := sx; + when "100110" => spm26_contents := sx; + when "100111" => spm27_contents := sx; + when "101000" => spm28_contents := sx; + when "101001" => spm29_contents := sx; + when "101010" => spm2a_contents := sx; + when "101011" => spm2b_contents := sx; + when "101100" => spm2c_contents := sx; + when "101101" => spm2d_contents := sx; + when "101110" => spm2e_contents := sx; + when "101111" => spm2f_contents := sx; + when "110000" => spm30_contents := sx; + when "110001" => spm31_contents := sx; + when "110010" => spm32_contents := sx; + when "110011" => spm33_contents := sx; + when "110100" => spm34_contents := sx; + when "110101" => spm35_contents := sx; + when "110110" => spm36_contents := sx; + when "110111" => spm37_contents := sx; + when "111000" => spm38_contents := sx; + when "111001" => spm39_contents := sx; + when "111010" => spm3a_contents := sx; + when "111011" => spm3b_contents := sx; + when "111100" => spm3c_contents := sx; + when "111101" => spm3d_contents := sx; + when "111110" => spm3e_contents := sx; + when "111111" => spm3f_contents := sx; + when others => null; + end case; + end if; + + end if; + + end process simulation; + + --synthesis translate on +-- +--********************************************************************************** +-- End of simulation code. +--********************************************************************************** +-- +-- +end low_level_definition; +-- +------------------------------------------------------------------------------------ +-- +-- END OF FILE KCPSM3.VHD +-- +------------------------------------------------------------------------------------ diff --git a/kcuart_rx.vhd b/kcuart_rx.vhd new file mode 100644 index 0000000..7c22540 --- /dev/null +++ b/kcuart_rx.vhd @@ -0,0 +1,352 @@ +-- Constant (K) Compact UART Receiver +-- +-- Version : 1.10 +-- Version Date : 3rd December 2003 +-- Reason : '--translate' directives changed to '--synthesis translate' directives +-- +-- Version : 1.00 +-- Version Date : 16th October 2002 +-- +-- Start of design entry : 16th October 2002 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2002. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Futhermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for KCUART_RX +-- +entity kcuart_rx is + Port ( serial_in : in std_logic; + data_out : out std_logic_vector(7 downto 0); + data_strobe : out std_logic; + en_16_x_baud : in std_logic; + clk : in std_logic); + end kcuart_rx; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for KCUART_RX +-- +architecture low_level_definition of kcuart_rx is +-- +------------------------------------------------------------------------------------ +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in KCUART_RX +-- +------------------------------------------------------------------------------------ +-- +signal sync_serial : std_logic; +signal stop_bit : std_logic; +signal data_int : std_logic_vector(7 downto 0); +signal data_delay : std_logic_vector(7 downto 0); +signal start_delay : std_logic; +signal start_bit : std_logic; +signal edge_delay : std_logic; +signal start_edge : std_logic; +signal decode_valid_char : std_logic; +signal valid_char : std_logic; +signal decode_purge : std_logic; +signal purge : std_logic; +signal valid_srl_delay : std_logic_vector(8 downto 0); +signal valid_reg_delay : std_logic_vector(8 downto 0); +signal decode_data_strobe : std_logic; +-- +-- +------------------------------------------------------------------------------------ +-- +-- Attributes to define LUT contents during implementation +-- The information is repeated in the generic map for functional simulation-- +-- +------------------------------------------------------------------------------------ +-- +attribute INIT : string; +attribute INIT of start_srl : label is "0000"; +attribute INIT of edge_srl : label is "0000"; +attribute INIT of valid_lut : label is "0040"; +attribute INIT of purge_lut : label is "54"; +attribute INIT of strobe_lut : label is "8"; +-- +------------------------------------------------------------------------------------ +-- +-- Start of KCUART_RX circuit description +-- +------------------------------------------------------------------------------------ +-- +begin + + -- Synchronise input serial data to system clock + + sync_reg: FD + port map ( D => serial_in, + Q => sync_serial, + C => clk); + + stop_reg: FD + port map ( D => sync_serial, + Q => stop_bit, + C => clk); + + + -- Data delays to capture data at 16 time baud rate + -- Each SRL16E is followed by a flip-flop for best timing + + data_loop: for i in 0 to 7 generate + begin + + lsbs: if i<7 generate + -- + attribute INIT : string; + attribute INIT of delay15_srl : label is "0000"; + -- + begin + + delay15_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => data_int(i+1), + CE => en_16_x_baud, + CLK => clk, + A0 => '0', + A1 => '1', + A2 => '1', + A3 => '1', + Q => data_delay(i) ); + + end generate lsbs; + + msb: if i=7 generate + -- + attribute INIT : string; + attribute INIT of delay15_srl : label is "0000"; + -- + begin + + delay15_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => stop_bit, + CE => en_16_x_baud, + CLK => clk, + A0 => '0', + A1 => '1', + A2 => '1', + A3 => '1', + Q => data_delay(i) ); + + end generate msb; + + data_reg: FDE + port map ( D => data_delay(i), + Q => data_int(i), + CE => en_16_x_baud, + C => clk); + + end generate data_loop; + + -- Assign internal signals to outputs + + data_out <= data_int; + + -- Data delays to capture start bit at 16 time baud rate + + start_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => data_int(0), + CE => en_16_x_baud, + CLK => clk, + A0 => '0', + A1 => '1', + A2 => '1', + A3 => '1', + Q => start_delay ); + + start_reg: FDE + port map ( D => start_delay, + Q => start_bit, + CE => en_16_x_baud, + C => clk); + + + -- Data delays to capture start bit leading edge at 16 time baud rate + -- Delay ensures data is captured at mid-bit position + + edge_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => start_bit, + CE => en_16_x_baud, + CLK => clk, + A0 => '1', + A1 => '0', + A2 => '1', + A3 => '0', + Q => edge_delay ); + + edge_reg: FDE + port map ( D => edge_delay, + Q => start_edge, + CE => en_16_x_baud, + C => clk); + + -- Detect a valid character + + valid_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0040") + --synthesis translate_on + port map( I0 => purge, + I1 => stop_bit, + I2 => start_edge, + I3 => edge_delay, + O => decode_valid_char ); + + valid_reg: FDE + port map ( D => decode_valid_char, + Q => valid_char, + CE => en_16_x_baud, + C => clk); + + -- Purge of data status + + purge_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"54") + --synthesis translate_on + port map( I0 => valid_reg_delay(8), + I1 => valid_char, + I2 => purge, + O => decode_purge ); + + purge_reg: FDE + port map ( D => decode_purge, + Q => purge, + CE => en_16_x_baud, + C => clk); + + -- Delay of valid_char pulse of length equivalent to the time taken + -- to purge data shift register of all data which has been used. + -- Requires 9x16 + 8 delays which is achieved by packing of SRL16E with + -- up to 16 delays and utilising the dedicated flip flop in each stage. + + valid_loop: for i in 0 to 8 generate + begin + + lsb: if i=0 generate + -- + attribute INIT : string; + attribute INIT of delay15_srl : label is "0000"; + -- + begin + + delay15_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => valid_char, + CE => en_16_x_baud, + CLK => clk, + A0 => '0', + A1 => '1', + A2 => '1', + A3 => '1', + Q => valid_srl_delay(i) ); + + end generate lsb; + + msbs: if i>0 generate + -- + attribute INIT : string; + attribute INIT of delay16_srl : label is "0000"; + -- + begin + + delay16_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => valid_reg_delay(i-1), + CE => en_16_x_baud, + CLK => clk, + A0 => '1', + A1 => '1', + A2 => '1', + A3 => '1', + Q => valid_srl_delay(i) ); + + end generate msbs; + + data_reg: FDE + port map ( D => valid_srl_delay(i), + Q => valid_reg_delay(i), + CE => en_16_x_baud, + C => clk); + + end generate valid_loop; + + -- Form data strobe + + strobe_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"8") + --synthesis translate_on + port map( I0 => valid_char, + I1 => en_16_x_baud, + O => decode_data_strobe ); + + strobe_reg: FD + port map ( D => decode_data_strobe, + Q => data_strobe, + C => clk); + +end low_level_definition; + +------------------------------------------------------------------------------------ +-- +-- END OF FILE KCUART_RX.VHD +-- +------------------------------------------------------------------------------------ + + diff --git a/kcuart_tx.vhd b/kcuart_tx.vhd new file mode 100644 index 0000000..b8fec85 --- /dev/null +++ b/kcuart_tx.vhd @@ -0,0 +1,394 @@ +-- Constant (K) Compact UART Transmitter +-- +-- Version : 1.10 +-- Version Date : 3rd December 2003 +-- Reason : '--translate' directives changed to '--synthesis translate' directives +-- +-- Version : 1.00 +-- Version Date : 14th October 2002 +-- +-- Start of design entry : 2nd October 2002 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2002. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Futhermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for KCUART_TX +-- +entity kcuart_tx is + Port ( data_in : in std_logic_vector(7 downto 0); + send_character : in std_logic; + en_16_x_baud : in std_logic; + serial_out : out std_logic; + Tx_complete : out std_logic; + clk : in std_logic); + end kcuart_tx; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for KCUART_TX +-- +architecture low_level_definition of kcuart_tx is +-- +------------------------------------------------------------------------------------ +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in KCUART_TX +-- +------------------------------------------------------------------------------------ +-- +signal data_01 : std_logic; +signal data_23 : std_logic; +signal data_45 : std_logic; +signal data_67 : std_logic; +signal data_0123 : std_logic; +signal data_4567 : std_logic; +signal data_01234567 : std_logic; +signal bit_select : std_logic_vector(2 downto 0); +signal next_count : std_logic_vector(2 downto 0); +signal mask_count : std_logic_vector(2 downto 0); +signal mask_count_carry : std_logic_vector(2 downto 0); +signal count_carry : std_logic_vector(2 downto 0); +signal ready_to_start : std_logic; +signal decode_Tx_start : std_logic; +signal Tx_start : std_logic; +signal decode_Tx_run : std_logic; +signal Tx_run : std_logic; +signal decode_hot_state : std_logic; +signal hot_state : std_logic; +signal hot_delay : std_logic; +signal Tx_bit : std_logic; +signal decode_Tx_stop : std_logic; +signal Tx_stop : std_logic; +signal decode_Tx_complete : std_logic; +-- +-- +------------------------------------------------------------------------------------ +-- +-- Attributes to define LUT contents during implementation +-- The information is repeated in the generic map for functional simulation-- +-- +------------------------------------------------------------------------------------ +-- +attribute INIT : string; +attribute INIT of mux1_lut : label is "E4FF"; +attribute INIT of mux2_lut : label is "E4FF"; +attribute INIT of mux3_lut : label is "E4FF"; +attribute INIT of mux4_lut : label is "E4FF"; +attribute INIT of ready_lut : label is "10"; +attribute INIT of start_lut : label is "0190"; +attribute INIT of run_lut : label is "1540"; +attribute INIT of hot_state_lut : label is "94"; +attribute INIT of delay14_srl : label is "0000"; +attribute INIT of stop_lut : label is "0180"; +attribute INIT of complete_lut : label is "8"; +-- +------------------------------------------------------------------------------------ +-- +-- Start of KCUART_TX circuit description +-- +------------------------------------------------------------------------------------ +-- +begin + + -- 8 to 1 multiplexer to convert parallel data to serial + + mux1_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"E4FF") + --synthesis translate_on + port map( I0 => bit_select(0), + I1 => data_in(0), + I2 => data_in(1), + I3 => Tx_run, + O => data_01 ); + + mux2_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"E4FF") + --synthesis translate_on + port map( I0 => bit_select(0), + I1 => data_in(2), + I2 => data_in(3), + I3 => Tx_run, + O => data_23 ); + + mux3_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"E4FF") + --synthesis translate_on + port map( I0 => bit_select(0), + I1 => data_in(4), + I2 => data_in(5), + I3 => Tx_run, + O => data_45 ); + + mux4_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"E4FF") + --synthesis translate_on + port map( I0 => bit_select(0), + I1 => data_in(6), + I2 => data_in(7), + I3 => Tx_run, + O => data_67 ); + + mux5_muxf5: MUXF5 + port map( I1 => data_23, + I0 => data_01, + S => bit_select(1), + O => data_0123 ); + + mux6_muxf5: MUXF5 + port map( I1 => data_67, + I0 => data_45, + S => bit_select(1), + O => data_4567 ); + + mux7_muxf6: MUXF6 + port map( I1 => data_4567, + I0 => data_0123, + S => bit_select(2), + O => data_01234567 ); + + -- Register serial output and force start and stop bits + + pipeline_serial: FDRS + port map ( D => data_01234567, + Q => serial_out, + R => Tx_start, + S => Tx_stop, + C => clk); + + -- 3-bit counter + -- Counter is clock enabled by en_16_x_baud + -- Counter will be reset when 'Tx_start' is active + -- Counter will increment when Tx_bit is active + -- Tx_run must be active to count + -- count_carry(2) indicates when terminal count (7) is reached and Tx_bit=1 (ie overflow) + + count_width_loop: for i in 0 to 2 generate + -- + attribute INIT : string; + attribute INIT of count_lut : label is "8"; + -- + begin + + register_bit: FDRE + port map ( D => next_count(i), + Q => bit_select(i), + CE => en_16_x_baud, + R => Tx_start, + C => clk); + + count_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"8") + --synthesis translate_on + port map( I0 => bit_select(i), + I1 => Tx_run, + O => mask_count(i)); + + mask_and: MULT_AND + port map( I0 => bit_select(i), + I1 => Tx_run, + LO => mask_count_carry(i)); + + lsb_count: if i=0 generate + begin + + count_muxcy: MUXCY + port map( DI => mask_count_carry(i), + CI => Tx_bit, + S => mask_count(i), + O => count_carry(i)); + + count_xor: XORCY + port map( LI => mask_count(i), + CI => Tx_bit, + O => next_count(i)); + + end generate lsb_count; + + upper_count: if i>0 generate + begin + + count_muxcy: MUXCY + port map( DI => mask_count_carry(i), + CI => count_carry(i-1), + S => mask_count(i), + O => count_carry(i)); + + count_xor: XORCY + port map( LI => mask_count(i), + CI => count_carry(i-1), + O => next_count(i)); + + end generate upper_count; + + end generate count_width_loop; + + -- Ready to start decode + + ready_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"10") + --synthesis translate_on + port map( I0 => Tx_run, + I1 => Tx_start, + I2 => send_character, + O => ready_to_start ); + + -- Start bit enable + + start_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0190") + --synthesis translate_on + port map( I0 => Tx_bit, + I1 => Tx_stop, + I2 => ready_to_start, + I3 => Tx_start, + O => decode_Tx_start ); + + Tx_start_reg: FDE + port map ( D => decode_Tx_start, + Q => Tx_start, + CE => en_16_x_baud, + C => clk); + + + -- Run bit enable + + run_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"1540") + --synthesis translate_on + port map( I0 => count_carry(2), + I1 => Tx_bit, + I2 => Tx_start, + I3 => Tx_run, + O => decode_Tx_run ); + + Tx_run_reg: FDE + port map ( D => decode_Tx_run, + Q => Tx_run, + CE => en_16_x_baud, + C => clk); + + -- Bit rate enable + + hot_state_lut: LUT3 + --synthesis translate_off + generic map (INIT => X"94") + --synthesis translate_on + port map( I0 => Tx_stop, + I1 => ready_to_start, + I2 => Tx_bit, + O => decode_hot_state ); + + hot_state_reg: FDE + port map ( D => decode_hot_state, + Q => hot_state, + CE => en_16_x_baud, + C => clk); + + delay14_srl: SRL16E + --synthesis translate_off + generic map (INIT => X"0000") + --synthesis translate_on + port map( D => hot_state, + CE => en_16_x_baud, + CLK => clk, + A0 => '1', + A1 => '0', + A2 => '1', + A3 => '1', + Q => hot_delay ); + + Tx_bit_reg: FDE + port map ( D => hot_delay, + Q => Tx_bit, + CE => en_16_x_baud, + C => clk); + + -- Stop bit enable + + stop_lut: LUT4 + --synthesis translate_off + generic map (INIT => X"0180") + --synthesis translate_on + port map( I0 => Tx_bit, + I1 => Tx_run, + I2 => count_carry(2), + I3 => Tx_stop, + O => decode_Tx_stop ); + + Tx_stop_reg: FDE + port map ( D => decode_Tx_stop, + Q => Tx_stop, + CE => en_16_x_baud, + C => clk); + + -- Tx_complete strobe + + complete_lut: LUT2 + --synthesis translate_off + generic map (INIT => X"8") + --synthesis translate_on + port map( I0 => count_carry(2), + I1 => en_16_x_baud, + O => decode_Tx_complete ); + + Tx_complete_reg: FD + port map ( D => decode_Tx_complete, + Q => Tx_complete, + C => clk); + + +end low_level_definition; + +------------------------------------------------------------------------------------ +-- +-- END OF FILE KCUART_TX.VHD +-- +------------------------------------------------------------------------------------ + + diff --git a/lago_fpga_vhdl.prj b/lago_fpga_vhdl.prj new file mode 100644 index 0000000..c05344b --- /dev/null +++ b/lago_fpga_vhdl.prj @@ -0,0 +1,19 @@ +vhdl work "kcuart_tx.vhd" +vhdl work "kcuart_rx.vhd" +vhdl work "bbfifo_16x8.vhd" +vhdl work "uart_tx.vhd" +vhdl work "uart_rx.vhd" +vhdl work "kcpsm3.vhd" +vhdl work "ipcore_dir/fifo.vhd" +vhdl work "HP_LAGO.VHD" +vhdl work "GPSNFIFO.VHD" +verilog work "dcm_200mhz.v" +vhdl work "usb_if_ctrl.vhd" +vhdl work "trigger.vhd" +vhdl work "rampa_hv.vhd" +vhdl work "interfaz_spi.vhd" +vhdl work "HP03_par_control.vhd" +vhdl work "GPS_n_fifo.vhd" +verilog work "clk_40mhz.v" +vhdl work "baseline.vhd" +vhdl work "lago_fpga_vhdl.vhd" diff --git a/lago_fpga_vhdl.ucf b/lago_fpga_vhdl.ucf new file mode 100755 index 0000000..e7d8f9f --- /dev/null +++ b/lago_fpga_vhdl.ucf @@ -0,0 +1,179 @@ +# +#Copyright 2011 - Lab DPR (CAB-CNEA). All rights reserved. +# +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions +#are met: +# +# 1. Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +#THIS SOFTWARE IS PROVIDED BY LAB DPR ''AS IS'' AND ANY EXPRESS OR IMPLIED +#WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +#MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +#IN NO EVENT SHALL LAB DPR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +#INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +#(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +#HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +#STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +#IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +#POSSIBILITY OF SUCH DAMAGE. +# +#The views and conclusions contained in the software and documentation +#are those of the authors and should not be interpreted as representing +#official policies, either expressed or implied, of Lab DPR. +# +#***************************************************************************** + +# Clock pin for Nexys 2 Board +NET "clk_50m" LOC = "B8"; +NET "clk_50m" TNM_NET = clk_50m; +TIMESPEC TS_clk = PERIOD "clk_50m" 20 ns HIGH 50%; + +# USB Interface. +# CY7C68013A Port A +NET "U_SLOE" LOC = "V15" | IOSTANDARD = LVCMOS33 ; # has external pull-up +NET "U_FIFOAD<0>" LOC = "T14" | IOSTANDARD = LVCMOS33 ; +NET "U_FIFOAD<1>" LOC = "V13" | IOSTANDARD = LVCMOS33 ; +NET "U_PKTEND" LOC = "V12" | IOSTANDARD = LVCMOS33 ; # no external pull-up + +# CY7C68013A Port B +NET "U_FD<0>" LOC = "R14" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<1>" LOC = "R13" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<2>" LOC = "P13" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<3>" LOC = "T12" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<4>" LOC = "N11" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<5>" LOC = "R11" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<6>" LOC = "P10" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<7>" LOC = "R10" | IOSTANDARD = LVCMOS33 ; + +# CY7C68013A Misc +NET "U_IFCLK" LOC = "T15" | IOSTANDARD = LVCMOS33 | PERIOD = 20.833; +NET "U_IFCLK" CLOCK_DEDICATED_ROUTE = FALSE; # Xilinx WebPACK version 10+ needs this. + +NET "U_FLAGB" LOC = "U14" | IOSTANDARD = LVCMOS33 ; +NET "U_FLAGC" LOC = "V16" | IOSTANDARD = LVCMOS33 ; + +NET "U_SLRD" LOC = "N9" | IOSTANDARD = LVCMOS33 ; # has external pull-up +NET "U_SLWR" LOC = "V9" | IOSTANDARD = LVCMOS33 ; # has external pull-up + +# 7 segment display + NET "seg<0>" LOC = "L18"; # Bank = 1, Pin name = IO_L10P_1, Type = I/O, Sch name = CA + NET "seg<1>" LOC = "F18"; # Bank = 1, Pin name = IO_L19P_1, Type = I/O, Sch name = CB + NET "seg<2>" LOC = "D17"; # Bank = 1, Pin name = IO_L23P_1/HDC, Type = DUAL, Sch name = CC + NET "seg<3>" LOC = "D16"; # Bank = 1, Pin name = IO_L23N_1/LDC0, Type = DUAL, Sch name = CD + NET "seg<4>" LOC = "G14"; # Bank = 1, Pin name = IO_L20P_1, Type = I/O, Sch name = CE + NET "seg<5>" LOC = "J17"; # Bank = 1, Pin name = IO_L13P_1/A6/RHCLK4/IRDY1, Type = RHCLK/DUAL, Sch name = CF + NET "seg<6>" LOC = "H14"; # Bank = 1, Pin name = IO_L17P_1, Type = I/O, Sch name = CG + NET "dp" LOC = "C17"; # Bank = 1, Pin name = IO_L24N_1/LDC2, Type = DUAL, Sch name = DP +# + NET "an<0>" LOC = "F17"; # Bank = 1, Pin name = IO_L19N_1, Type = I/O, Sch name = AN0 + NET "an<1>" LOC = "H17"; # Bank = 1, Pin name = IO_L16N_1/A0, Type = DUAL, Sch name = AN1 + NET "an<2>" LOC = "C18"; # Bank = 1, Pin name = IO_L24P_1/LDC1, Type = DUAL, Sch name = AN2 + NET "an<3>" LOC = "F15"; # Bank = 1, Pin name = IO_L21P_1, Type = I/O, Sch name = AN3 +# +# Leds +NET "led<0>" LOC = "J14"; # Bank = 1, Pin name = IO_L14N_1/A3/RHCLK7, Type = RHCLK/DUAL, Sch name = JD10/LD0 +NET "led<1>" LOC = "J15"; # Bank = 1, Pin name = IO_L14P_1/A4/RHCLK6, Type = RHCLK/DUAL, Sch name = JD9/LD1 +NET "led<2>" LOC = "K15"; # Bank = 1, Pin name = IO_L12P_1/A8/RHCLK2, Type = RHCLK/DUAL, Sch name = JD8/LD2 +NET "led<3>" LOC = "K14"; # Bank = 1, Pin name = IO_L12N_1/A7/RHCLK3/TRDY1, Type = RHCLK/DUAL, Sch name = JD7/LD3 +NET "led<4>" LOC = "E17"; # Bank = 1, Pin name = IO, Type = I/O, Sch name = LD4? s3e500 only +NET "led<5>" LOC = "P15"; # Bank = 1, Pin name = IO, Type = I/O, Sch name = LD5? s3e500 only +NET "led<6>" LOC = "F4"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only +NET "led<7>" LOC = "R4"; # Bank = 3, Pin name = IO/VREF_3, Type = VREF, Sch name = LD7? s3e500 only + +# Leds +#NET "led<0>" LOC = "J14"; # Bank = 1, Pin name = IO_L14N_1/A3/RHCLK7, Type = RHCLK/DUAL, Sch name = JD10/LD0 +#NET "led<1>" LOC = "J15"; # Bank = 1, Pin name = IO_L14P_1/A4/RHCLK6, Type = RHCLK/DUAL, Sch name = JD9/LD1 +#NET "led<2>" LOC = "K15"; # Bank = 1, Pin name = IO_L12P_1/A8/RHCLK2, Type = RHCLK/DUAL, Sch name = JD8/LD2 +#NET "led<3>" LOC = "K14"; # Bank = 1, Pin name = IO_L12N_1/A7/RHCLK3/TRDY1, Type = RHCLK/DUAL, Sch name = JD7/LD3 +#NET "led<4>" LOC = "R4" ; # Bank = 3, Pin name = IO/VREF_3, Type = VREF, Sch name = LD7? s3e500 only +#NET "led<5>" LOC = "F4"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only +#NET "led<6>" LOC = "E17"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only + +#PWM Signals +NET "hv2" LOC = "A16"; # Bank = 0, Pin name = IO_L01N_0, Type = I/O, Sch name = R-IO39 +NET "hv3" LOC = "B16"; # Bank = 0, Pin name = IO_L01P_0, Type = I/O, Sch name = R-IO40 + +# Buttons +NET "reset" LOC = "B18"; # Bank = 1, Pin name = IP, Type = INPUT, Sch name = BTN0 + +# FX2 connector ch1 +NET "adc_clk1" LOC = "B4"; +NET "ch1<9>" LOC = "A4"; +NET "ch1<8>" LOC = "C3"; +NET "ch1<7>" LOC = "C4"; +NET "ch1<6>" LOC = "B6"; +NET "ch1<5>" LOC = "D5"; +NET "ch1<4>" LOC = "C5"; +NET "ch1<3>" LOC = "F7"; +NET "ch1<2>" LOC = "E7"; +NET "ch1<1>" LOC = "A6"; +NET "ch1<0>" LOC = "C7"; + +# FX2 connector ch2 +NET "adc_clk2" LOC = "F8"; +NET "ch2<9>" LOC = "D7"; +NET "ch2<8>" LOC = "E8"; +NET "ch2<7>" LOC = "E9"; +NET "ch2<6>" LOC = "C9"; +NET "ch2<5>" LOC = "A8"; +NET "ch2<4>" LOC = "G9"; +NET "ch2<3>" LOC = "F9"; +NET "ch2<2>" LOC = "D10"; +NET "ch2<1>" LOC = "A10"; +NET "ch2<0>" LOC = "B10"; + +# FX2 connector ch3 +NET "adc_clk3" LOC = "A11"; +NET "ch3<9>" LOC = "D11"; +NET "ch3<8>" LOC = "E10"; +NET "ch3<7>" LOC = "B11"; +NET "ch3<6>" LOC = "C11"; +NET "ch3<5>" LOC = "E11"; +NET "ch3<4>" LOC = "F11"; +NET "ch3<3>" LOC = "E12"; +NET "ch3<2>" LOC = "F12"; +NET "ch3<1>" LOC = "A13"; +NET "ch3<0>" LOC = "B13"; + +# MAX5501 Interface +NET "cs_e2prom" LOC = "B14"; +NET "cs_max5501" LOC = "A14"; +NET "spi_dout" LOC = "C14"; +NET "spi_sck" LOC = "D14"; + +# HP03 Interface +# It is in JB 6 pin expansion connector +NET "pMCLK" LOC = "R18"; # Bank = 1, Pin name = IO_L02P_1/A14, Type = DUAL, Sch name = JB2 +NET "pXCLR" LOC = "R16"; # Bank = 1, Pin name = IO_L03N_1/VREF_1, Type = VREF, Sch name = JB8 +NET "pSDA" LOC = "T18"; # Bank = 1, Pin name = IO_L02N_1/A13, Type = DUAL, Sch name = JB9 +NET "pSCL" LOC = "U18"; # Bank = 1, Pin name = IO_L01P_1/A16, Type = DUAL, Sch name = JB10 + +# GPS Interface +# It is in JC 6 pin expansion connector +NET "tx_uart" LOC = "G15"; # Bank = 1, Pin name = IO_L18P_1, Type = I/O, Sch name = JC1 +NET "pps_port" LOC = "G13"; # Bank = 1, Pin name = IO_L20N_1, Type = I/O, Sch name = JC3 +NET "rx_uart" LOC = "H16"; # Bank = 1, Pin name = IO_L16P_1, Type = I/O, Sch name = JC4 + +#Para VHP, esto es para que funcione con el cable que armé, NO con la fuente SWITCHING +#NET "rx_uart" LOC = "G13"; # Bank = 1, Pin name = IO_L20N_1, Type = I/O, Sch name = JC3 +#NET "pps_port" LOC = "H16"; # Bank = 1, Pin name = IO_L16P_1, Type = I/O, Sch name = JC4 +#NET "tx_uart" LOC = "F14"; # Bank = 1, Pin name = IO_L21N_1, Type = I/O, Sch name = JC8 + + +# Switches +NET "GPSen" LOC = "R17"; # Bank = 1, Pin name = IP, Type = INPUT, Sch name = SW7 + +#GPS signals extension (for VHP telescope) +NET "rx_uart_copy" LOC = "J13"; # Bank = 1, Pin name = IO_L15N_1/A1, Type = DUAL, Sch name = JD1 +NET "pps_port_copy" LOC = "M18"; # Bank = 1, Pin name = IO_L08N_1, Type = I/O, Sch name = JD2 +#NET "JD<2>" LOC = "N18"; # Bank = 1, Pin name = IO_L08P_1, Type = I/O, Sch name = JD3 +#NET "JD<3>" LOC = "P18"; # Bank = 1, Pin name = IO_L06N_1, Type = I/O, Sch name = JD4 diff --git a/lago_fpga_vhdl.vhd b/lago_fpga_vhdl.vhd new file mode 100644 index 0000000..3c9fd49 --- /dev/null +++ b/lago_fpga_vhdl.vhd @@ -0,0 +1,578 @@ +-- +-- Copyright (C) 2011 Horacio Arnaldi +-- e-mail: lharnaldi@cab.cnea.gov.ar +-- +-- Laboratorio de Detección de PartÃculas y Radiación +-- Centro Atómico Bariloche +-- Comisión Nacional de EnergÃa Atómica (CNEA) +-- San Carlos de Bariloche +-- Date: 26/09/2011 +-- Ver: v1r7 -- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +library ieee; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity lago_fpga_vhdl is + generic ( + VER : natural := 2; --Code Version + REV : natural := 0; --Code Revision + RESET_POLARITY : std_logic := '1'; --Polarity of reset signal + W : natural := 5; --Number of addres bits. 2**W = 32 addres for W=5 + ADCBITS : natural := 10; --Number of ADC bits + L_ARRAY_MUESTRAS : natural := 12; --Samples Longitude of + L_ARRAY_PPS : natural := 10; --PPS longitude array + L_ARRAY_SCALERS : natural := 3; --Scalers longitude array + RBITS : natural := 12; -- := 12; -- numero de bits de los registros + REFRESH_RATE : natural := 80000; -- := 80000; -- 80000 clk implican un refresh rate de 2ms (80000 * 25 ns = 2ms) + NCH : natural := 3 --:= 3 -- numero de canales de la electronica + ); + + port( + -- Main 50 MHz clk + clk_50m : in std_logic; + -- Reset button (BTN0) + reset : in std_logic; + + -- USB interface + u_ifclk : in std_logic; + + -- Data & control from the FX2 + u_flagb : in std_logic; -- EP2 empty, active low + u_flagc : in std_logic; -- EP6 full, active low + u_fd : inout std_logic_vector(7 downto 0); + + -- Control to the FX2 + u_fifoad : out std_logic_vector(1 downto 0); + u_sloe : out std_logic; + u_slrd : out std_logic; -- active low + u_slwr : out std_logic; -- active low + u_pktend : out std_logic; -- active low + -- ADC inputs and clocks + ch1 : in std_logic_vector(9 downto 0); + ch2 : in std_logic_vector(9 downto 0); + ch3 : in std_logic_vector(9 downto 0); + adc_clk1 : out std_logic; + adc_clk2 : out std_logic; + adc_clk3 : out std_logic; + + -- SPI outputs + cs_e2prom : out std_logic; + cs_max5501 : out std_logic; + spi_dout : out std_logic; + spi_sck : out std_logic; + + -- PWM outputs + hv2 : out std_logic; + hv3 : out std_logic; + + -- I2C and HP03 related signals + pSDA : inout std_logic; + pSCL : out std_logic; + pXCLR : out std_logic; + pMCLK : out std_logic; + + --GPS realted signals + GPSen : in std_logic; + + -- 1PPS signal + pps_port : in std_logic; + + --UART ports + tx_uart : out std_logic; + rx_uart : in std_logic; + + --Copy of GPS received signals to sync two Nexys + rx_uart_copy : inout std_logic; + pps_port_copy : inout std_logic; + + --BCD leds dirvers + an : out std_logic_vector(3 downto 0); + seg : out std_logic_vector(6 downto 0); + dp : out std_logic; + + + -- Status signals + led : out std_logic_vector(7 downto 0) + ); +end lago_fpga_vhdl; + +architecture rtl of lago_fpga_vhdl is + + component clk_40mhz + port( + clk_50mhz : in std_logic; + clk_40mhz : out std_logic); + end component; + + signal sclk40m : std_logic; + -- Trigger related signals + signal sT1, sT2, sT3 : std_logic_vector(9 downto 0); + -- SubTrigger related signals + signal ssubT1, ssubT2, ssubT3 : std_logic_vector(9 downto 0); + signal swr_fifo_A, swr_fifo_B : std_logic; + signal sBL1, sBL2, sBL3, siHV1 : std_logic_vector(11 downto 0); + signal siHV2, siHV3, soHV1, soHV2, soHV3 : std_logic_vector(11 downto 0); + signal sfifo_in : std_logic_vector(31 downto 0); + signal sfifo_status : std_logic_vector(7 downto 0); + signal sstatus_port, srx_data, sout_port : std_logic_vector(7 downto 0); + signal swrite_to_fifo, sread_from_fifo : std_logic; + --HP03 related signals + signal sC1, sC2, sC3, sC4, sC5, sC6, sC7, sD1, sD2 : std_logic_vector(15 downto 0); + signal sA, sB, sC, sD : std_logic_vector(7 downto 0); + --GPS realted signals + signal sutcngps : std_logic; + signal smonth : std_logic_vector(7 downto 0); + signal sday : std_logic_vector(7 downto 0); + signal syear1 : std_logic_vector(7 downto 0); + signal syear2 : std_logic_vector(7 downto 0); + signal shours : std_logic_vector(7 downto 0); + signal sminutes : std_logic_vector(7 downto 0); + signal sseconds : std_logic_vector(7 downto 0); + signal sfract_sec1 : std_logic_vector(7 downto 0); + signal sfract_sec2 : std_logic_vector(7 downto 0); + signal sfract_sec3 : std_logic_vector(7 downto 0); + signal sfract_sec4 : std_logic_vector(7 downto 0); + signal slatitude1 : std_logic_vector(7 downto 0); + signal slatitude2 : std_logic_vector(7 downto 0); + signal slatitude3 : std_logic_vector(7 downto 0); + signal slatitude4 : std_logic_vector(7 downto 0); + signal slongitude1 : std_logic_vector(7 downto 0); + signal slongitude2 : std_logic_vector(7 downto 0); + signal slongitude3 : std_logic_vector(7 downto 0); + signal slongitude4 : std_logic_vector(7 downto 0); + signal sellipsoid1 : std_logic_vector(7 downto 0); + signal sellipsoid2 : std_logic_vector(7 downto 0); + signal sellipsoid3 : std_logic_vector(7 downto 0); + signal sellipsoid4 : std_logic_vector(7 downto 0); + signal svelocity1 : std_logic_vector(7 downto 0); + signal svelocity2 : std_logic_vector(7 downto 0); + signal sheading1 : std_logic_vector(7 downto 0); + signal sheading2 : std_logic_vector(7 downto 0); + signal sgeometry2 : std_logic_vector(7 downto 0); + signal sDOP_type : std_logic_vector(7 downto 0); + signal sNVS : std_logic_vector(7 downto 0); + signal sNTS : std_logic_vector(7 downto 0); + signal ssat_ID1 : std_logic_vector(7 downto 0); + signal schtm1 : std_logic_vector(7 downto 0); + signal sCNo1 : std_logic_vector(7 downto 0); + signal schsf1 : std_logic_vector(7 downto 0); + signal ssat_ID2 : std_logic_vector(7 downto 0); + signal schtm2 : std_logic_vector(7 downto 0); + signal sCNo2 : std_logic_vector(7 downto 0); + signal schsf2 : std_logic_vector(7 downto 0); + signal ssat_ID3 : std_logic_vector(7 downto 0); + signal schtm3 : std_logic_vector(7 downto 0); + signal sCNo3 : std_logic_vector(7 downto 0); + signal schsf3 : std_logic_vector(7 downto 0); + signal ssat_ID4 : std_logic_vector(7 downto 0); + signal schtm4 : std_logic_vector(7 downto 0); + signal sCNo4 : std_logic_vector(7 downto 0); + signal schsf4 : std_logic_vector(7 downto 0); + signal ssat_ID5 : std_logic_vector(7 downto 0); + signal schtm5 : std_logic_vector(7 downto 0); + signal sCNo5 : std_logic_vector(7 downto 0); + signal schsf5 : std_logic_vector(7 downto 0); + signal ssat_ID6 : std_logic_vector(7 downto 0); + signal schtm6 : std_logic_vector(7 downto 0); + signal sCNo6 : std_logic_vector(7 downto 0); + signal schsf6 : std_logic_vector(7 downto 0); + signal ssat_ID7 : std_logic_vector(7 downto 0); + signal schtm7 : std_logic_vector(7 downto 0); + signal sCNo7 : std_logic_vector(7 downto 0); + signal schsf7 : std_logic_vector(7 downto 0); + signal ssat_ID8 : std_logic_vector(7 downto 0); + signal schtm8 : std_logic_vector(7 downto 0); + signal sCNo8 : std_logic_vector(7 downto 0); + signal schsf8 : std_logic_vector(7 downto 0); + signal srsf : std_logic_vector(7 downto 0); + signal HV1_led, HV2_led, HV3_led : std_logic; + signal stick_2ms : std_logic; + +begin + + -- BCD drivers + an <= (others => '0'); + seg <= (others => '1'); + dp <= '1'; + + rx_uart_copy <= rx_uart; + pps_port_copy <= pps_port; + led(0) <= sfifo_status(0); + led(1) <= sfifo_status(1); + led(2) <= sfifo_status(2); + led(4) <= pps_port; + led(5) <= HV3_led; + led(6) <= HV2_led; + led(7) <= HV1_led; + adc_clk1 <= sclk40m; + adc_clk2 <= sclk40m; + adc_clk3 <= sclk40m; + + clk40mgen: clk_40mhz + port map( + clk_50mhz => clk_50m, + clk_40mhz => sclk40m); + + USB_interface: entity work.usb_if_ctrl + generic map( + VER => VER, + REV => REV, + RESET_POLARITY => RESET_POLARITY + ) + + port map( + reset => reset, + u_ifclk => u_ifclk, + u_fd => u_fd, + u_flagc => u_flagc, + u_flagb => u_flagb, + u_sloe => u_sloe, + u_slrd => u_slrd, + u_slwr => u_slwr, + u_fifoad => u_fifoad, + u_pktend => u_pktend, + T1 => sT1, + T2 => sT2, + T3 => sT3, + subT1 => ssubT1, + subT2 => ssubT2, + subT3 => ssubT3, + BL1 => sBL1, + BL2 => sBL2, + BL3 => sBL3, + HV1 => siHV1, + HV2 => siHV2, + HV3 => siHV3, + clk40m => sclk40m, + fifo_A => sfifo_in, + we_A => swr_fifo_A, +--HP03 signals + pC1 => sC1, + pC2 => sC2, + pC3 => sC3, + pC4 => sC4, + pC5 => sC5, + pC6 => sC6, + pC7 => sC7, + pA => sA, + pB => sB, + pC => sC, + pD => sD, + pD1 => sD1, + pD2 => sD2, +--GPS signals + UTCnGPS => sutcngps, + month_port => smonth, + day_port => sday, + year1_port => syear1, + year2_port => syear2, + hours_port => shours, + minutes_port => sminutes, + seconds_port => sseconds, + fract_sec1_port => sfract_sec1, + fract_sec2_port => sfract_sec2, + fract_sec3_port => sfract_sec3, + fract_sec4_port => sfract_sec4, + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + velocity1_port => svelocity1, + velocity2_port => svelocity2, + heading1_port => sheading1, + heading2_port => sheading2, + geometry2_port => sgeometry2, + DOP_type_port => sDOP_type, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + + sat_ID1_port => ssat_ID1, + chtm1_port => schtm1, + CNo1_port => sCNo1, + chsf1_port => schsf1, + + sat_ID2_port => ssat_ID2, + chtm2_port => schtm2, + CNo2_port => sCNo2, + chsf2_port => schsf2, + + sat_ID3_port => ssat_ID3, + chtm3_port => schtm3, + CNo3_port => sCNo3, + chsf3_port => schsf3, + + sat_ID4_port => ssat_ID4, + chtm4_port => schtm4, + CNo4_port => sCNo4, + chsf4_port => schsf4, + + sat_ID5_port => ssat_ID5, + chtm5_port => schtm5, + CNo5_port => sCNo5, + chsf5_port => schsf5, + + sat_ID6_port => ssat_ID6, + chtm6_port => schtm6, + CNo6_port => sCNo6, + chsf6_port => schsf6, + + sat_ID7_port => ssat_ID7, + chtm7_port => schtm7, + CNo7_port => sCNo7, + chsf7_port => schsf7, + + sat_ID8_port => ssat_ID8, + chtm8_port => schtm8, + CNo8_port => sCNo8, + chsf8_port => schsf8, + + rsf_port => srsf, + pfifo_status => sfifo_status); + + ramp_ctrl1: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV1, + data_out => soHV1, + pwm_pulse => open, + led_indicador => HV1_led); + + ramp_ctrl2: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV2, + data_out => open, + pwm_pulse => hv2, + led_indicador => HV2_led); + + ramp_ctrl3: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV3, + data_out => open, + pwm_pulse => hv3, + led_indicador => HV3_led); + + baseline: entity work.baseline_control + generic map ( + W => W, + ADCBITS => ADCBITS, + RBITS => RBITS, + REFRESH_RATE => REFRESH_RATE, + NCH => NCH + ) + port map( + clk_40mhz => sclk40m, + reset => reset, + ptick_2ms => stick_2ms, + data_adc1 => ch1, + data_adc2 => ch2, + data_adc3 => ch3, + baseline1 => sBL1, + baseline2 => sBL2, + baseline3 => sBL3); + + spi_controller: entity work.interfaz_spi + port map( + clk => sclk40m, + reset => reset, + ptick_2ms => stick_2ms, + data_dac1 => sBL3, --"011010001010", + data_dac2 => sBL2,--"011010001010", + data_dac3 => soHV1, + data_dac4 => sBL1,--"011010001010", + cs_e2prom => cs_e2prom, + spi_csn => cs_max5501, + spi_sdo => spi_dout, + spi_clk => spi_sck); + + comp_trigger: entity work.trigger_in + generic map( + W => W, + ADCBITS => ADCBITS, + L_ARRAY_MUESTRAS => L_ARRAY_MUESTRAS, + L_ARRAY_PPS => L_ARRAY_PPS, + L_ARRAY_SCALERS => L_ARRAY_SCALERS + ) + port map( + clk_40mhz => sclk40m, + reset => reset, + data_adc1 => ch1, + data_adc2 => ch2, + data_adc3 => ch3, + trigg_set1 => sT1, + trigg_set2 => sT2, + trigg_set3 => sT3, + subtrigg_set1 => ssubT1, + subtrigg_set2 => ssubT2, + subtrigg_set3 => ssubT3, + pwr_enA => swr_fifo_A, + data_out => sfifo_in, + pfifo_status => sfifo_status(2 downto 0), + ptemperatura => sD2, + ppresion => sD1, + phora => shours, + pminutos => sminutes, + psegundos => sseconds, + pps_signal => pps_port, + gpsen => GPSen, + pps_falso_led => led(3), + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + rsf_port => srsf); + + hp03_controller: entity work.HP03_cntrl + Port map ( + clk => clk_50m, + SDA => pSDA, + SCL => pSCL, + XCLR => pXCLR, + MCLK => pMCLK, + C1 => sC1, + C2 => sC2, + C3 => sC3, + C4 => sC4, + C5 => sC5, + C6 => sC6, + C7 => sC7, + A => sA, + B => sB, + C => sC, + D => sD, + D1 => sD1, + D2 => sD2); + + gps_interface: entity work.Oncore_ctrl + port map( + clk => clk_50m, + tx_female => tx_uart, + rx_female => rx_uart, + UTCnGPS => sutcngps, + month_port => smonth, + day_port => sday, + year1_port => syear1, + year2_port => syear2, + hours_port => shours, + minutes_port => sminutes, + seconds_port => sseconds, + fract_sec1_port => sfract_sec1, + fract_sec2_port => sfract_sec2, + fract_sec3_port => sfract_sec3, + fract_sec4_port => sfract_sec4, + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + velocity1_port => svelocity1, + velocity2_port => svelocity2, + heading1_port => sheading1, + heading2_port => sheading2, + geometry2_port => sgeometry2, + DOP_type_port => sDOP_type, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + + sat_ID1_port => ssat_ID1, + chtm1_port => schtm1, + CNo1_port => sCNo1, + chsf1_port => schsf1, + + sat_ID2_port => ssat_ID2, + chtm2_port => schtm2, + CNo2_port => sCNo2, + chsf2_port => schsf2, + + sat_ID3_port => ssat_ID3, + chtm3_port => schtm3, + CNo3_port => sCNo3, + chsf3_port => schsf3, + + sat_ID4_port => ssat_ID4, + chtm4_port => schtm4, + CNo4_port => sCNo4, + chsf4_port => schsf4, + + sat_ID5_port => ssat_ID5, + chtm5_port => schtm5, + CNo5_port => sCNo5, + chsf5_port => schsf5, + + sat_ID6_port => ssat_ID6, + chtm6_port => schtm6, + CNo6_port => sCNo6, + chsf6_port => schsf6, + + sat_ID7_port => ssat_ID7, + chtm7_port => schtm7, + CNo7_port => sCNo7, + chsf7_port => schsf7, + + sat_ID8_port => ssat_ID8, + chtm8_port => schtm8, + CNo8_port => sCNo8, + chsf8_port => schsf8, + + rsf_port => srsf); + +end rtl; diff --git a/lago_fpga_vhdl.vhd_orig b/lago_fpga_vhdl.vhd_orig new file mode 100644 index 0000000..82c6339 --- /dev/null +++ b/lago_fpga_vhdl.vhd_orig @@ -0,0 +1,699 @@ +-- +-- Copyright (C) 2011 Horacio Arnaldi +-- e-mail: lharnaldi@cab.cnea.gov.ar +-- +-- Laboratorio de Detección de PartÃculas y Radiación +-- Centro Atómico Bariloche +-- Comisión Nacional de EnergÃa Atómica (CNEA) +-- San Carlos de Bariloche +-- Date: 26/09/2011 +-- Ver: v1r7 -- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +library ieee; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity lago_fpga_sync is + generic ( + VER : natural := 2; + REV : natural := 1; + RESET_POLARITY : std_logic := '1'; + W : natural := 5; + ADCBITS : natural := 10; + L_ARRAY_MUESTRAS : natural := 12; + L_ARRAY_PPS : natural := 10; + L_ARRAY_SCALERS : natural := 3, + RBITS : natural := 12; -- := 12; -- numero de bits de los registros + REFRESH_RATE : natural := 80000; -- := 80000; -- 80000 clk implican un refresh rate de 2ms (80000 * 25 ns = 2ms) + NCH : natural := 3 --:= 3 -- numero de canales de la electronica + ); + + port( + -- Main 50 MHz clk + clk_50m : in std_logic; + -- Reset button (BTN0) + reset : in std_logic; + + -- USB interface + u_ifclk : in std_logic; + + -- Data & control from the FX2 + u_flagb : in std_logic; -- EP2 empty, active low + u_flagc : in std_logic; -- EP6 full, active low + u_fd : inout std_logic_vector(7 downto 0); + + -- Control to the FX2 + u_fifoad : out std_logic_vector(1 downto 0); + u_sloe : out std_logic; + u_slrd : out std_logic; -- active low + u_slwr : out std_logic; -- active low + u_pktend : out std_logic; -- active low + -- ADC inputs and clocks + ch1 : in std_logic_vector(9 downto 0); + ch2 : in std_logic_vector(9 downto 0); + ch3 : in std_logic_vector(9 downto 0); + adc_clk1 : out std_logic; + adc_clk2 : out std_logic; + adc_clk3 : out std_logic; + + -- SPI outputs + cs_e2prom : out std_logic; + cs_max5501 : out std_logic; + spi_dout : out std_logic; + spi_sck : out std_logic; + + -- PWM outputs + hv2 : out std_logic; + hv3 : out std_logic; + + -- I2C and HP03 related signals + pSDA : inout std_logic; + pSCL : out std_logic; + pXCLR : out std_logic; + pMCLK : out std_logic; + + --GPS realted signals + GPSen : in std_logic; + + -- 1PPS signal + pps_port : in std_logic; + + --UART ports + tx_uart : out std_logic; + rx_uart : in std_logic; + + --Copy of GPS received signals to sync two Nexys + rx_uart_copy : inout std_logic; + pps_port_copy : inout std_logic; + + --BCD leds dirvers + an : out std_logic_vector(3 downto 0); + seg : out std_logic_vector(6 downto 0); + dp : out std_logic; + + + -- Status signals + led : out std_logic_vector(7 downto 0) + ); +end lago_fpga_sync; + +architecture rtl of lago_fpga_sync is + + component clk_40mhz + port( + clk_50mhz : in std_logic; + clk_40mhz : out std_logic); + end component; + + component interfaz_max5501 + port( + fpga_clk : in std_logic; + data_dac1 : in std_logic_vector(11 downto 0); + data_dac2 : in std_logic_vector(11 downto 0); + data_dac3 : in std_logic_vector(11 downto 0); + data_dac4 : in std_logic_vector(11 downto 0); + cs_e2prom : out std_logic; + cs_max5501 : out std_logic; + spi_dout : out std_logic; + spi_sck : out std_logic); + end component; + + component HP03_cntrl is + Port ( + clk : in std_logic; + SDA : inout std_logic; + SCL : out std_logic; + XCLR : out std_logic; + MCLK : out std_logic; + C1 : out std_logic_vector(15 downto 0); + C2 : out std_logic_vector(15 downto 0); + C3 : out std_logic_vector(15 downto 0); + C4 : out std_logic_vector(15 downto 0); + C5 : out std_logic_vector(15 downto 0); + C6 : out std_logic_vector(15 downto 0); + C7 : out std_logic_vector(15 downto 0); + A : out std_logic_vector(7 downto 0); + B : out std_logic_vector(7 downto 0); + C : out std_logic_vector(7 downto 0); + D : out std_logic_vector(7 downto 0); + D1 : out std_logic_vector(15 downto 0); + D2 : out std_logic_vector(15 downto 0)); + end component; + + component Oncore_ctrl is + Port ( + clk : in std_logic; + tx_female : out std_logic; + rx_female : in std_logic; + UTCnGPS : in std_logic; + month_port : out std_logic_vector(7 downto 0); + day_port : out std_logic_vector(7 downto 0); + year1_port : out std_logic_vector(7 downto 0); + year2_port : out std_logic_vector(7 downto 0); + hours_port : out std_logic_vector(7 downto 0); + minutes_port : out std_logic_vector(7 downto 0); + seconds_port : out std_logic_vector(7 downto 0); + fract_sec1_port : out std_logic_vector(7 downto 0); + fract_sec2_port : out std_logic_vector(7 downto 0); + fract_sec3_port : out std_logic_vector(7 downto 0); + fract_sec4_port : out std_logic_vector(7 downto 0); + latitude1_port : out std_logic_vector(7 downto 0); + latitude2_port : out std_logic_vector(7 downto 0); + latitude3_port : out std_logic_vector(7 downto 0); + latitude4_port : out std_logic_vector(7 downto 0); + longitude1_port : out std_logic_vector(7 downto 0); + longitude2_port : out std_logic_vector(7 downto 0); + longitude3_port : out std_logic_vector(7 downto 0); + longitude4_port : out std_logic_vector(7 downto 0); + ellipsoid1_port : out std_logic_vector(7 downto 0); + ellipsoid2_port : out std_logic_vector(7 downto 0); + ellipsoid3_port : out std_logic_vector(7 downto 0); + ellipsoid4_port : out std_logic_vector(7 downto 0); + velocity1_port : out std_logic_vector(7 downto 0); + velocity2_port : out std_logic_vector(7 downto 0); + heading1_port : out std_logic_vector(7 downto 0); + heading2_port : out std_logic_vector(7 downto 0); + geometry2_port : out std_logic_vector(7 downto 0); + DOP_type_port : out std_logic_vector(7 downto 0); + num_vis_sat_port : out std_logic_vector(7 downto 0); + num_track_sat_port : out std_logic_vector(7 downto 0); + + sat_ID1_port : out std_logic_vector(7 downto 0); + chtm1_port : out std_logic_vector(7 downto 0); + CNo1_port : out std_logic_vector(7 downto 0); + chsf1_port : out std_logic_vector(7 downto 0); + + sat_ID2_port : out std_logic_vector(7 downto 0); + chtm2_port : out std_logic_vector(7 downto 0); + CNo2_port : out std_logic_vector(7 downto 0); + chsf2_port : out std_logic_vector(7 downto 0); + + sat_ID3_port : out std_logic_vector(7 downto 0); + chtm3_port : out std_logic_vector(7 downto 0); + CNo3_port : out std_logic_vector(7 downto 0); + chsf3_port : out std_logic_vector(7 downto 0); + + sat_ID4_port : out std_logic_vector(7 downto 0); + chtm4_port : out std_logic_vector(7 downto 0); + CNo4_port : out std_logic_vector(7 downto 0); + chsf4_port : out std_logic_vector(7 downto 0); + + sat_ID5_port : out std_logic_vector(7 downto 0); + chtm5_port : out std_logic_vector(7 downto 0); + CNo5_port : out std_logic_vector(7 downto 0); + chsf5_port : out std_logic_vector(7 downto 0); + + sat_ID6_port : out std_logic_vector(7 downto 0); + chtm6_port : out std_logic_vector(7 downto 0); + CNo6_port : out std_logic_vector(7 downto 0); + chsf6_port : out std_logic_vector(7 downto 0); + + sat_ID7_port : out std_logic_vector(7 downto 0); + chtm7_port : out std_logic_vector(7 downto 0); + CNo7_port : out std_logic_vector(7 downto 0); + chsf7_port : out std_logic_vector(7 downto 0); + + sat_ID8_port : out std_logic_vector(7 downto 0); + chtm8_port : out std_logic_vector(7 downto 0); + CNo8_port : out std_logic_vector(7 downto 0); + chsf8_port : out std_logic_vector(7 downto 0); + + rsf_port : out std_logic_vector(7 downto 0)); + end component; + + signal sclk40m : std_logic; + -- Trigger related signals + signal sT1, sT2, sT3 : std_logic_vector(9 downto 0); + -- SubTrigger related signals + signal ssubT1, ssubT2, ssubT3 : std_logic_vector(9 downto 0); + signal swr_fifo_A, swr_fifo_B : std_logic; + signal sBL1, sBL2, sBL3, siHV1 : std_logic_vector(11 downto 0); + signal siHV2, siHV3, soHV1, soHV2, soHV3 : std_logic_vector(11 downto 0); + signal sfifo_in : std_logic_vector(31 downto 0); + signal sfifo_status : std_logic_vector(7 downto 0); + signal sstatus_port, srx_data, sout_port : std_logic_vector(7 downto 0); + signal swrite_to_fifo, sread_from_fifo : std_logic; + --HP03 related signals + signal sC1, sC2, sC3, sC4, sC5, sC6, sC7, sD1, sD2 : std_logic_vector(15 downto 0); + signal sA, sB, sC, sD : std_logic_vector(7 downto 0); + --GPS realted signals + signal sutcngps : std_logic; + signal smonth : std_logic_vector(7 downto 0); + signal sday : std_logic_vector(7 downto 0); + signal syear1 : std_logic_vector(7 downto 0); + signal syear2 : std_logic_vector(7 downto 0); + signal shours : std_logic_vector(7 downto 0); + signal sminutes : std_logic_vector(7 downto 0); + signal sseconds : std_logic_vector(7 downto 0); + signal sfract_sec1 : std_logic_vector(7 downto 0); + signal sfract_sec2 : std_logic_vector(7 downto 0); + signal sfract_sec3 : std_logic_vector(7 downto 0); + signal sfract_sec4 : std_logic_vector(7 downto 0); + signal slatitude1 : std_logic_vector(7 downto 0); + signal slatitude2 : std_logic_vector(7 downto 0); + signal slatitude3 : std_logic_vector(7 downto 0); + signal slatitude4 : std_logic_vector(7 downto 0); + signal slongitude1 : std_logic_vector(7 downto 0); + signal slongitude2 : std_logic_vector(7 downto 0); + signal slongitude3 : std_logic_vector(7 downto 0); + signal slongitude4 : std_logic_vector(7 downto 0); + signal sellipsoid1 : std_logic_vector(7 downto 0); + signal sellipsoid2 : std_logic_vector(7 downto 0); + signal sellipsoid3 : std_logic_vector(7 downto 0); + signal sellipsoid4 : std_logic_vector(7 downto 0); + signal svelocity1 : std_logic_vector(7 downto 0); + signal svelocity2 : std_logic_vector(7 downto 0); + signal sheading1 : std_logic_vector(7 downto 0); + signal sheading2 : std_logic_vector(7 downto 0); + signal sgeometry2 : std_logic_vector(7 downto 0); + signal sDOP_type : std_logic_vector(7 downto 0); + signal sNVS : std_logic_vector(7 downto 0); + signal sNTS : std_logic_vector(7 downto 0); + signal ssat_ID1 : std_logic_vector(7 downto 0); + signal schtm1 : std_logic_vector(7 downto 0); + signal sCNo1 : std_logic_vector(7 downto 0); + signal schsf1 : std_logic_vector(7 downto 0); + signal ssat_ID2 : std_logic_vector(7 downto 0); + signal schtm2 : std_logic_vector(7 downto 0); + signal sCNo2 : std_logic_vector(7 downto 0); + signal schsf2 : std_logic_vector(7 downto 0); + signal ssat_ID3 : std_logic_vector(7 downto 0); + signal schtm3 : std_logic_vector(7 downto 0); + signal sCNo3 : std_logic_vector(7 downto 0); + signal schsf3 : std_logic_vector(7 downto 0); + signal ssat_ID4 : std_logic_vector(7 downto 0); + signal schtm4 : std_logic_vector(7 downto 0); + signal sCNo4 : std_logic_vector(7 downto 0); + signal schsf4 : std_logic_vector(7 downto 0); + signal ssat_ID5 : std_logic_vector(7 downto 0); + signal schtm5 : std_logic_vector(7 downto 0); + signal sCNo5 : std_logic_vector(7 downto 0); + signal schsf5 : std_logic_vector(7 downto 0); + signal ssat_ID6 : std_logic_vector(7 downto 0); + signal schtm6 : std_logic_vector(7 downto 0); + signal sCNo6 : std_logic_vector(7 downto 0); + signal schsf6 : std_logic_vector(7 downto 0); + signal ssat_ID7 : std_logic_vector(7 downto 0); + signal schtm7 : std_logic_vector(7 downto 0); + signal sCNo7 : std_logic_vector(7 downto 0); + signal schsf7 : std_logic_vector(7 downto 0); + signal ssat_ID8 : std_logic_vector(7 downto 0); + signal schtm8 : std_logic_vector(7 downto 0); + signal sCNo8 : std_logic_vector(7 downto 0); + signal schsf8 : std_logic_vector(7 downto 0); + signal srsf : std_logic_vector(7 downto 0); + signal HV1_led, HV2_led, HV3_led : std_logic; + +begin + + -- BCD drivers + an <= (others => '0'); + seg <= (others => '1'); + dp <= '1'; + + rx_uart_copy <= rx_uart; + pps_port_copy <= pps_port; + led(0) <= sfifo_status(0); + led(1) <= sfifo_status(1); + led(2) <= sfifo_status(2); + led(4) <= pps_port; + led(5) <= HV3_led; + led(6) <= HV2_led; + led(7) <= HV1_led; + adc_clk1 <= sclk40m; + adc_clk2 <= sclk40m; + adc_clk3 <= sclk40m; + + clk40mgen: clk_40mhz + port map( + clk_50mhz => clk_50m, + clk_40mhz => sclk40m); + + USB_interface: entity work.usb_if_ctrl + generic map( + VER => VER, + REV => REV, + RESET_POLARITY => RESET_POLARITY + ) + + port map( + reset => reset, + u_ifclk => u_ifclk, + u_fd => u_fd, + u_flagc => u_flagc, + u_flagb => u_flagb, + u_sloe => u_sloe, + u_slrd => u_slrd, + u_slwr => u_slwr, + u_fifoad => u_fifoad, + u_pktend => u_pktend, + T1 => sT1, + T2 => sT2, + T3 => sT3, + subT1 => ssubT1, + subT2 => ssubT2, + subT3 => ssubT3, + BL1 => sBL1, + BL2 => sBL2, + BL3 => sBL3, + HV1 => siHV1, + HV2 => siHV2, + HV3 => siHV3, + clk40m => sclk40m, + fifo_A => sfifo_in, + we_A => swr_fifo_A, + --HP03 signals + pC1 => sC1, + pC2 => sC2, + pC3 => sC3, + pC4 => sC4, + pC5 => sC5, + pC6 => sC6, + pC7 => sC7, + pA => sA, + pB => sB, + pC => sC, + pD => sD, + pD1 => sD1, + pD2 => sD2, + --GPS signals + UTCnGPS => sutcngps, + month_port => smonth, + day_port => sday, + year1_port => syear1, + year2_port => syear2, + hours_port => shours, + minutes_port => sminutes, + seconds_port => sseconds, + fract_sec1_port => sfract_sec1, + fract_sec2_port => sfract_sec2, + fract_sec3_port => sfract_sec3, + fract_sec4_port => sfract_sec4, + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + velocity1_port => svelocity1, + velocity2_port => svelocity2, + heading1_port => sheading1, + heading2_port => sheading2, + geometry2_port => sgeometry2, + DOP_type_port => sDOP_type, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + + sat_ID1_port => ssat_ID1, + chtm1_port => schtm1, + CNo1_port => sCNo1, + chsf1_port => schsf1, + + sat_ID2_port => ssat_ID2, + chtm2_port => schtm2, + CNo2_port => sCNo2, + chsf2_port => schsf2, + + sat_ID3_port => ssat_ID3, + chtm3_port => schtm3, + CNo3_port => sCNo3, + chsf3_port => schsf3, + + sat_ID4_port => ssat_ID4, + chtm4_port => schtm4, + CNo4_port => sCNo4, + chsf4_port => schsf4, + + sat_ID5_port => ssat_ID5, + chtm5_port => schtm5, + CNo5_port => sCNo5, + chsf5_port => schsf5, + + sat_ID6_port => ssat_ID6, + chtm6_port => schtm6, + CNo6_port => sCNo6, + chsf6_port => schsf6, + + sat_ID7_port => ssat_ID7, + chtm7_port => schtm7, + CNo7_port => sCNo7, + chsf7_port => schsf7, + + sat_ID8_port => ssat_ID8, + chtm8_port => schtm8, + CNo8_port => sCNo8, + chsf8_port => schsf8, + + rsf_port => srsf, + pfifo_status => sfifo_status); + + ramp_ctrl1: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV1, + data_out => soHV1, + led_indicador => HV1_led); + + ramp_ctrl2: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV2, + data_out => soHV2, + led_indicador => HV2_led); + + ramp_ctrl3: entity work.ramp + generic map ( + N => 18, + M => 200000, + P => 12 + ) + port map( + clk => sclk40m, + reset => reset, + data_in => siHV3, + data_out => soHV3, + led_indicador => HV3_led); + + baseline: entity work.baseline_control + generic map ( + RESET_POLARITY => RESET_POLARITY, + W => W, + ADCBITS => ADCBITS, + RBITS => RBITS, + REFRESH_RATE => REFRESH_RATE, + NCH => NCH + ) + port map( + clk_40mhz => sclk40m, + data_adc1 => ch1, + data_adc2 => ch2, + data_adc3 => ch3, + baseline1 => sBL1, + baseline2 => sBL2, + baseline3 => sBL3); + + comp_trigger: entity work.trigger_in + generic map( + W => W, + ADCBITS => ADCBITS, + L_ARRAY_MUESTRAS => L_ARRAY_MUESTRAS, + L_ARRAY_PPS => L_ARRAY_PPS, + L_ARRAY_SCALERS => L_ARRAY_SCALERS + ) + port map( + clk_40mhz => sclk40m, + reset => reset, + data_adc1 => ch1, + data_adc2 => ch2, + data_adc3 => ch3, + trigg_set1 => sT1, + trigg_set2 => sT2, + trigg_set3 => sT3, + subtrigg_set1 => ssubT1, + subtrigg_set2 => ssubT2, + subtrigg_set3 => ssubT3, + pwr_enA => swr_fifo_A, + data_out => sfifo_in, + pfifo_status => sfifo_status(2 downto 0), + ptemperatura => sD2, + ppresion => sD1, + phora => shours, + pminutos => sminutes, + psegundos => sseconds, + pps_signal => pps_port, + gpsen => GPSen, + pps_falso_led => led(3), + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + rsf_port => srsf); + + hp03_controller: HP03_cntrl + Port map ( + clk => clk_50m, + SDA => pSDA, + SCL => pSCL, + XCLR => pXCLR, + MCLK => pMCLK, + C1 => sC1, + C2 => sC2, + C3 => sC3, + C4 => sC4, + C5 => sC5, + C6 => sC6, + C7 => sC7, + A => sA, + B => sB, + C => sC, + D => sD, + D1 => sD1, + D2 => sD2); + + gps_interface: Oncore_ctrl + port map( + clk => clk_50m, + tx_female => tx_uart, + rx_female => rx_uart, + UTCnGPS => sutcngps, + month_port => smonth, + day_port => sday, + year1_port => syear1, + year2_port => syear2, + hours_port => shours, + minutes_port => sminutes, + seconds_port => sseconds, + fract_sec1_port => sfract_sec1, + fract_sec2_port => sfract_sec2, + fract_sec3_port => sfract_sec3, + fract_sec4_port => sfract_sec4, + latitude1_port => slatitude1, + latitude2_port => slatitude2, + latitude3_port => slatitude3, + latitude4_port => slatitude4, + longitude1_port => slongitude1, + longitude2_port => slongitude2, + longitude3_port => slongitude3, + longitude4_port => slongitude4, + ellipsoid1_port => sellipsoid1, + ellipsoid2_port => sellipsoid2, + ellipsoid3_port => sellipsoid3, + ellipsoid4_port => sellipsoid4, + velocity1_port => svelocity1, + velocity2_port => svelocity2, + heading1_port => sheading1, + heading2_port => sheading2, + geometry2_port => sgeometry2, + DOP_type_port => sDOP_type, + num_vis_sat_port => sNVS, + num_track_sat_port => sNTS, + + sat_ID1_port => ssat_ID1, + chtm1_port => schtm1, + CNo1_port => sCNo1, + chsf1_port => schsf1, + + sat_ID2_port => ssat_ID2, + chtm2_port => schtm2, + CNo2_port => sCNo2, + chsf2_port => schsf2, + + sat_ID3_port => ssat_ID3, + chtm3_port => schtm3, + CNo3_port => sCNo3, + chsf3_port => schsf3, + + sat_ID4_port => ssat_ID4, + chtm4_port => schtm4, + CNo4_port => sCNo4, + chsf4_port => schsf4, + + sat_ID5_port => ssat_ID5, + chtm5_port => schtm5, + CNo5_port => sCNo5, + chsf5_port => schsf5, + + sat_ID6_port => ssat_ID6, + chtm6_port => schtm6, + CNo6_port => sCNo6, + chsf6_port => schsf6, + + sat_ID7_port => ssat_ID7, + chtm7_port => schtm7, + CNo7_port => sCNo7, + chsf7_port => schsf7, + + sat_ID8_port => ssat_ID8, + chtm8_port => schtm8, + CNo8_port => sCNo8, + chsf8_port => schsf8, + + rsf_port => srsf); + + spi_controller: interfaz_max5501 + port map( + fpga_clk => clk_50m, + data_dac1 => sBL3, + data_dac2 => sBL2, + data_dac3 => soHV1, + data_dac4 => sBL1, + cs_e2prom => cs_e2prom, + cs_max5501 => cs_max5501, + spi_dout => spi_dout, + spi_sck => spi_sck); + + hv2_controller: entity work.pwm + port map( + clk => clk_50m, + w => soHV2, + pwm_pulse => hv2); + + hv3_controller: entity work.pwm + port map( + clk => clk_50m, + w => soHV3, + pwm_pulse => hv3); + +end rtl; diff --git a/lago_fpga_vhdl.xise b/lago_fpga_vhdl.xise new file mode 100755 index 0000000..cf9c87a --- /dev/null +++ b/lago_fpga_vhdl.xise @@ -0,0 +1,404 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema"> + + <header> + <!-- ISE source project file created by Project Navigator. --> + <!-- --> + <!-- This file contains project source information including a list of --> + <!-- project source files, project and process properties. This file, --> + <!-- along with the project source files, is sufficient to open and --> + <!-- implement in ISE Project Navigator. --> + <!-- --> + <!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. --> + </header> + + <version xil_pn:ise_version="14.3" xil_pn:schema_version="2"/> + + <files> + <file xil_pn:name="clk_40mhz.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/> + <association xil_pn:name="Implementation" xil_pn:seqID="17"/> + </file> + <file xil_pn:name="dcm_200mhz.v" xil_pn:type="FILE_VERILOG"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/> + <association xil_pn:name="Implementation" xil_pn:seqID="10"/> + </file> + <file xil_pn:name="usb_if_ctrl.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="6"/> + <association xil_pn:name="Implementation" xil_pn:seqID="11"/> + </file> + <file xil_pn:name="ipcore_dir/fifo.xco" xil_pn:type="FILE_COREGEN"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="7"/> + <association xil_pn:name="Implementation" xil_pn:seqID="7"/> + </file> + <file xil_pn:name="kcpsm3.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="9"/> + <association xil_pn:name="Implementation" xil_pn:seqID="6"/> + </file> + <file xil_pn:name="kcuart_rx.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="10"/> + <association xil_pn:name="Implementation" xil_pn:seqID="2"/> + </file> + <file xil_pn:name="kcuart_tx.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="11"/> + <association xil_pn:name="Implementation" xil_pn:seqID="1"/> + </file> + <file xil_pn:name="bbfifo_16x8.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="12"/> + <association xil_pn:name="Implementation" xil_pn:seqID="3"/> + </file> + <file xil_pn:name="uart_rx.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="13"/> + <association xil_pn:name="Implementation" xil_pn:seqID="5"/> + </file> + <file xil_pn:name="uart_tx.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="14"/> + <association xil_pn:name="Implementation" xil_pn:seqID="4"/> + </file> + <file xil_pn:name="GPSNFIFO.VHD" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="15"/> + <association xil_pn:name="Implementation" xil_pn:seqID="9"/> + </file> + <file xil_pn:name="GPS_n_fifo.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="16"/> + <association xil_pn:name="Implementation" xil_pn:seqID="16"/> + </file> + <file xil_pn:name="HP_LAGO.VHD" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="17"/> + <association xil_pn:name="Implementation" xil_pn:seqID="8"/> + </file> + <file xil_pn:name="HP03_par_control.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="18"/> + <association xil_pn:name="Implementation" xil_pn:seqID="15"/> + </file> + <file xil_pn:name="trigger.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="23"/> + <association xil_pn:name="Implementation" xil_pn:seqID="12"/> + </file> + <file xil_pn:name="rampa_hv.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="23"/> + <association xil_pn:name="Implementation" xil_pn:seqID="13"/> + </file> + <file xil_pn:name="baseline.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="25"/> + <association xil_pn:name="Implementation" xil_pn:seqID="18"/> + </file> + <file xil_pn:name="lago_fpga_vhdl.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="22"/> + <association xil_pn:name="Implementation" xil_pn:seqID="19"/> + </file> + <file xil_pn:name="lago_fpga_vhdl.ucf" xil_pn:type="FILE_UCF"> + <association xil_pn:name="Implementation" xil_pn:seqID="0"/> + </file> + <file xil_pn:name="interfaz_spi.vhd" xil_pn:type="FILE_VHDL"> + <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="22"/> + <association xil_pn:name="Implementation" xil_pn:seqID="14"/> + </file> + </files> + + <properties> + <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Auto Implementation Top" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Bus Delimiter" xil_pn:value="<>" xil_pn:valueState="default"/> + <property xil_pn:name="CLB Pack Factor Percentage" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/> + <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Configuration Rate" xil_pn:value="Default (1)" xil_pn:valueState="default"/> + <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Decoder Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/> + <property xil_pn:name="Device" xil_pn:value="xc3s500e" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Family" xil_pn:value="Spartan3E" xil_pn:valueState="non-default"/> + <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-4" xil_pn:valueState="default"/> + <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/> + <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Hardware Co-Simulation" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/> + <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Evaluation Development Board" xil_pn:value="None Specified" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="JTAG Clock" xil_pn:valueState="non-default"/> + <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/> + <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Post-Place & Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/> + <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/> + <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/> + <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Implementation Top" xil_pn:value="Architecture|lago_fpga_vhdl|rtl" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top File" xil_pn:value="lago_fpga_vhdl.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/lago_fpga_vhdl" xil_pn:valueState="non-default"/> + <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/> + <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Last Applied Goal" xil_pn:value="Balanced" xil_pn:valueState="default"/> + <property xil_pn:name="Last Applied Strategy" xil_pn:value="Xilinx Default (unlocked)" xil_pn:valueState="default"/> + <property xil_pn:name="Last Unlock Status" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Launch SDK after Export" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Library for Verilog Sources" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Load glbl" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Logical Shifter Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Map Effort Level" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Max Fanout" xil_pn:value="500" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/> + <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/> + <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Multiplier Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Mux Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/> + <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Clock Buffers" xil_pn:value="24" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/> + <property xil_pn:name="Optimization Strategy (Cover Mode)" xil_pn:value="Area" xil_pn:valueState="default"/> + <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Other Bitgen Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Place & Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Output File Name" xil_pn:value="lago_ctrl" xil_pn:valueState="non-default"/> + <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Overwrite Existing Symbol" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Package" xil_pn:value="fg320" xil_pn:valueState="non-default"/> + <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Perform Timing-Driven Packing and Placement" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Place & Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> + <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> + <property xil_pn:name="Placer Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/> + <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="lago_ctrl_map.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Post Place & Route Simulation Model Name" xil_pn:value="lago_ctrl_timesim.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="lago_ctrl_synthesis.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="lago_ctrl_translate.vhd" xil_pn:valueState="non-default"/> + <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Preferred Language" xil_pn:value="VHDL" xil_pn:valueState="non-default"/> + <property xil_pn:name="Priority Encoder Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Project Description" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> + <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/> + <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication" xil_pn:value="Off" xil_pn:valueState="default"/> + <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/> + <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="lago_ctrl" xil_pn:valueState="non-default"/> + <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Reset DCM if SHUTDOWN & AGHIGH performed" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Router Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/> + <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> + <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/> + <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Model Target" xil_pn:value="VHDL" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> + <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Packing" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> + <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> + <property xil_pn:name="Speed Grade" xil_pn:value="-4" xil_pn:valueState="non-default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Starting Placer Cost Table (1-100) Par" xil_pn:value="1" xil_pn:valueState="default"/> + <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/> + <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Map" xil_pn:value="Non Timing Driven" xil_pn:valueState="default"/> + <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/> + <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/> + <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/> + <property xil_pn:name="Use 64-bit PlanAhead on 64-bit Systems" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use Clock Enable" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synchronous Set" xil_pn:value="Yes" xil_pn:valueState="default"/> + <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="User Browsed Strategy Files" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/> + <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/> + <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/> + <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="Wait for DLL Lock (Output Events)" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/> + <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="non-default"/> + <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/> + <property xil_pn:name="XOR Collapsing" xil_pn:value="true" xil_pn:valueState="default"/> + <!-- --> + <!-- The following properties are for internal use only. These should not be modified.--> + <!-- --> + <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_DesignName" xil_pn:value="lago2" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan3e" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_PreSynthesis" xil_pn:value="PreSynthesis" xil_pn:valueState="default"/> + <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2011-08-24T15:54:48" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="5F437351C311185F347F9C92BDA70986" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/> + <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> + </properties> + + <bindings/> + + <libraries/> + + <autoManagedFiles> + <!-- The following files are identified by `include statements in verilog --> + <!-- source files and are automatically managed by Project Navigator. --> + <!-- --> + <!-- Do not hand-edit this section, as it will be overwritten when the --> + <!-- project is analyzed based on files automatically identified as --> + <!-- include files. --> + </autoManagedFiles> + +</project> diff --git a/lago_fpga_vhdl.xst b/lago_fpga_vhdl.xst new file mode 100644 index 0000000..82a9913 --- /dev/null +++ b/lago_fpga_vhdl.xst @@ -0,0 +1,57 @@ +set -tmpdir "xst/projnav.tmp" +set -xsthdpdir "xst" +run +-ifn lago_fpga_vhdl.prj +-ifmt mixed +-ofn lago_fpga_vhdl +-ofmt NGC +-p xc3s500e-4-fg320 +-top lago_fpga_vhdl +-opt_mode Speed +-opt_level 1 +-iuc NO +-keep_hierarchy No +-netlist_hierarchy As_Optimized +-rtlview Yes +-glob_opt AllClockNets +-read_cores YES +-sd {"ipcore_dir" } +-write_timing_constraints NO +-cross_clock_analysis NO +-hierarchy_separator / +-bus_delimiter <> +-case Maintain +-slice_utilization_ratio 100 +-bram_utilization_ratio 100 +-verilog2001 YES +-fsm_extract YES -fsm_encoding Auto +-safe_implementation No +-fsm_style LUT +-ram_extract Yes +-ram_style Auto +-rom_extract Yes +-mux_style Auto +-decoder_extract YES +-priority_extract Yes +-shreg_extract YES +-shift_extract YES +-xor_collapse YES +-rom_style Auto +-auto_bram_packing NO +-mux_extract Yes +-resource_sharing YES +-async_to_sync NO +-mult_style Auto +-iobuf YES +-max_fanout 500 +-bufg 24 +-register_duplication YES +-register_balancing No +-slice_packing YES +-optimize_primitives NO +-use_clock_enable Yes +-use_sync_set Yes +-use_sync_reset Yes +-iob Auto +-equivalent_register_removal YES +-slice_utilization_ratio_maxmargin 5 diff --git a/lago_fpga_vhdl_1200.ucf b/lago_fpga_vhdl_1200.ucf new file mode 100755 index 0000000..53d159f --- /dev/null +++ b/lago_fpga_vhdl_1200.ucf @@ -0,0 +1,183 @@ +# +#Copyright 2011 - Lab DPR (CAB-CNEA). All rights reserved. +# +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions +#are met: +# +# 1. Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +#THIS SOFTWARE IS PROVIDED BY LAB DPR ''AS IS'' AND ANY EXPRESS OR IMPLIED +#WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +#MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +#IN NO EVENT SHALL LAB DPR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +#INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +#(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +#HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +#STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +#IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +#POSSIBILITY OF SUCH DAMAGE. +# +#The views and conclusions contained in the software and documentation +#are those of the authors and should not be interpreted as representing +#official policies, either expressed or implied, of Lab DPR. +# +#***************************************************************************** + +# Clock pin for Nexys 2 Board +NET "clk_50m" LOC = "B8"; +NET "clk_50m" TNM_NET = clk_50m; +TIMESPEC TS_clk = PERIOD "clk_50m" 20 ns HIGH 50%; + +# USB Interface. +# CY7C68013A Port A +NET "U_SLOE" LOC = "V15" | IOSTANDARD = LVCMOS33 ; # has external pull-up +NET "U_FIFOAD<0>" LOC = "T14" | IOSTANDARD = LVCMOS33 ; +NET "U_FIFOAD<1>" LOC = "V13" | IOSTANDARD = LVCMOS33 ; +NET "U_PKTEND" LOC = "V12" | IOSTANDARD = LVCMOS33 ; # no external pull-up + +# CY7C68013A Port B +NET "U_FD<0>" LOC = "R14" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<1>" LOC = "R13" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<2>" LOC = "P13" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<3>" LOC = "T12" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<4>" LOC = "N11" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<5>" LOC = "R11" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<6>" LOC = "P10" | IOSTANDARD = LVCMOS33 ; +NET "U_FD<7>" LOC = "R10" | IOSTANDARD = LVCMOS33 ; + +# CY7C68013A Misc +NET "U_IFCLK" LOC = "T15" | IOSTANDARD = LVCMOS33 | PERIOD = 20.833; +NET "U_IFCLK" CLOCK_DEDICATED_ROUTE = FALSE; # Xilinx WebPACK version 10+ needs this. + +NET "U_FLAGB" LOC = "U14" | IOSTANDARD = LVCMOS33 ; +NET "U_FLAGC" LOC = "V16" | IOSTANDARD = LVCMOS33 ; + +NET "U_SLRD" LOC = "N9" | IOSTANDARD = LVCMOS33 ; # has external pull-up +NET "U_SLWR" LOC = "V9" | IOSTANDARD = LVCMOS33 ; # has external pull-up + +# 7 segment display +NET "seg<0>" LOC = "L18"; # Bank = 1, Pin name = IO_L10P_1, Type = I/O, Sch name = CA +NET "seg<1>" LOC = "F18"; # Bank = 1, Pin name = IO_L19P_1, Type = I/O, Sch name = CB +NET "seg<2>" LOC = "D17"; # Bank = 1, Pin name = IO_L23P_1/HDC, Type = DUAL, Sch name = CC +NET "seg<3>" LOC = "D16"; # Bank = 1, Pin name = IO_L23N_1/LDC0, Type = DUAL, Sch name = CD +NET "seg<4>" LOC = "G14"; # Bank = 1, Pin name = IO_L20P_1, Type = I/O, Sch name = CE +NET "seg<5>" LOC = "J17"; # Bank = 1, Pin name = IO_L13P_1/A6/RHCLK4/IRDY1, Type = RHCLK/DUAL, Sch name = CF +NET "seg<6>" LOC = "H14"; # Bank = 1, Pin name = IO_L17P_1, Type = I/O, Sch name = CG +NET "dp" LOC = "C17"; # Bank = 1, Pin name = IO_L24N_1/LDC2, Type = DUAL, Sch name = DP +# +NET "an<0>" LOC = "F17"; # Bank = 1, Pin name = IO_L19N_1, Type = I/O, Sch name = AN0 +NET "an<1>" LOC = "H17"; # Bank = 1, Pin name = IO_L16N_1/A0, Type = DUAL, Sch name = AN1 +NET "an<2>" LOC = "C18"; # Bank = 1, Pin name = IO_L24P_1/LDC1, Type = DUAL, Sch name = AN2 +NET "an<3>" LOC = "F15"; # Bank = 1, Pin name = IO_L21P_1, Type = I/O, Sch name = AN3 +# +# Leds +NET "led<0>" LOC = "J14"; # Bank = 1, Pin name = IO_L14N_1/A3/RHCLK7, Type = RHCLK/DUAL, Sch name = JD10/LD0 +NET "led<1>" LOC = "J15"; # Bank = 1, Pin name = IO_L14P_1/A4/RHCLK6, Type = RHCLK/DUAL, Sch name = JD9/LD1 +NET "led<2>" LOC = "K15"; # Bank = 1, Pin name = IO_L12P_1/A8/RHCLK2, Type = RHCLK/DUAL, Sch name = JD8/LD2 +NET "led<3>" LOC = "K14"; # Bank = 1, Pin name = IO_L12N_1/A7/RHCLK3/TRDY1, Type = RHCLK/DUAL, Sch name = JD7/LD3 +NET "led<4>" LOC = "E16"; # Bank = 1, Pin name = N.C., Type = N.C., Sch name = LD4? other than s3e500 +NET "led<5>" LOC = "P16"; # Bank = 1, Pin name = N.C., Type = N.C., Sch name = LD5? other than s3e500 +NET "led<6>" LOC = "E4"; # Bank = 3, Pin name = N.C., Type = N.C., Sch name = LD6? other than s3e500 +NET "led<7>" LOC = "P4"; # Bank = 3, Pin name = N.C., Type = N.C., Sch name = LD7? other than s3e500 +#NET "led<4>" LOC = "E17"; # Bank = 1, Pin name = IO, Type = I/O, Sch name = LD4? s3e500 only +#NET "led<5>" LOC = "P15"; # Bank = 1, Pin name = IO, Type = I/O, Sch name = LD5? s3e500 only +#NET "led<6>" LOC = "F4"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only +#NET "led<7>" LOC = "R4"; # Bank = 3, Pin name = IO/VREF_3, Type = VREF, Sch name = LD7? s3e500 only + +# Leds +#NET "led<0>" LOC = "J14"; # Bank = 1, Pin name = IO_L14N_1/A3/RHCLK7, Type = RHCLK/DUAL, Sch name = JD10/LD0 +#NET "led<1>" LOC = "J15"; # Bank = 1, Pin name = IO_L14P_1/A4/RHCLK6, Type = RHCLK/DUAL, Sch name = JD9/LD1 +#NET "led<2>" LOC = "K15"; # Bank = 1, Pin name = IO_L12P_1/A8/RHCLK2, Type = RHCLK/DUAL, Sch name = JD8/LD2 +#NET "led<3>" LOC = "K14"; # Bank = 1, Pin name = IO_L12N_1/A7/RHCLK3/TRDY1, Type = RHCLK/DUAL, Sch name = JD7/LD3 +#NET "led<4>" LOC = "R4" ; # Bank = 3, Pin name = IO/VREF_3, Type = VREF, Sch name = LD7? s3e500 only +#NET "led<5>" LOC = "F4"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only +#NET "led<6>" LOC = "E17"; # Bank = 3, Pin name = IO, Type = I/O, Sch name = LD6? s3e500 only + +#PWM Signals +NET "hv2" LOC = "A16"; # Bank = 0, Pin name = IO_L01N_0, Type = I/O, Sch name = R-IO39 +NET "hv3" LOC = "B16"; # Bank = 0, Pin name = IO_L01P_0, Type = I/O, Sch name = R-IO40 + +# Buttons +NET "reset" LOC = "B18"; # Bank = 1, Pin name = IP, Type = INPUT, Sch name = BTN0 + +# FX2 connector ch1 +NET "adc_clk1" LOC = "B4"; +NET "ch1<9>" LOC = "A4"; +NET "ch1<8>" LOC = "C3"; +NET "ch1<7>" LOC = "C4"; +NET "ch1<6>" LOC = "B6"; +NET "ch1<5>" LOC = "D5"; +NET "ch1<4>" LOC = "C5"; +NET "ch1<3>" LOC = "F7"; +NET "ch1<2>" LOC = "E7"; +NET "ch1<1>" LOC = "A6"; +NET "ch1<0>" LOC = "C7"; + +# FX2 connector ch2 +NET "adc_clk2" LOC = "F8"; +NET "ch2<9>" LOC = "D7"; +NET "ch2<8>" LOC = "E8"; +NET "ch2<7>" LOC = "E9"; +NET "ch2<6>" LOC = "C9"; +NET "ch2<5>" LOC = "A8"; +NET "ch2<4>" LOC = "G9"; +NET "ch2<3>" LOC = "F9"; +NET "ch2<2>" LOC = "D10"; +NET "ch2<1>" LOC = "A10"; +NET "ch2<0>" LOC = "B10"; + +# FX2 connector ch3 +NET "adc_clk3" LOC = "A11"; +NET "ch3<9>" LOC = "D11"; +NET "ch3<8>" LOC = "E10"; +NET "ch3<7>" LOC = "B11"; +NET "ch3<6>" LOC = "C11"; +NET "ch3<5>" LOC = "E11"; +NET "ch3<4>" LOC = "F11"; +NET "ch3<3>" LOC = "E12"; +NET "ch3<2>" LOC = "F12"; +NET "ch3<1>" LOC = "A13"; +NET "ch3<0>" LOC = "B13"; + +# MAX5501 Interface +NET "cs_e2prom" LOC = "B14"; +NET "cs_max5501" LOC = "A14"; +NET "spi_dout" LOC = "C14"; +NET "spi_sck" LOC = "D14"; + +# HP03 Interface +# It is in JB 6 pin expansion connector +NET "pMCLK" LOC = "R18"; # Bank = 1, Pin name = IO_L02P_1/A14, Type = DUAL, Sch name = JB2 +NET "pXCLR" LOC = "R16"; # Bank = 1, Pin name = IO_L03N_1/VREF_1, Type = VREF, Sch name = JB8 +NET "pSDA" LOC = "T18"; # Bank = 1, Pin name = IO_L02N_1/A13, Type = DUAL, Sch name = JB9 +NET "pSCL" LOC = "U18"; # Bank = 1, Pin name = IO_L01P_1/A16, Type = DUAL, Sch name = JB10 + +# GPS Interface +# It is in JC 6 pin expansion connector +NET "tx_uart" LOC = "G15"; # Bank = 1, Pin name = IO_L18P_1, Type = I/O, Sch name = JC1 +NET "pps_port" LOC = "G13"; # Bank = 1, Pin name = IO_L20N_1, Type = I/O, Sch name = JC3 +NET "rx_uart" LOC = "H16"; # Bank = 1, Pin name = IO_L16P_1, Type = I/O, Sch name = JC4 + +#Para VHP, esto es para que funcione con el cable que armé, NO con la fuente SWITCHING +#NET "rx_uart" LOC = "G13"; # Bank = 1, Pin name = IO_L20N_1, Type = I/O, Sch name = JC3 +#NET "pps_port" LOC = "H16"; # Bank = 1, Pin name = IO_L16P_1, Type = I/O, Sch name = JC4 +#NET "tx_uart" LOC = "F14"; # Bank = 1, Pin name = IO_L21N_1, Type = I/O, Sch name = JC8 + + +# Switches +NET "GPSen" LOC = "R17"; # Bank = 1, Pin name = IP, Type = INPUT, Sch name = SW7 + +#GPS signals extension (for VHP telescope) +NET "rx_uart_copy" LOC = "J13"; # Bank = 1, Pin name = IO_L15N_1/A1, Type = DUAL, Sch name = JD1 +NET "pps_port_copy" LOC = "M18"; # Bank = 1, Pin name = IO_L08N_1, Type = I/O, Sch name = JD2 +#NET "JD<2>" LOC = "N18"; # Bank = 1, Pin name = IO_L08P_1, Type = I/O, Sch name = JD3 +#NET "JD<3>" LOC = "P18"; # Bank = 1, Pin name = IO_L06N_1, Type = I/O, Sch name = JD4 diff --git a/nexys2_1200.batch b/nexys2_1200.batch new file mode 100644 index 0000000..d20e9f4 --- /dev/null +++ b/nexys2_1200.batch @@ -0,0 +1,6 @@ +setMode -bs +setCable -port xsvf -file lago_fpga_sync.xsvf +addDevice -p 1 -file lago_fpga_sync.bit +addDevice -p 2 -file ${XILINX}/xcf/data/xcf04s.bsd +program -p 1 +quit diff --git a/nexys2_500.batch b/nexys2_500.batch new file mode 100644 index 0000000..9ffe28b --- /dev/null +++ b/nexys2_500.batch @@ -0,0 +1,7 @@ +setMode -bs +setCable -port xsvf -file lago_fpga_vhdl.xsvf +addDevice -p 1 -file lago_fpga_vhdl.bit +addDevice -p 2 -file ${XILINX}/xcf/data/xcf04s.bsd +program -p 1 +quit + diff --git a/rampa_hv.vhd b/rampa_hv.vhd new file mode 100644 index 0000000..9ada580 --- /dev/null +++ b/rampa_hv.vhd @@ -0,0 +1,107 @@ +-- +-- Copyright (C) 2012 Horacio Arnaldi +-- e-mail: lharnaldi@cab.cnea.gov.ar +-- +-- Laboratorio de Detección de PartÃculas y Radiación +-- Centro Atómico Bariloche +-- Comisión Nacional de EnergÃa Atómica (CNEA) +-- San Carlos de Bariloche +-- Date: 12/02/2012 +-- Ver: v0r2 -- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +library ieee; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity ramp is + generic( + N: integer := 18; -- numero de bits del contador + M: integer := 200000; -- mod-M + P: integer := 12); -- numero de bits para los datos + port( + -- Main clock + clk : in std_logic; + reset : in std_logic; + data_in : in std_logic_vector(P-1 downto 0); + data_out : out std_logic_vector(P-1 downto 0); + pwm_pulse : out std_logic; + led_indicador : out std_logic); +end ramp; + +architecture rtl of ramp is + signal count_reg, count_next : unsigned(N-1 downto 0); + signal in_reg, in_next : unsigned(P-1 downto 0); + signal r_reg, r_next : unsigned(P-1 downto 0); + signal out_reg, out_next : unsigned(P-1 downto 0); + signal buff_reg, buff_next : std_logic; + signal max_tick : std_logic; + +begin + -- Drive inputs + in_next <= unsigned(data_in); + + --registers + process (clk, reset) + begin + if (reset = '1') then + count_reg <= (others => '0'); + in_reg <= (others => '0'); + out_reg <= (others => '0'); + r_reg <= (others => '0'); + buff_reg <= '0'; + + elsif (clk'event and clk = '1') then + count_reg <= count_next; + r_reg <= r_next; + buff_reg <= buff_next; + in_reg <= in_next; + out_reg <= out_next; + end if; + end process; + --next-state logic for counter + count_next <= (others => '0') when count_reg = (M-1) else + count_reg + 1; + + buff_next <= '1' when (r_reg < out_reg) else '0'; + + r_next <= r_reg + 1; + + --output logic + max_tick <= '1' when count_reg = (M-1) else '0'; + + process(max_tick, in_reg, out_reg) + begin + if (max_tick = '1') then + if (in_reg > out_reg) then + out_next <= out_reg + 1; + elsif (in_reg < out_reg) then + out_next <= out_reg - 1; + else + out_next <= out_reg; -- default + end if; + else + out_next <= out_reg; + end if; + end process; + + --next-state logic for output + data_out <= std_logic_vector(out_reg); + led_indicador <= '0' when (out_reg = 0) else + '1'; + pwm_pulse <= buff_reg; + +end rtl; diff --git a/spi_dac.vhd b/spi_dac.vhd new file mode 100644 index 0000000..c7572a2 --- /dev/null +++ b/spi_dac.vhd @@ -0,0 +1,178 @@ +--**************************************************************************** +-- SPI_DAC.vhd +-- +-- Horacio Arnaldi <lharnaldi@gmail.com> +-- 20/11/2013 +-- +-- For MAX5501 DAC control. +-- +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +------------------------------------------------------------------------------- + +entity spi_dac is -- MSB first + generic ( + iCLK : boolean := false; + iCNV : boolean := false; + iDIN : boolean := false; + iDOU : boolean := false; + NB : positive := 16; -- number of bits of DAC + NDIV : positive := 10); -- divide the clock to get the spi clock + port ( + clk : in std_logic; + srst : in std_logic; + valid : in std_logic; + din : in std_logic_vector(NB-1 downto 0); + rdy : out std_logic; + + busy : out std_logic; + + spi_sdo : out std_logic; + spi_clk : out std_logic; + spi_csn : out std_logic); +end spi_dac; + +------------------------------------------------------------------------------- + +architecture arch of spi_dac is + + + + signal bits : integer range 0 to NB-1; + signal bcnt : integer range 0 to NDIV-1; + +-- 12 data bits and 4 configuration bit. +-- Bit 15 should be 0 +-- Bit 14 Vref 1 buffered, 0 unbuffered +-- Bit 13 Gain 1 1x , 0 2x +-- Bit 12 Gain 1 output enables, 0 output disabled + + type sm_type is (idle, clk0, clk1, finish); + + signal sm : sm_type; + + signal dac : std_logic_vector(NB-1 downto 0); + + signal din_i : std_logic_vector(NB-1 downto 0); + signal spi_cnv_i : std_logic; + signal spi_clk_i : std_logic; + signal busy_i : std_logic; + signal start : std_logic; + signal shift_out : std_logic; + +begin +-- -- Data selector +-- process (din) +-- begin +-- case din is --MSB - LSB +-- when "0000" => din_i <= "0111000000000000"; +-- when "0001" => din_i <= "0111000000000001"; +-- when "0010" => din_i <= "0111000000000111"; +-- when "0011" => din_i <= "0111000000001111"; +-- when "0100" => din_i <= "0111000000011111"; +-- when "0101" => din_i <= "0111000000111111"; +-- when "0110" => din_i <= "0111000001111111"; +-- when "0111" => din_i <= "0111000011111111"; +-- when "1000" => din_i <= "0111000111111111"; +-- when "1001" => din_i <= "0111001111111111"; +-- when "1010" => din_i <= "0111011111111111"; +-- when "1011" => din_i <= "0111111111111111"; +-- when "1100" => din_i <= "0111111111110000"; +-- when "1101" => din_i <= "0111111111100000"; +-- when "1110" => din_i <= "0111111111000000"; +-- when "1111" => din_i <= "0111111110000000"; +-- when others => din_i <= "0111111100000000"; +-- end case; +-- end process; + + -- write to the DAC shift register, only if not busy! + -- else shift + process(clk) + begin + if clk'event and clk = '1' then + start <= '0'; + -- write the new values to the dac registers + if valid = '1' and busy_i = '0' then + --dac <= din_i; + dac <= din; + start <= '1'; + busy_i <= '1'; + else + if shift_out = '1' then + dac <= dac(dac'high-1 downto 0) & dac(dac'high); + end if; + end if; + + if start = '1' then + busy_i <= '1'; + elsif sm = idle then + busy_i <= '0'; + end if; + + end if; + end process; + + spi_sdo <= not dac(dac'high) when iDOU else dac(dac'high); + busy <= busy_i; + + process(clk) + begin + if clk'event and clk = '1' then + shift_out <= '0'; + spi_clk_i <= '1'; + spi_cnv_i <= '1'; + rdy <= '0'; + if srst = '1' then + sm <= idle; + bcnt <= NDIV - 1; + bits <= NB-1; + else + case sm is + when idle => + bcnt <= NDIV - 1; + bits <= NB - 1; + + if start = '1' then + sm <= clk0; + end if; + when clk0 => + bcnt <= bcnt - 1; + spi_clk_i <= '0'; + spi_cnv_i <= '0'; + + if bcnt = Ndiv/2 then + sm <= clk1; + end if; + when clk1 => + spi_cnv_i <= '0'; + if bcnt = 0 then + bcnt <= Ndiv - 1; + if bits = 0 then + sm <= finish; + rdy <= '1'; + else + sm <= clk0; + shift_out <= '1'; + bits <= bits - 1; + end if; + else + bcnt <= bcnt - 1; + end if; + + when finish => + if bcnt = 0 then + sm <= idle; + else + bcnt <= bcnt - 1; + end if; + end case; + end if; + end if; + end process; + + spi_clk <= not spi_clk_i when iCLK else spi_clk_i; + spi_csn <= not spi_cnv_i when iCNV else spi_cnv_i; +end arch; diff --git a/trigger.vhd b/trigger.vhd new file mode 100644 index 0000000..56081c9 --- /dev/null +++ b/trigger.vhd @@ -0,0 +1,455 @@ +library ieee; +use ieee.std_logic_1164.ALL; +use ieee.numeric_std.all; +-- +entity trigger_in is + generic( + W : natural; --:=5; -- numero de bits de direcciones. 2**W = 32 direcciones para W=5 + ADCBITS : natural; -- := 10; -- numero de bits en los datos + L_ARRAY_MUESTRAS : natural; -- := 12; + L_ARRAY_PPS : natural; -- := 10; + L_ARRAY_SCALERS : natural --:= 3 + ); + + port( + clk_40mhz : in std_logic; + reset : in std_logic; + data_adc1 : in std_logic_vector(ADCBITS-1 downto 0); + data_adc2 : in std_logic_vector(ADCBITS-1 downto 0); + data_adc3 : in std_logic_vector(ADCBITS-1 downto 0); + trigg_set1 : in std_logic_vector(ADCBITS-1 downto 0); + trigg_set2 : in std_logic_vector(ADCBITS-1 downto 0); + trigg_set3 : in std_logic_vector(ADCBITS-1 downto 0); + subtrigg_set1 : in std_logic_vector(ADCBITS-1 downto 0); + subtrigg_set2 : in std_logic_vector(ADCBITS-1 downto 0); + subtrigg_set3 : in std_logic_vector(ADCBITS-1 downto 0); + pwr_enA : out std_logic; + data_out : out std_logic_vector(2**W-1 downto 0); + pfifo_status : in std_logic_vector(2 downto 0); + ptemperatura : in std_logic_vector(15 downto 0); + ppresion : in std_logic_vector(15 downto 0); + phora : in std_logic_vector(7 downto 0); + pminutos : in std_logic_vector(7 downto 0); + psegundos : in std_logic_vector(7 downto 0); + pps_signal : in std_logic; + gpsen : in std_logic; + pps_falso_led : out std_logic; + latitude1_port : in std_logic_vector(7 downto 0); + latitude2_port : in std_logic_vector(7 downto 0); + latitude3_port : in std_logic_vector(7 downto 0); + latitude4_port : in std_logic_vector(7 downto 0); + longitude1_port : in std_logic_vector(7 downto 0); + longitude2_port : in std_logic_vector(7 downto 0); + longitude3_port : in std_logic_vector(7 downto 0); + longitude4_port : in std_logic_vector(7 downto 0); + ellipsoid1_port : in std_logic_vector(7 downto 0); + ellipsoid2_port : in std_logic_vector(7 downto 0); + ellipsoid3_port : in std_logic_vector(7 downto 0); + ellipsoid4_port : in std_logic_vector(7 downto 0); + num_vis_sat_port : in std_logic_vector(7 downto 0); + num_track_sat_port : in std_logic_vector(7 downto 0); + rsf_port : in std_logic_vector(7 downto 0) + ); +end trigger_in; + +architecture rtl of trigger_in is + + type array_muestras_adc_type is array (L_ARRAY_MUESTRAS-1 downto 0) of + std_logic_vector(ADCBITS-1 downto 0); + signal muestras_adc1_reg, muestras_adc1_next : array_muestras_adc_type; + signal muestras_adc2_reg, muestras_adc2_next : array_muestras_adc_type; + signal muestras_adc3_reg, muestras_adc3_next : array_muestras_adc_type; + + type array_pps_type is array (L_ARRAY_PPS-1 downto 0) of + std_logic_vector(2**W-1 downto 0); + signal array_pps_reg, array_pps_next : array_pps_type; + + type array_scalers_type is array (L_ARRAY_SCALERS-1 downto 0) of + std_logic_vector(2**W-1 downto 0); + signal array_scalers_reg, array_scalers_next : array_scalers_type; + + signal clk_para_pps_falso_reg, clk_para_pps_falso_next : unsigned(2**W-1 downto 0); -- contador para falso pps + signal cont_pps_reg, cont_pps_next : unsigned(15 downto 0); -- contador para pps + signal cont_clk_entre_pps_reg, cont_clk_entre_pps_next : unsigned(29 downto 0); -- contador de pulsos de clock entre cada PPS, se resetea en cada pps + signal pps, pps_falso : std_logic; + + type statepps_type is (zero, edge, one); + signal statepps_reg, statepps_next: statepps_type; + signal one_clk_pps : std_logic; + + signal s_tr1, s_tr2, s_tr3, s_tr : std_logic; --Triggers + signal s_subtr1, s_subtr2, s_subtr3, s_subtr : std_logic; --Sub-Triggers + + signal tr_status_reg, tr_status_next : std_logic_vector(2**W-1 downto 0); + signal ctr_status_reg, ctr_status_next : std_logic_vector(2**W-1 downto 0); + + signal cont_trigger_reg, cont_trigger_next : unsigned(29 downto 0); -- contador de triggers + signal cont_bines_reg, cont_bines_next : unsigned(2**W-1 downto 0); -- contador de bines + + signal charge1_reg, charge1_next : unsigned(ADCBITS-1 downto 0); + signal charge2_reg, charge2_next : unsigned(ADCBITS-1 downto 0); + signal charge3_reg, charge3_next : unsigned(ADCBITS-1 downto 0); + + type state_type is (STATE_IDLE, + STATE_ATT_TR, + STATE_SEND_TR_STATUS, + STATE_SEND_CTR_STATUS, + STATE_ATT_SUBTR, + STATE_ATT_PPS); + signal state_reg, state_next: state_type; + + signal wr_count_reg, wr_count_next : unsigned(7 downto 0); + signal data_to_fifo_reg, data_to_fifo_next : std_logic_vector(2**W-1 downto 0); + signal wr_fifo_en_reg, wr_fifo_en_next : std_logic; + signal status : std_logic_vector(2 downto 0); + +begin + +-------------------------------------------------------------------------- + -- PPS falso + -- registers + process(clk_40mhz, reset) + begin + if (reset = '1') then + clk_para_pps_falso_reg <= (others => '0'); -- Contador de clocks entre PPS's + cont_pps_reg <= (others => '0'); -- Contador de PPS's + cont_clk_entre_pps_reg <= (others => '0'); -- Contador de muestras adquiridas entre cada PPS + elsif (clk_40mhz'event and clk_40mhz = '1') then + clk_para_pps_falso_reg <= clk_para_pps_falso_next; + cont_pps_reg <= cont_pps_next; + cont_clk_entre_pps_reg <= cont_clk_entre_pps_next; + end if; + end process; + --next state logic + clk_para_pps_falso_next <= (others => '0') when (clk_para_pps_falso_reg = 39999999) else + clk_para_pps_falso_reg + 1; + + pps_falso <= '1' when (clk_para_pps_falso_reg < 8000000) else + '0'; + + cont_pps_next <= cont_pps_reg + 1 when (one_clk_pps = '1') else + cont_pps_reg; + + cont_clk_entre_pps_next <= (others => '0') when (one_clk_pps = '1') else + cont_clk_entre_pps_reg + 1; + +--------------------------------------------------------------------------- + +--------------------------------------------------------------------------- + --MUX de PPS + pps <= pps_falso when (gpsen = '1') else + pps_signal; + + pps_falso_led <= pps_falso when (gpsen = '1') else + '0'; +--------------------------------------------------------------------------- + +--------------------------------------------------------------------------- + -- one clock pps: en cada pps se mantiene en alto la bandera one_clk_pps durante un ciclo de reloj de 40MHz + -- detector de flancos + -- state register + process(clk_40mhz,reset) + begin + if (reset='1') then + statepps_reg <= zero; + elsif (clk_40mhz'event and clk_40mhz='1') then + statepps_reg <= statepps_next; + end if; + end process; + -- next-state/output logic + process(statepps_reg,pps) + begin + statepps_next <= statepps_reg; + one_clk_pps <= '0'; + case statepps_reg is + when zero=> + if pps= '1' then + statepps_next <= edge; + end if; + when edge => + one_clk_pps <= '1'; + if pps= '1' then + statepps_next <= one; + else + statepps_next <= zero; + end if; + when one => + if pps= '0' then + statepps_next <= zero; + end if; + end case; + end process; + +----------------------------------------------------------------------------- + +----------------------------------------------------------------------------- + + -- registros de datos por segundo + process(clk_40mhz, reset) + begin + for i in L_ARRAY_PPS-1 downto 0 loop + if (reset = '1') then + array_pps_reg(i) <= (others => '0'); + elsif (clk_40mhz'event and clk_40mhz = '1') then + array_pps_reg(i) <= array_pps_next(i); + end if; + end loop; + end process; + --next state logic + array_pps_next(L_ARRAY_PPS-10)<= x"FFFFFFFF" when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-10); + array_pps_next(L_ARRAY_PPS-9)<= "11" & "000" & std_logic_vector(cont_clk_entre_pps_reg(26 downto 0)) when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-9); + array_pps_next(L_ARRAY_PPS-8)<= "11" & "001" & "00000000000" & ptemperatura when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-8); + array_pps_next(L_ARRAY_PPS-7)<= "11" & "010" & "00000000000" & ppresion when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-7); + array_pps_next(L_ARRAY_PPS-6)<= "11" & "011" & "000" & phora & pminutos & psegundos when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-6); + array_pps_next(L_ARRAY_PPS-5)<= "11" & "100" & "000" & latitude1_port & latitude2_port & latitude3_port when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-5); + array_pps_next(L_ARRAY_PPS-4)<= "11" & "100" & "001" & longitude1_port & longitude2_port & latitude4_port when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-4); + array_pps_next(L_ARRAY_PPS-3)<= "11" & "100" & "010" & ellipsoid1_port & longitude3_port & longitude4_port when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-3); + array_pps_next(L_ARRAY_PPS-2)<= "11" & "100" & "011" & ellipsoid2_port & ellipsoid3_port & ellipsoid4_port when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-2); + array_pps_next(L_ARRAY_PPS-1)<= "11" & "100" & "100" & num_track_sat_port & num_vis_sat_port & rsf_port when (one_clk_pps = '1') else array_pps_reg(L_ARRAY_PPS-1); + +------------------------------------------------------------------------------------------------------ + +------------------------------------------------------------------------------------------------------ + --adquisicion de las muestras de los canales + process(clk_40mhz, reset) + begin + for i in (L_ARRAY_MUESTRAS-1) downto 0 loop + if (reset='1') then + muestras_adc1_reg(i) <= (others=>'0'); + muestras_adc2_reg(i) <= (others=>'0'); + muestras_adc3_reg(i) <= (others=>'0'); + elsif (clk_40mhz'event and clk_40mhz='1') then + muestras_adc1_reg(i) <= muestras_adc1_next(i); + muestras_adc2_reg(i) <= muestras_adc2_next(i); + muestras_adc3_reg(i) <= muestras_adc3_next(i); + end if; + -- next state logic + if (i = (L_ARRAY_MUESTRAS-1)) then + muestras_adc1_next(i) <= data_adc1; + muestras_adc2_next(i) <= data_adc2; + muestras_adc3_next(i) <= data_adc3; + else + muestras_adc1_next(i) <= muestras_adc1_reg(i+1); + muestras_adc2_next(i) <= muestras_adc2_reg(i+1); + muestras_adc3_next(i) <= muestras_adc3_reg(i+1); + end if; + end loop; + end process; + +----------------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------------- + --trigger + process(clk_40mhz, reset) + begin + if (reset='1') then + tr_status_reg <= (others => '0'); + ctr_status_reg <= (others => '0'); + cont_trigger_reg <= (others => '0'); + elsif (clk_40mhz'event and clk_40mhz='1') then + tr_status_reg <= tr_status_next; + ctr_status_reg <= ctr_status_next; + cont_trigger_reg <= cont_trigger_next; + end if; + end process; + -- El trigger lo hago en el bin 4 porque luego pierdo un clock en la maquina de estados + -- next state logic + s_tr1 <= '1' when ((unsigned(muestras_adc1_reg(4)) >= unsigned(subtrigg_set1)) and + (unsigned(muestras_adc1_reg(3)) >= unsigned(trigg_set1)) and + (unsigned(muestras_adc1_reg(2)) < unsigned(trigg_set1)) and + (unsigned(muestras_adc1_reg(1)) < unsigned(trigg_set1)) ) else + '0'; + s_tr2 <= '1' when ((unsigned(muestras_adc2_reg(4)) >= unsigned(subtrigg_set2)) and + (unsigned(muestras_adc2_reg(3)) >= unsigned(trigg_set2)) and + (unsigned(muestras_adc2_reg(2)) < unsigned(trigg_set2)) and + (unsigned(muestras_adc2_reg(1)) < unsigned(trigg_set2)) ) else + '0'; + s_tr3 <= '1' when ((unsigned(muestras_adc3_reg(4)) >= unsigned(subtrigg_set3)) and + (unsigned(muestras_adc3_reg(3)) >= unsigned(trigg_set3)) and + (unsigned(muestras_adc3_reg(2)) < unsigned(trigg_set3)) and + (unsigned(muestras_adc3_reg(1)) < unsigned(trigg_set3)) ) else + '0'; + s_tr <= '1' when ((s_tr1 = '1') or + (s_tr2 = '1') or + (s_tr3 = '1') ) else + '0'; + + tr_status_next <= "01" & s_tr3 & s_tr2 & s_tr1 & std_logic_vector(cont_clk_entre_pps_reg(26 downto 0)) when (s_tr = '1') else + tr_status_reg; + ctr_status_next <= "10" & std_logic_vector(cont_trigger_reg) when (s_tr = '1') else + ctr_status_reg; + + cont_trigger_next <= cont_trigger_reg + 1 when (s_tr = '1') else + cont_trigger_reg; + +---------------------------------------------------------------------------------------------------------- + +---------------------------------------------------------------------------------------------------------- + --scalers + -- sub-trigger: se controla que tengamos un subtrigger y que no tengamos un trigger en los proximos dos clocks + process(clk_40mhz, reset) + begin + if (reset='1') then + charge1_reg <= (others => '0'); + charge2_reg <= (others => '0'); + charge3_reg <= (others => '0'); + array_scalers_reg(L_ARRAY_SCALERS-1) <= (others => '0'); + array_scalers_reg(L_ARRAY_SCALERS-2) <= (others => '0'); + array_scalers_reg(L_ARRAY_SCALERS-3) <= (others => '0'); + elsif (clk_40mhz'event and clk_40mhz='1') then + charge1_reg <= charge1_next; + charge2_reg <= charge2_next; + charge3_reg <= charge3_next; + array_scalers_reg(L_ARRAY_SCALERS-1) <= array_scalers_reg(L_ARRAY_SCALERS-1); + array_scalers_reg(L_ARRAY_SCALERS-2) <= array_scalers_reg(L_ARRAY_SCALERS-2); + array_scalers_reg(L_ARRAY_SCALERS-3) <= array_scalers_reg(L_ARRAY_SCALERS-3); + end if; + end process; + -- next state logic + --s_subtr1 <= '1' when unsigned(muestras_adc1_reg(2)) >= unsigned(subtrigg_set1) and + s_subtr1 <= '1' when unsigned(muestras_adc1_reg(2)) > to_unsigned(1023, muestras_adc1_reg'length) and + unsigned(muestras_adc1_reg(1)) < unsigned(muestras_adc1_reg(2)) and + (unsigned(muestras_adc1_reg(3)) < unsigned(muestras_adc1_reg(2)) or + (unsigned(muestras_adc1_reg(3)) = unsigned(muestras_adc1_reg(2)) and + unsigned(muestras_adc1_reg(4)) < unsigned(muestras_adc1_reg(2)))) and + unsigned(muestras_adc1_reg(2)) < unsigned(trigg_set1) and + unsigned(muestras_adc1_reg(3)) < unsigned(trigg_set1) and + unsigned(muestras_adc1_reg(4)) < unsigned(trigg_set1) else + '0'; + --s_subtr2 <= '1' when unsigned(muestras_adc2_reg(2)) >= unsigned(subtrigg_set2) and + s_subtr2 <= '1' when unsigned(muestras_adc2_reg(2)) > to_unsigned(1023, muestras_adc2_reg'length) and + unsigned(muestras_adc2_reg(1)) < unsigned(muestras_adc2_reg(2)) and + (unsigned(muestras_adc2_reg(3)) < unsigned(muestras_adc2_reg(2)) or + (unsigned(muestras_adc2_reg(3)) = unsigned(muestras_adc2_reg(2)) and + unsigned(muestras_adc2_reg(4)) < unsigned(muestras_adc2_reg(2)))) and + unsigned(muestras_adc2_reg(2)) < unsigned(trigg_set2) and + unsigned(muestras_adc2_reg(3)) < unsigned(trigg_set2) and + unsigned(muestras_adc2_reg(4)) < unsigned(trigg_set2) else + '0'; + --s_subtr3 <= '1' when unsigned(muestras_adc3_reg(2)) >= unsigned(subtrigg_set3) and + s_subtr3 <= '1' when unsigned(muestras_adc3_reg(2)) > to_unsigned(1023, muestras_adc3_reg'length) and + unsigned(muestras_adc3_reg(1)) < unsigned(muestras_adc3_reg(2)) and + (unsigned(muestras_adc3_reg(3)) < unsigned(muestras_adc3_reg(2)) or + (unsigned(muestras_adc3_reg(3)) = unsigned(muestras_adc3_reg(2)) and + unsigned(muestras_adc3_reg(4)) < unsigned(muestras_adc3_reg(2)))) and + unsigned(muestras_adc3_reg(2)) < unsigned(trigg_set3) and + unsigned(muestras_adc3_reg(3)) < unsigned(trigg_set3) and + unsigned(muestras_adc3_reg(4)) < unsigned(trigg_set3) else + '0'; + s_subtr <= '1' when ( (s_subtr1 = '1') or (s_subtr2 = '1') or (s_subtr3 = '1') ) else + '0'; + charge1_next <= charge1_reg + muestras_adc1_reg'left - muestras_adc1_reg'right; + charge2_next <= charge2_reg + muestras_adc2_reg'left - muestras_adc2_reg'right; + charge3_next <= charge3_reg + muestras_adc3_reg'left - muestras_adc3_reg'right; + + array_scalers_next(L_ARRAY_SCALERS-1) <= "01" & s_subtr3 & s_subtr2 & s_subtr1 & std_logic_vector(cont_clk_entre_pps_reg(26 downto 0)) when (s_subtr = '1') else + array_scalers_reg(L_ARRAY_SCALERS-1); + array_scalers_next(L_ARRAY_SCALERS-2) <= "00" & std_logic_vector(charge1_reg) & std_logic_vector(charge2_reg) & std_logic_vector(charge3_reg) when (s_subtr = '1') else + array_scalers_reg(L_ARRAY_SCALERS-2); --valores de carga por canal + array_scalers_next(L_ARRAY_SCALERS-3) <= "00" & muestras_adc1_reg(2) & muestras_adc2_reg(2) & muestras_adc3_reg(2) when (s_subtr = '1') else + array_scalers_reg(L_ARRAY_SCALERS-3); --se manda el maximo del pulso tambien + +---------------------------------------------------------------------------------------------------------------- + +---------------------------------------------------------------------------------------------------------------- + -- FSM que controla todo + --================================================================ +-- state and data registers +--================================================================ + process (clk_40mhz, reset) + begin + if (reset = '1') then + state_reg <= STATE_IDLE; + wr_fifo_en_reg <= '0'; + wr_count_reg <= (others => '0'); + data_to_fifo_reg <= (others => '0'); + elsif (clk_40mhz'event and clk_40mhz = '1') then + state_reg <= state_next; + wr_fifo_en_reg <= wr_fifo_en_next; + wr_count_reg <= wr_count_next; + data_to_fifo_reg <= data_to_fifo_next; + end if; + end process; +--================================================================= +--next-state logic & data path functional units/routing +--================================================================= + --process(state_reg, s_tr, s_subtr, one_clk_pps, wr_count_reg, pfifo_status) + process(state_reg, status, wr_count_reg, pfifo_status) + begin + state_next <= state_reg; -- default volver al estado inicial + wr_fifo_en_next <= '0'; -- default deshabilitar la escritura en la fifo + wr_count_next <= (others => '0'); + data_to_fifo_next <= data_to_fifo_reg; --default mantener el valor + case state_reg is + when STATE_IDLE => + if (pfifo_status(2) = '0') then -- si la FIFO no esta llena pfifo_status <= full & pfull & empy + case status is + when "001" | "011" | "101" | "111" => -- le doy prioridad a la escritura de los datos pps cada segundo + state_next <= STATE_ATT_PPS; + when "100" | "110" => + state_next <= STATE_ATT_TR; + when "010" => + state_next <= STATE_ATT_SUBTR; + when others => --"000" + state_next <= STATE_IDLE; + end case; +-- if s_tr = '1' then +-- state_next <= STATE_ATT_TR; +-- elsif s_subtr = '1' then +-- state_next <= STATE_ATT_SUBTR; +-- elsif one_clk_pps = '1' then +-- state_next <= STATE_ATT_PPS; +-- end if; + else + state_next <= STATE_IDLE; + end if; + + when STATE_ATT_TR => + wr_fifo_en_next <= '1'; + wr_count_next <= wr_count_reg + 1; + data_to_fifo_next <= "00" & muestras_adc1_reg(0) & muestras_adc2_reg(0) & muestras_adc3_reg(0); + if (wr_count_reg = (L_ARRAY_MUESTRAS - 1)) then + state_next <= STATE_SEND_TR_STATUS; + else + state_next <= STATE_ATT_TR; + end if; + + when STATE_SEND_TR_STATUS => + wr_fifo_en_next <= '1'; + data_to_fifo_next <= tr_status_reg; + state_next <= STATE_SEND_CTR_STATUS; + + when STATE_SEND_CTR_STATUS => + wr_fifo_en_next <= '1'; + data_to_fifo_next <= ctr_status_reg; + state_next <= STATE_IDLE; + + when STATE_ATT_SUBTR => + wr_fifo_en_next <= '1'; + wr_count_next <= wr_count_reg + 1; + data_to_fifo_next <= array_scalers_reg(to_integer(wr_count_reg)); + if (wr_count_reg = (L_ARRAY_SCALERS - 1)) then + state_next <= STATE_IDLE; + else + state_next <= STATE_ATT_SUBTR; + end if; + + when STATE_ATT_PPS => + wr_fifo_en_next <= '1'; + wr_count_next <= wr_count_reg + 1; + data_to_fifo_next <= array_pps_reg(to_integer(wr_count_reg)); + if (wr_count_reg = (L_ARRAY_PPS - 1)) then + state_next <= STATE_IDLE; + else + state_next <= STATE_ATT_PPS; + end if; + end case; + end process; + + status <= s_tr & s_subtr & one_clk_pps; + data_out <= data_to_fifo_reg; + pwr_enA <= wr_fifo_en_reg; + + +end architecture rtl; + diff --git a/uart_rx.vhd b/uart_rx.vhd new file mode 100644 index 0000000..b1374e6 --- /dev/null +++ b/uart_rx.vhd @@ -0,0 +1,146 @@ +-- UART Receiver with integral 16 byte FIFO buffer +-- +-- 8 bit, no parity, 1 stop bit +-- +-- Version : 1.00 +-- Version Date : 16th October 2002 +-- +-- Start of design entry : 16th October 2002 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2002. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Futhermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for UART_RX +-- +entity uart_rx is + Port ( serial_in : in std_logic; + data_out : out std_logic_vector(7 downto 0); + read_buffer : in std_logic; + reset_buffer : in std_logic; + en_16_x_baud : in std_logic; + buffer_data_present : out std_logic; + buffer_full : out std_logic; + buffer_half_full : out std_logic; + clk : in std_logic); + end uart_rx; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for UART_RX +-- +architecture macro_level_definition of uart_rx is +-- +------------------------------------------------------------------------------------ +-- +-- Components used in UART_RX and defined in subsequent entities. +-- +------------------------------------------------------------------------------------ +-- +-- Constant (K) Compact UART Receiver +-- +component kcuart_rx + Port ( serial_in : in std_logic; + data_out : out std_logic_vector(7 downto 0); + data_strobe : out std_logic; + en_16_x_baud : in std_logic; + clk : in std_logic); + end component; +-- +-- 'Bucket Brigade' FIFO +-- +component bbfifo_16x8 + Port ( data_in : in std_logic_vector(7 downto 0); + data_out : out std_logic_vector(7 downto 0); + reset : in std_logic; + write : in std_logic; + read : in std_logic; + full : out std_logic; + half_full : out std_logic; + data_present : out std_logic; + clk : in std_logic); + end component; +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in UART_RX +-- +------------------------------------------------------------------------------------ +-- +signal uart_data_out : std_logic_vector(7 downto 0); +signal fifo_write : std_logic; +-- +------------------------------------------------------------------------------------ +-- +-- Start of UART_RX circuit description +-- +------------------------------------------------------------------------------------ +-- +begin + + -- 8 to 1 multiplexer to convert parallel data to serial + + kcuart: kcuart_rx + port map ( serial_in => serial_in, + data_out => uart_data_out, + data_strobe => fifo_write, + en_16_x_baud => en_16_x_baud, + clk => clk ); + + + buf: bbfifo_16x8 + port map ( data_in => uart_data_out, + data_out => data_out, + reset => reset_buffer, + write => fifo_write, + read => read_buffer, + full => buffer_full, + half_full => buffer_half_full, + data_present => buffer_data_present, + clk => clk); + +end macro_level_definition; + +------------------------------------------------------------------------------------ +-- +-- END OF FILE UART_RX.VHD +-- +------------------------------------------------------------------------------------ + + diff --git a/uart_tx.vhd b/uart_tx.vhd new file mode 100644 index 0000000..4018c92 --- /dev/null +++ b/uart_tx.vhd @@ -0,0 +1,148 @@ +-- UART Transmitter with integral 16 byte FIFO buffer +-- +-- 8 bit, no parity, 1 stop bit +-- +-- Version : 1.00 +-- Version Date : 14th October 2002 +-- +-- Start of design entry : 14th October 2002 +-- +-- Ken Chapman +-- Xilinx Ltd +-- Benchmark House +-- 203 Brooklands Road +-- Weybridge +-- Surrey KT13 ORH +-- United Kingdom +-- +-- chapman@xilinx.com +-- +------------------------------------------------------------------------------------ +-- +-- NOTICE: +-- +-- Copyright Xilinx, Inc. 2002. This code may be contain portions patented by other +-- third parties. By providing this core as one possible implementation of a standard, +-- Xilinx is making no representation that the provided implementation of this standard +-- is free from any claims of infringement by any third party. Xilinx expressly +-- disclaims any warranty with respect to the adequacy of the implementation, including +-- but not limited to any warranty or representation that the implementation is free +-- from claims of any third party. Futhermore, Xilinx is providing this core as a +-- courtesy to you and suggests that you contact all third parties to obtain the +-- necessary rights to use this implementation. +-- +------------------------------------------------------------------------------------ +-- +-- Library declarations +-- +-- The Unisim Library is used to define Xilinx primitives. It is also used during +-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd +-- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +library unisim; +use unisim.vcomponents.all; +-- +------------------------------------------------------------------------------------ +-- +-- Main Entity for UART_TX +-- +entity uart_tx is + Port ( data_in : in std_logic_vector(7 downto 0); + write_buffer : in std_logic; + reset_buffer : in std_logic; + en_16_x_baud : in std_logic; + serial_out : out std_logic; + buffer_full : out std_logic; + buffer_half_full : out std_logic; + clk : in std_logic); + end uart_tx; +-- +------------------------------------------------------------------------------------ +-- +-- Start of Main Architecture for UART_TX +-- +architecture macro_level_definition of uart_tx is +-- +------------------------------------------------------------------------------------ +-- +-- Components used in UART_TX and defined in subsequent entities. +-- +------------------------------------------------------------------------------------ +-- +-- Constant (K) Compact UART Transmitter +-- +component kcuart_tx + Port ( data_in : in std_logic_vector(7 downto 0); + send_character : in std_logic; + en_16_x_baud : in std_logic; + serial_out : out std_logic; + Tx_complete : out std_logic; + clk : in std_logic); + end component; +-- +-- 'Bucket Brigade' FIFO +-- +component bbfifo_16x8 + Port ( data_in : in std_logic_vector(7 downto 0); + data_out : out std_logic_vector(7 downto 0); + reset : in std_logic; + write : in std_logic; + read : in std_logic; + full : out std_logic; + half_full : out std_logic; + data_present : out std_logic; + clk : in std_logic); + end component; +-- +------------------------------------------------------------------------------------ +-- +-- Signals used in UART_TX +-- +------------------------------------------------------------------------------------ +-- +signal fifo_data_out : std_logic_vector(7 downto 0); +signal fifo_data_present : std_logic; +signal fifo_read : std_logic; +-- +------------------------------------------------------------------------------------ +-- +-- Start of UART_TX circuit description +-- +------------------------------------------------------------------------------------ +-- +begin + + -- 8 to 1 multiplexer to convert parallel data to serial + + kcuart: kcuart_tx + port map ( data_in => fifo_data_out, + send_character => fifo_data_present, + en_16_x_baud => en_16_x_baud, + serial_out => serial_out, + Tx_complete => fifo_read, + clk => clk); + + + buf: bbfifo_16x8 + port map ( data_in => data_in, + data_out => fifo_data_out, + reset => reset_buffer, + write => write_buffer, + read => fifo_read, + full => buffer_full, + half_full => buffer_half_full, + data_present => fifo_data_present, + clk => clk); + +end macro_level_definition; + +------------------------------------------------------------------------------------ +-- +-- END OF FILE UART_TX.VHD +-- +------------------------------------------------------------------------------------ + + diff --git a/usb_if_ctrl.vhd b/usb_if_ctrl.vhd new file mode 100644 index 0000000..7a9b952 --- /dev/null +++ b/usb_if_ctrl.vhd @@ -0,0 +1,1144 @@ +-- +-- Copyright (C) 2011 Horacio Arnaldi +-- e-mail: lharnaldi@cab.cnea.gov.ar +-- +-- Laboratorio de Detección de PartÃculas y Radiación +-- Centro Atómico Bariloche +-- Comisión Nacional de EnergÃa Atómica (CNEA) +-- San Carlos de Bariloche +-- Date: 25/09/2011 +-- Ver: v2r0 -- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +library ieee; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity usb_if_ctrl is + generic( + VER : natural; + REV : natural; + RESET_POLARITY : std_logic); + port( + -- Reset button (BTN0) + reset : in std_logic; + + u_ifclk : in std_logic; + + -- Data & control from the FX2 + u_fd : inout std_logic_vector(7 downto 0); + u_flagc : in std_logic; -- FLAGC=EF (active-low), so '1' when there's data + u_flagb : in std_logic; -- FLAGB=FF (active-low), so '1' when there's room + + -- Control to the FX2 + u_sloe : out std_logic; -- PA2 + u_slrd : out std_logic; + u_slwr : out std_logic; + u_fifoad : out std_logic_vector(1 downto 0); -- PA4 & PA5 + u_pktend : out std_logic; -- PA6 + + -- Lago Board interface + -- Ports for settings + T1, T2, T3 : out std_logic_vector(9 downto 0); + subT1, subT2, subT3 : out std_logic_vector(9 downto 0); + BL1, BL2, BL3 : in std_logic_vector(11 downto 0); -- DAC + HV1 : out std_logic_vector(11 downto 0); -- DAC + HV2, HV3 : out std_logic_vector(11 downto 0); --PWM + + -- Inputs for data + clk40m : in std_logic; --fifo's in clk + fifo_A : in std_logic_vector(31 downto 0); + -- Enables for fifos + we_A : in std_logic; + -- Data input for HP03 + pC1, pC2, pC3, pC4, pC5 : in std_logic_vector(15 downto 0); + pC6, pC7, pD1, pD2 : in std_logic_vector(15 downto 0); + pA, pB, pC, pD : in std_logic_vector(7 downto 0); + + -- GPS receiver data + UTCnGPS : out std_logic; + month_port : in std_logic_vector(7 downto 0); + day_port : in std_logic_vector(7 downto 0); + year1_port : in std_logic_vector(7 downto 0); + year2_port : in std_logic_vector(7 downto 0); + hours_port : in std_logic_vector(7 downto 0); + minutes_port : in std_logic_vector(7 downto 0); + seconds_port : in std_logic_vector(7 downto 0); + fract_sec1_port : in std_logic_vector(7 downto 0); + fract_sec2_port : in std_logic_vector(7 downto 0); + fract_sec3_port : in std_logic_vector(7 downto 0); + fract_sec4_port : in std_logic_vector(7 downto 0); + latitude1_port : in std_logic_vector(7 downto 0); + latitude2_port : in std_logic_vector(7 downto 0); + latitude3_port : in std_logic_vector(7 downto 0); + latitude4_port : in std_logic_vector(7 downto 0); + longitude1_port : in std_logic_vector(7 downto 0); + longitude2_port : in std_logic_vector(7 downto 0); + longitude3_port : in std_logic_vector(7 downto 0); + longitude4_port : in std_logic_vector(7 downto 0); + ellipsoid1_port : in std_logic_vector(7 downto 0); + ellipsoid2_port : in std_logic_vector(7 downto 0); + ellipsoid3_port : in std_logic_vector(7 downto 0); + ellipsoid4_port : in std_logic_vector(7 downto 0); + velocity1_port : in std_logic_vector(7 downto 0); + velocity2_port : in std_logic_vector(7 downto 0); + heading1_port : in std_logic_vector(7 downto 0); + heading2_port : in std_logic_vector(7 downto 0); + geometry2_port : in std_logic_vector(7 downto 0); + DOP_type_port : in std_logic_vector(7 downto 0); + num_vis_sat_port : in std_logic_vector(7 downto 0); + num_track_sat_port: in std_logic_vector(7 downto 0); + + sat_ID1_port : in std_logic_vector(7 downto 0); + chtm1_port : in std_logic_vector(7 downto 0); + CNo1_port : in std_logic_vector(7 downto 0); + chsf1_port : in std_logic_vector(7 downto 0); + + sat_ID2_port : in std_logic_vector(7 downto 0); + chtm2_port : in std_logic_vector(7 downto 0); + CNo2_port : in std_logic_vector(7 downto 0); + chsf2_port : in std_logic_vector(7 downto 0); + + sat_ID3_port : in std_logic_vector(7 downto 0); + chtm3_port : in std_logic_vector(7 downto 0); + CNo3_port : in std_logic_vector(7 downto 0); + chsf3_port : in std_logic_vector(7 downto 0); + + sat_ID4_port : in std_logic_vector(7 downto 0); + chtm4_port : in std_logic_vector(7 downto 0); + CNo4_port : in std_logic_vector(7 downto 0); + chsf4_port : in std_logic_vector(7 downto 0); + + sat_ID5_port : in std_logic_vector(7 downto 0); + chtm5_port : in std_logic_vector(7 downto 0); + CNo5_port : in std_logic_vector(7 downto 0); + chsf5_port : in std_logic_vector(7 downto 0); + + sat_ID6_port : in std_logic_vector(7 downto 0); + chtm6_port : in std_logic_vector(7 downto 0); + CNo6_port : in std_logic_vector(7 downto 0); + chsf6_port : in std_logic_vector(7 downto 0); + + sat_ID7_port : in std_logic_vector(7 downto 0); + chtm7_port : in std_logic_vector(7 downto 0); + CNo7_port : in std_logic_vector(7 downto 0); + chsf7_port : in std_logic_vector(7 downto 0); + + sat_ID8_port : in std_logic_vector(7 downto 0); + chtm8_port : in std_logic_vector(7 downto 0); + CNo8_port : in std_logic_vector(7 downto 0); + chsf8_port : in std_logic_vector(7 downto 0); + + rsf_port : in std_logic_vector(7 downto 0); + + --Fifo status port + pfifo_status : out std_logic_vector(7 downto 0) + ); +end usb_if_ctrl; + +architecture sync of usb_if_ctrl is + + component fifo + port( + din : in std_logic_vector(31 downto 0); + rd_clk : in std_logic; + rd_en : in std_logic; + wr_clk : in std_logic; + wr_en : in std_logic; + dout : out std_logic_vector(7 downto 0); + rst : in std_logic; + empty : out std_logic; + full : out std_logic; + prog_full: OUT std_logic); + end component; + + attribute box_type : string; + attribute box_type of fifo : component is "black_box"; + + type StateType is ( + STATE_IDLE, + STATE_GET_COUNT0, + STATE_GET_COUNT1, + STATE_GET_COUNT2, + STATE_GET_COUNT3, + STATE_BEGIN_WRITE, + STATE_WRITE, + STATE_END_WRITE_ALIGNED, + STATE_END_WRITE_NONALIGNED, + STATE_READ); + + signal state, state_next : StateType; + signal count, count_next : unsigned(31 downto 0); -- Read/Write count + signal addr, addr_next : std_logic_vector(6 downto 0); + signal isWrite, isWrite_next : std_logic; + signal isAligned, isAligned_next: std_logic; + signal fifoOp : std_logic_vector(2 downto 0); + constant FIFO_READ : std_logic_vector(2 downto 0) := "100"; -- assert u_slrd & u_sloe + constant FIFO_WRITE : std_logic_vector(2 downto 0) := "011"; -- assert u_slwr + constant FIFO_NOP : std_logic_vector(2 downto 0) := "111"; -- assert nothing + constant OUT_FIFO : std_logic_vector(1 downto 0) := "10"; -- EP6OUT + constant IN_FIFO : std_logic_vector(1 downto 0) := "11"; -- EP8IN + + -- FIFO read/write enables, and data to be mux'd back to host + signal iReadEnable_A : std_logic; + signal iFifoData_A : std_logic_vector(7 downto 0); + + -- HP03 inputs + signal sC1_msb, sNext_sC1_msb : std_logic_vector(7 downto 0); + signal sC1_lsb, sNext_sC1_lsb : std_logic_vector(7 downto 0); + signal sC2_msb, sNext_sC2_msb : std_logic_vector(7 downto 0); + signal sC2_lsb, sNext_sC2_lsb : std_logic_vector(7 downto 0); + signal sC3_msb, sNext_sC3_msb : std_logic_vector(7 downto 0); + signal sC3_lsb, sNext_sC3_lsb : std_logic_vector(7 downto 0); + signal sC4_msb, sNext_sC4_msb : std_logic_vector(7 downto 0); + signal sC4_lsb, sNext_sC4_lsb : std_logic_vector(7 downto 0); + signal sC5_msb, sNext_sC5_msb : std_logic_vector(7 downto 0); + signal sC5_lsb, sNext_sC5_lsb : std_logic_vector(7 downto 0); + signal sC6_msb, sNext_sC6_msb : std_logic_vector(7 downto 0); + signal sC6_lsb, sNext_sC6_lsb : std_logic_vector(7 downto 0); + signal sC7_msb, sNext_sC7_msb : std_logic_vector(7 downto 0); + signal sC7_lsb, sNext_sC7_lsb : std_logic_vector(7 downto 0); + signal sA, sNext_sA : std_logic_vector(7 downto 0); + signal sB, sNext_sB : std_logic_vector(7 downto 0); + signal sC, sNext_sC : std_logic_vector(7 downto 0); + signal sD, sNext_sD : std_logic_vector(7 downto 0); + signal sD1_msb, sNext_sD1_msb : std_logic_vector(7 downto 0); + signal sD1_lsb, sNext_sD1_lsb : std_logic_vector(7 downto 0); + signal sD2_msb, sNext_sD2_msb : std_logic_vector(7 downto 0); + signal sD2_lsb, sNext_sD2_lsb : std_logic_vector(7 downto 0); + + -- GPS fifo signals + signal smonth, sNext_month : std_logic_vector(7 downto 0); + signal sday, sNext_day : std_logic_vector(7 downto 0); + signal syear1, sNext_year1 : std_logic_vector(7 downto 0); + signal syear2, sNext_year2 : std_logic_vector(7 downto 0); + signal shours, sNext_hours : std_logic_vector(7 downto 0); + signal sminutes, sNext_minutes : std_logic_vector(7 downto 0); + signal sseconds, sNext_seconds : std_logic_vector(7 downto 0); + signal sfract_sec1, sNext_fract_sec1 : std_logic_vector(7 downto 0); + signal sfract_sec2, sNext_fract_sec2 : std_logic_vector(7 downto 0); + signal sfract_sec3, sNext_fract_sec3 : std_logic_vector(7 downto 0); + signal sfract_sec4, sNext_fract_sec4 : std_logic_vector(7 downto 0); + signal slatitude1, sNext_latitude1 : std_logic_vector(7 downto 0); + signal slatitude2, sNext_latitude2 : std_logic_vector(7 downto 0); + signal slatitude3, sNext_latitude3 : std_logic_vector(7 downto 0); + signal slatitude4, sNext_latitude4 : std_logic_vector(7 downto 0); + signal slongitude1, sNext_longitude1 : std_logic_vector(7 downto 0); + signal slongitude2, sNext_longitude2 : std_logic_vector(7 downto 0); + signal slongitude3, sNext_longitude3 : std_logic_vector(7 downto 0); + signal slongitude4, sNext_longitude4 : std_logic_vector(7 downto 0); + signal sellipsoid1, sNext_ellipsoid1 : std_logic_vector(7 downto 0); + signal sellipsoid2, sNext_ellipsoid2 : std_logic_vector(7 downto 0); + signal sellipsoid3, sNext_ellipsoid3 : std_logic_vector(7 downto 0); + signal sellipsoid4, sNext_ellipsoid4 : std_logic_vector(7 downto 0); + signal svelocity1, sNext_velocity1 : std_logic_vector(7 downto 0); + signal svelocity2, sNext_velocity2 : std_logic_vector(7 downto 0); + signal sheading1, sNext_heading1 : std_logic_vector(7 downto 0); + signal sheading2, sNext_heading2 : std_logic_vector(7 downto 0); + signal sgeometry2, sNext_geometry2 : std_logic_vector(7 downto 0); + signal sDOP_type, sNext_DOP_type : std_logic_vector(7 downto 0); + signal sNVS, sNext_NVS : std_logic_vector(7 downto 0); + signal sNTS, sNext_NTS : std_logic_vector(7 downto 0); + signal ssat_ID1, sNext_sat_ID1 : std_logic_vector(7 downto 0); + signal schtm1, sNext_chtm1 : std_logic_vector(7 downto 0); + signal sCNo1, sNext_CNo1 : std_logic_vector(7 downto 0); + signal schsf1, sNext_chsf1 : std_logic_vector(7 downto 0); + signal ssat_ID2, sNext_sat_ID2 : std_logic_vector(7 downto 0); + signal schtm2, sNext_chtm2 : std_logic_vector(7 downto 0); + signal sCNo2, sNext_CNo2 : std_logic_vector(7 downto 0); + signal schsf2, sNext_chsf2 : std_logic_vector(7 downto 0); + signal ssat_ID3, sNext_sat_ID3 : std_logic_vector(7 downto 0); + signal schtm3, sNext_chtm3 : std_logic_vector(7 downto 0); + signal sCNo3, sNext_CNo3 : std_logic_vector(7 downto 0); + signal schsf3, sNext_chsf3 : std_logic_vector(7 downto 0); + signal ssat_ID4, sNext_sat_ID4 : std_logic_vector(7 downto 0); + signal schtm4, sNext_chtm4 : std_logic_vector(7 downto 0); + signal sCNo4, sNext_CNo4 : std_logic_vector(7 downto 0); + signal schsf4, sNext_chsf4 : std_logic_vector(7 downto 0); + signal ssat_ID5, sNext_sat_ID5 : std_logic_vector(7 downto 0); + signal schtm5, sNext_chtm5 : std_logic_vector(7 downto 0); + signal sCNo5, sNext_CNo5 : std_logic_vector(7 downto 0); + signal schsf5, sNext_chsf5 : std_logic_vector(7 downto 0); + signal ssat_ID6, sNext_sat_ID6 : std_logic_vector(7 downto 0); + signal schtm6, sNext_chtm6 : std_logic_vector(7 downto 0); + signal sCNo6, sNext_CNo6 : std_logic_vector(7 downto 0); + signal schsf6, sNext_chsf6 : std_logic_vector(7 downto 0); + signal ssat_ID7, sNext_sat_ID7 : std_logic_vector(7 downto 0); + signal schtm7, sNext_chtm7 : std_logic_vector(7 downto 0); + signal sCNo7, sNext_CNo7 : std_logic_vector(7 downto 0); + signal schsf7, sNext_chsf7 : std_logic_vector(7 downto 0); + signal ssat_ID8, sNext_sat_ID8 : std_logic_vector(7 downto 0); + signal schtm8, sNext_chtm8 : std_logic_vector(7 downto 0); + signal sCNo8, sNext_CNo8 : std_logic_vector(7 downto 0); + signal schsf8, sNext_chsf8 : std_logic_vector(7 downto 0); + signal srsf, sNext_rsf : std_logic_vector(7 downto 0); + signal sutcngps, sNextutcngps : std_logic_vector(7 downto 0); + + + -- Registers + signal iR0, iNextR0 : std_logic_vector(7 downto 0); --reserved + signal iT1_msb, iNext_T1_msb : std_logic_vector(7 downto 0); --1 + signal iT1_lsb, iNext_T1_lsb : std_logic_vector(7 downto 0); --2 + signal iT2_msb, iNext_T2_msb : std_logic_vector(7 downto 0); --3 + signal iT2_lsb, iNext_T2_lsb : std_logic_vector(7 downto 0); --4 + signal iT3_msb, iNext_T3_msb : std_logic_vector(7 downto 0); --5 + signal iT3_lsb, iNext_T3_lsb : std_logic_vector(7 downto 0); --6 + signal isubT1_msb, iNext_subT1_msb : std_logic_vector(7 downto 0); --7 + signal isubT1_lsb, iNext_subT1_lsb : std_logic_vector(7 downto 0); --8 + signal isubT2_msb, iNext_subT2_msb : std_logic_vector(7 downto 0); --9 + signal isubT2_lsb, iNext_subT2_lsb : std_logic_vector(7 downto 0); --10 + signal isubT3_msb, iNext_subT3_msb : std_logic_vector(7 downto 0); --11 + signal isubT3_lsb, iNext_subT3_lsb : std_logic_vector(7 downto 0); --12 + signal iBL1_msb, iNext_BL1_msb : std_logic_vector(7 downto 0); --13 + signal iBL1_lsb, iNext_BL1_lsb : std_logic_vector(7 downto 0); --14 + signal iBL2_msb, iNext_BL2_msb : std_logic_vector(7 downto 0); --15 + signal iBL2_lsb, iNext_BL2_lsb : std_logic_vector(7 downto 0); --16 + signal iBL3_msb, iNext_BL3_msb : std_logic_vector(7 downto 0); --17 + signal iBL3_lsb, iNext_BL3_lsb : std_logic_vector(7 downto 0); --18 + signal iHV1_msb, iNext_HV1_msb : std_logic_vector(7 downto 0); --19 + signal iHV1_lsb, iNext_HV1_lsb : std_logic_vector(7 downto 0); --20 + signal iHV2_msb, iNext_HV2_msb : std_logic_vector(7 downto 0); --21 + signal iHV2_lsb, iNext_HV2_lsb : std_logic_vector(7 downto 0); --22 + signal iHV3_msb, iNext_HV3_msb : std_logic_vector(7 downto 0); --23 + signal iHV3_lsb, iNext_HV3_lsb : std_logic_vector(7 downto 0); --24 + signal irstatus, iNext_rstatus : std_logic_vector(7 downto 0); --25 + + -- HP03 fifo status + signal iVerID, iNext_iVerID : std_logic_vector(7 downto 0); --26 + -- GPS fifo status + signal iRevID, iNext_iRevID : std_logic_vector(7 downto 0); --27 + signal sfull_A : std_logic; + signal sempty_A : std_logic; + signal spf_A : std_logic; -- prog full A and B + +begin + + -- Drive mixed signals... + pfifo_status <= "00000" & sfull_A & spf_A & sempty_A; + iNext_rstatus <= spf_A & "0" & sfull_A & "000" & sempty_A & "0"; + iNext_iVerID <= std_logic_vector(to_unsigned(VER, 8)); -- Actual Soft Version + iNext_iRevID <= std_logic_vector(to_unsigned(REV, 8)); -- Actual Soft Revision + UTCnGPS <= sutcngps(0); + -- Drive module outputs + -- Trigger levels + T1 <= iT1_msb(1 downto 0) & iT1_lsb; + T2 <= iT2_msb(1 downto 0) & iT2_lsb; + T3 <= iT3_msb(1 downto 0) & iT3_lsb; + -- subTrigger levels + subT1 <= isubT1_msb(1 downto 0) & isubT1_lsb; + subT2 <= isubT2_msb(1 downto 0) & isubT2_lsb; + subT3 <= isubT3_msb(1 downto 0) & isubT3_lsb; + iNext_BL1_msb <= x"0" & BL1(11 downto 8); + iNext_BL1_lsb <= BL1(7 downto 0); + iNext_BL2_msb <= x"0" & BL2(11 downto 8); + iNext_BL2_lsb <= BL2(7 downto 0); + iNext_BL3_msb <= x"0" & BL3(11 downto 8); + iNext_BL3_lsb <= BL3(7 downto 0); + + -- High Voltages + HV1 <= iHV1_msb(3 downto 0) & iHV1_lsb; + HV2 <= iHV2_msb(3 downto 0) & iHV2_lsb; + HV3 <= iHV3_msb(3 downto 0) & iHV3_lsb; + + -- Drive HP03 inputs + sNext_sC1_msb <= pC1(15 downto 8); + sNext_sC1_lsb <= pC1(7 downto 0); + sNext_sC2_msb <= pC2(15 downto 8); + sNext_sC2_lsb <= pC2(7 downto 0); + sNext_sC3_msb <= pC3(15 downto 8); + sNext_sC3_lsb <= pC3(7 downto 0); + sNext_sC4_msb <= pC4(15 downto 8); + sNext_sC4_lsb <= pC4(7 downto 0); + sNext_sC5_msb <= pC5(15 downto 8); + sNext_sC5_lsb <= pC5(7 downto 0); + sNext_sC6_msb <= pC6(15 downto 8); + sNext_sC6_lsb <= pC6(7 downto 0); + sNext_sC7_msb <= pC7(15 downto 8); + sNext_sC7_lsb <= pC7(7 downto 0); + sNext_sA <= pA; + sNext_sB <= pB; + sNext_sC <= pC; + sNext_sD <= pD; + sNext_sD1_msb <= pD1(15 downto 8); + sNext_sD1_lsb <= pD1(7 downto 0); + sNext_sD2_msb <= pD2(15 downto 8); + sNext_sD2_lsb <= pD2(7 downto 0); + + -- Drive GPS inputs + sNext_month <= month_port; + sNext_day <= day_port; + sNext_year1 <= year1_port; + sNext_year2 <= year2_port; + sNext_hours <= hours_port; + sNext_minutes <= minutes_port; + sNext_seconds <= seconds_port; + sNext_fract_sec1<= fract_sec1_port; + sNext_fract_sec2<= fract_sec2_port; + sNext_fract_sec3<= fract_sec3_port; + sNext_fract_sec4<= fract_sec4_port; + sNext_latitude1 <= latitude1_port; + sNext_latitude2 <= latitude2_port; + sNext_latitude3 <= latitude3_port; + sNext_latitude4 <= latitude4_port; + sNext_longitude1<= longitude1_port; + sNext_longitude2<= longitude2_port; + sNext_longitude3<= longitude3_port; + sNext_longitude4<= longitude4_port; + sNext_ellipsoid1<= ellipsoid1_port; + sNext_ellipsoid2<= ellipsoid2_port; + sNext_ellipsoid3<= ellipsoid3_port; + sNext_ellipsoid4<= ellipsoid4_port; + sNext_velocity1 <= velocity1_port; + sNext_velocity2 <= velocity2_port; + sNext_heading1 <= heading1_port; + sNext_heading2 <= heading2_port; + sNext_geometry2 <= geometry2_port; + sNext_DOP_type <= DOP_type_port; + sNext_NVS <= num_vis_sat_port; + sNext_NTS <= num_track_sat_port; + sNext_sat_ID1 <= sat_ID1_port; + sNext_chtm1 <= chtm1_port; + sNext_CNo1 <= CNo1_port; + sNext_chsf1 <= chsf1_port; + sNext_sat_ID2 <= sat_ID2_port; + sNext_chtm2 <= chtm2_port; + sNext_CNo2 <= CNo2_port; + sNext_chsf2 <= chsf2_port; + sNext_sat_ID3 <= sat_ID3_port; + sNext_chtm3 <= chtm3_port; + sNext_CNo3 <= CNo3_port; + sNext_chsf3 <= chsf3_port; + sNext_sat_ID4 <= sat_ID4_port; + sNext_chtm4 <= chtm4_port; + sNext_CNo4 <= CNo4_port; + sNext_chsf4 <= chsf4_port; + sNext_sat_ID5 <= sat_ID5_port; + sNext_chtm5 <= chtm5_port; + sNext_CNo5 <= CNo5_port; + sNext_chsf5 <= chsf5_port; + sNext_sat_ID6 <= sat_ID6_port; + sNext_chtm6 <= chtm6_port; + sNext_CNo6 <= CNo6_port; + sNext_chsf6 <= chsf6_port; + sNext_sat_ID7 <= sat_ID7_port; + sNext_chtm7 <= chtm7_port; + sNext_CNo7 <= CNo7_port; + sNext_chsf7 <= chsf7_port; + sNext_sat_ID8 <= sat_ID8_port; + sNext_chtm8 <= chtm8_port; + sNext_CNo8 <= CNo8_port; + sNext_chsf8 <= chsf8_port; + sNext_rsf <= rsf_port; + --End of GPS signals + + --FIFO's + fifoA : fifo + port map( + din => fifo_A, + rd_clk => u_ifclk, + rd_en => iReadEnable_A, + wr_clk => clk40m, + wr_en => we_A, + dout => iFifoData_A, + rst => reset, + empty => sempty_A, + full => sfull_A, + prog_full => spf_A + ); + + -- Infer registers + process(u_ifclk, reset) + begin + if ( reset = RESET_POLARITY) then + state <= STATE_IDLE; + count <= (others => '0'); + addr <= (others => '0'); + isWrite <= '0'; + isAligned <= '0'; + iR0 <= (others => '0'); + iT1_msb <= x"03"; + iT1_lsb <= x"E8"; + iT2_msb <= x"03"; + iT2_lsb <= x"E8"; + iT3_msb <= x"03"; + iT3_lsb <= x"E8"; + isubT1_msb <= x"03"; + isubT1_lsb <= x"E8"; + isubT2_msb <= x"03"; + isubT2_lsb <= x"E8"; + isubT3_msb <= x"03"; + isubT3_lsb <= x"E8"; + iBL1_msb <= (others => '0'); + iBL1_lsb <= (others => '0'); + iBL2_msb <= (others => '0'); + iBL2_lsb <= (others => '0'); + iBL3_msb <= (others => '0'); + iBL3_lsb <= (others => '0'); + iHV1_msb <= (others => '0'); + iHV1_lsb <= (others => '0'); + iHV2_msb <= (others => '0'); + iHV2_lsb <= (others => '0'); + iHV3_msb <= (others => '0'); + iHV3_lsb <= (others => '0'); + irstatus <= (others => '0'); + --HP03 signals + sC1_msb <= (others => '0'); + sC1_lsb <= (others => '0'); + sC2_msb <= (others => '0'); + sC2_lsb <= (others => '0'); + sC3_msb <= (others => '0'); + sC3_lsb <= (others => '0'); + sC4_msb <= (others => '0'); + sC4_lsb <= (others => '0'); + sC5_msb <= (others => '0'); + sC5_lsb <= (others => '0'); + sC6_msb <= (others => '0'); + sC6_lsb <= (others => '0'); + sC7_msb <= (others => '0'); + sC7_lsb <= (others => '0'); + sA <= (others => '0'); + sB <= (others => '0'); + sC <= (others => '0'); + sD <= (others => '0'); + sD1_msb <= (others => '0'); + sD1_lsb <= (others => '0'); + sD2_msb <= (others => '0'); + sD2_lsb <= (others => '0'); + --GPS signals + smonth <= (others => '0'); + sday <= (others => '0'); + syear1 <= (others => '0'); + syear2 <= (others => '0'); + shours <= (others => '0'); + sminutes <= (others => '0'); + sseconds <= (others => '0'); + sfract_sec1 <= (others => '0'); + sfract_sec2 <= (others => '0'); + sfract_sec3 <= (others => '0'); + sfract_sec4 <= (others => '0'); + slatitude1 <= (others => '0'); + slatitude2 <= (others => '0'); + slatitude3 <= (others => '0'); + slatitude4 <= (others => '0'); + slongitude1 <= (others => '0'); + slongitude2 <= (others => '0'); + slongitude3 <= (others => '0'); + slongitude4 <= (others => '0'); + sellipsoid1 <= (others => '0'); + sellipsoid2 <= (others => '0'); + sellipsoid3 <= (others => '0'); + sellipsoid4 <= (others => '0'); + svelocity1 <= (others => '0'); + svelocity2 <= (others => '0'); + sheading1 <= (others => '0'); + sheading2 <= (others => '0'); + sgeometry2 <= (others => '0'); + sDOP_type <= (others => '0'); + sNVS <= (others => '0'); + sNTS <= (others => '0'); + ssat_ID1 <= (others => '0'); + schtm1 <= (others => '0'); + sCNo1 <= (others => '0'); + schsf1 <= (others => '0'); + ssat_ID2 <= (others => '0'); + schtm2 <= (others => '0'); + sCNo2 <= (others => '0'); + schsf2 <= (others => '0'); + ssat_ID3 <= (others => '0'); + schtm3 <= (others => '0'); + sCNo3 <= (others => '0'); + schsf3 <= (others => '0'); + ssat_ID4 <= (others => '0'); + schtm4 <= (others => '0'); + sCNo4 <= (others => '0'); + schsf4 <= (others => '0'); + ssat_ID5 <= (others => '0'); + schtm5 <= (others => '0'); + sCNo5 <= (others => '0'); + schsf5 <= (others => '0'); + ssat_ID6 <= (others => '0'); + schtm6 <= (others => '0'); + sCNo6 <= (others => '0'); + schsf6 <= (others => '0'); + ssat_ID7 <= (others => '0'); + schtm7 <= (others => '0'); + sCNo7 <= (others => '0'); + schsf7 <= (others => '0'); + ssat_ID8 <= (others => '0'); + schtm8 <= (others => '0'); + sCNo8 <= (others => '0'); + schsf8 <= (others => '0'); + srsf <= (others => '0'); + sutcngps <= (others => '0'); + + elsif rising_edge(u_ifclk) then + state <= state_next; + count <= count_next; + addr <= addr_next; + isWrite <= isWrite_next; + isAligned <= isAligned_next; + iR0 <= iNextR0; + iT1_msb <= iNext_T1_msb; + iT1_lsb <= iNext_T1_lsb; + iT2_msb <= iNext_T2_msb; + iT2_lsb <= iNext_T2_lsb; + iT3_msb <= iNext_T3_msb; + iT3_lsb <= iNext_T3_lsb; + isubT1_msb <= iNext_subT1_msb; + isubT1_lsb <= iNext_subT1_lsb; + isubT2_msb <= iNext_subT2_msb; + isubT2_lsb <= iNext_subT2_lsb; + isubT3_msb <= iNext_subT3_msb; + isubT3_lsb <= iNext_subT3_lsb; + iBL1_msb <= iNext_BL1_msb; + iBL1_lsb <= iNext_BL1_lsb; + iBL2_msb <= iNext_BL2_msb; + iBL2_lsb <= iNext_BL2_lsb; + iBL3_msb <= iNext_BL3_msb; + iBL3_lsb <= iNext_BL3_lsb; + iHV1_msb <= iNext_HV1_msb; + iHV1_lsb <= iNext_HV1_lsb; + iHV2_msb <= iNext_HV2_msb; + iHV2_lsb <= iNext_HV2_lsb; + iHV3_msb <= iNext_HV3_msb; + iHV3_lsb <= iNext_HV3_lsb; + irstatus <= iNext_rstatus; + --HP03 signals + sC1_msb <= sNext_sC1_msb; + sC1_lsb <= sNext_sC1_lsb; + sC2_msb <= sNext_sC2_msb; + sC2_lsb <= sNext_sC2_lsb; + sC3_msb <= sNext_sC3_msb; + sC3_lsb <= sNext_sC3_lsb; + sC4_msb <= sNext_sC4_msb; + sC4_lsb <= sNext_sC4_lsb; + sC5_msb <= sNext_sC5_msb; + sC5_lsb <= sNext_sC5_lsb; + sC6_msb <= sNext_sC6_msb; + sC6_lsb <= sNext_sC6_lsb; + sC7_msb <= sNext_sC7_msb; + sC7_lsb <= sNext_sC7_lsb; + sA <= sNext_sA; + sB <= sNext_sB; + sC <= sNext_sC; + sD <= sNext_sD; + sD1_msb <= sNext_sD1_msb; + sD1_lsb <= sNext_sD1_lsb; + sD2_msb <= sNext_sD2_msb; + sD2_lsb <= sNext_sD2_lsb; + --GPS signals + smonth <= sNext_month; + sday <= sNext_day; + syear1 <= sNext_year1; + syear2 <= sNext_year2; + shours <= sNext_hours; + sminutes <= sNext_minutes; + sseconds <= sNext_seconds; + sfract_sec1 <= sNext_fract_sec1; + sfract_sec2 <= sNext_fract_sec2; + sfract_sec3 <= sNext_fract_sec3; + sfract_sec4 <= sNext_fract_sec4; + slatitude1 <= sNext_latitude1; + slatitude2 <= sNext_latitude2; + slatitude3 <= sNext_latitude3; + slatitude4 <= sNext_latitude4; + slongitude1 <= sNext_longitude1; + slongitude2 <= sNext_longitude2; + slongitude3 <= sNext_longitude3; + slongitude4 <= sNext_longitude4; + sellipsoid1 <= sNext_ellipsoid1; + sellipsoid2 <= sNext_ellipsoid2; + sellipsoid3 <= sNext_ellipsoid3; + sellipsoid4 <= sNext_ellipsoid4; + svelocity1 <= sNext_velocity1; + svelocity2 <= sNext_velocity2; + sheading1 <= sNext_heading1; + sheading2 <= sNext_heading2; + sgeometry2 <= sNext_geometry2; + sDOP_type <= sNext_DOP_type; + sNVS <= sNext_NVS; + sNTS <= sNext_NTS; + ssat_ID1 <= sNext_sat_ID1; + schtm1 <= sNext_chtm1; + sCNo1 <= sNext_CNo1; + schsf1 <= sNext_chsf1; + ssat_ID2 <= sNext_sat_ID2; + schtm2 <= sNext_chtm2; + sCNo2 <= sNext_CNo2; + schsf2 <= sNext_chsf2; + ssat_ID3 <= sNext_sat_ID3; + schtm3 <= sNext_chtm3; + sCNo3 <= sNext_CNo3; + schsf3 <= sNext_chsf3; + ssat_ID4 <= sNext_sat_ID4; + schtm4 <= sNext_chtm4; + sCNo4 <= sNext_CNo4; + schsf4 <= sNext_chsf4; + ssat_ID5 <= sNext_sat_ID5; + schtm5 <= sNext_chtm5; + sCNo5 <= sNext_CNo5; + schsf5 <= sNext_chsf5; + ssat_ID6 <= sNext_sat_ID6; + schtm6 <= sNext_chtm6; + sCNo6 <= sNext_CNo6; + schsf6 <= sNext_chsf6; + ssat_ID7 <= sNext_sat_ID7; + schtm7 <= sNext_chtm7; + sCNo7 <= sNext_CNo7; + schsf7 <= sNext_chsf7; + ssat_ID8 <= sNext_sat_ID8; + schtm8 <= sNext_chtm8; + sCNo8 <= sNext_CNo8; + schsf8 <= sNext_chsf8; + srsf <= sNext_rsf; + sutcngps <= sNextutcngps; + iVerID <= iNext_iVerID; + iRevID <= iNext_iRevID; + end if; + end process; + + -- Next state logic + process( + state, u_fd, u_flagc, u_flagb, count, isAligned, isWrite, addr, + + iR0, iT1_msb, iT1_lsb, iT2_msb, iT2_lsb, iT3_msb, iT3_lsb, + isubT1_msb, isubT1_lsb, isubT2_msb, isubT2_lsb, isubT3_msb, + isubT3_lsb, iBL1_msb, iBL1_lsb, iBL2_msb, iBL2_lsb, iBL3_msb, + iBL3_lsb, iHV1_msb, iHV1_lsb, iHV2_msb, iHV2_lsb, iHV3_msb, + iHV3_lsb, irstatus, iVerID, iRevID, sutcngps) + begin + state_next <= state; + count_next <= count; + addr_next <= addr; + isWrite_next <= isWrite; + isAligned_next <= isAligned; -- does this FIFO write end on a block (512-byte) boundary? + u_fd <= (others => 'Z'); -- Tristated unless explicitly driven + fifoOp <= FIFO_READ; -- read the FX2LP FIFO by default + u_pktend <= '1'; -- inactive: FPGA does not commit a short packet. + + iNextR0 <= iR0; + iNext_T1_msb <= iT1_msb; + iNext_T1_lsb <= iT1_lsb; + iNext_T2_msb <= iT2_msb; + iNext_T2_lsb <= iT2_lsb; + iNext_T3_msb <= iT3_msb; + iNext_T3_lsb <= iT3_lsb; + iNext_subT1_msb <= isubT1_msb; + iNext_subT1_lsb <= isubT1_lsb; + iNext_subT2_msb <= isubT2_msb; + iNext_subT2_lsb <= isubT2_lsb; + iNext_subT3_msb <= isubT3_msb; + iNext_subT3_lsb <= isubT3_lsb; + iNext_HV1_msb <= iHV1_msb; + iNext_HV1_lsb <= iHV1_lsb; + iNext_HV2_msb <= iHV2_msb; + iNext_HV2_lsb <= iHV2_lsb; + iNext_HV3_msb <= iHV3_msb; + iNext_HV3_lsb <= iHV3_lsb; + sNextutcngps <= sutcngps; + -- No read from FIFO + iReadEnable_A <= '0'; + + case state is + when STATE_IDLE => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- The read/write flag and a seven-bit register address + -- will be available on the next clock edge. + addr_next <= u_fd(6 downto 0); + isWrite_next <= u_fd(7); + state_next <= STATE_GET_COUNT0; + end if; + + when STATE_GET_COUNT0 => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- The count high word high byte will be available on the + -- next clock edge. + count_next(31 downto 24) <= unsigned(u_fd); + state_next <= STATE_GET_COUNT1; + end if; + + when STATE_GET_COUNT1 => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- The count high word low byte will be available on the + -- next clock edge. + count_next(23 downto 16) <= unsigned(u_fd); + state_next <= STATE_GET_COUNT2; + end if; + + when STATE_GET_COUNT2 => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- The count low word high byte will be available on the + -- next clock edge. + count_next(15 downto 8) <= unsigned(u_fd); + state_next <= STATE_GET_COUNT3; + end if; + + when STATE_GET_COUNT3 => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- The count low word low byte will be available on the + -- next clock edge. + count_next(7 downto 0) <= unsigned(u_fd); + if ( isWrite = '1' ) then + state_next <= STATE_BEGIN_WRITE; + else + state_next <= STATE_READ; + end if; + end if; + + when STATE_BEGIN_WRITE => + u_fifoad <= IN_FIFO; -- Writing to FX2LP + fifoOp <= FIFO_NOP; + isAligned_next <= not(count(0) or count(1) or count(2) or count(3) + or count(4) or count(5) or count(6) or count(7) + or count(8)); + state_next <= STATE_WRITE; + + when STATE_WRITE => + u_fifoad <= IN_FIFO; -- Writing to FX2LP + if ( u_flagb = '1' ) then + fifoOp <= FIFO_WRITE; + case addr is + when "0000000" => --reserved + u_fd <= iR0; + when "0000001" => --1 + u_fd <= iT1_msb; + when "0000010" => --2 + u_fd <= iT1_lsb; + when "0000011" => --3 + u_fd <= iT2_msb; + when "0000100" => --4 + u_fd <= iT2_lsb; + when "0000101" => --5 + u_fd <= iT3_msb; + when "0000110" => --6 + u_fd <= iT3_lsb; + when "0000111" => --7 + u_fd <= isubT1_msb; + when "0001000" => --8 + u_fd <= isubT1_lsb; + when "0001001" => --9 + u_fd <= isubT2_msb; + when "0001010" => --10 + u_fd <= isubT2_lsb; + when "0001011" => --11 + u_fd <= isubT3_msb; + when "0001100" => --12 + u_fd <= isubT3_lsb; + when "0001101" => --13 + u_fd <= iBL1_msb; + when "0001110" => --14 + u_fd <= iBL1_lsb; + when "0001111" => --15 + u_fd <= iBL2_msb; + when "0010000" => --16 + u_fd <= iBL2_lsb; + when "0010001" => --17 + u_fd <= iBL3_msb; + when "0010010" => --18 + u_fd <= iBL3_lsb; + when "0010011" => --19 + u_fd <= iHV1_msb; + when "0010100" => --20 + u_fd <= iHV1_lsb; + when "0010101" => --21 + u_fd <= iHV2_msb; + when "0010110" => --22 + u_fd <= iHV2_lsb; + when "0010111" => --23 + u_fd <= iHV3_msb; + when "0011000" => --24 + u_fd <= iHV3_lsb; + when "0011001" => --25 + u_fd <= sutcngps; + when "0011010" => --26 + u_fd <= irstatus; + when "0011011" => --27 + iReadEnable_A <= '1'; -- Enable read FIFO + u_fd <= iFifoData_A; -- Read FIFO A when addr=1B + --HP03 signals + when "0011101" => --29 + u_fd <= sC1_msb; + when "0011110" => --30 + u_fd <= sC1_lsb; + when "0011111" => --31 + u_fd <= sC2_msb; + when "0100000" => --32 + u_fd <= sC2_lsb; + when "0100001" => --33 + u_fd <= sC3_msb; + when "0100010" => --34 + u_fd <= sC3_lsb; + when "0100011" => --35 + u_fd <= sC4_msb; + when "0100100" => --36 + u_fd <= sC4_lsb; + when "0100101" => --37 + u_fd <= sC5_msb; + when "0100110" => --38 + u_fd <= sC5_lsb; + when "0100111" => --39 + u_fd <= sC6_msb; + when "0101000" => --40 + u_fd <= sC6_lsb; + when "0101001" => --41 + u_fd <= sC7_msb; + when "0101010" => --42 + u_fd <= sC7_lsb; + when "0101011" => --43 + u_fd <= sA; + when "0101100" => --44 + u_fd <= sB; + when "0101101" => --45 + u_fd <= sC; + when "0101110" => --46 + u_fd <= sD; + when "0101111" => --47 + u_fd <= sD1_msb; + when "0110000" => --48 + u_fd <= sD1_lsb; + when "0110001" => --49 + u_fd <= sD2_msb; + when "0110010" => --50 + u_fd <= sD2_lsb; + --GPS signals + when "0110011" => --51 + u_fd <= smonth; + when "0110100" => --52 + u_fd <= sday; + when "0110101" => --53 + u_fd <= syear1; + when "0110110" => --54 + u_fd <= syear2; + when "0110111" => --55 + u_fd <= shours; + when "0111000" => --56 + u_fd <= sminutes; + when "0111001" => --57 + u_fd <= sseconds; + when "0111010" => --58 + u_fd <= sfract_sec1; + when "0111011" => --59 + u_fd <= sfract_sec2; + when "0111100" => --60 + u_fd <= sfract_sec3; + when "0111101" => --61 + u_fd <= sfract_sec4; + when "0111110" => --62 + u_fd <= slatitude1; + when "0111111" => --63 + u_fd <= slatitude2; + when "1000000" => --64 + u_fd <= slatitude3; + when "1000001" => --65 + u_fd <= slatitude4; + when "1000010" => --66 + u_fd <= slongitude1; + when "1000011" => --67 + u_fd <= slongitude2; + when "1000100" => --68 + u_fd <= slongitude3; + when "1000101" => --69 + u_fd <= slongitude4; + when "1000110" => --70 + u_fd <= sellipsoid1; + when "1000111" => --71 + u_fd <= sellipsoid2; + when "1001000" => --72 + u_fd <= sellipsoid3; + when "1001001" => --73 + u_fd <= sellipsoid4; + when "1001010" => --74 + u_fd <= svelocity1; + when "1001011" => --75 + u_fd <= svelocity2; + when "1001100" => --76 + u_fd <= sheading1; + when "1001101" => --77 + u_fd <= sheading2; + when "1001110" => --78 + u_fd <= sgeometry2; + when "1001111" => --79 + u_fd <= sDOP_type; + when "1010000" => --80 + u_fd <= sNVS; + when "1010001" => --81 + u_fd <= sNTS; + when "1010010" => --82 + u_fd <= ssat_ID1; + when "1010011" => --83 + u_fd <= schtm1; + when "1010100" => --84 + u_fd <= sCNo1; + when "1010101" => --85 + u_fd <= schsf1; + when "1010110" => --86 + u_fd <= ssat_ID2; + when "1010111" => --87 + u_fd <= schtm2; + when "1011000" => --88 + u_fd <= sCNo2; + when "1011001" => --89 + u_fd <= schsf2; + when "1011010" => --90 + u_fd <= ssat_ID3; + when "1011011" => --91 + u_fd <= schtm3; + when "1011100" => --92 + u_fd <= sCNo3; + when "1011101" => --93 + u_fd <= schsf3; + when "1011110" => --94 + u_fd <= ssat_ID4; + when "1011111" => --95 + u_fd <= schtm4; + when "1100000" => --96 + u_fd <= sCNo4; + when "1100001" => --97 + u_fd <= schsf4; + when "1100010" => --98 + u_fd <= ssat_ID5; + when "1100011" => --99 + u_fd <= schtm5; + when "1100100" => --100 + u_fd <= sCNo5; + when "1100101" => --101 + u_fd <= schsf5; + when "1100110" => --102 + u_fd <= ssat_ID6; + when "1100111" => --103 + u_fd <= schtm6; + when "1101000" => --104 + u_fd <= sCNo6; + when "1101001" => --105 + u_fd <= schsf6; + when "1101010" => --106 + u_fd <= ssat_ID7; + when "1101011" => --107 + u_fd <= schtm7; + when "1101100" => --108 + u_fd <= sCNo7; + when "1101101" => --109 + u_fd <= schsf7; + when "1101110" => --110 + u_fd <= ssat_ID8; + when "1101111" => --111 + u_fd <= schtm8; + when "1110000" => --112 + u_fd <= sCNo8; + when "1110001" => --113 + u_fd <= schsf8; + when "1110010" => --114 + u_fd <= srsf; + when "1110011" => --115 + u_fd <= iVerID; + when "1110100" => --116 + u_fd <= iRevID; + when others => + u_fd <= "00000000"; + end case; + count_next <= count - 1; + if ( count = 1 ) then + if ( isAligned = '1' ) then + state_next <= STATE_END_WRITE_ALIGNED; -- don't assert u_pktend + else + state_next <= STATE_END_WRITE_NONALIGNED; -- assert u_pktend to commit small packet + end if; + end if; + else + fifoOp <= FIFO_NOP; + end if; + + when STATE_END_WRITE_ALIGNED => + u_fifoad <= IN_FIFO; -- Writing to FX2LP + fifoOp <= FIFO_NOP; + state_next <= STATE_IDLE; + + when STATE_END_WRITE_NONALIGNED => + u_fifoad <= IN_FIFO; -- Writing to FX2LP + fifoOp <= FIFO_NOP; + u_pktend <= '0'; -- Active: FPGA commits the packet. + state_next <= STATE_IDLE; + + when STATE_READ => + u_fifoad <= OUT_FIFO; -- Reading from FX2LP + if ( u_flagc = '1' ) then + -- A data byte will be available on the next clock edge + case addr is + when "0000000" => + iNextR0 <= u_fd; + when "0000001" => + iNext_T1_msb <= u_fd; + when "0000010" => + iNext_T1_lsb <= u_fd; + when "0000011" => + iNext_T2_msb <= u_fd; + when "0000100" => + iNext_T2_lsb <= u_fd; + when "0000101" => + iNext_T3_msb <= u_fd; + when "0000110" => + iNext_T3_lsb <= u_fd; + when "0000111" => + iNext_subT1_msb <= u_fd; + when "0001000" => + iNext_subT1_lsb <= u_fd; + when "0001001" => + iNext_subT2_msb <= u_fd; + when "0001010" => + iNext_subT2_lsb <= u_fd; + when "0001011" => + iNext_subT3_msb <= u_fd; + when "0001100" => + iNext_subT3_lsb <= u_fd; + when "0001101" => + iNext_HV1_msb <= u_fd; + when "0001110" => + iNext_HV1_lsb <= u_fd; + when "0001111" => + iNext_HV2_msb <= u_fd; + when "0010000" => + iNext_HV2_lsb <= u_fd; + when "0010001" => + iNext_HV3_msb <= u_fd; + when "0010010" => + iNext_HV3_lsb <= u_fd; + when "0010011" => --19 + --Do nothing, this is for c code + when "0010100" => --20 + sNextutcngps <= u_fd; + + when others => + + end case; + count_next <= count - 1; + if ( count = 1 ) then + state_next <= STATE_IDLE; + end if; + end if; + end case; + end process; + + -- Breakout fifoOp + u_sloe <= fifoOp(0); + u_slrd <= fifoOp(1); + u_slwr <= fifoOp(2); + +end sync; -- GitLab