From 20c89525d5d111dec160f5bfe462730242ac0d93 Mon Sep 17 00:00:00 2001 From: Pieter Van Trappen <pieter.van.trappen@cern.ch> Date: Wed, 31 Aug 2016 10:47:39 +0200 Subject: [PATCH] new fasec_hwtest IP used (modular FMC); I2C code extended; synthesized with 2x EDA-0NONE --- .../bd/system_design/hdl/system_design.vhd | 73 +- .../sim/system_design_fasec_hwtest_0_0.vhd | 12 +- .../sim/system_design_xlconstant_0_0.vhd | 57 - .../sources_1/new/top_mod.vhd | 373 ------ .../sources_1/new/general_fmc.vhd | 206 +++ .../sources_1/new/top_mod.vhd | 269 ++++ .../libraries/xil_pvtmisc/myPackage.vhd | 2 + .../xilinx.com/xlconstant_v1_1/xlconstant.vhd | 41 - .../system_design/activehdl/README.txt | 2 +- .../system_design/activehdl/compile.do | 11 +- .../system_design/activehdl/file_info.txt | 5 +- .../system_design/activehdl/system_design.sh | 2 +- .../sim_scripts/system_design/ies/README.txt | 2 +- .../system_design/ies/file_info.txt | 5 +- .../sim_scripts/system_design/ies/run.f | 11 +- .../system_design/ies/system_design.sh | 2 +- .../system_design/modelsim/README.txt | 2 +- .../system_design/modelsim/compile.do | 11 +- .../system_design/modelsim/file_info.txt | 5 +- .../system_design/modelsim/system_design.sh | 2 +- .../system_design/questa/README.txt | 2 +- .../system_design/questa/compile.do | 11 +- .../system_design/questa/file_info.txt | 5 +- .../system_design/questa/system_design.sh | 2 +- .../system_design/riviera/README.txt | 2 +- .../system_design/riviera/compile.do | 11 +- .../system_design/riviera/file_info.txt | 5 +- .../system_design/riviera/system_design.sh | 2 +- .../sim_scripts/system_design/vcs/README.txt | 2 +- .../system_design/vcs/file_info.txt | 5 +- .../system_design/vcs/system_design.sh | 16 +- .../sim_scripts/system_design/xsim/README.txt | 2 +- .../system_design/xsim/file_info.txt | 5 +- .../system_design/xsim/system_design.sh | 2 +- .../sim_scripts/system_design/xsim/vhdl.prj | 5 +- .../I2C_tests_FASEC/src/i2c_tests.c | 206 ++- .../I2C_tests_FASEC/src/i2c_tests.c.old | 213 +++ .../ps7_cortexa9_0/lib/libxil.a | Bin 289230 -> 289230 bytes FASEC_prototype.sdk/system_design_wrapper.hdf | Bin 480427 -> 455400 bytes .../system.hdf | Bin 480427 -> 455400 bytes .../system_design_wrapper.bit | Bin 5980033 -> 5980033 bytes .../bd/system_design/hdl/system_design.hwdef | Bin 34827 -> 34947 bytes .../bd/system_design/hdl/system_design.vhd | 4 +- .../hdl/system_design_wrapper.vhd | 2 +- .../hw_handoff/system_design.hwh | 118 +- .../hw_handoff/system_design_bd.tcl | 84 +- .../sim/system_design_auto_pc_0.v | 348 +++++ .../synth/system_design_auto_pc_0.v | 350 +++++ .../system_design_auto_pc_0.xml | 1185 +++++++++++++++-- .../system_design_auto_pc_0_ooc.xdc | 57 + .../system_design_axi_wb_i2c_master_2_0.xci | 42 - .../system_design_axi_wb_i2c_master_2_0.xml | 687 ---------- .../sim/system_design_fasec_hwtest_0_0.vhd | 12 +- .../synth/system_design_fasec_hwtest_0_0.vhd | 12 +- .../system_design_fasec_hwtest_0_0.xci | 8 +- .../system_design_fasec_hwtest_0_0.xml | 66 +- .../sources_1/new/top_mod.vhd | 373 ------ .../sources_1/new/general_fmc.vhd | 206 +++ .../sources_1/new/top_mod.vhd | 269 ++++ .../libraries/xil_pvtmisc/myPackage.vhd | 2 + .../axi_protocol_converter_v2_1_a_axi3_conv.v | 883 ++++++++++++ .../axi_protocol_converter_v2_1_axi3_conv.v | 606 +++++++++ ...ol_converter_v2_1_axi_protocol_converter.v | 840 ++++++++++++ ...axi_protocol_converter_v2_1_axilite_conv.v | 233 ++++ .../verilog/axi_protocol_converter_v2_1_b2s.v | 557 ++++++++ ...i_protocol_converter_v2_1_b2s_ar_channel.v | 108 ++ ...i_protocol_converter_v2_1_b2s_aw_channel.v | 109 ++ ...xi_protocol_converter_v2_1_b2s_b_channel.v | 187 +++ ...otocol_converter_v2_1_b2s_cmd_translator.v | 147 ++ ...axi_protocol_converter_v2_1_b2s_incr_cmd.v | 131 ++ ...xi_protocol_converter_v2_1_b2s_r_channel.v | 174 +++ ...i_protocol_converter_v2_1_b2s_rd_cmd_fsm.v | 122 ++ ..._protocol_converter_v2_1_b2s_simple_fifo.v | 83 ++ ...i_protocol_converter_v2_1_b2s_wr_cmd_fsm.v | 109 ++ ...axi_protocol_converter_v2_1_b2s_wrap_cmd.v | 188 +++ .../axi_protocol_converter_v2_1_b_downsizer.v | 305 +++++ ...axi_protocol_converter_v2_1_decerr_slave.v | 287 ++++ .../axi_protocol_converter_v2_1_r_axi3_conv.v | 213 +++ .../axi_protocol_converter_v2_1_w_axi3_conv.v | 266 ++++ .../bd/system_design/system_design.bd | 2 +- .../bd/system_design/system_design.bxml | 29 +- FASEC_prototype.xpr | 42 +- ip_upgrade.log | 21 + 83 files changed, 9077 insertions(+), 1979 deletions(-) delete mode 100644 FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd delete mode 100755 FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd create mode 100755 FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd create mode 100755 FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd delete mode 100755 FASEC_prototype.ip_user_files/bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd create mode 100644 FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c.old create mode 100644 FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/sim/system_design_auto_pc_0.v create mode 100644 FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/synth/system_design_auto_pc_0.v create mode 100644 FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0_ooc.xdc delete mode 100644 FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xci delete mode 100644 FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xml delete mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v create mode 100755 FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v diff --git a/FASEC_prototype.ip_user_files/bd/system_design/hdl/system_design.vhd b/FASEC_prototype.ip_user_files/bd/system_design/hdl/system_design.vhd index 5e18affe..927f47bb 100644 --- a/FASEC_prototype.ip_user_files/bd/system_design/hdl/system_design.vhd +++ b/FASEC_prototype.ip_user_files/bd/system_design/hdl/system_design.vhd @@ -1,7 +1,7 @@ --Copyright 1986-2016 Xilinx, Inc. All Rights Reserved. ---------------------------------------------------------------------------------- --Tool Version: Vivado v.2016.2 (lin64) Build 1577090 Thu Jun 2 16:32:35 MDT 2016 ---Date : Tue Aug 30 11:30:58 2016 +--Date : Wed Aug 31 09:59:55 2016 --Host : lapte24154 running 64-bit openSUSE Leap 42.1 (x86_64) --Command : generate_target system_design.bd --Design : system_design @@ -1410,10 +1410,20 @@ entity system_design is FIXED_IO_ps_clk : inout STD_LOGIC; FIXED_IO_ps_porb : inout STD_LOGIC; FIXED_IO_ps_srstb : inout STD_LOGIC; + FMC1_CLK0C2M_N_o : out STD_LOGIC; + FMC1_CLK0C2M_P_o : out STD_LOGIC; + FMC1_CLK0M2C_N_i : in STD_LOGIC; + FMC1_CLK0M2C_P_i : in STD_LOGIC; FMC1_LA_N_b : inout STD_LOGIC_VECTOR ( 33 downto 0 ); FMC1_LA_P_b : inout STD_LOGIC_VECTOR ( 33 downto 0 ); + FMC1_PRSNTM2C_n_i : in STD_LOGIC; + FMC2_CLK0C2M_N_o : out STD_LOGIC; + FMC2_CLK0C2M_P_o : out STD_LOGIC; + FMC2_CLK0M2C_N_i : in STD_LOGIC; + FMC2_CLK0M2C_P_i : in STD_LOGIC; FMC2_LA_N_b : inout STD_LOGIC_VECTOR ( 33 downto 0 ); FMC2_LA_P_b : inout STD_LOGIC_VECTOR ( 33 downto 0 ); + FMC2_PRSNTM2C_n_i : in STD_LOGIC; eeprom_scl : inout STD_LOGIC; eeprom_sda : inout STD_LOGIC; fmcx_scl : inout STD_LOGIC; @@ -1421,10 +1431,11 @@ entity system_design is led_col_pl_o : out STD_LOGIC_VECTOR ( 3 downto 0 ); led_line_en_pl_o : out STD_LOGIC; led_line_pl_o : out STD_LOGIC; + osc100_clk_i : in STD_LOGIC; pb_gp_i : in STD_LOGIC ); attribute CORE_GENERATION_INFO : string; - attribute CORE_GENERATION_INFO of system_design : entity is "system_design,IP_Integrator,{x_ipVendor=xilinx.com,x_ipLibrary=BlockDiagram,x_ipName=system_design,x_ipVersion=1.00.a,x_ipLanguage=VHDL,numBlks=13,numReposBlks=8,numNonXlnxBlks=3,numHierBlks=5,maxHierDepth=0,numSysgenBlks=0,numHlsBlks=0,numHdlrefBlks=0,numPkgbdBlks=0,bdsource=USER,da_axi4_cnt=6,da_ps7_cnt=1,synth_mode=Global}"; + attribute CORE_GENERATION_INFO of system_design : entity is "system_design,IP_Integrator,{x_ipVendor=xilinx.com,x_ipLibrary=BlockDiagram,x_ipName=system_design,x_ipVersion=1.00.a,x_ipLanguage=VHDL,numBlks=12,numReposBlks=7,numNonXlnxBlks=3,numHierBlks=5,maxHierDepth=0,numSysgenBlks=0,numHlsBlks=0,numHdlrefBlks=0,numPkgbdBlks=0,bdsource=USER,da_axi4_cnt=7,da_ps7_cnt=1,synth_mode=Global}"; attribute HW_HANDOFF : string; attribute HW_HANDOFF of system_design : entity is "system_design.hwdef"; end system_design; @@ -1570,11 +1581,6 @@ architecture STRUCTURE of system_design is s00_axi_aresetn : in STD_LOGIC ); end component system_design_axi_wb_i2c_master_1_0; - component system_design_xlconstant_0_0 is - port ( - dout : out STD_LOGIC_VECTOR ( 0 to 0 ) - ); - end component system_design_xlconstant_0_0; component system_design_fasec_hwtest_0_0 is port ( ps_clk_i : in STD_LOGIC; @@ -1620,6 +1626,12 @@ architecture STRUCTURE of system_design is s00_axi_rready : in STD_LOGIC ); end component system_design_fasec_hwtest_0_0; + signal FMC1_CLK0M2C_N_i_1 : STD_LOGIC; + signal FMC1_CLK0M2C_P_i_1 : STD_LOGIC; + signal FMC1_PRSNTM2C_n_i_1 : STD_LOGIC; + signal FMC2_CLK0M2C_N_i_1 : STD_LOGIC; + signal FMC2_CLK0M2C_P_i_1 : STD_LOGIC; + signal FMC2_PRSNTM2C_n_i_1 : STD_LOGIC; signal Net : STD_LOGIC; signal Net1 : STD_LOGIC; signal Net2 : STD_LOGIC; @@ -1628,9 +1640,14 @@ architecture STRUCTURE of system_design is signal Net5 : STD_LOGIC_VECTOR ( 33 downto 0 ); signal Net6 : STD_LOGIC_VECTOR ( 33 downto 0 ); signal Net7 : STD_LOGIC_VECTOR ( 33 downto 0 ); + signal fasec_hwtest_0_FMC1_CLK0C2M_N_o : STD_LOGIC; + signal fasec_hwtest_0_FMC1_CLK0C2M_P_o : STD_LOGIC; + signal fasec_hwtest_0_FMC2_CLK0C2M_N_o : STD_LOGIC; + signal fasec_hwtest_0_FMC2_CLK0C2M_P_o : STD_LOGIC; signal fasec_hwtest_0_led_col_pl_o : STD_LOGIC_VECTOR ( 3 downto 0 ); signal fasec_hwtest_0_led_line_en_pl_o : STD_LOGIC; signal fasec_hwtest_0_led_line_pl_o : STD_LOGIC; + signal osc100_clk_i_1 : STD_LOGIC; signal pb_gp_i_1 : STD_LOGIC; signal processing_system7_0_DDR_ADDR : STD_LOGIC_VECTOR ( 14 downto 0 ); signal processing_system7_0_DDR_BA : STD_LOGIC_VECTOR ( 2 downto 0 ); @@ -1753,13 +1770,8 @@ architecture STRUCTURE of system_design is signal processing_system7_0_axi_periph_M02_AXI_WVALID : STD_LOGIC; signal rst_processing_system7_0_100M_interconnect_aresetn : STD_LOGIC_VECTOR ( 0 to 0 ); signal rst_processing_system7_0_100M_peripheral_aresetn : STD_LOGIC_VECTOR ( 0 to 0 ); - signal xlconstant_0_dout : STD_LOGIC_VECTOR ( 0 to 0 ); signal NLW_axi_wb_i2c_master_0_axi_int_o_UNCONNECTED : STD_LOGIC; signal NLW_axi_wb_i2c_master_1_axi_int_o_UNCONNECTED : STD_LOGIC; - signal NLW_fasec_hwtest_0_FMC1_CLK0C2M_N_o_UNCONNECTED : STD_LOGIC; - signal NLW_fasec_hwtest_0_FMC1_CLK0C2M_P_o_UNCONNECTED : STD_LOGIC; - signal NLW_fasec_hwtest_0_FMC2_CLK0C2M_N_o_UNCONNECTED : STD_LOGIC; - signal NLW_fasec_hwtest_0_FMC2_CLK0C2M_P_o_UNCONNECTED : STD_LOGIC; signal NLW_processing_system7_0_TTC0_WAVE0_OUT_UNCONNECTED : STD_LOGIC; signal NLW_processing_system7_0_TTC0_WAVE1_OUT_UNCONNECTED : STD_LOGIC; signal NLW_processing_system7_0_TTC0_WAVE2_OUT_UNCONNECTED : STD_LOGIC; @@ -1767,9 +1779,20 @@ architecture STRUCTURE of system_design is signal NLW_rst_processing_system7_0_100M_bus_struct_reset_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); signal NLW_rst_processing_system7_0_100M_peripheral_reset_UNCONNECTED : STD_LOGIC_VECTOR ( 0 to 0 ); begin + FMC1_CLK0C2M_N_o <= fasec_hwtest_0_FMC1_CLK0C2M_N_o; + FMC1_CLK0C2M_P_o <= fasec_hwtest_0_FMC1_CLK0C2M_P_o; + FMC1_CLK0M2C_N_i_1 <= FMC1_CLK0M2C_N_i; + FMC1_CLK0M2C_P_i_1 <= FMC1_CLK0M2C_P_i; + FMC1_PRSNTM2C_n_i_1 <= FMC1_PRSNTM2C_n_i; + FMC2_CLK0C2M_N_o <= fasec_hwtest_0_FMC2_CLK0C2M_N_o; + FMC2_CLK0C2M_P_o <= fasec_hwtest_0_FMC2_CLK0C2M_P_o; + FMC2_CLK0M2C_N_i_1 <= FMC2_CLK0M2C_N_i; + FMC2_CLK0M2C_P_i_1 <= FMC2_CLK0M2C_P_i; + FMC2_PRSNTM2C_n_i_1 <= FMC2_PRSNTM2C_n_i; led_col_pl_o(3 downto 0) <= fasec_hwtest_0_led_col_pl_o(3 downto 0); led_line_en_pl_o <= fasec_hwtest_0_led_line_en_pl_o; led_line_pl_o <= fasec_hwtest_0_led_line_pl_o; + osc100_clk_i_1 <= osc100_clk_i; pb_gp_i_1 <= pb_gp_i; axi_wb_i2c_master_0: component system_design_axi_wb_i2c_master_0_0 port map ( @@ -1827,24 +1850,24 @@ axi_wb_i2c_master_1: component system_design_axi_wb_i2c_master_1_0 ); fasec_hwtest_0: component system_design_fasec_hwtest_0_0 port map ( - FMC1_CLK0C2M_N_o => NLW_fasec_hwtest_0_FMC1_CLK0C2M_N_o_UNCONNECTED, - FMC1_CLK0C2M_P_o => NLW_fasec_hwtest_0_FMC1_CLK0C2M_P_o_UNCONNECTED, - FMC1_CLK0M2C_N_i => '0', - FMC1_CLK0M2C_P_i => '0', + FMC1_CLK0C2M_N_o => fasec_hwtest_0_FMC1_CLK0C2M_N_o, + FMC1_CLK0C2M_P_o => fasec_hwtest_0_FMC1_CLK0C2M_P_o, + FMC1_CLK0M2C_N_i => FMC1_CLK0M2C_N_i_1, + FMC1_CLK0M2C_P_i => FMC1_CLK0M2C_P_i_1, FMC1_LA_N_b(33 downto 0) => FMC1_LA_N_b(33 downto 0), FMC1_LA_P_b(33 downto 0) => FMC1_LA_P_b(33 downto 0), - FMC1_PRSNTM2C_n_i => '0', - FMC2_CLK0C2M_N_o => NLW_fasec_hwtest_0_FMC2_CLK0C2M_N_o_UNCONNECTED, - FMC2_CLK0C2M_P_o => NLW_fasec_hwtest_0_FMC2_CLK0C2M_P_o_UNCONNECTED, - FMC2_CLK0M2C_N_i => '0', - FMC2_CLK0M2C_P_i => '0', + FMC1_PRSNTM2C_n_i => FMC1_PRSNTM2C_n_i_1, + FMC2_CLK0C2M_N_o => fasec_hwtest_0_FMC2_CLK0C2M_N_o, + FMC2_CLK0C2M_P_o => fasec_hwtest_0_FMC2_CLK0C2M_P_o, + FMC2_CLK0M2C_N_i => FMC2_CLK0M2C_N_i_1, + FMC2_CLK0M2C_P_i => FMC2_CLK0M2C_P_i_1, FMC2_LA_N_b(33 downto 0) => FMC2_LA_N_b(33 downto 0), FMC2_LA_P_b(33 downto 0) => FMC2_LA_P_b(33 downto 0), - FMC2_PRSNTM2C_n_i => '0', + FMC2_PRSNTM2C_n_i => FMC2_PRSNTM2C_n_i_1, led_col_pl_o(3 downto 0) => fasec_hwtest_0_led_col_pl_o(3 downto 0), led_line_en_pl_o => fasec_hwtest_0_led_line_en_pl_o, led_line_pl_o => fasec_hwtest_0_led_line_pl_o, - osc100_clk_i => xlconstant_0_dout(0), + osc100_clk_i => osc100_clk_i_1, pb_gp_n_i => pb_gp_i_1, ps_clk_i => processing_system7_0_FCLK_CLK1, s00_axi_aclk => processing_system7_0_FCLK_CLK0, @@ -2059,8 +2082,4 @@ rst_processing_system7_0_100M: component system_design_rst_processing_system7_0_ peripheral_reset(0) => NLW_rst_processing_system7_0_100M_peripheral_reset_UNCONNECTED(0), slowest_sync_clk => processing_system7_0_FCLK_CLK0 ); -xlconstant_0: component system_design_xlconstant_0_0 - port map ( - dout(0) => xlconstant_0_dout(0) - ); end STRUCTURE; diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd index 37e69114..238a5f3f 100644 --- a/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd +++ b/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd @@ -46,8 +46,8 @@ -- -- DO NOT MODIFY THIS FILE. --- IP VLNV: user.org:user:fasec_hwtest:2.1 --- IP Revision: 4 +-- IP VLNV: user.org:user:fasec_hwtest:2.2.1 +-- IP Revision: 6 LIBRARY ieee; USE ieee.std_logic_1164.ALL; @@ -105,7 +105,9 @@ ARCHITECTURE system_design_fasec_hwtest_0_0_arch OF system_design_fasec_hwtest_0 COMPONENT fasec_hwtest IS GENERIC ( g_S00_AXI_DATA_WIDTH : INTEGER; - g_S00_AXI_ADDR_WIDTH : INTEGER + g_S00_AXI_ADDR_WIDTH : INTEGER; + g_FMC1 : STRING; + g_FMC2 : STRING ); PORT ( ps_clk_i : IN STD_LOGIC; @@ -177,7 +179,9 @@ BEGIN U0 : fasec_hwtest GENERIC MAP ( g_S00_AXI_DATA_WIDTH => 32, - g_S00_AXI_ADDR_WIDTH => 32 + g_S00_AXI_ADDR_WIDTH => 32, + g_FMC1 => "EDA-0NONE", + g_FMC2 => "EDA-0NONE" ) PORT MAP ( ps_clk_i => ps_clk_i, diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd deleted file mode 100644 index b6e07b75..00000000 --- a/FASEC_prototype.ip_user_files/bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd +++ /dev/null @@ -1,57 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 08/14/2014 12:18:30 PM --- Design Name: --- Module Name: tb_vhdl - Behavioral --- Project Name: --- Target Devices: --- Tool Versions: --- Description: --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- ----------------------------------------------------------------------------------- - - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; -USE ieee.numeric_std.ALL; - -LIBRARY work; -USE work.xlconstant; - -ENTITY system_design_xlconstant_0_0 IS - PORT ( - dout : OUT STD_LOGIC_VECTOR(1-1 DOWNTO 0) - ); -END system_design_xlconstant_0_0; - -ARCHITECTURE system_design_xlconstant_0_0_arch OF system_design_xlconstant_0_0 IS - ATTRIBUTE DowngradeIPIdentifiedWarnings : string; - ATTRIBUTE DowngradeIPIdentifiedWarnings OF system_design_xlconstant_0_0_arch: ARCHITECTURE IS "yes"; - - COMPONENT xlconstant IS - GENERIC ( - CONST_VAL : STD_LOGIC_VECTOR(1-1 DOWNTO 0); - CONST_WIDTH : INTEGER - ); - PORT ( - dout : OUT STD_LOGIC_VECTOR(1-1 DOWNTO 0) - ); - END COMPONENT xlconstant; -BEGIN - U0 : xlconstant - GENERIC MAP ( - CONST_VAL => "0", - CONST_WIDTH => 1 - ) - PORT MAP ( - dout => dout - ); -END system_design_xlconstant_0_0_arch; diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd deleted file mode 100755 index 7bc14c03..00000000 --- a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd +++ /dev/null @@ -1,373 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 07/29/2016 07:05:52 PM --- Design Name: --- Module Name: top_mod - rtl --- Project Name: --- Target Devices: --- Tool Versions: --- Description: --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- ----------------------------------------------------------------------------------- - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.NUMERIC_STD.all; - -library xil_pvtmisc; -use xil_pvtmisc.myPackage.all; - -entity fasec_hwtest is - generic( - -- Parameters of Axi Slave Bus Interface S00_AXI - g_S00_AXI_DATA_WIDTH : integer := 32; - g_S00_AXI_ADDR_WIDTH : integer := 32); - port ( - ps_clk_i : in std_logic; -- clock from Zynq PS (100 MHz) - osc100_clk_i : in std_logic; -- clock from oscillator (100 MHz) - -- FMC 1-2 user IO - FMC2_LA_P_b : inout std_logic_vector(33 downto 0); - FMC2_LA_N_b : inout std_logic_vector(33 downto 0); - FMC1_LA_P_b : inout std_logic_vector(33 downto 0); - FMC1_LA_N_b : inout std_logic_vector(33 downto 0); - -- FMC misc IO - FMC2_PRSNTM2C_n_i : in std_logic; - FMC2_CLK0M2C_P_i : in std_logic; - FMC2_CLK0M2C_N_i : in std_logic; - FMC2_CLK0C2M_P_o : out std_logic; - FMC2_CLK0C2M_N_o : out std_logic; - FMC1_PRSNTM2C_n_i : in std_logic; - FMC1_CLK0M2C_P_i : in std_logic; - FMC1_CLK0M2C_N_i : in std_logic; - FMC1_CLK0C2M_P_o : out std_logic; - FMC1_CLK0C2M_N_o : Out std_logic; - -- FASEC signals - pb_gp_n_i : in std_logic; - led_col_pl_o : out std_logic_vector (3 downto 0); -- anode green / cathode red - led_line_en_pl_o : out std_logic; -- output 1B Hi-Z when asserted - led_line_pl_o : out std_logic; -- output 1B: cathode green / anode red - -- AXI4-LITE slave interface - s00_axi_aclk : in std_logic; - s00_axi_aresetn : in std_logic; - s00_axi_awaddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); - s00_axi_awprot : in std_logic_vector(2 downto 0); - s00_axi_awvalid : in std_logic; - s00_axi_awready : out std_logic; - s00_axi_wdata : in std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - s00_axi_wstrb : in std_logic_vector((g_S00_AXI_DATA_WIDTH/8)-1 downto 0); - s00_axi_wvalid : in std_logic; - s00_axi_wready : out std_logic; - s00_axi_bresp : out std_logic_vector(1 downto 0); - s00_axi_bvalid : out std_logic; - s00_axi_bready : in std_logic; - s00_axi_araddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); - s00_axi_arprot : in std_logic_vector(2 downto 0); - s00_axi_arvalid : in std_logic; - s00_axi_arready : out std_logic; - s00_axi_rdata : out std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - s00_axi_rresp : out std_logic_vector(1 downto 0); - s00_axi_rvalid : out std_logic; - s00_axi_rready : in std_logic); -end fasec_hwtest; - -architecture rtl of fasec_hwtest is - constant c_FLASH : positive := 40000000; -- 400 ms @ 100 MHz - constant c_SLAVE_MAXREAD : positive := 8; - constant c_SLAVE_MAXWRITE : positive := 8; - constant c_SLAVE_MAXMEM : positive := c_SLAVE_MAXREAD + c_SLAVE_MAXWRITE; - -- AXI slave signals - signal s_sAxi_dataR : t_axiMemory(0 to c_SLAVE_MAXREAD-1) := (others => (others => '0')); - signal s_sAxi_dataW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); -- also put to zero in the slave AXI module (cuz buffer) - signal s_sAxi_dataResetW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); - -- FMC1-2 signals - signal s_tick : std_logic; -begin - --============================================================================= - -- FMC1 user lines - clock in for AXI register read by Zynq PS - --============================================================================= - p_reg_fmc1 : process(s00_axi_aclk) - variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - begin - if rising_edge(s00_axi_aclk) then - -- for testing purposes, read-in FMC1 inputs - -- 68 lines, hence doesn't fit into 2x32-bit AXI registers - s_sAxi_dataR(0) <= unsigned(v_fmc_reg0(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(1) <= unsigned(v_fmc_reg1(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(2) <= unsigned(v_fmc_reg2(g_S00_AXI_DATA_WIDTH-1 downto 0)); - -- single user lines, auto-gen from .ods file - -- ** word 1 - v_fmc_reg0(0) := FMC1_LA_N_b(17); - v_fmc_reg0(1) := FMC1_LA_N_b(19); - v_fmc_reg0(2) := FMC1_LA_P_b(19); - v_fmc_reg0(3) := FMC1_LA_P_b(20); - v_fmc_reg0(4) := FMC1_LA_N_b(20); - v_fmc_reg0(5) := FMC1_LA_N_b(14); - v_fmc_reg0(6) := FMC1_LA_P_b(14); - v_fmc_reg0(7) := FMC1_LA_P_b(17); - v_fmc_reg0(8) := FMC1_LA_N_b(13); - v_fmc_reg0(9) := FMC1_LA_P_b(13); - v_fmc_reg0(10) := FMC1_LA_P_b(15); - v_fmc_reg0(11) := FMC1_LA_N_b(15); - v_fmc_reg0(12) := FMC1_LA_P_b(16); - v_fmc_reg0(13) := FMC1_LA_N_b(32); - v_fmc_reg0(14) := FMC1_LA_P_b(33); - v_fmc_reg0(15) := FMC1_LA_N_b(33); - v_fmc_reg0(16) := FMC1_LA_P_b(7); - v_fmc_reg0(17) := FMC1_LA_P_b(5); - v_fmc_reg0(18) := FMC1_LA_N_b(7); - v_fmc_reg0(19) := FMC1_LA_N_b(8); - v_fmc_reg0(20) := FMC1_LA_P_b(8); - v_fmc_reg0(21) := FMC1_LA_N_b(6); - v_fmc_reg0(22) := FMC1_LA_P_b(12); - v_fmc_reg0(23) := FMC1_LA_N_b(9); - v_fmc_reg0(24) := FMC1_LA_N_b(16); - v_fmc_reg0(25) := FMC1_LA_N_b(12); - v_fmc_reg0(26) := FMC1_LA_P_b(11); - v_fmc_reg0(27) := FMC1_LA_N_b(10); - v_fmc_reg0(28) := FMC1_LA_N_b(11); - v_fmc_reg0(29) := FMC1_LA_P_b(10); - v_fmc_reg0(30) := FMC1_LA_P_b(9); - v_fmc_reg0(31) := FMC1_LA_N_b(5); - -- ** word 2 - v_fmc_reg1(0) := FMC1_LA_P_b(27); - v_fmc_reg1(1) := FMC1_LA_N_b(23); - v_fmc_reg1(2) := FMC1_LA_P_b(22); - v_fmc_reg1(3) := FMC1_LA_N_b(22); - v_fmc_reg1(4) := FMC1_LA_N_b(18); - v_fmc_reg1(5) := FMC1_LA_P_b(18); - v_fmc_reg1(6) := FMC1_LA_P_b(23); - v_fmc_reg1(7) := FMC1_LA_P_b(21); - v_fmc_reg1(8) := FMC1_LA_P_b(24); - v_fmc_reg1(9) := FMC1_LA_N_b(25); - -- v_fmc_reg1(10) := TCK (High-Z) - v_fmc_reg1(11) := FMC1_LA_P_b(25); - v_fmc_reg1(12) := FMC1_LA_N_b(27); - v_fmc_reg1(13) := FMC1_LA_P_b(26); - v_fmc_reg1(14) := FMC1_LA_N_b(21); - v_fmc_reg1(15) := FMC1_LA_N_b(26); - v_fmc_reg1(16) := FMC1_LA_P_b(32); - v_fmc_reg1(17) := FMC1_LA_N_b(30); - -- v_fmc_reg1(19) : GA1 (set at High-Z!) - v_fmc_reg1(19) := FMC1_LA_N_b(31); - v_fmc_reg1(20) := FMC1_LA_P_b(30); - -- v_fmc_reg1(21) : GA0 (set at High-Z!) - -- v_fmc_reg1(22) := TRST (pull-up) - -- v_fmc_reg1(23) := TMS (High-Z) - v_fmc_reg1(24) := FMC1_LA_P_b(29); - v_fmc_reg1(25) := FMC1_LA_N_b(29); - -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') - v_fmc_reg1(27) := FMC1_LA_P_b(31); - v_fmc_reg1(28) := FMC1_LA_N_b(28); - v_fmc_reg1(29) := FMC1_LA_P_b(28); - -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') - v_fmc_reg1(31) := FMC1_LA_N_b(24); - -- ** word 3 (if not stated -> don't care X) - v_fmc_reg2(0) := FMC1_CLK0M2C_N_i; - v_fmc_reg2(1) := FMC1_CLK0M2C_P_i; - v_fmc_reg2(2) := FMC1_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! - -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) - v_fmc_reg2(18) := FMC1_LA_P_b(1); - v_fmc_reg2(19) := FMC1_LA_P_b(6); - v_fmc_reg2(20) := FMC1_LA_N_b(1); - v_fmc_reg2(21) := FMC1_LA_N_b(3); - v_fmc_reg2(22) := FMC1_LA_P_b(4); - v_fmc_reg2(23) := FMC1_LA_P_b(3); - -- v_fmc_reg2(24) : VREF_M2C (set at 1!) - v_fmc_reg2(27) := FMC1_LA_P_b(0); - v_fmc_reg2(29) := FMC1_LA_N_b(0); - v_fmc_reg2(31) := FMC1_LA_N_b(4); - end if; - end process p_reg_fmc1; - - --============================================================================= - -- FMC2 user lines - clock in for AXI register read by Zynq PS - --============================================================================= - p_reg_fmc2 : process(s00_axi_aclk) - variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - begin - if rising_edge(s00_axi_aclk) then - -- for testing purposes, read-in FMC1 inputs - -- 68 lines, hence doesn't fit into 2x32-bit AXI registers - s_sAxi_dataR(4) <= unsigned(v_fmc_reg0(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(5) <= unsigned(v_fmc_reg1(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(6) <= unsigned(v_fmc_reg2(g_S00_AXI_DATA_WIDTH-1 downto 0)); - -- single user lines, auto-gen from .ods file - -- ** word 1 - v_fmc_reg0(0) := FMC2_LA_N_b(17); - v_fmc_reg0(1) := FMC2_LA_N_b(19); - v_fmc_reg0(2) := FMC2_LA_P_b(19); - v_fmc_reg0(3) := FMC2_LA_P_b(20); - v_fmc_reg0(4) := FMC2_LA_N_b(20); - v_fmc_reg0(5) := FMC2_LA_N_b(14); - v_fmc_reg0(6) := FMC2_LA_P_b(14); - v_fmc_reg0(7) := FMC2_LA_P_b(17); - v_fmc_reg0(8) := FMC2_LA_N_b(13); - v_fmc_reg0(9) := FMC2_LA_P_b(13); - v_fmc_reg0(10) := FMC2_LA_P_b(15); - v_fmc_reg0(11) := FMC2_LA_N_b(15); - v_fmc_reg0(12) := FMC2_LA_P_b(16); - v_fmc_reg0(13) := FMC2_LA_N_b(32); - v_fmc_reg0(14) := FMC2_LA_P_b(33); - v_fmc_reg0(15) := FMC2_LA_N_b(33); - v_fmc_reg0(16) := FMC2_LA_P_b(7); - v_fmc_reg0(17) := FMC2_LA_P_b(5); - v_fmc_reg0(18) := FMC2_LA_N_b(7); - v_fmc_reg0(19) := FMC2_LA_N_b(8); - v_fmc_reg0(20) := FMC2_LA_P_b(8); - v_fmc_reg0(21) := FMC2_LA_N_b(6); - v_fmc_reg0(22) := FMC2_LA_P_b(12); - v_fmc_reg0(23) := FMC2_LA_N_b(9); - v_fmc_reg0(24) := FMC2_LA_N_b(16); - v_fmc_reg0(25) := FMC2_LA_N_b(12); - v_fmc_reg0(26) := FMC2_LA_P_b(11); - v_fmc_reg0(27) := FMC2_LA_N_b(10); - v_fmc_reg0(28) := FMC2_LA_N_b(11); - v_fmc_reg0(29) := FMC2_LA_P_b(10); - v_fmc_reg0(30) := FMC2_LA_P_b(9); - v_fmc_reg0(31) := FMC2_LA_N_b(5); - -- ** word 2 - v_fmc_reg1(0) := FMC2_LA_P_b(27); - v_fmc_reg1(1) := FMC2_LA_N_b(23); - v_fmc_reg1(2) := FMC2_LA_P_b(22); - v_fmc_reg1(3) := FMC2_LA_N_b(22); - v_fmc_reg1(4) := FMC2_LA_N_b(18); - v_fmc_reg1(5) := FMC2_LA_P_b(18); - v_fmc_reg1(6) := FMC2_LA_P_b(23); - v_fmc_reg1(7) := FMC2_LA_P_b(21); - v_fmc_reg1(8) := FMC2_LA_P_b(24); - v_fmc_reg1(9) := FMC2_LA_N_b(25); - -- v_fmc_reg1(10) := TCK (High-Z) - v_fmc_reg1(11) := FMC2_LA_P_b(25); - v_fmc_reg1(12) := FMC2_LA_N_b(27); - v_fmc_reg1(13) := FMC2_LA_P_b(26); - v_fmc_reg1(14) := FMC2_LA_N_b(21); - v_fmc_reg1(15) := FMC2_LA_N_b(26); - v_fmc_reg1(16) := FMC2_LA_P_b(32); - v_fmc_reg1(17) := FMC2_LA_N_b(30); - -- v_fmc_reg1(19) : GA1 (set at High-Z!) - v_fmc_reg1(19) := FMC2_LA_N_b(31); - v_fmc_reg1(20) := FMC2_LA_P_b(30); - -- v_fmc_reg1(21) : GA0 (set at High-Z!) - -- v_fmc_reg1(22) := TRST (pull-up) - -- v_fmc_reg1(23) := TMS (High-Z) - v_fmc_reg1(24) := FMC2_LA_P_b(29); - v_fmc_reg1(25) := FMC2_LA_N_b(29); - -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') - v_fmc_reg1(27) := FMC2_LA_P_b(31); - v_fmc_reg1(28) := FMC2_LA_N_b(28); - v_fmc_reg1(29) := FMC2_LA_P_b(28); - -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') - v_fmc_reg1(31) := FMC2_LA_N_b(24); - -- ** word 3 (if not stated -> don't care X) - v_fmc_reg2(0) := FMC1_CLK0M2C_N_i; - v_fmc_reg2(1) := FMC1_CLK0M2C_P_i; - v_fmc_reg2(2) := FMC1_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! - -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) - v_fmc_reg2(18) := FMC2_LA_P_b(1); - v_fmc_reg2(19) := FMC2_LA_P_b(6); - v_fmc_reg2(20) := FMC2_LA_N_b(1); - v_fmc_reg2(21) := FMC2_LA_N_b(3); - v_fmc_reg2(22) := FMC2_LA_P_b(4); - v_fmc_reg2(23) := FMC2_LA_P_b(3); - -- v_fmc_reg2(24) : VREF_M2C (set at 1!) - v_fmc_reg2(27) := FMC2_LA_P_b(0); - v_fmc_reg2(29) := FMC2_LA_N_b(0); - v_fmc_reg2(31) := FMC2_LA_N_b(4); - end if; - end process p_reg_fmc2; - - --============================================================================= - -- tick generation, depending on constant c_FLASH - --============================================================================= - p_tick : process(ps_clk_i) - variable v_cntr : unsigned(31 downto 0) := (others => '0'); - begin - if rising_edge(ps_clk_i) then - if (to_integer(v_cntr) < c_FLASH) then - v_cntr := v_cntr + 1; - else - v_cntr := to_unsigned(0, v_cntr'length); - s_tick <= not s_tick; - end if; - end if; - end process p_tick; - - --============================================================================= - -- FASEC LEDs output - --============================================================================= - p_leds : process(ps_clk_i) - variable v_pbreg : std_logic_vector(2 downto 0) := (others => '0'); - variable v_shift : std_logic_vector(7 downto 0) := "00000001"; - begin - if rising_edge(ps_clk_i) then - -- clock in pushbutton input - v_pbreg(2 downto 0) := v_pbreg(1 downto 0) & pb_gp_n_i; - -- shift-register - if s_tick = '1' then - v_shift(7 downto 0) := v_shift(6 downto 0) & v_shift(7); - end if; - -- LEDs output selection - if v_pbreg(2) = '1' then - -- button not pressed, light one by one (4x green, 4x red) - if unsigned(v_shift(3 downto 0)) /= 0 then - led_line_en_pl_o <= '0'; - led_line_pl_o <= '0'; - led_col_pl_o(3 downto 0) <= v_shift(3 downto 0); - elsif unsigned(v_shift(7 downto 4)) /= 0 then - led_line_en_pl_o <= '1'; - led_line_pl_o <= '0'; - led_col_pl_o(3 downto 0) <= not(v_shift(7 downto 4)); - end if; - else - -- button pressed, all LEDs red - led_line_en_pl_o <= '1'; - led_line_pl_o <= '1'; - led_col_pl_o(3 downto 0) <= "0000"; - end if; - end if; - end process; - - --============================================================================= - -- AXI4-Lite slave for control from PS - --============================================================================= - axi4lite_slave : entity xil_pvtmisc.axi4lite_slave - generic map ( - C_S_AXI_DATA_WIDTH => g_S00_AXI_DATA_WIDTH, - C_S_AXI_ADDR_WIDTH => g_S00_AXI_ADDR_WIDTH, - g_MAXREAD => c_SLAVE_MAXREAD, - g_MAXWRITE => c_SLAVE_MAXWRITE) - port map ( - s_axi_dataR => s_sAxi_dataR, - s_axi_dataW => s_sAxi_dataW, - s_axi_dataResetW => s_sAxi_dataResetW, - S_AXI_ACLK => s00_axi_aclk, - S_AXI_ARESETN => s00_axi_aresetn, - S_AXI_AWADDR => s00_axi_awaddr, - S_AXI_AWPROT => s00_axi_awprot, - S_AXI_AWVALID => s00_axi_awvalid, - S_AXI_AWREADY => s00_axi_awready, - S_AXI_WDATA => s00_axi_wdata, - S_AXI_WSTRB => s00_axi_wstrb, - S_AXI_WVALID => s00_axi_wvalid, - S_AXI_WREADY => s00_axi_wready, - S_AXI_BRESP => s00_axi_bresp, - S_AXI_BVALID => s00_axi_bvalid, - S_AXI_BREADY => s00_axi_bready, - S_AXI_ARADDR => s00_axi_araddr, - S_AXI_ARPROT => s00_axi_arprot, - S_AXI_ARVALID => s00_axi_arvalid, - S_AXI_ARREADY => s00_axi_arready, - S_AXI_RDATA => s00_axi_rdata, - S_AXI_RRESP => s00_axi_rresp, - S_AXI_RVALID => s00_axi_rvalid, - S_AXI_RREADY => s00_axi_rready); -end rtl; diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd new file mode 100755 index 00000000..91894b4d --- /dev/null +++ b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd @@ -0,0 +1,206 @@ +------------------------------------------------------------------------------ +-- Title : Generic FMC module +-- Project : FIDS +------------------------------------------------------------------------------ +-- Author : Pieter Van Trappen +-- Company : CERN TE-ABT-EC +-- Created : 2016-08-19 +-- Last update: 2016-08-31 +-- Platform : FPGA-generic +-- Standard : VHDL'93 +------------------------------------------------------------------------------- +-- Description: A generic FMC module +-- +------------------------------------------------------------------------------- +-- general_fmc.vhd Copyright (c) 2016 CERN +------------------------------------------------------------------------------- +-- GNU LESSER GENERAL PUBLIC LICENSE +------------------------------------------------------------------------------- +-- This source file is free software; you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as published by the +-- Free Software Foundation; either version 2.1 of the License, or (at your +-- option) any later version. This source 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 Lesser General Public License for more details. You should have +-- received a copy of the GNU Lesser General Public License along with this +-- source; if not, download it from http://www.gnu.org/licenses/lgpl-2.1.html +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2016-08-29 1.0 pvantrap Created +------------------------------------------------------------------------------- + + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.NUMERIC_STD.all; + +library UNISIM; +use UNISIM.vcomponents.all; + +library xil_pvtmisc; +use xil_pvtmisc.myPackage.all; + +entity general_fmc is + generic( + g_FMC : string(1 to 9) := "EDA-0NONE"; + g_DMAX : natural := 8); + port ( + clk_i : in std_logic; + rst_i : in std_logic; + -- FMC user IO + FMC_LA_P_b : inout std_logic_vector(33 downto 0); + FMC_LA_N_b : inout std_logic_vector(33 downto 0); + -- FMC misc IO + FMC_PRSNTM2C_n_i : in std_logic; + FMC_CLK0M2C_P_i : in std_logic; + FMC_CLK0M2C_N_i : in std_logic; + FMC_CLK0C2M_P_o : out std_logic; + FMC_CLK0C2M_N_o : out std_logic; + -- generic registers for passing data to top module + data_i : in t_data32(0 to g_DMAX-1); + data_o : out t_data32(0 to g_DMAX-1)); +end general_fmc; + +architecture rtl of general_fmc is + constant c_DWIDTH : positive := 32; +begin +--============================================================================= + -- EDA-02327: FMC user lines - clock in for AXI register read by Zynq PS + --============================================================================= + p_reg_fmc_02327 : process(clk_i) + variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(c_DWIDTH-1 downto 0); + begin + if g_FMC = "EDA-02327" and rising_edge(clk_i) then + -- for testing purposes, read-in FMC inputs + -- 68 lines, hence doesn't fit into 2x32-bit AXI registers + data_o(0) <= unsigned(v_fmc_reg0(c_DWIDTH-1 downto 0)); + data_o(1) <= unsigned(v_fmc_reg1(c_DWIDTH-1 downto 0)); + data_o(2) <= unsigned(v_fmc_reg2(c_DWIDTH-1 downto 0)); + -- single user lines, auto-gen from .ods file + -- ** word 1 + v_fmc_reg0(0) := FMC_LA_N_b(17); + v_fmc_reg0(1) := FMC_LA_N_b(19); + v_fmc_reg0(2) := FMC_LA_P_b(19); + v_fmc_reg0(3) := FMC_LA_P_b(20); + v_fmc_reg0(4) := FMC_LA_N_b(20); + v_fmc_reg0(5) := FMC_LA_N_b(14); + v_fmc_reg0(6) := FMC_LA_P_b(14); + v_fmc_reg0(7) := FMC_LA_P_b(17); + v_fmc_reg0(8) := FMC_LA_N_b(13); + v_fmc_reg0(9) := FMC_LA_P_b(13); + v_fmc_reg0(10) := FMC_LA_P_b(15); + v_fmc_reg0(11) := FMC_LA_N_b(15); + v_fmc_reg0(12) := FMC_LA_P_b(16); + v_fmc_reg0(13) := FMC_LA_N_b(32); + v_fmc_reg0(14) := FMC_LA_P_b(33); + v_fmc_reg0(15) := FMC_LA_N_b(33); + v_fmc_reg0(16) := FMC_LA_P_b(7); + v_fmc_reg0(17) := FMC_LA_P_b(5); + v_fmc_reg0(18) := FMC_LA_N_b(7); + v_fmc_reg0(19) := FMC_LA_N_b(8); + v_fmc_reg0(20) := FMC_LA_P_b(8); + v_fmc_reg0(21) := FMC_LA_N_b(6); + v_fmc_reg0(22) := FMC_LA_P_b(12); + v_fmc_reg0(23) := FMC_LA_N_b(9); + v_fmc_reg0(24) := FMC_LA_N_b(16); + v_fmc_reg0(25) := FMC_LA_N_b(12); + v_fmc_reg0(26) := FMC_LA_P_b(11); + v_fmc_reg0(27) := FMC_LA_N_b(10); + v_fmc_reg0(28) := FMC_LA_N_b(11); + v_fmc_reg0(29) := FMC_LA_P_b(10); + v_fmc_reg0(30) := FMC_LA_P_b(9); + v_fmc_reg0(31) := FMC_LA_N_b(5); + -- ** word 2 + v_fmc_reg1(0) := FMC_LA_P_b(27); + v_fmc_reg1(1) := FMC_LA_N_b(23); + v_fmc_reg1(2) := FMC_LA_P_b(22); + v_fmc_reg1(3) := FMC_LA_N_b(22); + v_fmc_reg1(4) := FMC_LA_N_b(18); + v_fmc_reg1(5) := FMC_LA_P_b(18); + v_fmc_reg1(6) := FMC_LA_P_b(23); + v_fmc_reg1(7) := FMC_LA_P_b(21); + v_fmc_reg1(8) := FMC_LA_P_b(24); + v_fmc_reg1(9) := FMC_LA_N_b(25); + -- v_fmc_reg1(10) := TCK (High-Z) + v_fmc_reg1(11) := FMC_LA_P_b(25); + v_fmc_reg1(12) := FMC_LA_N_b(27); + v_fmc_reg1(13) := FMC_LA_P_b(26); + v_fmc_reg1(14) := FMC_LA_N_b(21); + v_fmc_reg1(15) := FMC_LA_N_b(26); + v_fmc_reg1(16) := FMC_LA_P_b(32); + v_fmc_reg1(17) := FMC_LA_N_b(30); + -- v_fmc_reg1(19) : GA1 (set at High-Z!) + v_fmc_reg1(19) := FMC_LA_N_b(31); + v_fmc_reg1(20) := FMC_LA_P_b(30); + -- v_fmc_reg1(21) : GA0 (set at High-Z!) + -- v_fmc_reg1(22) := TRST (pull-up) + -- v_fmc_reg1(23) := TMS (High-Z) + v_fmc_reg1(24) := FMC_LA_P_b(29); + v_fmc_reg1(25) := FMC_LA_N_b(29); + -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') + v_fmc_reg1(27) := FMC_LA_P_b(31); + v_fmc_reg1(28) := FMC_LA_N_b(28); + v_fmc_reg1(29) := FMC_LA_P_b(28); + -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') + v_fmc_reg1(31) := FMC_LA_N_b(24); + -- ** word 3 (if not stated -> don't care X) + v_fmc_reg2(0) := FMC_CLK0M2C_N_i; + v_fmc_reg2(1) := FMC_CLK0M2C_P_i; + v_fmc_reg2(2) := FMC_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! + -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) + v_fmc_reg2(18) := FMC_LA_P_b(1); + v_fmc_reg2(19) := FMC_LA_P_b(6); + v_fmc_reg2(20) := FMC_LA_N_b(1); + v_fmc_reg2(21) := FMC_LA_N_b(3); + v_fmc_reg2(22) := FMC_LA_P_b(4); + v_fmc_reg2(23) := FMC_LA_P_b(3); + -- v_fmc_reg2(24) : VREF_M2C (set at 1!) + v_fmc_reg2(27) := FMC_LA_P_b(0); + v_fmc_reg2(29) := FMC_LA_N_b(0); + v_fmc_reg2(31) := FMC_LA_N_b(4); + end if; + end process p_reg_fmc_02327; + + --============================================================================= + -- EDA-0NONE: FMC user lines high-impedance + --============================================================================= + p_reg_fmc_none : process(clk_i) + begin + if g_FMC = "EDA-0NONE" then + if rising_edge(clk_i) then + data_o(0) <= (others => '0'); + data_o(1) <= (others => '0'); + data_o(2) <= (others => '0'); + end if; + end if; + end process p_reg_fmc_none; + + -- primitives needed, if not synthesis will remote e.g. 'Z' values + fmc_out_highz : for I in 0 to 33 generate + outs : if g_FMC = "EDA-0NONE" generate + IOBUF_P : IOBUF + generic map ( + DRIVE => 12, + --IOSTANDARD => "DEFAULT", + SLEW => "SLOW") + port map ( + O => open, + IO => FMC_LA_P_b(I), + I => '0', + T => '1'); + IOBUF_N : IOBUF + generic map ( + DRIVE => 12, + --IOSTANDARD => "DEFAULT", + SLEW => "SLOW") + port map ( + O => open, + IO => FMC_LA_N_b(I), + I => '0', + T => '1'); + end generate outs; + end generate fmc_out_highz; + +end rtl; diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd new file mode 100755 index 00000000..fb5d4133 --- /dev/null +++ b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd @@ -0,0 +1,269 @@ +------------------------------------------------------------------------------ +-- Title : FASEC HW-Test +-- Project : FIDS +------------------------------------------------------------------------------ +-- Author : Pieter Van Trappen +-- Company : CERN TE-ABT-EC +-- Created : 2016-08-19 +-- Last update: 2016-08-31 +-- Platform : FPGA-generic +-- Standard : VHDL'93 +------------------------------------------------------------------------------- +-- Description: A generic design for an FMC slot, supporting a different set +-- of FMC card (set by top level gneeric) +------------------------------------------------------------------------------- +-- top_mod.vhd Copyright (c) 2016 CERN +------------------------------------------------------------------------------- +-- GNU LESSER GENERAL PUBLIC LICENSE +------------------------------------------------------------------------------- +-- This source file is free software; you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as published by the +-- Free Software Foundation; either version 2.1 of the License, or (at your +-- option) any later version. This source 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 Lesser General Public License for more details. You should have +-- received a copy of the GNU Lesser General Public License along with this +-- source; if not, download it from http://www.gnu.org/licenses/lgpl-2.1.html +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2016-08-19 1.0 pvantrap Created +-- (see also version_info.txt) +------------------------------------------------------------------------------- + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.NUMERIC_STD.all; + +library xil_pvtmisc; +use xil_pvtmisc.myPackage.all; + +entity fasec_hwtest is + generic( + -- Parameters of Axi Slave Bus Interface S00_AXI + g_S00_AXI_DATA_WIDTH : integer := 32; + g_S00_AXI_ADDR_WIDTH : integer := 32; + g_FMC1 : String := "EDA-0NONE"; -- unconstrained, otherwise Vivado + -- produces errors when integrating in + -- Block Design + g_FMC2 : String := "EDA-0NONE"); + port ( + ps_clk_i : in std_logic; -- clock from Zynq PS (100 MHz) + osc100_clk_i : in std_logic; -- clock from oscillator (100 MHz) + -- FMC 1-2 user IO + FMC2_LA_P_b : inout std_logic_vector(33 downto 0); + FMC2_LA_N_b : inout std_logic_vector(33 downto 0); + FMC1_LA_P_b : inout std_logic_vector(33 downto 0); + FMC1_LA_N_b : inout std_logic_vector(33 downto 0); + -- FMC misc IO + FMC2_PRSNTM2C_n_i : in std_logic; + FMC2_CLK0M2C_P_i : in std_logic; + FMC2_CLK0M2C_N_i : in std_logic; + FMC2_CLK0C2M_P_o : out std_logic; + FMC2_CLK0C2M_N_o : out std_logic; + FMC1_PRSNTM2C_n_i : in std_logic; + FMC1_CLK0M2C_P_i : in std_logic; + FMC1_CLK0M2C_N_i : in std_logic; + FMC1_CLK0C2M_P_o : out std_logic; + FMC1_CLK0C2M_N_o : out std_logic; + -- FASEC signals + pb_gp_n_i : in std_logic; + led_col_pl_o : out std_logic_vector (3 downto 0); -- anode green / cathode red + led_line_en_pl_o : out std_logic; -- output 1B Hi-Z when asserted + led_line_pl_o : out std_logic; -- output 1B: cathode green / anode red + -- AXI4-LITE slave interface + s00_axi_aclk : in std_logic; + s00_axi_aresetn : in std_logic; + s00_axi_awaddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); + s00_axi_awprot : in std_logic_vector(2 downto 0); + s00_axi_awvalid : in std_logic; + s00_axi_awready : out std_logic; + s00_axi_wdata : in std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); + s00_axi_wstrb : in std_logic_vector((g_S00_AXI_DATA_WIDTH/8)-1 downto 0); + s00_axi_wvalid : in std_logic; + s00_axi_wready : out std_logic; + s00_axi_bresp : out std_logic_vector(1 downto 0); + s00_axi_bvalid : out std_logic; + s00_axi_bready : in std_logic; + s00_axi_araddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); + s00_axi_arprot : in std_logic_vector(2 downto 0); + s00_axi_arvalid : in std_logic; + s00_axi_arready : out std_logic; + s00_axi_rdata : out std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); + s00_axi_rresp : out std_logic_vector(1 downto 0); + s00_axi_rvalid : out std_logic; + s00_axi_rready : in std_logic); +end fasec_hwtest; + +architecture rtl of fasec_hwtest is + -- components + component general_fmc is + generic ( + g_FMC : string(1 to 9); + g_DMAX : natural); + port ( + clk_i : in std_logic; + rst_i : in std_logic; + FMC_LA_P_b : inout std_logic_vector(33 downto 0); + FMC_LA_N_b : inout std_logic_vector(33 downto 0); + FMC_PRSNTM2C_n_i : in std_logic; + FMC_CLK0M2C_P_i : in std_logic; + FMC_CLK0M2C_N_i : in std_logic; + FMC_CLK0C2M_P_o : out std_logic; + FMC_CLK0C2M_N_o : out std_logic; + data_i : in t_data32(0 to g_DMAX-1); + data_o : out t_data32(0 to g_DMAX-1)); + end component general_fmc; + + -- constants and signals + constant c_FLASH : positive := 40000000; -- 400 ms @ 100 MHz + constant c_SLAVE_MAXREAD : positive := 8; + constant c_SLAVE_MAXWRITE : positive := 8; + constant c_SLAVE_MAXMEM : positive := c_SLAVE_MAXREAD + c_SLAVE_MAXWRITE; + -- AXI slave signals + signal s_sAxi_dataR : t_axiMemory(0 to c_SLAVE_MAXREAD-1) := (others => (others => '0')); + signal s_sAxi_dataW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); -- also put to zero in the slave AXI module (cuz buffer) + signal s_sAxi_dataResetW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); + -- FMC1-2 signals + constant c_FMC_DMAX : natural := 8; + signal s_tick : std_logic; + signal s_fmc1_datai, s_fmc1_datao : t_data32(0 to c_FMC_DMAX-1); + signal s_fmc2_datai, s_fmc2_datao : t_data32(0 to c_FMC_DMAX-1); +begin + --============================================================================= + -- FMC1 component + --============================================================================= + general_fmc1: general_fmc + generic map ( + g_FMC => g_FMC1, + g_DMAX => c_FMC_DMAX) + port map ( + clk_i => s00_axi_aclk, + rst_i => not(s00_axi_aresetn), + FMC_LA_P_b => FMC1_LA_P_b(33 downto 0), + FMC_LA_N_b => FMC1_LA_N_b(33 downto 0), + FMC_PRSNTM2C_n_i => FMC1_PRSNTM2C_n_i, + FMC_CLK0M2C_P_i => FMC1_CLK0M2C_P_i, + FMC_CLK0M2C_N_i => FMC1_CLK0M2C_N_i, + FMC_CLK0C2M_P_o => FMC1_CLK0C2M_P_o, + FMC_CLK0C2M_N_o => FMC1_CLK0C2M_N_o, + data_i => s_fmc1_datai(0 to c_FMC_DMAX-1), + data_o => s_fmc1_datao(0 to c_FMC_DMAX-1)); + + s_sAxi_dataR(0) <= (others=>'0'); -- TODO: generic FMC string + s_sAxi_dataR(1) <= s_fmc1_datao(0); + s_sAxi_dataR(2) <= s_fmc1_datao(1); + s_sAxi_dataR(3) <= s_fmc1_datao(2); + + --============================================================================= + -- FMC2 component + --============================================================================= + general_fmc2: general_fmc + generic map ( + g_FMC => g_FMC2, + g_DMAX => c_FMC_DMAX) + port map ( + clk_i => s00_axi_aclk, + rst_i => not(s00_axi_aresetn), + FMC_LA_P_b => FMC2_LA_P_b(33 downto 0), + FMC_LA_N_b => FMC2_LA_N_b(33 downto 0), + FMC_PRSNTM2C_n_i => FMC2_PRSNTM2C_n_i, + FMC_CLK0M2C_P_i => FMC2_CLK0M2C_P_i, + FMC_CLK0M2C_N_i => FMC2_CLK0M2C_N_i, + FMC_CLK0C2M_P_o => FMC2_CLK0C2M_P_o, + FMC_CLK0C2M_N_o => FMC2_CLK0C2M_N_o, + data_i => s_fmc2_datai(0 to c_FMC_DMAX-1), + data_o => s_fmc2_datao(0 to c_FMC_DMAX-1)); + + s_sAxi_dataR(4) <= (others=>'0'); -- TODO: generic FMC string + s_sAxi_dataR(5) <= s_fmc2_datao(0); + s_sAxi_dataR(6) <= s_fmc2_datao(1); + s_sAxi_dataR(7) <= s_fmc2_datao(2); + + --============================================================================= + -- tick generation, depending on constant c_FLASH + --============================================================================= + p_tick : process(ps_clk_i) + variable v_cntr : unsigned(31 downto 0) := (others => '0'); + begin + if rising_edge(ps_clk_i) then + if (to_integer(v_cntr) < c_FLASH) then + v_cntr := v_cntr + 1; + else + v_cntr := to_unsigned(0, v_cntr'length); + s_tick <= not s_tick; + end if; + end if; + end process p_tick; + + --============================================================================= + -- FASEC LEDs output + --============================================================================= + p_leds : process(ps_clk_i) + variable v_pbreg : std_logic_vector(2 downto 0) := (others => '0'); + variable v_shift : std_logic_vector(7 downto 0) := "00000001"; + begin + if rising_edge(ps_clk_i) then + -- clock in pushbutton input + v_pbreg(2 downto 0) := v_pbreg(1 downto 0) & pb_gp_n_i; + -- shift-register + if s_tick = '1' then + v_shift(7 downto 0) := v_shift(6 downto 0) & v_shift(7); + end if; + -- LEDs output selection + if v_pbreg(2) = '1' then + -- button not pressed, light one by one (4x green, 4x red) + if unsigned(v_shift(3 downto 0)) /= 0 then + led_line_en_pl_o <= '0'; + led_line_pl_o <= '0'; + led_col_pl_o(3 downto 0) <= v_shift(3 downto 0); + elsif unsigned(v_shift(7 downto 4)) /= 0 then + led_line_en_pl_o <= '1'; + led_line_pl_o <= '0'; + led_col_pl_o(3 downto 0) <= not(v_shift(7 downto 4)); + end if; + else + -- button pressed, all LEDs red + led_line_en_pl_o <= '1'; + led_line_pl_o <= '1'; + led_col_pl_o(3 downto 0) <= "0000"; + end if; + end if; + end process; + + --============================================================================= + -- AXI4-Lite slave for control from PS + --============================================================================= + axi4lite_slave : entity xil_pvtmisc.axi4lite_slave + generic map ( + C_S_AXI_DATA_WIDTH => g_S00_AXI_DATA_WIDTH, + C_S_AXI_ADDR_WIDTH => g_S00_AXI_ADDR_WIDTH, + g_MAXREAD => c_SLAVE_MAXREAD, + g_MAXWRITE => c_SLAVE_MAXWRITE) + port map ( + s_axi_dataR => s_sAxi_dataR, + s_axi_dataW => s_sAxi_dataW, + s_axi_dataResetW => s_sAxi_dataResetW, + S_AXI_ACLK => s00_axi_aclk, + S_AXI_ARESETN => s00_axi_aresetn, + S_AXI_AWADDR => s00_axi_awaddr, + S_AXI_AWPROT => s00_axi_awprot, + S_AXI_AWVALID => s00_axi_awvalid, + S_AXI_AWREADY => s00_axi_awready, + S_AXI_WDATA => s00_axi_wdata, + S_AXI_WSTRB => s00_axi_wstrb, + S_AXI_WVALID => s00_axi_wvalid, + S_AXI_WREADY => s00_axi_wready, + S_AXI_BRESP => s00_axi_bresp, + S_AXI_BVALID => s00_axi_bvalid, + S_AXI_BREADY => s00_axi_bready, + S_AXI_ARADDR => s00_axi_araddr, + S_AXI_ARPROT => s00_axi_arprot, + S_AXI_ARVALID => s00_axi_arvalid, + S_AXI_ARREADY => s00_axi_arready, + S_AXI_RDATA => s00_axi_rdata, + S_AXI_RRESP => s00_axi_rresp, + S_AXI_RVALID => s00_axi_rvalid, + S_AXI_RREADY => s00_axi_rready); +end rtl; diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd index ca2d8892..aabdfee7 100755 --- a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd +++ b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd @@ -25,6 +25,8 @@ use IEEE.NUMERIC_STD.all; package myPackage is -- types type t_adc_array is array (integer range <>) of unsigned(11 downto 0); + type t_data32 is array (integer range <>) of unsigned(31 downto 0); + -- when using VHDL2008, unsigned can be non-constrained type t_axiMemory is array (integer range <>) of unsigned(31 downto 0); diff --git a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd b/FASEC_prototype.ip_user_files/bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd deleted file mode 100755 index 29a0f45d..00000000 --- a/FASEC_prototype.ip_user_files/bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd +++ /dev/null @@ -1,41 +0,0 @@ ------------------------------------------------------------------------- --- --- Filename : xlconstant.vhd --- --- Date : 06/05/12 --- --- Description : VHDL description of a constant block. This --- block does not use a core. --- ------------------------------------------------------------------------- - - ------------------------------------------------------------------------- --- --- Entity : xlconstant --- --- Architecture : behavior --- --- Description : Top level VHDL description of constant block --- ------------------------------------------------------------------------- - -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.numeric_std.all; - -entity xlconstant is - generic ( - CONST_VAL : std_logic_vector := "1"; -- Din lsb position to constant to - CONST_WIDTH : integer := 1); -- Width of output - port ( - dout : out std_logic_vector (CONST_WIDTH-1 downto 0) - ); -end xlconstant; - -architecture behavioral of xlconstant is -begin - - dout <= CONST_VAL; - -end behavioral; diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/compile.do b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/compile.do index 9a1a2fc9..06c6096a 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/compile.do +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/compile.do @@ -60,10 +60,15 @@ vcom -work xil_defaultlib -93 \ vcom -work xil_pvtmisc -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ + +vcom -work xil_defaultlib -93 \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ + +vcom -work xil_pvtmisc -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ vcom -work xil_defaultlib -93 \ -"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -147,10 +152,6 @@ vlog -work axi_crossbar_v2_1_10 -v2k5 "+incdir+../../../ipstatic/axi_infrastruct vlog -work xil_defaultlib -v2k5 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ -vcom -work xil_defaultlib -93 \ -"../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ -"../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ - vlog -work axi_protocol_converter_v2_1_9 -v2k5 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/file_info.txt index 9803f143..459b372b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/system_design.sh index 843c3b0b..94df6bc5 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/activehdl/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/file_info.txt index 18c93b6a..5752aa1b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/run.f b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/run.f index 4367fe89..c4bbdce1 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/run.f +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/run.f @@ -31,10 +31,15 @@ -endlib -makelib ies/xil_pvtmisc \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ +-endlib +-makelib ies/xil_defaultlib \ + "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ +-endlib +-makelib ies/xil_pvtmisc \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ -endlib -makelib ies/xil_defaultlib \ - "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ + "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -118,10 +123,6 @@ -makelib ies/xil_defaultlib \ "../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ -endlib --makelib ies/xil_defaultlib \ - "../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ - "../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ --endlib -makelib ies/axi_protocol_converter_v2_1_9 \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/system_design.sh index 659ec167..4d3edb5e 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/ies/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/compile.do b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/compile.do index aded7fd4..c511bf6d 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/compile.do +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/compile.do @@ -60,10 +60,15 @@ vcom -work xil_defaultlib -64 -93 \ vcom -work xil_pvtmisc -64 -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ + +vcom -work xil_defaultlib -64 -93 \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ + +vcom -work xil_pvtmisc -64 -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ vcom -work xil_defaultlib -64 -93 \ -"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -147,10 +152,6 @@ vlog -work axi_crossbar_v2_1_10 -64 -incr "+incdir+../../../ipstatic/axi_infrast vlog -work xil_defaultlib -64 -incr "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ -vcom -work xil_defaultlib -64 -93 \ -"../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ -"../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ - vlog -work axi_protocol_converter_v2_1_9 -64 -incr "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/file_info.txt index 9803f143..459b372b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/system_design.sh index b31d909a..8454ca13 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/modelsim/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/compile.do b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/compile.do index a49c0019..fc4a6b02 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/compile.do +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/compile.do @@ -60,10 +60,15 @@ vcom -work xil_defaultlib -64 \ vcom -work xil_pvtmisc -64 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ + +vcom -work xil_defaultlib -64 \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ + +vcom -work xil_pvtmisc -64 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ vcom -work xil_defaultlib -64 \ -"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -147,10 +152,6 @@ vlog -work axi_crossbar_v2_1_10 -64 "+incdir+../../../ipstatic/axi_infrastructur vlog -work xil_defaultlib -64 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ -vcom -work xil_defaultlib -64 \ -"../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ -"../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ - vlog -work axi_protocol_converter_v2_1_9 -64 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/file_info.txt index 9803f143..459b372b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/system_design.sh index 3b84e3ef..1a982315 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/questa/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/compile.do b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/compile.do index 3c347d80..b904a163 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/compile.do +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/compile.do @@ -60,10 +60,15 @@ vcom -work xil_defaultlib -93 \ vcom -work xil_pvtmisc -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ + +vcom -work xil_defaultlib -93 \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ + +vcom -work xil_pvtmisc -93 \ "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ vcom -work xil_defaultlib -93 \ -"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ +"../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -147,10 +152,6 @@ vlog -work axi_crossbar_v2_1_10 -v2k5 "+incdir+../../../ipstatic/axi_infrastruct vlog -work xil_defaultlib -v2k5 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ -vcom -work xil_defaultlib -93 \ -"../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ -"../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ - vlog -work axi_protocol_converter_v2_1_9 -v2k5 "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" "+incdir+../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" "+incdir+../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/file_info.txt index 9803f143..459b372b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/system_design.sh index 8efd2380..d81f7683 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/riviera/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/file_info.txt index 18c93b6a..5752aa1b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/system_design.sh index 226b961b..3c121795 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/vcs/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] @@ -103,11 +103,18 @@ compile() vhdlan -work xil_pvtmisc $vhdlan_opts \ "$ref_dir/../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" \ + 2>&1 | tee -a vhdlan.log + + vhdlan -work xil_defaultlib $vhdlan_opts \ + "$ref_dir/../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" \ + 2>&1 | tee -a vhdlan.log + + vhdlan -work xil_pvtmisc $vhdlan_opts \ "$ref_dir/../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" \ 2>&1 | tee -a vhdlan.log vhdlan -work xil_defaultlib $vhdlan_opts \ - "$ref_dir/../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ + "$ref_dir/../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" \ "$ref_dir/../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" \ "$ref_dir/../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" \ "$ref_dir/../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" \ @@ -204,11 +211,6 @@ compile() "$ref_dir/../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v" \ 2>&1 | tee -a vlogan.log - vhdlan -work xil_defaultlib $vhdlan_opts \ - "$ref_dir/../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" \ - "$ref_dir/../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" \ - 2>&1 | tee -a vhdlan.log - vlogan -work axi_protocol_converter_v2_1_9 $vlogan_opts +v2k +incdir+"$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog" +incdir+"$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl" \ "$ref_dir/../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v" \ "$ref_dir/../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v" \ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/README.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/README.txt index bd598baa..4f365a6c 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/README.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/README.txt @@ -4,7 +4,7 @@ # README.txt: Please read the sections below to understand the steps required to # run the exported script and information about the source files. # -# Generated by export_simulation on Tue Aug 30 11:31:02 CEST 2016 +# Generated by export_simulation on Wed Aug 31 10:00:00 CEST 2016 # ################################################################################ diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/file_info.txt b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/file_info.txt index 18c93b6a..5752aa1b 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/file_info.txt +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/file_info.txt @@ -24,8 +24,9 @@ processing_system7_bfm_v2_0_processing_system7_bfm.v,verilog,processing_system7_ system_design_processing_system7_0_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_processing_system7_0_0/sim/system_design_processing_system7_0_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design.vhd,vhdl,xil_defaultlib,../../../bd/system_design/hdl/system_design.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" myPackage.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +general_fmc.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi4lite_slave.vhd,vhdl,xil_pvtmisc,../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" +top_mod.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_fasec_hwtest_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_bit_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" i2c_master_byte_ctrl.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" @@ -84,8 +85,6 @@ axi_crossbar_v2_1_wdata_mux.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi axi_crossbar_v2_1_wdata_router.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_wdata_router.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_crossbar_v2_1_axi_crossbar.v,verilog,axi_crossbar_v2_1_10,../../../ipstatic/axi_crossbar_v2_1/hdl/verilog/axi_crossbar_v2_1_axi_crossbar.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" system_design_xbar_0.v,verilog,xil_defaultlib,../../../bd/system_design/ip/system_design_xbar_0/sim/system_design_xbar_0.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -xlconstant.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" -system_design_xlconstant_0_0.vhd,vhdl,xil_defaultlib,../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_a_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axi3_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" axi_protocol_converter_v2_1_axilite_conv.v,verilog,axi_protocol_converter_v2_1_9,../../../ipstatic/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v,incdir="$ref_dir/../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="$ref_dir/../../../ipstatic/processing_system7_bfm_v2_0/hdl"incdir="../../../ipstatic/axi_infrastructure_v1_1/hdl/verilog"incdir="../../../ipstatic/processing_system7_bfm_v2_0/hdl" diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/system_design.sh b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/system_design.sh index a3b990a0..23ab8a24 100755 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/system_design.sh +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/system_design.sh @@ -8,7 +8,7 @@ # directory, add the library logical mappings in the simulator setup file, create default # 'do/prj' file, execute compilation, elaboration and simulation steps. # -# Generated by Vivado on Tue Aug 30 11:31:02 CEST 2016 +# Generated by Vivado on Wed Aug 31 10:00:00 CEST 2016 # IP Build 1577682 on Fri Jun 3 12:00:54 MDT 2016 # # usage: system_design.sh [-help] diff --git a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/vhdl.prj b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/vhdl.prj index 46d5d48c..588ce386 100644 --- a/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/vhdl.prj +++ b/FASEC_prototype.ip_user_files/sim_scripts/system_design/xsim/vhdl.prj @@ -1,7 +1,8 @@ vhdl xil_defaultlib "../../../bd/system_design/hdl/system_design.vhd" vhdl xil_pvtmisc "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd" +vhdl xil_defaultlib "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd" vhdl xil_pvtmisc "../../../bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd" -vhdl xil_defaultlib "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" +vhdl xil_defaultlib "../../../bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd" vhdl xil_defaultlib "../../../bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd" vhdl xil_defaultlib "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_bit_ctrl.vhd" vhdl xil_defaultlib "../../../bd/system_design/ipshared/user.org/axi_wb_i2c_master_v2_3/src/i2c_master_byte_ctrl.vhd" @@ -17,7 +18,5 @@ vhdl proc_sys_reset_v5_0_9 "../../../ipstatic/proc_sys_reset_v5_0/hdl/src/vhdl/p vhdl xil_defaultlib "../../../bd/system_design/ip/system_design_rst_processing_system7_0_100M_2/sim/system_design_rst_processing_system7_0_100M_2.vhd" vhdl xil_defaultlib "../../../bd/system_design/ip/system_design_axi_wb_i2c_master_1_0/sim/system_design_axi_wb_i2c_master_1_0.vhd" vhdl fifo_generator_v13_1_1 "../../../ipstatic/fifo_generator_v13_1/hdl/fifo_generator_v13_1_rfs.vhd" -vhdl xil_defaultlib "../../../bd/system_design/ipshared/xilinx.com/xlconstant_v1_1/xlconstant.vhd" -vhdl xil_defaultlib "../../../bd/system_design/ip/system_design_xlconstant_0_0/sim/system_design_xlconstant_0_0.vhd" nosort diff --git a/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c b/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c index bdc917ff..83a9dc4e 100644 --- a/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c +++ b/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c @@ -53,8 +53,9 @@ #define OCI2CBASEFMC 0x43c00000 // I2C core for FMC1-2 I2C bus #define OCI2CBASEFE 0x43c10000 // I2C core for FASEC EEPROM -#define FHWTEST 0x43c20000 // FASEC HW-TEST base +#define FHWTEST 0x43c20000 // FASEC HW-TEST core base +// I2C OC registers #define PREL 0x0 // clock prescale low #define PREH 0x1 // clock prescale high #define CTR 0x2 // control register @@ -71,14 +72,19 @@ #define CR_ACK 3 #define SR_RXACK 7 #define SR_TIP 1 + +// FMC Tester addressing +#define FT_IC2 0x24 +#define FT_IC1 0x27 + // misc #define TIMEOUT 2000 // high timeout needed because of I2C clock = 100 kHz u32 readReg(u32 base, u32 addr){ - return Xil_In32(OCI2CBASEFMC + (addr<<2)); + return Xil_In32(base + (addr<<2)); } void writeReg(u32 base, u32 addr, u32 val){ - Xil_Out32(OCI2CBASEFMC + (addr<<2), val); + Xil_Out32(base + (addr<<2), val); } int waitTransfer(u32 base){ @@ -115,43 +121,106 @@ int OCI2C_init(u32 base){ u32 readReg_24AA64(u32 base, u8 slave, u8 readAddrH, u8 readAddrL){ // send control byte (write) - writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit - writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); - if (waitTransfer(base)!=0) - return 1; - // send read-addresses high + writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send read-addresses high // print("sending read address high\n\r"); - if (waitAck(base)!=0) - return 2; - writeReg(base, TXR, readAddrH); - writeReg(base, CR, 1<<CR_WR); - if (waitTransfer(base)!=0) - return 1; - // send read-addresses low + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, readAddrH); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send read-addresses low // print("sending read address low\n\r"); - if (waitAck(base)!=0) - return 2; - writeReg(base, TXR, readAddrL); - writeReg(base, CR, 1<<CR_WR); - if (waitTransfer(base)!=0) - return 1; - // send control byte (read) + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, readAddrL); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send control byte (read) +// print("sending control byte for reading\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, slave<<1 | 0x1); // address & read-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send CR byte to prepare read +// print("reading ...\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, CR, 1<<CR_RD | 1<<CR_ACK | 1<<CR_STO); + if (waitTransfer(base)!=0) + return 1; + // read output + return readReg(base, RXR); +} + +u32 readReg_mcp23017(u32 base, u8 slave, u8 readAddr){ +// print("sending control byte - write\n\r"); + writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; +// print("sending read address\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, readAddr); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; // print("sending control byte for reading\n\r"); - if (waitAck(base)!=0) - return 2; - writeReg(base, TXR, slave<<1 | 0x1); // address & read-bit - writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); - if (waitTransfer(base)!=0) - return 1; - // send CR byte to prepare read + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, slave<<1 | 0x1); // address & read-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; // print("reading ...\n\r"); - if (waitAck(base)!=0) - return 2; - writeReg(base, CR, 1<<CR_RD | 1<<CR_ACK | 1<<CR_STO); - if (waitTransfer(base)!=0) - return 1; - // read output - return readReg(base, RXR); + if (waitAck(base)!=0) + return 2; + writeReg(base, CR, 1<<CR_RD | 1<<CR_ACK | 1<<CR_STO); + if (waitTransfer(base)!=0) + return 1; + // read output + return readReg(base, RXR); +} + +int writeReg_mcp23017(u32 base, u8 slave, u8 writeAddr, u8 val){ +// print("sending control byte - write\n\r"); + writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; +// print("sending write address\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, writeAddr); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; +// print("sending control byte for writing\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; +// print("sending data byte for write ...\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base,TXR,val); + writeReg(base, CR, 1<<CR_STO | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + if (waitAck(base)!=0) + return 2; + // finished + return 0; } int main() @@ -174,37 +243,82 @@ int main() print("FMC1 I2C tests finished \n\r"); + // init all OCI2C cores + OCI2C_init(OCI2CBASEFMC); + OCI2C_init(OCI2CBASEFE); + slave_addr = 0x50; // for FMC1 with GA=00 - print("using keyboard input\n\r"); + print("Menu enabled, use keyboard input\n\r"); // send control byte (write) for (;;){ setvbuf(stdin, NULL, _IONBF, 0); // unbuffered stdin to avoid having to hit enter after char inputChar = getchar(); if (inputChar=='r'){ - // read 12 first bytes - readAddrH = 0x0; - xil_printf("-----------------------------------\n\r"); - for (i=0;i<12;i++){ - readVal = readReg_24AA64(oic_base, slave_addr,readAddrH,(u8)i); - printf("EEPROM register %#06x: %#04x \n\r", (unsigned int)(readAddrH<<8 | i), (unsigned int)readVal); + // read 12 first bytes when addressing EEPROM + if( oic_base!=OCI2CBASEFE && oic_base!=OCI2CBASEFMC ){ + xil_printf("Incorrect I2C core, canceling...\n\r"); + } else { + readAddrH = 0x0; + xil_printf("-----------------------------------\n\r"); + for (i=0;i<12;i++){ + readVal = readReg_24AA64(oic_base, slave_addr,readAddrH,(u8)i); + printf("EEPROM register %#06x: %#04x \n\r", (unsigned int)(readAddrH<<8 | i), (unsigned int)readVal); + } + xil_printf("-----------------------------------\n\r"); } - xil_printf("-----------------------------------\n\r"); } else if (inputChar=='s'){ + oic_base = OCI2CBASEFMC; if (slave_addr==0x50) slave_addr=0x52; else slave_addr=0x50; - printf("EEPROM slave address now %#04x \n\r", (unsigned int)slave_addr); + printf("OCI2C core set; EEPROM slave address now %#04x \n\r", (unsigned int)slave_addr); }else if (inputChar=='e'){ + xil_printf("exiting from main..\n\r"); return 0; + }else if (inputChar=='f'){ + oic_base = OCI2CBASEFE; + slave_addr=0x50; + xil_printf("Addressing FASEC EEPROM now\n\r"); + } +// else if (inputChar=='t'){ +// // FMC2 slot +// oic_base = OCI2CF2TEST; +// slave_addr = FT_IC2; +// xil_printf("-----------------------------------\n\r"); +// for (i=0;i<4;i++){ +// readVal = readReg_mcp23017(oic_base, slave_addr,(u8)i); +// printf("FMC2 MCP23017 register %#04x: %#04x \n\r", (unsigned int)i, (unsigned int)readVal); +// } +// xil_printf("-----------------------------------\n\r"); +// } + else if (inputChar=='h'){ + xil_printf("-----------------------------------\n\r"); + for (i=0; i<8;i++){ + printf("FASEC HW-TEST core register %#010x: %#010x \n\r", (unsigned int)FHWTEST + (i<<2), + (unsigned int)readReg(FHWTEST, i)); + } + xil_printf("-----------------------------------\n\r"); } +// else if(inputChar=='w'){ +// oic_base = OCI2CF2TEST; +// slave_addr = FT_IC2; +// // enabling two **LSB** outputs (IODIR**B**) +// writeReg_mcp23017(oic_base, slave_addr,0x01,0xfc); +// // writing low to that output (GPIOB) +// writeReg_mcp23017(oic_base, slave_addr,0x13,0x00); +// xil_printf("write finished\n\r"); +// } else{ xil_printf("Help Menu \n\r"); xil_printf("--------- \n\r"); xil_printf("r: read first 12 bytes from EEPROM \n\r"); xil_printf("e: exit from main() \n\r"); xil_printf("s: swap between FMC1-2 EEPROM addresses \n\r"); -// xil_printf("f: address FASEC's EEPROM \n\r"); + xil_printf("f: address FASEC's EEPROM \n\r"); +// xil_printf("t: Tester FMCs, read bytes from IC2\n\r"); + xil_printf("h: Read bytes from FASEC HW-TEST core\n\r"); +// xil_printf("w: write to Tester FMCs\n\r"); } } diff --git a/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c.old b/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c.old new file mode 100644 index 00000000..bdc917ff --- /dev/null +++ b/FASEC_prototype.sdk/I2C_tests_FASEC/src/i2c_tests.c.old @@ -0,0 +1,213 @@ +/****************************************************************************** +* +* Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ + +/* + * helloworld.c: simple test application + * + * This application configures UART 16550 to baud rate 9600. + * PS7 UART (Zynq) is not initialized by this application, since + * bootrom/bsp configures it to baud rate 115200 + * + * ------------------------------------------------ + * | UART TYPE BAUD RATE | + * ------------------------------------------------ + * uartns550 9600 + * uartlite Configurable only in HW design + * ps7_uart 115200 (configured by bootrom/bsp) + */ + +#include <stdio.h> +#include "platform.h" +#include "xil_printf.h" +#include "xil_io.h" +#include "sleep.h" + +#define OCI2CBASEFMC 0x43c00000 // I2C core for FMC1-2 I2C bus +#define OCI2CBASEFE 0x43c10000 // I2C core for FASEC EEPROM +#define FHWTEST 0x43c20000 // FASEC HW-TEST base + +#define PREL 0x0 // clock prescale low +#define PREH 0x1 // clock prescale high +#define CTR 0x2 // control register +#define TXR 0x3 // transmit register (W) +#define RXR 0x3 // receive register (R) +#define CR 0x4 // command register (W) +#define SR 0x4 // status register (R) +// masks +#define CTR_EN 7 +#define CR_STA 7 +#define CR_STO 6 +#define CR_RD 5 +#define CR_WR 4 +#define CR_ACK 3 +#define SR_RXACK 7 +#define SR_TIP 1 +// misc +#define TIMEOUT 2000 // high timeout needed because of I2C clock = 100 kHz + +u32 readReg(u32 base, u32 addr){ + return Xil_In32(OCI2CBASEFMC + (addr<<2)); +} +void writeReg(u32 base, u32 addr, u32 val){ + Xil_Out32(OCI2CBASEFMC + (addr<<2), val); +} + +int waitTransfer(u32 base){ + int i; + for(i=TIMEOUT;i!=0;i--){ + if ((readReg(base, SR) & 1<<SR_TIP) == 0x0){ +// usleep(100); // sleep 100 us otherwise spurious 'no RxACK' -- no influence + return 0; + } + } + print("ERROR: transfer not completed\n\r"); + writeReg(base, CR, 1<<CR_STO); // stop signal to abort data transfer + return (i==0)?1:0; // return 0 when success +} + +int waitAck(u32 base){ + if ((readReg(base, SR) & 1<<SR_RXACK) != 0x0){ + print("ERROR: no byte RxACK from slave seen!\n\r"); + writeReg(base, CR, 1<<CR_STO); // stop signal to abort data transfer + return 2; + } else{ + return 0; + } +} +int OCI2C_init(u32 base){ + if ((readReg(base, CTR) & 1<<CTR_EN) == 1<<CTR_EN) + writeReg(base, CTR, 0<<CTR_EN); // disable EN bit so we can set the prescale value + writeReg(base, PREL, 0xC8); // 100MHz/(5*0.1MHz) + writeReg(base, PREH, 0x00); + print("prescale value set \n\r"); + writeReg(base, CTR, 1<<CTR_EN); // enable core without interrupts + return 0; +} + +u32 readReg_24AA64(u32 base, u8 slave, u8 readAddrH, u8 readAddrL){ + // send control byte (write) + writeReg(base, TXR, slave<<1 | 0x0); // address & write-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send read-addresses high +// print("sending read address high\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, readAddrH); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send read-addresses low +// print("sending read address low\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, readAddrL); + writeReg(base, CR, 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send control byte (read) +// print("sending control byte for reading\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, TXR, slave<<1 | 0x1); // address & read-bit + writeReg(base, CR, 1<<CR_STA | 1<<CR_WR); + if (waitTransfer(base)!=0) + return 1; + // send CR byte to prepare read +// print("reading ...\n\r"); + if (waitAck(base)!=0) + return 2; + writeReg(base, CR, 1<<CR_RD | 1<<CR_ACK | 1<<CR_STO); + if (waitTransfer(base)!=0) + return 1; + // read output + return readReg(base, RXR); +} + +int main() +{ + u32 readVal; + u32 readAddrH; + int i; + char inputChar; + u8 slave_addr; + u32 oic_base; + + print("** FMC1 I2C tests starting **\n\r"); + init_platform(); + + oic_base = OCI2CBASEFMC; + for (i=PREL; i<SR+1;i++){ + printf("I2C master register %#010x: %#010x \n\r", (unsigned int)oic_base + (i<<2), + (unsigned int)readReg(oic_base, i)); + } + + print("FMC1 I2C tests finished \n\r"); + + slave_addr = 0x50; // for FMC1 with GA=00 + print("using keyboard input\n\r"); + // send control byte (write) + for (;;){ + setvbuf(stdin, NULL, _IONBF, 0); // unbuffered stdin to avoid having to hit enter after char + inputChar = getchar(); + if (inputChar=='r'){ + // read 12 first bytes + readAddrH = 0x0; + xil_printf("-----------------------------------\n\r"); + for (i=0;i<12;i++){ + readVal = readReg_24AA64(oic_base, slave_addr,readAddrH,(u8)i); + printf("EEPROM register %#06x: %#04x \n\r", (unsigned int)(readAddrH<<8 | i), (unsigned int)readVal); + } + xil_printf("-----------------------------------\n\r"); + } else if (inputChar=='s'){ + if (slave_addr==0x50) + slave_addr=0x52; + else + slave_addr=0x50; + printf("EEPROM slave address now %#04x \n\r", (unsigned int)slave_addr); + }else if (inputChar=='e'){ + return 0; + } + else{ + xil_printf("Help Menu \n\r"); + xil_printf("--------- \n\r"); + xil_printf("r: read first 12 bytes from EEPROM \n\r"); + xil_printf("e: exit from main() \n\r"); + xil_printf("s: swap between FMC1-2 EEPROM addresses \n\r"); +// xil_printf("f: address FASEC's EEPROM \n\r"); + } + } + + cleanup_platform(); + return 0; +} diff --git a/FASEC_prototype.sdk/standalone_bsp_0/ps7_cortexa9_0/lib/libxil.a b/FASEC_prototype.sdk/standalone_bsp_0/ps7_cortexa9_0/lib/libxil.a index b126cb6ecf421367fcfa93633c12ab8afa6df0bd..1ec6bbe5a369e166132ffb841a5f26ba499ae6ec 100644 GIT binary patch delta 2089 zcmZWqe@vBC7~Xl`j~`b7xfA@pi(*vMXo6l~OI&WjxHw@repK4P0b|r`t0m5vwi`>s zgawUusgIU_u+a}PM#U{&S2$VI<x*}C{b7a$<&u>yMGP7YJKwqA`R=*(-}gS}InVpN z?|IMpLKE)Lgu8QH>?3*J{5<bx5A4p4u|9JHZw~6guI$$JPG|(TmAx42gnIB&)jm|h zirtfTXpWaMPq4JQHYU7mj^{8Vc)o5^qD?RS%LpbuKOyNkv8*VV*|c4%6^8WSD+i}! zYAf^ylJApZrCjWz!Cp;@@#TG#;Swd}=9(41qaJ*J#7vYxeU)Yet3$tL*aDA*n1|kQ zv%?q|7>W!0I9sDK&803V3cht`ElN}fj{aS@N&;g;pa({)eAE%k9+X9V*T)PRb+O*K z|D?I1Fg)~HDyx=lX}ZmHT1sPMYwRron8{)7Nh;7;z_zbYftgZvP|>i9F=roV4JvK_ z6RaX?-()R2xmsm(9bkT!3S{}&Q;M=qJx5uC^e^14Kh9e1&YSKHsMFVN%q#5*AgP-T zC)=VNFz9+8E0>~zQ8mC$dsN0l7uafhvcjURx7j(Mv~iZgB0QZ+zi0i@ucc%z__Si$ zGs!&CqtI{vg(W0J_8IiWpNyg$aQ(}2%h5T|$$yt!NVB&HpgtKsm30arD-}j0Pzk&& zR~me^(cU6}=>nLSq5`<<gF6!78V1Fbz|#_#zR7_TWzZ`-!2z9iJOc~qwx|HATcA~1 z7r=5G%s9Pj<~};y><GTy265)AT~H$pEpqk6E~rz|>2#<Y*2Syp13eJ`e=)P{6v#=c zw1h66QiOaOw>bbUj*w5|XFLQ)oKzOW|0V2nd|SZOSxA=so3?<2b8uLmk^p+fV9dUB z`KEQpsN)BC*H#VOU*@45m*JRgm&ZC?`x)9-%6cpt9e+T1WP?r%H{mpduWi0r5aQQu z^cH*)o#dT4C{e5%bZ;JZMN^(#ggvUPHx>)gOb6VeYMW==xXJXEK(gsA295dvpNrPH zx(o$qHo0(1#I#PsF1+UOgvm3B_?u!$r}~$01WbPl-cS?L@l^a!<(ZdmK_Rty@CDUv zN;(d!EV_|_8Bs@(xdHdv0PicmFArmlCNquo@wR1e#<LD0Ji7AmdL)ZMiCb}Nky;k_ z+#ez6l-Z0kk=UT@W4JbILK;tCi<3iSjcLc%Rb&nIcjD)%;Vi=G%OBv%D3SL*#=Vgd zF(`cy?>Q3IOHSJe=k0$3A2X}CUFUHzsvnKtV*4s53m?@hxY0SG`ffg%<yUbr-tG`_ z+1jM2c3qsqVkfKh|DnzQpnOQhC=V=QgS>fS`m<2$lV^}q?V;H?Z8_KR!2A2C_LE(y zn0@g?n*50zGMjx`t;6I)&%;Qgbvm$9n+d;~dDdT@4pnK5;dLuEX#PoUKCB#GU$Ix4 OlIxXZP+YzCjq6{Pj(T|j delta 2083 zcmZWqe{54#6wW>O(XDPPZKS^U%7#@lB5~CYG6&%gx6mzPX|PWDHOLscOiVNziy@Pg zMP<mUoxyZ^o8TWRi%y3lQrR^knL$jJh1E@nQ35ie&ILi;25x9Gz4!Lr_C5Ub`_4Jv z`ObMK_a)D{lIL893T<U&tNi}*Pww61TU1uIa?KiY<vOT|9$(ioGhQ8Rw@DmOw8UuL z)7ZeS4y@5`7kUB5Mz%gFlekDted8iCKC`2wfMM1zc27`E<Ue<wYe<-C-DQR^K0m=7 z$Y?m`ygLK6#D~X^C>f|Gc2Te01be@X%SNU3YGO<BXRi_EFtlkejtvav#D19BW~OHw zWq+P^_OHgp*=X!+T@~%Nq5HBa8XdKxBRSa|AxwT>jB<&?jp{Q24?XBcTlpsVFie}K zJZS7L6P_wXQHOyaqZ)mq0<FCx6W8h0TGVE$PdA!*9Pw>)O<uG63G}F}sZ6T$Vgq{n zP9x57Pa6u$9dTR|Mq8w2Wm2c_y@WFJ^Z2p@s7tPx<I@r3mmWEG#L*W{lm28M3T5?F zS~q|`(@pW^!)OUVA?~;G51qa`jZOpgjH4w;vP`x1TXZz*QYU{0ly!9TMWoBU^VZSJ zC_g`4M8<28Mo;{PsL`A33?U)@ol!x?OOZ;$H_@=iT(Z*%$BgmP8a_7+NrGu;)b4?k z%Z(C2T&aLLDJqDY0hpD9=%TELW()C35PFRzkloYFM|CsI7a5|0sPBX>X<ZNt5tuUe z#7lJgx(l`Aw<3^3_V<8sutF>rnysRbya`KXOHsck4u!eq4g>E%?*9cz@FOtJM~Vfg zqaO+_V$}oCX%U+oguRxG@aIrt@jo#HPPs>6DE|z!%df=<jlMeu-{ADS^Dr431eJE5 zhr?N>kL{`Id)O~c?}&p&fB6w!%QMEB)>%#TDukqymLSWxbsZ>3*@`3+8T}KE$rMo& zzX7$95Z)H%U_-VsxAM$Cu-VF7T7VW=#8fnL%7q^w{`KG_{wh#tAK+(Aah3XQxYa~x z^pqX{WF-o2CtSGSl5xO|KQI%7%~C-lI&R6B6C=8d@JUmiO0Rjb*RuZmi*c(W*D}U; zdtwFNW@UU2;>_*y5vhF@{x#D`6cv=?@^#s>Vney`5D@P^d`*fALn}INuk^i)m&ywf zU!mzB?vxe<p+s@iLL5DWKXpr4(SG0iIL{)|+mE-~EGb3D@xK<8)fCSgzX2lp1i!{9 zOGeWOjv9|Vd8nDqU2p*xTh_VZ5>DkBZD?o`HyBS~T5#kBuC@r4+`>)Py?va*Psu|T zCs%@%KJ)f9I+LR;tdyfnY*aMrSgTx+)0XP&_Zpc-Ujbo{<sj(@C=JGUU?G*xGb}9& oqOC@mGM-Q(h&^>mlgw}xGqt&m%A7?$Z@Y3?W{477qcUv&51&qZSpWb4 diff --git a/FASEC_prototype.sdk/system_design_wrapper.hdf b/FASEC_prototype.sdk/system_design_wrapper.hdf index 0398df7aeb783a79c4b21bfcb553b399a12e1c5b..5f8927c562242e7fdaaa28268156dbe1df224efd 100644 GIT binary patch delta 82152 zcmY(KWmFhFvw(5eqQ%|a-HSVgV#OVbdx6E>-QC@bySo-B?(XiF_Wl0cAA7Qsd1f+M z$=OXNWhM9rySRX&3^)Wj2nYxa$e<#jl+NWi3KJLzh%z(?2;4`lgPVhqu?d6g535tv z?+&R#=$?_CzDxHYxzmy0CW@HGBMa4L$FoRaG!@y9IP9GrtscoKLNm<chU*L~4io$? zF6Y{pmw4wXMNH$lq9i^Hqke;S67{paQB#vCyX>IYq<}P1352`1QvGMKN{Fr|2g;Vj zf^BlgXp<C1SD$kvbx>P$eRVh^Sw<vsJ;K@-g72{&SSCtph0}1&Q&Y0@1{8@WRANar z#z6;JubZsv+ni~qdR$FdAf&vr%@CQ4!;Ek#UJ0g(V8*FUzA`_gJK&M@q7jLwbJ;wF z`vP^L_<+ZX()^U59HH$HQry0y4WH;3dLMyD4fRyZshkG2gwvDQUHx!y1NXEIl_UHp zeNB;hGeVZLT}j1j8&`(3(1OzJh`}>?-lI?EtZ2HlZJ1HP^pLHzX^y!<syYV@nN$&) z=&bWv#~V&vdv6`WHK=OSVuPtA&Fq)Sh<5Q}+`#cV)OtJoAnUV5Md8M&-Fp&^&5ULl zMmYD}=>ocQ(qP3Zz!`sM{YT#N%Ga{p(;0u4T*{8^=|xI?Fx+Ijz?y;lf|qniv;}`! zZzqG)Lvvg5!tMlh+>xxBpGV9^)m+PY_!(&?7>R7bd%K8Xueocq-6S%?FZ<&9v*xYO z3Xq>rAYke$*o&y|5xy#^%J~i}vOD_hLYyA(EJt8++qaVcFkt@P*?jLWU^`JE5|M`1 zY_EBU@QoPXz|JRoOUQ^momy=7toUBMbG_^rl<sM`fnl(A1Jhu}1mS<r7S#Wqt?2sa zyHRNn5XDX~5Y+#kEl1<HpJ0@rX>oaAWI%t4182!<2x)Vc85>T7`1bqT{X6&L^8It` zMAh;5-QDG;W7V(q)#Gx)N<tfJ!j8-{daV7bwG*et$+Dod`PJ>-C&%+myQ=G7oo|PI zgzZrRU*Lh6ONnoUuS{?zD*or^PMF<&QJ8B+UM(&S9fz*#9nMhg^7p5$qz~(MMZo$g z{<)I?6k+=`9b_Le=v@`?q*CP2g9<%+tuY86lvMQd{poZw>t{yHJ2UoE(a);)d3=yG z6&tYk#kWRJo%KP^<I~fHp!SIs+>U#OjcZ2T4uVc7p6Qi)39KAW-$|X@dn7K%_x%7u z`Swc>OorS}FuCkdK^Jjh*A}d?Pryl@61HwtBePzlZx|8J>hqm#-J7r3k^Wl^g{V48 zNLKOJgIufM%eSm4zXsDxNi1>U**nV-KjS{{ht2X=%UQE=m1lkXnZeZ5<UiS+j3A!0 zeSkkAsm95POUnlSd33xTKT-z?b_@mH?JE2wZb<^otc!(y3a{WK9a``?j|)idzyGyi zCt3V}T?C^Syrs(-|5+QPK(-eB#vIp%b9sMKyij!mTd(T;O&|90riqy-RefT1|KV80 zLn}LA*5`T$0Ca2!)LbrK?5^7);&k`Vkkj{UIWnGlA-RA}@f58wfl~+-b-2QV#?JD_ z<Ku^<r2X4F?m+6Gw>!ruL%;(B(_aBHANsS$Ryy*<FBy5P7q+Z~lBJajo2}!))`vre zN{%$yHa-PAq!#Ya4rZr)J9$3AXV!$jFQ0@ZldrWJ>~}X(6X=6lP#+&IPy-Bwc%#EN z8&GKBNjp|_fv8^#E`_snub#N(YU?)JNt2g9-g!E7g>CDHDR8}@tbo1^W!&g}D7C3j zVwxsI2IQAFhMi^&?$J6O!5;+Y)TCs>Y@}%AyDP*T?BcLNdwFESCn6L@cAu;TZm;*_ z^aTliUh)O@SCa4yt>|~-8SCLnU6+Zo*s`dNE~%35&V7-Fu-1|8`;#8epHw63gPXw8 z|ED^>(Qx>|+=EV~oC8p%5GJd8al@9wihE-kP@k~<P6f`v<NwMv7+)9Md-=>D%|$6q z)yqzo9p1wHSeST4yb`%1Iv06$d-Yq-Iv27_oSbgM8B?hdI@F&<yBBPv7&k7;B)6SQ zKi3XzJg+gDah#pSG}r^_8O@ft+Oq<t@_JK3+t<?Z<w@2FRtAU|=4^;Z-gG7-%yo{B z!WGS>yS^OlWv9_4a5B7_9$+-gy}TU#>qas+dGOS!YPo+b?eQwf&)j;&-fY~6hnp(h zd_!3JN{K08JJP}Cfby`u&N$xdw-0b}^U2D$YGIik@3rqmeb;Fvg7_Pf1mjvyE1Wny zSD4Q=(cAI~5Y}JBoqy+RUJcXMPdB!=w*tTE0W}o5J|LRYObAt{#22;kFo??tTD>56 zBpp`?!*)qoccBt4rX0O##gZlWdPp(@4%YEy+$QHMGa7CGTjAb9kkW}ldtHs7H1O(n z{o^}$H;ioC0Y3&4&Lk#v3=GsxW#pLcXL^%r6YqK)prDU{z*Dx(EtD_)dw=heD|gC( z>DrBF1e56~lV+bG;9k=t+kJeq`-<16<BCZqf{fN@$JTa3xg^9O9*1Kg%IM3#*^`AN zSkULrkJzP(P3M7#y%Qts#jO?LhV@X)n)w|<)W)MFsJ^JWqVom)5?Rsw1)C`&e5;EI z`JNyjpcU#C&V~{fJ|eU&FYxmvri=C6?sBI}P<P!@fya1?>7-&!Nr(U4Ga;@w;Kp%j zRE<gT)jTT;>37ffM`Ma5P<{Hjly62TNKlr<ws08wi`;tj=-5AnQEiXDAz$V|Tq@xE z8+h9+rep>xqbH5QZj$}v(Whiu8sp}UUO?%%0WyXN%@Y%LvgtJBYJqQz)KDrezEbyN z8=uNg&}(#{nfe6-n>Dh)C@F)XVC*gEh@$IDt_ZHFBD;DssUH=h&@A0R(5rolMZ8Tz zd2BBN5)i86`q6#Xh-#zBBG|i54YXNOA`-XRus7e2(isO02{iDiqL>)!SmNFU$b9SK zfG@jM&<@s;*p6e2uT!|-lC{2~J2eZSExk2Z!b(9eycg8abov2KW_+(O<V4H2ChvCF zxA<=tl{c2>(XDKlc;kViu;R2STT?y{N{$?vi0h-r(JyX;xFYpX<vHmjuDq*ZL;?Y- z>?y2US(hfS7_l2`=*K!ptu{GF#-D3Q0PKe?Oa<>+eL?Q%lKeS^nIYO&7`b|sUc_zx zToQYn>Mb0;w|+tP>LDTGqnU1jH9_Ia>0SrE@2jHv5ikS}1%h_wctp+#1~QN`iaqEK zv{FjafzgpkU@R(qDOitGilI5rueMAlTUoM)4cH7hP+xpD@!pKE^=iotV~|j20d?v3 z0JbhcO!(yd+5FN|vrXH4$Gf4xI!BU8@z2ma&*G^uZs{A*-t5I7l99sXt6+gwc7mkT z_>XnKx6nc4M9D2Fi5LVI3jh469?rlmPz#C6nQ)ZU8+vt5W(=~;Bxrv6K#=tT{6owa zND__qIZT?IBQ9@?PZ-f;nHAai0BJilXR_qAd3&?x6M0P>tcwHea%_{@@7RL^T{U<n z2q%j_*S+oyOk@?M0ZNYFWTqv(zOSyXeJ#X4PUzCtng^piEDm(6H8$zcsIvB|`wAZP zLlrSSKM#kf5G81meE-tE&b_iSf$bU}Pa@1>69QL7dfK7QDywE>V%W|W5BPE9&wN@L z*S73hbB_a7FNbk5VA{6WiU9hj5DCW)dxNvNm+CQWGWxT-eLC)k3+YV={C#nA`bR54 zP6)F!8Z#s7{Ippke#r4Z3`HOI_-rhk7MQd1g&~sZq~=PDzCQ*ZV~z^<pll`?zD( z=4;a=Jq*t|)xa86>DjgbZs|3Lh8h=qSgSG%vp%<c_~Y#QT5FsSHWG8b2bRY@@+-A* z1{=x`?+oF-nL>GNVV8^@Qak9X>5f?xbbKepP!2rpK#(5`2uy6X3!r#+=|OKn<e9O( zF;FtRhI<-DK4GoD6Fkc39#fW4$_;mCq8z#=M>=t`aHR?v^Ynl!2ruJbWVEt1w+_z7 z$Y)zM@km%$Zy2;+pz!6zIPBYfENy6g2Ks3%Lda7$K2PDvwMajtXs3pbXABl*i6AA| z%BLBd8pb4!tAckAM+~t`3@@Pz@`nwqNtEB}QJSpVY=$o0za9@hyF^dw*mRUvF1Xq{ z1Mf&S>HG0%1daeq+qdp@!&5u7p?u#o21>gF-TWX{iGXG`|ByrnK4WhcN5;M$Y_+Rc zk$rhbbo3uh=|Oe<2uC)`B(`lXT!A#0h(%nd+oPRDdP^&lT5?J~dSAKRXJHHYD^#d@ zS~bPJF2faMsOmv#iH$^|DG)TWKZYtpofrty5sg)qyJo;7oG}L_(8LGEr)Z=^;~+i~ z#LSo4`>TFG@@lN11T!wG-hnXjH#mKftzJ6XN7hHr<T^zraS}TW`f7XP5?VGTdb}Rd zW++e+GGW_&a1JIdh6|({s$`Q)Di`(2WD%ILAA?ZtTd!mEMe3DBxNF?uRc!Uo0fttP zdDtZ3CTIZTP#`V9P^E3sYBxU;^~PDoB7)l|c#_Qe&2s<yrRa6}Z%Qeyklu-O!moxK ziB&y{Yro5wy)PjY5lcmK7SYP=vIV_yBruTr1C;}|;l2@IK=o4xf6AQ9V1a%K7AYGp zlV%S_=p+y=_$20~9kv-hIbMqpI#wwSZJNLmEL#r1LSukaUnOfIY*@lK1eC~Khi8EX zN~i4&GlL@}gi0#QKylFou?~-#+4-w-R18rT52!pG)$(7AcVv1M;C$s>fJ34=5k6sa z;6oohOkPl#QwJ+pDIzHs<lazq<cr6IbiO5bik8lapX;uArz+uHeZFTXIexV!ce3&$ zm2d(I5Ovk!i~d(7We8~o61#lFq3lFK%*cgK?tW&<!m$HZ%LYDK3MFOi1dGK>T^<+B z8=5Q~Y#y=RT3?A(G|F2wIVuj>)@FaRSQ_m~nm|U=dqU?Hm!CqhN}z`F9wT#X)KJaU zrrHos3WPn)kx?c_Fy0C&sDXV96##tbIQ)0SL!;3-A^xej`Hvw*)z9Gl%QsQ?qwfM! zb&M6G=(7gq_%8UNas^?^p$`2W_3|^YWsa89U(s=mX)|_^Z-xq-Vxcr$a7rr#zC)8| z2{Tm0IZm|<Dw5NdJ5ITpe=o$yL^ijxruxLB#xp#LXm6g8@AG><kS0KEK^Qo!*4jxZ zweHZnNwR^UI?TRpCQf$xxEYu#K{G9~j9^k>v)jnpnv`V)x02d1RaSZ<WZbf8+;Lrv z7I?g&eZx*Hwe<C8yzv@_E$l+JN>0Nc0Wzq_h7~yRefpN)gC9Sm_t9S5o%FH4{2TVa zNTWEuLZdsjQhmWiVgN+F8xOeVCFnHvWGe%eb=cmNG?R2F7|*8SQk#qrUq7VJjZWtH z*E)jI$4uQ3K_vmTd4vT{xo<}j=J*0naS2oX9~!Ut->*~^aZl`TR24FR9^Ago8%vhT zR+I+sOPH@7u0_r8Siv0ze1NW;V;|Orx(pSg_uC9#=YiY%8r#Y%RJ#3Go)j+hI$E5$ z;ZD%@!{{8NPW!7?=c3Wl=Jb{sPp1Rvq;8Az=J-1@-I{A21P1g_16o61r~ODiht-ZE z(SWqqdt(9}*34|?U7lbsqp?HfSKIOSZm;HaP)!R%)wx<yk`d)Yo*R2bYXXMyFuT8% zeD!M)3!wD%K|FPyW=^VKRlNK4AdJvwuf>m23j2+L`Yr5TxdU7`-A}3z5GJCgRC^Hr z#2&?o$`Z7uIzcCg{9T}#?IgmFBI_p&%mGo$*dHYFU!EMn?Xl#7xN~hg!JeG4MK(-_ zygznNW1IJO<VyC&@$ms)&!E`lNVlir*)uX517OS{j`v<UE=R>sg%P?5&8I9g#(*_s zt&NS61CN#MF8^yUtCq?5{7?eR?Apa9^0e&6BmE;{7XENJ8J@8`?NV|=F3aJ0&ko`G zQjFbb`Kg%6A1&sTu`4ZRUTjl5B(hB^2Y2}q%z$)G78k<+(=KP08AzOnQ2J-M&^eZs zNWec)>O{;W6?gj_<8&@!SBh(duC?Z*g8a|5ky{gfq{EiJ3kmCZgfYwc*gtK0OU;R} zb8m>Y2U-XBw+uaJboyll3Vq2lVdvMi+-S{VVNRQI?whmRYedIw#z9Wb5%S+SNlUNn zkNA>lfNCac_6fP3#`E;kvBYuJmpuU3No$)AsLbVsTRJp$c~A#m4nIMvD!qGG|E3B* zDpVMAXR(bI!4w+l#q#}<RoJz}V!lO}8VJLv3;}cgidohCL#@OIlXeRY(KhysLs1pg z#+|c4gpyuIW*6ttPg|x!S>h+BasZE4)F45rzs;)fi$Ic6S)a`+Z*ghb0Ve=5<Ee6J z0@FETjxTC^fhh_jKQ;ZWFeTckeNJ1rq8bWxzVIf3F0sH?So?rX93HGx?$V`Q8Aq3| zqB@x4JU#S4cv?R4jIfKu^&<KXMBZdz<c2#)I-;IH`CVW^j&|3^vtO3s7sn}CTv?hJ zXN-5l0p+LIGn`_$5;?{cHFe-i*u6}1+JoN;<KIZX$^4D9tU$Hr*BOylmR5o4)-M8O zEnTWrCj~E)G<sdU7d!m(K_@;!9dazq2Rr=9UagQt-1qg`+4kkS&kdeePKd|H&pXH2 z?}$%3y~g+=SQhgbO@d;kH&B&VZu38mzLk39NMo(3?vht0U8RHraDK-DA`7G6&K4F$ z_9qSyZ<<|z*Bo~PDo)>#n(}n5Qi$?Tq6G{Q^tJ9>@mlWWSdr&~O*$wAH&5$QSsqPi z4g}hCqUTl!#}6dhJ-Af+qnF7G6L?)?4E&Lat$Qx@0GaNU%6rFKsV+#=WtZHngH3o; zwU8<JTfExm@AlJxg4eg>!|#vxYs7|9aOABgNgiO0(b^y<Vs*w`5SxITmzTSX?Zwqq zZI-@Z)0_MA(e-I>_xSeh-Nqg4+tc!`dCHou7ys)m6~W8y-p!%qz1+L%9d6Y_9#hqQ zmUV{_#xF`}*w-5{dFOG4k1y-SDP$w;=h?+9h&tD|EO<uXr<#NdIK9tR(HmIiFxsyR zD#fJ$L6zb!2Z#lnPArEB_K>riuH09KP>@j%=~>S?%y}$|9t7!=TT~A}#akBu6&ZYj z=1-1GP?Ln;A1-0GUN#NHcl8OzUhSA};j1F%X9@T61CyXPscH4}PP(tT42s>GgW|qA z`-s~y2fb?pka_*aaIPNev`<X(=;w(0Lj&k*%`G=&nKQ~L;=2(q4mR96eZhY1*ihO< zcn2rs2J;LsN0*c%MtTSM^t<F3JLG0>R5-BiJ!ZONt#*e#TonVX>Od$GTi{?NW;Y7K znjdspc!5Io4IbBl&$sG*Z%f4zKSR=8-7$=@G@mV?IEhV=Dc8LOhmExqrc`p*tO#yl zuAsdM=18PTS1qxm&y%tT{AUk1ZO?H1!9bWyq6xJ|$mPq)QeM~hJ2ygE#}=4PK?m0< zhKxm?L3DpYY^zEoG<55p(%hQ!=^$U^ph5BDjEw`)uOQQIuc&-=Nm`VSAar{$ep1yi zi_e9?%hh`fQh3!^wxD3T`!<+dhI&)|MjrmuccQDHQ6{ZvCrdbyLJA{3BbIo#Hb2D@ zWI6K`+vEqd>tMP($jZJ@wcma|J;d6QSU$nr=nu|@#cnq^A{^>Gf`vrUw%GJR@E*u@ zYY%ba;NQb>R4(?%e>D*6O=4DOfxpzYET_f-c+tfBYZvX%cGTA6%EX->kM1umUXaPi zRR*rwj7aTL<p+Axr&m~xma632iZ`{`dZh3VdHppvJ&@s__!@@SpJil^TBGFHHlm23 zAdwOLsF9gAEC>{_#QAQ%^7BVSdsxYY5g#Da&fA*xfQc&R1c-_v(InU!4G9+@Mapsk z!FzvC<hb-;XdG>={?_W?+JD@l1qwWbcJl(HwPf2al&=RH5ya35Jg%01fwffIuEuhV z*=g2IZ{p%9AJZPt(U7lh{;X)2T!C-|6S8i_c)>Z;$O)v(Y@5V5kachlY}%w;Pz3}a zAK_uRAJimBA8W+~!SRDY0cZq?(;5Xh)yr{-kb&7E@UM)z`Fz<VXn~gWM8#iwx}yE0 z@eyRX)agpqiggyu0u27fY4$gaa5bupY-MN(3Ox0J1TJq_DoG(&DPu(oE9ze5JQ))Q z&{6g}byP<6fw+&abGyB1y=p-{;AVhvll!{x-0)-ah)YWz3!rX!f>4M_vvn>Inc*e5 zWJ!-mP)8`NBb#QDvFs>}=^P=t1$|Z~X%6ls=4)UuFvd~!9>3Ewn$nlPy%>M9Ol|RD z`5GYWYaVK7Tdy#COCoSzseIAPfV#p3{=J@4wvf&wIsl8?)%A&UTHwO=C6Von+-Rn9 z6+fjuW&ON82Ut=KVKt9J9y06o<hbrZ6|9YJU_Y1+)D|H<9tMpl&*`>%WtN>rA+t7G zRh-VwZM|H~(xGG69wuX@s3jH#>YzRbvo@$|1e~s!V9hOx`cIrW@r&OnUk)Z$HMs~} z#%=k|MmAknZhQBYW8t@*)8&hG&QITt4O6#8{HKVd0kQ=+n04p-b>~AJjHkVl%iEU0 z=U35GG!ZE11el+GuU;-f7@zmPV+6gPd7U2whgWL`RNb%N97RcoT4O~DTCgpy3m&0i zQ3|P-b?5bprgja}RVZ$0#iy7B4g3GVGcKSxZ7%;>h$zjR*SqB53_7@9XI^u$nT#nC z47*At09g4ikpbCVP?wul)}Qe2MlIzv(?{iUEtOpk`K-gc9dS6rYoy5S3BKPZbJ6f= z^>BZyF?5I2D)f5gW_)_rw7OEuUY@rxw2U#v1v9EB(+#(*F@6T?Gl`Cku913%cblC% zKKhl6VP>D|E)yrWMKOyi1`Y)~31`i+ON8Tz2e79z8os<=P6i1Mx_$vIoo1-*mFGg8 zK1&YVq%7{i8FUat*h}()5j0?tnJ`W%s^!}#fSSI%ycBpLd^20ZLG<I1<wt0_@p}V} zY_piYxz(3t`}{kXX^L6KX5sLQpe$YYX&~73i&HH20a#Stv0`#^hqdI`4~U5??G*h% zAAsG$vjDjd6tet%zHSf%5>I|X|KQgB`Qkm(r>+fWJ}T<*YhbT8PiEu|#V8V6b&)lG zCP7FZ!ydL}!w(;1l7OS>yv=P-HQa%P?6&aE!krA{cDIaT+p8j{>o7OPR)gdXt}I>G zTMm;h7?P52^~AB7r#NFcMi3<97GZ2%n*d@?^@<g>R~|A_TpmVWXpQBr#=`N_jCi=_ zXC%LZ*YRVYHCL3BZa8FS+PCRHB)PK;cj!iKLpdf?KRvlNnN5){&8^~nD}9O~RDTN@ z^{`b%$V=89f@8q(d>`|DCV4S5GW=5=5M2KI{ucV#rp4w~i2=!nAvR}Y#-A-vUKYTb zNQM@t%K9nkr;d=wKLUbN?v3t95k`!WHLxEYPWV{%okZVMB3b6od~DzZoe{ZKhVY_A zP@PVkQ99IS8UBPjd~NSi{E1bNFSDF8%>d$5S4Q1xFuzq+zcP8tA61AUBsyW!kF^kl zjo(!0(LLk5iA%Ddr>b<5tzyAal`a70U=#hsu-ScjW?#o%#o%dazJp&U{n<7CB3aOM z6e`kGNVg+&CMwcg2o}O{F;brc){?I@;s=<FQdD2P^=@?;!l~_YqV!NCCMMOlh8`0> zA+c)M<8sO1(Rdp1%q!H>cq-Zz-^6TIFF->|m{Y3Glz0s!IxCRlxoea@WRC#3wJLCt z22*Cl(!||51KC-27U(H>Pje#7i41l*rXrtf6D|&dIJ)z2Qms5$2lG-n#Q1h?$K)9T zi$I%4mPFyb;Iw$)5p=jxq6RN*QG1l;KNCrAWBIXjCaZSg?4%JnmVo_k-QFoiVn#<^ zBpMzo?QgJT$J^NW90>>6SKb8J&E)D8O=9~|$5i)Xy|&T&>nWP!8$m9(6NGlF5a<XF z!U-!7Xe)F?d*}FK^)~XgWj^QEAymh3L+~$rQr|Ne?_Qiqm_WzDi&^tv4!XnH`{BUE zj4(s4CuULp3t7j!4h6|3;E&G|la#p-nPZQC@1a5Oo-O*aug-Xda7;cB;SBMMBimOC zSJ9T7qZE<}*W!fdS3oy$IwJo`K6A*A5|b&8dgg5DFYNcBASR-SJ)!Z*%?^g`95A+v zvOR_EP!lH2s!(5;S@6EFYHY)seHDvmHlNU!m~4yql8a@b6-APcpOxfLVkLviW&G5Z zF5{%B*;HR5&3(cOv+(Hv$OO}r;rTpJ311Cve4?rv>U3Mj+5m;62i@4spiOl>SFSB& z8a*g_j3dW)BnF96dI}CRe*)@na7hI}Uw2h0q1FyE{h5sZkqbweQ4Aufo34eJ;w(6? z<}6r!%YOks?hg({IYO@n1o?ozt)2b~#wYzrEVM-p=<KO6bO~X9p#4f*6Nm#f6*mV> zPbq@5H7PdQSW-T^F$X^-VxMwG!Of=MF%cLP)Jo;}GHwNb_Bks+*m+rlaE+KgJe`Z^ zW&qdJc;pGg#|};^tWLp!F*LYaR^$_JX}~Bqxx845Ef%=@kk?HSyqTO(!Rb5SeIY3T zVV=ev^TP@fbuus?SgsnfMwi$ocC5N$^o1d7+*`z$w#9rx9TJ*$iQNvazQ?TZA}tPQ zZ;)~T4QO;r6-XGX{!&!23ln;Pm0~9{Um=A`vYgYMQ%cSS<Mkk*1A!J>C+{oj&Zrj8 z<=1!~kUB`J<Ki7@N!*ytr4@*348s~o$E!ZFLWNUq@ua&4<fKhYF<MJf{-)<vDzze1 zJc2Fl42c1uMYn*nny$lKlK16-2$~9AH2utcficlCYhTD~<g;ek45Dz>nBJ{be>M(2 z`}1Jr0?E*3q3auky!B=pv~yhg%D^`Y>)9c!&C|3461H-3+o3pyjHg8ekPRV9$f+Ph z5N~oeYJXH%!6!TD-+6^>;Y}l1JlHh>L}E0}y-=hi%??m1FeKkFi{Kw;K}kF4YM*b= zdHGwdW40#t=OX+kKW#1TEe<iT#t9NJft%=K#@Q3GkO&KqibEDhgoDkA%Y#ZMI;{x~ zw%sz_P3TG5PG)`~aJNH?8z8a)t~B9ew7~+2?Ql?W_^y0GQ48ZY>3AQ6b`!u!%t?O1 zz)%i5qYD=}hAPT6`7bE>GHcI;Tu?{l$CY+K+A?)lQ|<jQ-;4IVudB9udQg0yfjauu zlC<sZj~e*(0lm`EBRyhsy4@;!kT57tW6sB7A?nYp7z3#2oP$Wbw%*_j@GbMVTtaCS zm$9DBO--;6;r0*=#hVePSLkKUKs@9|DeJ+D+snhu<Advc+f&OMa)pIa`WutXYPj{U zvPqX?+)rR!^E6g|P_Gk9r>uxlzsofM3{jITd<Xg$DQ7+o&y|&`Galfq!`(ql1@dNF zN4Ab<YIv*qz5{UNJH&SZMBXu08Yx5AdPIv~-cV3{3>w+k-Ujs!dUq`j9?|J)?_rT! zZK8P5SX#`^dhNDS<|uFw%uqys6&t>?($sG0V-d=3moce7OeNptWg!y%P`2ee>1Q^R zNM33{#MI%r9L9vLN(#ngEf<uh#QqVw6$485>E*H_DkrNwDu2*V2g!s0igoIcvQlF& zx^8Unz2)bdOnrxzuHd_>r6|TwZN4P<P;IOqRJ1V$%<rM8&{SoO&@#}7f+ieA_0Uma z-Rd!y?NK*#ZdNuWkf0y}?XG9*4e+0~dOs1;0rjUiR8k@UF>n!<F{RtBs<?B@Z%DBW zY6wBojhN#s1M%W8B~1iB6mJ6qjJSQ53F1U>MiqWU*0dUHlaHW1M?#6En*Q~(>wbCF zr|+O3f&uTm(GrL4Z!rN6LY$z^`GVmscQ>euF#=_$b_OK<8$-iP(wU$XeQ;)=T%TZ0 zBz1>2yTn3)99VgxqZ&?x0a%0To&3ev946k|ZZgrXxR4nnqGTucjMvx54&?x!tuFEI z8?dax$b%8Z4O=DX?STPtR)LcUwtk-|zoiJMtEj11qz$_A+0(Xu;=@BU9BSl!Q(J+} zF32Fpi=6c$mZw7#BDb{BBwEGJtf-9uwm69ySBfUU9dss*YmkU#1d>!xJmKz^(}kNY zats2uG6uR4L|5@piExQ)CW<cC=acG?;!+Kf9w`tWB}z$Mdyq75vbt3M>v(@+_SDZg ztUo}hHYX~`NKXneJ{U%6=WG`%us0kwJu`SPB!ni6$(T66WvfS@%Dsn-?oc96yECCj z=wKh9=-GZJzdATZYULtEAQ%-=pCexJZOEn93){Ip))B!zo6<ysS|rhLr<8`7%u#L< z(y(!4sTNCRdCZMjo)dL_=>&JX^-hyqmkIBWad(>=FWHyKD0PotwLfUSfU%<H7pyJU z3BBdn!0wwiZA4dz@A6SX+?P4%7tREObcIG#of`*l-xn2dKZ$g+j^iOG6OI|D;D<iV z1)mV6K3PzJ5AjQ9R@@8l&r`_4;5Pe-KPLxE%HH*-3+b}r)H|)N0^ewgfycJS&mSC% zSJHNINf;_FiyRw3`lADF?EsqW-JxIJ(WeRRLH5HbT3GAId!CoKAd(yEO_!2l3iHWS z*nFX!6H1;hz-4c1Dh3|ve5@Z=f&sgY6|3D)f`bdpQ~;{7up5=@GNy3!Dgo^Yyi~+c z$eu6!;sMY)%lWP}j<+z_?Wzi{HMVaL;!3QM7T80J%bp*{K|u{bX%0y#i|7ut8Y9X2 zHn4$pZI}cifIdgTL*HHT7J_JOIySr>@`F^hnd~m4ylx7(cGY@=iy}0MYi0B^Kf%`T zqA=kliV}7IQE_1v)&u3hI}uz$Q7k0#lXH~R@w1=0<5A=#CcQS_)AJwJw}FgAi&>p6 z&J1=p9Yg8r3tQ4h4p5paV@75`%o{eCkWxeC+~GeqBvC3#X6|?kcqTV9Ru<Uh^;!Um z7Qh78V*_(mhAWm&Wd#HeNA+d)weO1IkQKedm6GQLMJ*4I*f@TRYnL~&&_dGa`Pf8M zqqh)Y#R*ap1M!&&)haTF<d8qvY}xB(P7n~GnupsN^#|q5-Iw!*>6e_%)Jsb>+28K> zZ};?_iZT}IrsqI1x4_{cOTr)ZpM^mte$c}YO%>dF{SHmcE}i8-Rn1^e&7%=i(WBRU zECA#DiU^}FDYJN~;!2(8-RIa&-I1syWOyK`=SSh&2RvGxY^ny-dkwUDb-X&Q`jkm( zT8iCIgW$lh;dc2>V~#O#iGMd)2)33z7qL6gOKeT}(p)@%dchlRPye*d`HD}2gd6c% z=7`?t0`(-pbpe4yvfUjXH`KnUW5h*J_vtf5z2A`S;kw*Thse${^sL>P793((yWiAQ zb(fsk0bqdPuV_M<*4R7+E|Y_t;U8!MZ!JQ|1M6u<eG?NmHAU4UcR)&+6Gayw;QR?E zRl5n+vmE7*qd1{f=*u4|BeTg(iYrU#7~KzXKx&7xlBClP<uRgQ$R<O~>zL+B3p!?9 zGjzoPz87R=x*pVT)B<wD*+*)U8QURh;Ok~G@W_Jrq6K$`8GD;<$kMgJw$-SlF-cDc zZu?Ee1%AvMbQF~_z~mUZt`f~^b_*}{cEx}d<X3zvdPdBSbL51(_2y@9t&vmA?Avrw zwl2lY%|c=vko~^5+CQnMBR{Q$alBh6Y?7D|hqOXZF^fMS_O1=4KLP6F9`&of4Vex= zJrp)xA48wzfWiIh7CVRwn|+raBL~RxXSa2F&5tN*RHsu*WWcWy4O;sxJonWRnc^ju zH*zVUkU%V{8?>^2yCBVh__fakP>p+-B;~Rxi?p5N6@o(jEP-cEZJsN@j-Y68h=v;H zKPg}kGuu;c{bJ_14}-|GDDwk1`*sxoV*_z<+A0MZpG#XBFnv|_5MK%asV|!<y%^)0 z1VPwoYr53`)`_0|x4V<x9V2}a3nwD}CUp1N=s8L|P-cUdPzVh6;7zNp$kN0(Qq~{7 z4|s>a2TzX;wxZ{KSRqYA9ifcRO@OZ0x5+5|C5V1xBh7^GGW416Z3Ev!XC>`<gUrF5 zl1=Dbh?QBBTG31Xn$1BS35~0tiIkf#xKOK+4xi$cBF^Qc)~p1WjccDN*New4bF1SP z`>`7~!(XO0ugG8i>EhM_N02{G{?W!^8@d4UhuzvPY{46})#;=fy(-2z8{~|NOV9SR zEyyqQHuUOg2$#r30BMzk<DXpfAtNmzt&037*8Ww0hz9?Ob$_*gkXC*F6YKwKKg8U> z;tI6|uVdsN5WkTU%h7sfJEZDF5#9i+pb27Jy=tsK96G#o{g!NKE=Y^sKDBd&`ZOR~ zkxtawc_F8GRRDhJHajc)FT~%G(%m@5DqvHQH8^@yQ4MY^7+t60&&B9ve=o+ocSqbx zW6qx#tzxK+O7Kd!d09%%=wEne%Gu&L*85ziL-g|Cwy7%$<&d`SIRgi$Wjp5S@J&k) zzY23eAM9B!drs`<964?y+NMcvHjP7XQcdHpE;pBtfI{$JhP?YOWv7gSr)OEN(4Gqi zpAp|ddFWjLiyOwk<X32hAW-|a^^@7BtXx!Y>=)=N9v64PkWQ9#Zl$pxUO0xrH7?vE zz&gwN=cO|)@CFN<j0mm?yq%u`AyJ$AnKur)Pj1mKZS5V;g9^G?8{c%VqqZ2cE=h$+ zpP5C0l`z)66H}k$SA^itjcfW>z0<(!%?rP{*yOrRH1`YqLr*8jr*|--mxTS+ERGjW z&KJ&0#s|3<crUbf-}OFSpLL_JPc{$<Z_DpbuwswqKkK&E5kS0OM~F7fqHWngA|JjD z4kHuszLRxxf_MyF-M)@1aF*?3T#dg$IWMjQ-kGn6i&ZvW?rvb9-mH<kFkUG+yuRxl zoy~#o>jD-*KM91te(nnBk2*}x462)sU60^-IL_kPnuO((-Inuk{Zh&r(5Y~L;naTp z7=U$6d$^N`PHj~}UDOdH3THVj&K!V0rDeAz^Z8H(KTO@dRCUq;)H$=km8e(8_?yTu zP%R3GyM>i^-6r(0r_|5Q=So0yTy1}08pdAW#E-!a5;yoQ8c^N%zvE7{pK2Ki15689 zm9Y_*#)E&*Af5}`&HLl9;!5tXhH>9P-L$>w7UEjA>)NE`<?!GcGRU=M3bPZkP}}zQ zcBCA5tp5yM_UL_{iYSOU=mkKm1TGz4L&>v3A1(PI4c=APUyj)!Fv1qv!Ki9(Rqq|f z7E(A%8Em65)&?;ZWpXUWZq#DoncFT|MzA%V7>nbq==0#QHId3R8N%W52|g2K8bmS^ z$!&K0onh8|mxN)f4V@GiZ>Q=pZ8gu?xVU_SCCKt}jVvmAc9M2`2A1#KJPFs!fBn)W z+$#E5?{IHz_k6&)X4DZCje2V8|420TbF1|G(s(#ge!N2z(Vs^qB-qU<J_|VUoUG#y zNoJf0F9;FT)H(BhTa$3L^=R~`4Acw45-a+-PGJ38m*oU!F%#S>3yC+RJqz5-eIcS9 zWepWs9I{afh9N_F9WcHS({HNa{yb5rvIZrh{CzV`o+$!z%@Ib6fIMXWe)-{F#*T57 zpPy|DmXnXxhI_-Klaou@&t@Dm0;-UnWH76Nbc+`<{mK<b;x1PE)`kAjN=LiEs!0)f zTGR0X6XI;GxxW2zcc<$#zI7ay&?zZYu$C`htegvi%WALyjMcOnVcQMN`3ta=*_GSz zz_IS}FZJidI1VU=?|A7<M%aC|l+EKP3sHYlPj$VA#wU!0{A#9k!k}vZu+;|66+=G# z;mpST$eGd9aV}33ub-(^#+eVX0L!2ky{R~J2qv|d)#1qM{DE^>Z$MEp$NG`G#hHU2 zSfskU!mk6o=lNv&A455p@KGgs+MvJSJDZ;+_FmMNrk$R4{*E{lZ(#V&&RzkL%h7OM z`)uwsKUKfws;N3LQ8ceAIvcueuF4r9Pg^kRlQ$-gNgG%sw`xT+Kh;;5{Rdx{Js&sn zqoR$i6xX#!tVYdks;eoaA#~GRg*$D2e7vxxK^iDYFAI$Cy{s=uPs*U(x7eZIfaql( z+BDPrIu4(hz-G!(O3i)~m=w_m;3<WTX#A-Bw$RCj1=^z_%gsaZtm4voDIzvoYH{`( zxwRn;nYCEhAwy9o*i2J(Opwr_YDnGW_5rN2Ho2^jB3@{&&|b$`FsCv#MG--+taRzt zzXh-`5n*PlpfMRlJEGC_H$BS?%rjSFW?bGMH-*MRP_W)uR+RyGULee`D<A3xk)y!- zH6c;V&+tZ6mnPXwtJMiZ8C{%k?>mQmEX9Rs)En%YXv|k5=iBZk=hepX%1a#Wb{+c; zU@tH!2agJ3M8yLbCer0MARWU}A6AAQTLBT&oKbUHXlo_JGzxhwRZUwKXr(_hg#^yV zNY)Iwp2*Y5ekesEp^h^eXoF?J`CpzNPQ04n>hd)yBhveRd7!L!aeEZT*=s`<NTO<= z*sdPgv;9bg)0XqFhY`|<F~~3=^0yFS#*+&R_2DWP?k~2l(Puprk1UiM=PJZKz6a>c zyDb|TC8a&zP?j+c74d#4H}k`vXx2U{mfWDzV9jClSL>&dJrkX5Gz99dyxrMGxDbvj z8iF2=?msjF`0Jw7f84=UM{;AG;1kLpZbv{r(*?KDB}RrT+gO%MiRSCf!ceMXtnkgO zF+|_NO6C+?Kk>Zn?tZ49?6Q}HoC30|Qg_76bNwnpQU!X%&bj+lEiSVfx!$*yUl7Pb zGOJciE5rG9*CRHwg(O36WgqGoo@2pU9$ZPW>fhe*>eL|ZIxOo|IiLoTB%&oW!0>dV zs$gQsBxn*QNkJBn1!4qlavzB2byw$uz*c^8wT{e(;V6OQR_9XGTC^O0h6D&s#c+kc z5RwTD_l%48lUSl9_$Pwf?xtN2MNm}0blVAP@xS!;=GnDe2Fs1*ScxYVv+%xPo763? zzzGIc3p3$SO*r$|DZ-KlqYpVqY)IWVAWTF56syINAWR<qbM;loxEqZy+705@(_tJ) zmn}ahesnyhzi2|^*g0syuNXjnBJm@ow-A1RZAw89(v${R^8svkMi!x<5Mmz{lRz4V z!bWG?Ib;9a@whIZI5H+fg>`9-ZEy-k77;4kcdW0i3V5t{dbI&A&mhd3N%OZ)_+we; z=kCt|VqWf_<(f3wilY{Oo8-A7N&Je&)&dLAd8cxDL^PrTlYbeedjZh*&pHuJ<G3A5 zQW$c3lr=#S2pQQrLrQ~F7?k(c%!C4CnuuVWu0%3FmJ|)X2*r?#n{9nL|KXj-oLC8K zfVx7`HXDP>kk@bZDGv%E9>Wkrf$y>_2Zm(xgoa>ZV04&G;JPrtQ_8$rz25>Ms2nS7 z6g@yb%9VBke$p4Ro)qx?m9z~bEs|fB25+l4gOkgIs@*X-H3BnHs+{|%^9e)f+XYRV z4G3J)g%IV8tl=+EJ8*D9mw~!4y@Lpa`)Fj_jq6bb)OV1CVZ*R=kRdr(OwkZ9G7lq= zBBEh11T;nLeK5KHx9YJnY1x}4%~-k}I@U2iM0&O``m2{M2~B`2oI!fKM-+*kj!l-z z$6zi8lFu)+im%GNJ||$e!O_hOQ`?N#j(M^d!!&B-LA=@?D_h`zyw9m6AGgEx_z_|; z_7c=8lScRcO67b<NN2aU0^azN7uoAhVrq*)<GL0&#u6~YdUX8tBp2i2cE5Y~jPr+< z8dFph8tl95t`E=!9I?X+1olTfg7!rr=*w(-gBD<Nz(=w49GX&0(MgYVmtGN(?}M{# zu)-wRXP@NZ&3|8#Pc0e^Q1ElqCH9<*fc@<bGq0y#ij+f?<_uIZrHMFHm~l%ub(Q;p zfvG3;zoOJAAA^+~+JCx+L_T}m-n~^~YL{G)StW^>as?)$l5U5)LO0;h6A3E~()|+- zScCbLk%(on&GeXP(RJVWA%~CDj?5wRL=F~a?FP5<J(`LWhW=(8s%PipvNQfK<&ckA zgUCc|1*v9GoJVbGKUKKHf1c0gu{o0|R1ul@!I+p?RTkty4hGD-xQ$GxI+eHQJm?Lw z4;U;Na4hsQ2zz1&L$%wG^hTky3q(OXHx=;c{~^M-koko<+yRBEF6m5QF5g@h5;NYF zEzMQ9kS)%cuH227QJ(ezvDb<3R64do>997sk#0Cg?TfLFy@qbc7mt#D5_b*BQR9Ko z2l+73_%dp{;PZMev3JM>x))l0sA?v<R6sFzW8K`Y+VV*n;RKhTPiIxFcbil5LE4to zY?1sr?KceunXZMK_cO?eNG%TR^8^TVr+)E3cgO6uBtsKTOfVy2^_*nyxiij2aZKR4 z&)hc5V`vU~AW$?&e6~()cX58h)w6ZRoOX_)V6dhTCAzYwe61fSs_m|vv!Q#~48Ziq zmiBChe7LDj1=x{ZMnJ%|is!K}X!!$oGy^{cJ<Nc}G?1N$`+^2qNU0xoVEP49ezm`- zs>hD~W7>em{#`D%RG%GFiK%#(oO(eugtTLJ3nihF2K}RlfvHY%bKVwqWRQt89N`U0 z4fXm7If>wEtwkhJx@I|F=1P2leO+_rV5+YHK0v{s_wv`<tqIE<d+f1m_{VV7)Gq>? zl(^BWv9anG8V7QWFGxHZf}s<(cB83-KYr`p^O&MQUB_kUr#mL}PByI%W{FX)y?SwB z*QVkA%#b;-`3li9$%XP356%-L_*1zcrWTJX*x>8Z;Tnmyh#t~=U!^NCV1t(FF)~YN zKXK;B_&w&1hloibZeuTyQaYE}k#r0khS```<d(ghCXpe#w6y3OMtbbqq_S!Q`|Wi4 z6-{Ylu9p&fe{J%*5-lZk!J$iR!^e*i_1WkQ76aS0usw32P_vjnPH}c!Jj_E@Jaae0 z5QN;*pujyP<qKiP^{(p}VEX2BMTTAEJX3mgb(BXa9&N<6dVHR@l<LyFLocmxueZhG zuwU`M8H}~}V8!PDOf;n$?+N?9qe4Jk=dg1;7!-8N{*^w#Az$G<wDT5;TSj|t*o;G4 z{(_9_5kj2qu^eqYk+|{TW%u#%aJ9R8bad3q+27Ol_4aOle>unxNE<vp?LI|&x&3uK zOVZH!;{IeQc=q~ViqF9*?ZaEb*!A0N#2m%#4pC0VRa{0)AtALrZn929_KF7Artf$3 ztFDL9xRWFYjp>ht8dvBb1c^MXrC~D$bLA%|0V`Xi7u41?krtOo)7qtwc2vjM)`(3q zmj?nm8jNy+7hs<i`ABJm^73)cB4q#Z;>y!w7t*#TgQ_|c3A{_}E7w+YF#=Q4gQ|*1 z7cCV*Pel{8-i<j=8-nTV#`#wGPf+?$IiDIy^f<R_G4X9Zs@*PocmrlXfy29#t|w<b zaNcTB-fB|bYD3=Y1!p~*ldd&QpWBo2d{a|$eqP$cB|t-JazfhOS#74SE;chG;pRV` z=Z9`tLu!3O`sqXUt1h<VLv>o7Z(~aSpK7>kLK@0hjitIS)+ZwY;iTM1&y*aTm-h3b z#$VM2hHDxK_?qG`u)4ZWuAR%FsTm1f%hPIeC*=@p42`)arsNmyl^E>20Iko0){o-u z<q|bLXEiVz8%?E;KuCFMxoiJl(O4I2_)+;^f%?qZSjUe%ku$_7)rj+B<G@y%hX)TU z3Te<36hBe{oChxp+L22D^}yDHVrui@D^YJq2HuAPiYL9GJ$M{1BlDv;{Z|0Ni1`0R zdi<2k#o6giy3;QwM+Y}_uVIS|(}x;QST%KdvvoI&1~w8!riZ$HXOXfBR_6z{iEm%5 zF8<@T{^N%K<I*GwDev4Ixn$l+oZTJWKe&_I|G3ltxb^?I!4Iy{1NaAWc>V*ep8o?M z{sV7GXVHENe#8u*whHp_^S=Ae(_#(>44u6&99=C5@zIC3Xmhb(XTcjWl_5yZ?XvpF zj?;jDa(d(=QmGs97IWTriCKO8Zsg*HwUn{`<$of}dhs=HimfA8>n&x9J>cl>e5^3n z5cVxrLt=lHK}Txu<9d8=iyh-*;b*@6=;xh5ij9;BVTJ<l&u;ewqR>QjVKGUkSm7r} z8gQN=V*H(8BzswCH#ulGQD`?AC?BVAo_MC1A)=e<phM9@5kgP(x}mQJdB`PFEErD* zq9U=<koGY~C?BU#v9bYxz*DpfnMzKSfD!KSUyNJ)A7&CG4H+By52J~Z4fvph{!#ge z|EOUR8jK;dSm6(YCE<St^3ne&*niZ{`@beN1ZglNA7cJe<^umH`>21^4C&t%$*zjO z0z^R)P=8xL`)Bc-G(^ZCI&u~OGgYLFtq6)#0wVF%+mNQqlBNrnrb~+i<V4jB9GVw{ z1jH#{KS?BC2;Y1$2ZdTu0>_zB3~nwaFatIM>_jFQ<l~edHU{j268w(}`$ydo|D*U} zJ}99N3Wy0@h5m=_3;%QG^q(_4Hn{3_BCrp?cR2qnJfZ$kQU6i8|2f0_pz8in&KUnF ze8_(k=YN#c6jhgiFU;Q<MNz0xBvPHqU?#V?>v@BaW(&VnT|S_u0<P2D8~T{I)js%( zIrxh)_=`38i<Z3AoF9WlMVH>WKC5*#c+KCpcril#<JJ7Mn4+$T`>{QUU!a^YbNlef zD<hK&r{2BK8oBNMi}w1L?vEJ*x1ca|{=3@fRy#5|oEZ+}^5LIPjMJMn7v3yCpQ+tw zeJ}WwHX8y?oR~rY0!!sA&ph)z(1@t)*4;y$J3dVsJW<DJ{aCXL21(^}M6uYBAzfG> zFXp!Q;K4tgqKp$WvjmTnVHWG?BTfh*-%d1gg6at+g-t?cdpKh`EQZM~Vt#t%e_dto z!|26Cc$|-ZU#It}iuT%J)UNQET)Q=KN{W;=iD24~S35QX;Neo`G(?^VRyxBJ^uRc` zu+a0a1eZVck$SxgBzpUdBWDp+WO+Cx3kjchs-|~Ad~6T3CnN8Nz0jPo=q0pJ&;|!+ zk>2|Og{6J^A1yF-2$h7Q-{i6Gi%DYoq>ZKJ=%eVYg&^CSsD;=RY=l8eIZkh|1ap?O z*1!a8ewU>I>u^<LpK-kpo;!YCsv_>;MiZ<}IY;Z<V6U~`l$s16O1|4eBeN_c@t-$z z{#?S~e@#PKHUIOA;}|#XW-CGIASWg3t!(@>!T?uJ2U=4TA{0Nnf-XlHi!tH=j8Jd! zwZ3bgqpm#0&;W9ci*E4?X{nh6S_DmQanStUHD{s<Kx3Rbq~hP%H0^5~{EL4@l$=>< zgs1su+nWTMjvs&1bfEZ%O$?W7<V`>$TkwjN%{%0wfeWsFRZx9S^i?kn5*)Q#)Vz#J zojBjxjIZ?9$v(ESxIhy`AhZxM;>7iL8ylPDLo3e@s{Cn<JX_LgtU%Y5)re|ne@(^U zEq0P1fLcXuNJbQHlaZhy8>N3%8VT-mJpQo>WK}+=KFLXQBqm#~D^;mRL>pT^>YK7E zJkF+nYUsoW$JNJvE1l*v7(mPN{z<WIbJu`qSMS!{=~afb`!gVBb&sReA^E#p{$pa| z3=?efy}Qix$3fmri)P)QhyCqF*dH5lW<SjGfE#7)yg#ny79GJ02bxpCN2{$SPBUX3 z`ZmW6IZ>+<Nl7Mq@INW55r3RGc6@B-;>=oYhX$@~@Bb*aRY+!0PdPUwe{trKkkYYV zX@7tvA3P{4_r~Ic3{Jw(QuIDT9E76VsGD^QbtQ4Q-zr<%vJ!fV7!}3=RvhkYX$eq& z03wb>J~kCzLbosG;4`gq&%aGP4dXhF4o)1<C`})DPR@#i4-qwKS&Nm$NC!(ErcTc= zl-%VPzM%F8gN#TwDxB$~0<|vpEsA`IEBPGRWBIT@F7|_5su25G2a*0znHF=58x=oj zjnEf^FRwOdHi!-ld5RYzsnv{GOd+Tw1Fpk6yAB@9oss7`_NMJ2t(TaZvK#xfnb1zt zfnc7>!QZmC2m~Cy=YM{e#R&WiKvu=lV8>>Z`6}6cgIt$3#wkWFK7!n@=1oeEvqR^n z|1u_4wJtUvHlgprz(cuB<sQMxG`_Y#?YF&HL&Fs_fF1*Z62hFkr)qKAWzX9B8vrNW zstjtwor))4kX{W%LqXsf`F;hOil|z#QsD~Ho!z=(0IgL2bGEBl9u03W@-!38Zb5YI zjQ#)E`se6Cn&%G~jkB@Mjh$?4+qP|66Kt%Fy|HcE$;P%f8{4}1KEM0Nz3+MFOwVae zHKw~yPj%I&yb86;bn1Niatk)Bz<xM+<W9B=-)Xn~7uB(mtW;}dC6djcjz1PFXP{^$ zjde)nIWLO-C;m(qqaz}S?J?oRE*C@M7oeN%+!!<m+d8))Rfg4tVeqT=AA@)DSEZ2` z{;Tx63yB;xN!6ot3grBtQWc@*jn%TZq3Fi_uQ(|D&H#|jrj?kppE9!n!EngA9VwZw zI3w5U_QAUs%{uaxl;lC0##LH+z4(Xka_%{3GO9)d2&3hOlJ3=!p#_1W;J!eH+NLst zkAT*do+vmhspTM=<g6eGx0?xZRCko6;P;p6>_9(xI+bAtXJc};GdjxQm_B|=ien>a zuDW_c+^Gnd>+`OFQT6kccedYXXwK^$An{deO&c+sAXk1xS=bsN3T(%hLkm^lU!8~1 z7r`kmR>T&Ng*IW{@n6+}N<U@vEJPl9N{X?~@$r^{EbQd~N!B*45BaYGQ+qnHH1i`V z@^|zO2GPq`<j`fe5G-!LOMR7xLS~xr5Fph*W({7ONKj`ylc@)B$c(}de&%AFPH;v- zsjfUU<!mgB6gs5pHVZOcaqh|PNFp~43C&oWn5F6U<bj3|ZUxxxgRNbI1V!$9$|xbT zo(9XNiC-{Qod3t9^6K(S8SleI=89`eySEnCrd~Rnvo_x3Rj|sh31s4kYon?np1E6z z1gRe{zU4KWYlm*}`a^D&sXd-x%TKhPT--`Jtx97L_II!9wlwO70zHFJU(cnFS0kZ! zBltpjr`VSj*shbITp3fu6F*I+F}&(n5ES|0{S1+4)5~h1l?U?ZYDVZZd+@b2DQ9Na z_0}YahTXcAEoKP_zO=vN@_#(mH+wI>$HUmG*=Q;A`ZF|(1%Z#DsNKnyXZ5?pw$|hP z96~2{js}S~q=kiEuY5)j94CYK?~P|e@C<=<ZzG%x@Oydz3b(cE*NE;Mh{cQ&IC<1E zImL~v*<R#7FAqWnqe`p5bKzE~*zY$Pbci*?J5+X7mqlg$Q@2U6_TXW1|Ft)A3--D# z`%^x_zk~H}F$CtUwz?~Q5SzPxnL@)+7&)Hf5z8X)-kc|gQ<gSC<+Tc}%`w;0g?P@s zM;5SFcIT|GHdr3of^ut;gxKvP%@)_n`P96s`jM;rVm}Mh$&4Y3<?nfc@P4P_xh($C z3I4gm59%(le0u)yuxs<jpvN0wtf-OTQy;oURCs@L=<s-pc=J8NztkstsH6>O$BOBS zd%C*!e7SbLd_CVhANW5t%`?bC#)?zmo=0+aYrE(49E&io|D`;FBem7^J!WVm`}&Lo z+k1b$>)<(X>g`5lPymDD+#k9cPmWGOj*{!lY)*a@#ehzM(mMlLc8Aw5=pUk6xl zIC>+tXQnG8*w%p_(zJoI;&(+(gJewJPQ~f~gWYUTdcUP<ZOEAH(x#aeaBWb)76R^a zkbb~2FG!(Xz~)$lwsG~U3m4Mn)jA-M4NL7?-QH%%J+>&c4hHOO+%kwn5k6z6^Ob$2 zG=*l51|L#qMJX)!HrDBnEA}iJ_|Ae-LU0G2vi{yjZ*Ta{$pYA5W7_--h0Y)OV1Xna z1wjgH-)NXB**nKF^<kIx6e2(YoqU{LlUsUnUUroEfv6>W8u)yrY*0kou;M{O3UC|M z;-4G|fh`-#y|>Q%e4mR^!Op2AjgYgT;(Z~^&sF{3y(y^`OXVe0u|1(lz8WncRRJ?Q zC=t@@7*nnuYz<wO0J=Uxh20Cq>HV=-D}G9PshFRy+wGONm-%?7*h>pI=Sh1mL5M(3 z_a9}Q@!tKBaHNEG&P_kZq`Id3{Vz&FeF!o=QjqmM1v(#%F{sz0B;Imtosz>-)SR}2 zDA~VjE+g59ib$>WN0M+We8}$G)i@g2KprQC>a~(~3o3l*srr~f@ztSSZNirtr|kZ- zH958qjHjzT!)t^n)Q~x#PA;;#T>K4QqP~+->IZf#DX$1GZeQgXy9NxDT2+oTYz_LD z88*CK``HZ(dT55EH$M&Jj|E5vw!+@rmFx;urJL>u^y00Sxni|2JPdqKQcuBd-i&er zb6UczWEVAW$LsUU<36vh^eAWrCTwjVF03EN6jZWRdWW5;_@PTc_0<l3a2GVz)dQg} zG1G!@6DmG0r$t|1FdRfEb1ARqI2h*esR?Wd^bxi$uV+x-OtBgvuaHqGOcAt#BlcQj zf3OSu*Q>pF!`rY(49M8ld7TKdSp%1U`?SEi=7OUf)^B!b-oI31^I}T#8Djff!zwZw zz=FRcjepB3VA=x8e9GO(`iv~?%HJh}`fdNxs-wjAI$|gd%HnS^nJbIs2!jpq=8wC< zV9GX?UiHEt9VWo5ZTzKnPXP-yB2+r&L!*GNQf~U~j9z?d)g+a1F^*oscjo7ChG~ck zN&Ao@4Bs$Xm=q$#$rKHXUV&UvqZ#tY<jU7x3_mj)U)CHbI9xd@OF{dHn|gNU{Y&W! zeN|}&&(h}mXZh5f(kFYOBF-Nhvf=o63k841Ey$|zs#t_`c^(AH<>LCtAN&8n3>?v4 zRlZcSW*iMbJaJ;XsJJ&10cififKl|{+{3l?)w_I+H=uj-9dDPNB8Z7ubN?}D-j0R2 z1!Mt%(=QFIaN)O`x3{~Cot?u&GXb6q-v3t(tlvxjr-60x@gIBU^63i0{}r~?Z>V(> zXn#(CG^d0n*O&iWTl4$rS6srXi~u?kE&RTV18THU50udW>dO1F1JdW8tNa4VnL^}` z=_u@}I>6YSE)$H<I=Az18dEVkh3GlziMh2^Ho{FVe73K6LJEFW<bZ{IasHPuc5O8m zPB=jVlEr+PfNn4N<0yR=VYm@fu{4BlC*bX?DZo22zsT3AMqYZI`1oYr)%E^@ye!|* zYEThpb}(YW!iYa~w7;q*y)$uQ-%$-|dILAp2>23*5c#k33v4ZuTuEG-T%agZS<RK` zU^}`;2$kIKK_I=&0}(@YEciVFNbgAh9ffTb(tZe{<Nhr1u?pFGxVVO_8MFm_T4QT2 zciPsdTEF!kk_jv?aAkqVV1ML1qpJhN(O|mygQ~lDV{-W>R4IyrACRWpn-f%pxV3<P ze>z<K$H$*{Gha9b9~iCGiJ_|od3E;jO;3+FuOD72G;(8|FAsY34Wa=!N`34X0s~nu zZ!yWuJB{PVGT=Tgenk6HPq@G3u(ba&3RUdRB?#wIr?6Pr(inMW<5sr&9`FO}!^pY5 z9hfGSmX&eFY5DsWRHu_C47+7_2UGwgLB&y<zptm}*MAg6(TQ7|=&UZ;lZM+JC_DV- zWE52*WH-}cB_-);=9F9fpNT;`nGA>?m)xvpUjB)+1UmXE3<U{AWiJ+7W#T`Ypudyp zuvjU%DsIfQ46|R$8>f@8SF`M$ldP|kFCr+snfgndizBa14h@Va?NJ$JmM^6t7!Ly6 zgRq)0&^zzh!pHNNGcbJ<3RPG=*6<=w5<F<era`Vt62ZR_<|{b5^E{vCeEdIvpG5nA zk=@XNfD9$b5dpYu^^cz)=<U}_Rh#8$Or1~XXT_0*XNQ%2bSq;QiHRBgOzy2wf#94@ z)iyn^=PBYW3F32&j`E8QM=PAN9;YShJ(3wX_gf!upX=)u%Q+T!P@hB%ucq;pBkQK) z?1}fbO=d0o2yZ5BhV!N@9R^wTlP#0%Ug1Lmj}KgrH^B7=%eue(5)9tJwC@AcdTdL> zA(-eE15t}-74ZvO?cO8O{%TMa;c~?xh0z4h6XGvkdyCuE2fUy)hQI^HUm4NMQLB4| zEA8M*dbWu^g6+Bur(;=iDM(2BL#_h}*XAjev_6cg;~!gF#&5rD)%T_P6BzfoqFQGD z+-_NSWdVX3&2=*hzAae_iEKU}c-23K*~i!ybvtn#1RCNz8oc^3C+-J4`Cqqx`eo5y zq)-o)C_qWj$Xv-<*ogM}OX3MTWf^7L5-mra`SdkDa=cwmc=F+G3;W<U^Fb!sg7Ua{ zYyTTA=}JAd%V`pzOzc@Xlg~ho-hFWj6d5rrqy#4JxzlY|UsqGFUB|k~P7$!jJ+Ny# zGc%vyun0@~wW@Fl)U9<<5+yAC>)5FIrRRbtj}E=zB0=7!&-Tqb#5X(|?#*e{^pQV< z_5M*lOfa4i8<$yC61LzyoM6O0n|5aVnonCcP7EC%Q)tQVhfVtNX4Y$5PVJpO915xO zc>zQEZlMDe-+i5-<@jz+Jqw=Z_Mxte#^1QuFwu5(pt=LQT{DT<qM>33rx7<CX5m5x zVetai0}V*vxNRaqTV*mKZXk84cd(cvJp(7rqur~zs%kSaJRew<p6z?g*zamImM0E< z2mHMzLdRgCWS-%`2ELI@?-whVy`3)FBmuQMD?QZ~>tx;8&Wxeq%vzMlhl2EHPHbv> zdWVbKKAgg3iDEly+XLj{%T>Gg6Ocx=di8c-&7%c{*fGni{{nobQw^NL8$3N*^!X)| zqXgSl=#Ivy!`JADmXS9b1Ad1#!45+I<2*Iy9Ii!dZqQ`@=KmSo9aWGatJHPX#R^QU z;`ck2s~gH$88qmGfAR)65DLw-9Fl^!7|^wx-9Et)1s+&6uaf*rf=mOdJH4JlKYbJZ zu_Tg97GLPskhE2-xzA3W-?5w{Th&+h8Tg@{e%#otNWeRlg(L7hJ?_(iZvU-*4;D^& z!^2m3Df<_EkdV6<4kLPI$Oe_^lL6qrJ2dHcb#w^ua`TqvWrJKi)Kq<lg=M>mZ$|N- zws;df*jTLW*8YSZ<Sn(~R=}vTH0OoplkdS`E2QjRC~;(EO3x2~(QL$rICdcs&0T|i z2s9744oAXkm!P?UhNQd1Le0&eKh5nEOOQ>ZzSOGMe`J5eUT1=0485wL2?fB0r6S*` zHu)UHVxgU{XVb`B9Buh61<60iBj%KR)PKECHU_R+a1<cgw1{WVQok@=YTu#p?6Y9y zc{cJ`#=dg0)8>^JA@&H1nWf)Z6t%T*V&DWHGax2}VaUoGYG0+PdWuSjZ(UnDAQ?__ zL@?DKees`y$7lY0y!NajO#@yY)Y+x)uH$PYPGcy@45QlbEO&B&(4T!4^tRwEVbaCH z-c+xy?jDbEjpTVPAB$`+`X|zD|Ar^TTpq)YOGpUf;oc8VM9$01sW&kumlGu_7QfwC zv;h8)MCa4{Lwp%Oh`3~3UY>3YpBvU-iClhDsqpwu5bp{v$X00~h5`8CMhF2g2*P#Q zbf{GcY?_F1@M-=kWxmFb9PaDesTp%vX?hOJacGnDSWIje(z3X=lHoOy#pyc5#x-2Z zu3TzD&e)Yx%Wq>Q%{fMd;9YuO`H0pXWyBjWFyZrf)$;EYcZZm)lp0}gGgy`XibE(l z(x2b4=|mjE_0@c51_X;;o*MV&c)52g_5Y$>nM2NPC$ArusJa{vDySh$WZf_=%biRJ zkK2U5lpBkJiN&F3cvYpVZCwW05WWw-Ot7kz@D_D`5>a<iRH@Nbs*;;?^D>;0g!-`6 z2FP7kI^O6dIY>+B`hQl@e$ehczh$xypt2ikdu@d*GufaW1God&t+7`&wktUUGI?yy zmR&z`R9EYAor-Nr=@O$#HJ-HL(3!G)eEiQ@UB20=@l?A;3q5Yf)v||mzSU@08$K=5 zM!S=QTs6KK^wgHat0gUJ{5+A=Fc1hw9vo=U^(~mWtYcppK}d3K=fu`;;$YM#3lQbU zAm|krV;-XR0J=8<1$lxQ2YWw)LB~>YDjSARUq_%@DO$8aP(>4ye6o4%9aZvzqCnGL z!1VBntvF9TA!#dXIM0DWj6LVJs_^sp1@vn?u2&y*tse|QHKvJlbwQFX%2$!toJBwE zep4n?IIHC_b@!Q$YdF20fz@B#q||6#7?w~SfujC_0rsLQ)<1txWD6W5QOOMj57t&s zFT?G4Cms5-ag=Isz;(-kgS&79hqPHn@A_i#3OKx+1AW%$_!<lnxBh`){rw2g9G9T* zqZTVK#x1u!jazzvPG7f5J2L8g+^GOGK?*y>`;U%MF30-Fn|e2tx*X2Ugmp}Cdj_qX z+_Dy4pyT=h80#K+FkIdC((c<sb;lE8Y=L>j(E+01oGW0(TfJpP5C@+o-Qnl!f!>r} zs0Rq67G%u(Q&pr|G3e_;I96G`5J?L4=bz#&)8gr3k_BVI1jtm^^d^(Z-{ixX*LdN< zi7h`6Igp&fj1$4Qc<}1uqzj?SJJKAC@OkNgJ`^956&<~XV8+`atOp35+^7=RpMU0M z*N$D={UevxpRH8On9;*b!cu&<-V0nXJ!;$&1hVbaZ?8FYZ{-sZE~ti#L%vRpIDDjw z8_br>m*mSE8hfl6r+v<;><vED?Uucr1oW+ci8>g$B<j_H87<+c^#{;^!oZ<=H?bQ6 zX<SUMF7OF6G)98S0Y5W-PGGVEr`8{l1XpYlT~mm?Clz4w<0j)cXT;E6tX#pnr9h0I zUXq(sfvV|3sYwNzHhEIC9YY_sj*}2#`iXLz-*w$03>>zi@Yu><)abgZp<R>AYfDK% z`JEMKuHls>W4pml=~*iB6f)3HAb<eqZClsHz)iH{X0QOq9dmzV^15mHVp7v}yF*0H zjq?Wj6&~{HPx2{|-S;g(vSF^W`orvUMkIz9s0Y>(_rZ~y9H}OFw55wKTJxrV9y)2q zNIF;B@4qI8N$D>aw8=V@*uJqw^=u6{tdaTej8Rv2|K&h?I<rEcUA}iu8GQrH^OkIb zrX3NRIlre@&9OqejJTP#bqfp$$itz^+a$LmK(569b{K-_4dsLt#(xh(mXIIxa11s> z1wJBQU-a)!eg<-?nJZdXq5in9XgwL!$inbcS{s$AD^JW`v{D+hYM4WhLbdbmSGt8k zp3)mUcrfG+)<GwFj%9vb)_(=cfvv7m_%)(E^;d5DmY3^XmNP^{gKjsR93-BeNB?)= zjH_I|{H>=air3=2I*QVokZ7?2^S6ADi(Zq<V#Y=BFZ%ihFOc6z4BD~7<>a>2!_q6n zs}M9OKbC^qpw5?i$5n6L&K_rbe;D&`#!a<rJT&uyv!C?AlPF@yyAlFL21xB3OQD^S zt%2*Y>I{;Uh@|)%J8ukx&DBD9+5V@SW?_6pznA1m=f?x*mTm_I24LTM0g8cIj@HiT z^<|N(4iAgX$Fnx0cEnZ-48O)mne?L^i81_?pAHB@Z!bfRy@Ar<>QV`%vT1Wj|K2QD z%%`&{H6!VVU3AuA+e!d0O^Bu!B`Jw~P2)T11ksOJ%PHM0l$eeAPVPU-G$4U}bTkr0 zA>S`zt3%botI7IHlN4c=L#{(1DUpt_C+0u@s51gl<5Jd8Qc99tKf(0A`6GT>zM(v7 z0|AV?a=S<S)}SuZ5%%#ORr)m=J0rFl9vobVRYue7$lOl+$ZUYh$(4d9`>rxU6MT4p zlBjW^NCbojX(WXa@{weIG3byy47<|-<)15I*tiTzitE)Gcy2cpm;l~kB0ubM-dGG= z=yn6>fr&n*kN0Ai`3Pua;|^rn*E5{%&$^d+yw(Skt_KyAZ_LBX8csgn;O!P(YJDJq zPaFgHEf0o1M>v2xaH*D>D6xt|I)Da;@XY;p_swpdbQf-a78K7eET(RhAVz$tHCeeg zSF-AU?L0T0;4Krq>mg!ntss*6-%&RA7j0s{Z1GRf=sdK!z^uTP;4c@F)wc~Tk7Zh7 z97^YJqJ7#|^Y51$O{F<^HgP}x$^chJBR@+8wyCmZ0}v{lX)cJd5P2=5P*>ax=5|3d z5?azBNq<}=cygHmrXJzFNOQVb&906<FjeZ3P5tMOK)#ny@S5`zNP-wK1dy75AwITL zns$HHM~6}B+V1+Z5l4<+m|dhUo?Bd!G?~=&G6gJ!Rai-vUpS#yR3(&5Cr2frZ_x~H z9?{3X57;Ml#5;6;UNq*TzAtrI{n`Z{&04f(f+LCFWaq5r_abxnN7Zz6P5t7-avOMz zHi5Sr;?ggP(-0b~t|0h^aDDH#&KwV+Z$GGBwwVzOxg4gBs0+5H<HQ~(Ll?D~C6d}m z-nQ%xx6pQ;p#p|QZOG)po?zXq6Dd^iU{V{;4KP_|LKb1Op5O;tO|Nj_m6^~rR)s0U z<2Dfm$1DU2arSj&x;%VIm6C@-8-@KO<)rpq=PhQ<T?~~(kigWIOUALAzcYPgh)rh2 zT%s{CH-ZNxqwG5)amSTShytbXg$LQIN%}Kr_RC9{yo7GFfjv_xkMk)kkDWmZ=BXZz z0$_(1@lD=7?@*}|KM0&Y9;|VlQmxs$E4F_KnAe=qI)0N1kD|#Y2T7JZCExrL@wWN1 z4N97hwBB`=8H72^dss5z2~Sl+COuPBNi{I1wAMeEFsbk`E9h6Ui?O!yg+9hoH{_;n zVCZCW%?dv2AA+tt+#I(sCcK>qJ<qxcX<)8vZ`y;`pxfcGS{$C8WlQH6iX%0Z1N^Ja zL_7OTDzvlz>Td)29Cn(ZCJrUPAfHxHKrs+dkx`jIlZjLdX~tk+=`-_7zU6zi<p+!- zm5YO^6$Ayj3W2E6f~rvlma7N}(NF}Grv_O65@ajQ#l<Q8DR6Jba$BktR3_EG02CTq zD>JdlFcFle;s5rK6mw1cej^(Ek0}I#gTXG3lAA=3J71WaM2MRv&{a0TRW`&`Hpo>M z?D!|h@lV*}pAg4|5U8Li7|1XRup{y6*4o;2nd~z&dmPB9`KXE!Pv=bM87Zpxze=eg ze<~4=CG7>77NX1eSO0G{Rz@E41@?qZ576*PteMN=6JQjd!zLvu*hLp)l_yvtD8<2& ziQ?m>ZNp2w3R8|yh)B{Ubqk8g6Z(fy<#}utc)@<6^U#cuveCz_peW6M8_g%Ck@^b7 zwEj&J6pNPfB5_iX7R>OF)|$TwM?+&v4B#xILZbL060ajiCNHT<Zx#UfE}d&A>&cKa zhzg3~aT3#Mpdx!gS63gRQc_s6gE~RTGN*GwRoj!H`GkVg<o~|$-D9Wt^>;ZjULHTK z6sPF71^O37MO|-Z)JSkNwvvV0ti3)ml}Nb6c;&AQT3;D3zA~ulrbQR-^@>i?-t*RY zGL1Fv^_v!AKvP%)=4D6eL%~uMm{=6b#$_sKaLA~}LQ=+MiKuXjC?=rfbpfmZT`n1> zGudd;ffOBiV6KofouHTsD)M;XtsxjqO$u(|A23x>MKAN~KpH7}1Z8Vb8j@1prYFJV zgA^$077z>+)!#b4x#PBxNxHZT2Vb3*Ni)WPpzIDxlV1$nobAo4N_ksh9}m?>f}xU- zNZW&2`A@SrM<F1y)v;1VK!(2sG!7aoxFJ|;g9=BICm$q-#%tJe=Tl((5))EQP_z6H zZz4q{`7C9V(t<3tEJpaLEOS8(i|j>TCM8WHC^ncxiGfs{kTtj99J$#Z7#bd)q$HSS zAXgYYS7;8P6O+N~NeO=sv9~^;fV@a(tqQSwtyLOuCv4*LDkQVE5n4wK!)?4xI}cPr zZGicniCZTH+Cipov%6MJVBJa~cA8-5$9L8{zqQ&hNBZ#gy6-uDrBr|W?0M_;De$P^ zJ9i*J|GQ;Yt5*qZ@%{3p5AxRF>Iv){R?n@&I}ig*1%zC|5e=Bk`oF|aEVLVsJ^89$ zH+C<PNB`^LsL(=pV81@+|IkwV%%T@i7br3q*p9#PkbCZ6_zZn4{aouY06mU>qUr7! zs+nWI5pd~K%7Xg~lmtC*6Q{{U;oijkEqOmj>&Ad5Qh^8~3V;&`Kobank!rs6<KzIN zUJf!x6$tqM-ckVxEy_IdI%V0uYhl%A4#g%;MTqcOg$yW*<oVphsHupDL^B@OF-aQG zUf)b_m^Q-_IYz=W0Wkazn7wC8$sF0op6Xoi09nbe<5jF>h?B5m2!C@K6V+Eo_{1#( zA<&vcV#6Cyi$pXdDM+|iI>h8eBO@x%^~6Y{2;EQk;60Ee-F-HzL{1K?Q)DXRF4FQD zvtpt}S;pO%TLb4t5`0>g(dencD8lmw+webm8j^*jp)!AVPDCh1@Uf_&t#}7W#`xix zrM_lT!guCi+(;$X!#S#iU4;e*V_{Ix*Ti}gNmxc!SYM}3&dxp8L<mzRP{u?yQzo3$ z(J0AH<oU|mdV4C<qDk#`Bkv#X#F0Y|iT<YLpo@vrX2hW44bo=JprCt+e&*6(sz-@q z<~pDYiR2c7pofX(7S=#o=rF$!-<a@yFZOt^iP9kdLgYw!tRkNqe3Px${kdnuZ$ron zD`yV>tO?WzM%sOqz-%negq&@1fzzxOdxjc>E<+gNf*HXzD_lkaTTQnDL;FmZ*)?~y z=RB95O1m`J!(GzS?P?Vht5Jfu(%H0U5uT1c_8j2bN#nJuC^k@YU(HlC66;gMYVJat z7^_{wDSX5d1(v+8Y6F2%=0r=#9y(9IELePj5ij(Er4Ei@iV}=10_oyC{6<*xgus>9 z{a(pQl)w^{LJ%6)AOLY89DOEhoWg}lDhhL$DlPsDZ-!K9E_~)Eot-EN26?PxVg3?I zAo?3o37z*WDK|jG4=<|`O=vqxTGId--Ps_m>;)aO3WZV8Cq80rL8e*OCrJpeIkUHO zXtw!{JMdM_bDG9-CcaPKD`F|P=LuCVv<DMSZWvK3=#(bM2ND~c24~#5R4p@{Dp00s zPxMH+f_t`Yfkr{JS{S3`q&gb?Qcw<4yYhU^nD5sQ#sL6*Z7hqWF_p{0lEX#bSb!_I z#9Otkd9WY;h|@~#JIw^*g{CIN9Kqa>G<GH!EtfEyyjw{`Iewd)NWn-LAQnSK<HxSQ zz?EZ3Y*HXA133{pP$?%n5V|@njc*>qCd(!*5PT-GJysBFkmiTo;nFCsOi?EzVKjE4 z7$4rSrVOxJ*E$G;gqEv1jzh*Eb5Kdz?VCf$k@0^>qDEBs1xZDc@JE^{QPx3<w?nsS zMmVw|!3I|R2<>aCL*2F3`GTls8)j-{S0~YJy-%AK7um6nHgdG96m8wJvM()HyFj;e zmqbL8NEpovNG_Ie{<G;PgU;2|uKiPA3iH`po(q8covTvXf$>LtY`T-2_b~fY=&vH( zuZ-_MDDXmB$9)QaD9t#9){dq03)>2v{n@ob0?nRIAFYCT6qzCor!NisdB&4ly;CMS zC6X<bHq`K~*m!A<#zLq=V@kJ>IXoD$Y{Ao>IEEc|7!3crVE`{kjPngCiolleu!P{~ z0jMRA#6lFYcL?*#^ag}=+$m1<`sSYmvlj^NA(=|Pr&lCXx-Pzi6a^AU4ZeyLI^%RD zSt4{GR+uKL8LfnN0#}f)C|6;^N&s&|f@C#5kJR69CxOnt$m&47s>$Mc1@M25BmWd2 zHZ3ozu+*#<Ru{e5NrPW37WRfK%B{yu6qPgrjG8g=xdKT`q5JxfBiSL@knwAGI9qa| zf`X;h^CCD+`-C7*s37l&IZI8462tj^QEnuR9m7afRf?h$Vb<1b%a|U6?gVdg*c#58 zltqk!3tRAcUcljhXNNg(Wh)oUu=InBC1%|Vcga87$<0c(CgDJ47L%6YKrw@c_N7_` z&<mwkGWS9(#yr8!h&j^*<w}UJ>ZPGkI;ob0$PndK?`uUN4}>z1(zQe;OL`-|IYL<J z6Mk1vE#{Q{Es39Hn3tuB?CG_`i=z-Q2~BxfDTsk0r+EYQze;J~X_3>CczUJrrSpRL z){ceY$fdPFS$3ghbq10SZUtsli#Gv?n086^8Jhp={=P9D+E6i3Qt3qGh~Ne%b;zg< z!2tW9c^mbQ$Z!fWgYu^8@V$W>a#rNr%pHid#ZHnSB$)s!1iG)LL43og3IY?>1d}~A zL+OL2?5#|~YzqY8`8H*#NI)x@oPPt0;%ylTn~4}U87h*cQ&lB)YOQV&1;`RI<H(=d ze|3k$s~Ke5C;~(vl2%vwVtcq{e>3|0ny%<-9}E-inwWjS#YP`(W9?70W`4La`Mxn~ zTPMtv4B-^>z6feM#*iX%C6s7$jXo(UOt^wbBp8tIGW9!e7%APt^{HB-(Z#q;l4@LG z`dg)J@P`3Gl6iCk?o1LT0LC9w_)`(4N+fU+8ea%5+7|R-5ieHpssYiY?g4NmO;`%X z8Bt5h0wP7$Or^v>qy^o@(Jtb0xcgZd%-z&(+TbDOn3Y{YMTWxvj;%$HUD-(3^kO9C zG)PM*Dt^$ii>bi1tLgjFM28({Fg34;>nBHUg_bH~2rB>^%9u{pz%32l9ecg8*un^i znFx+a_)<NrFi&%+M=97V=1q9P5{GGFb7-{c8o_{V@#Qb#JSHX5kbYqVELb=;b1J%p z-n@F`0*PT%^avFOc$GWHN+w8a+;x}*)_Mr*3}`*$DYX~jjH!TY3p!J|iTQ=AMb#!m z%{Ct%PMGN%9!?t`phe1)N6D_iF~E?m@(>I#%z=9YeX6U+2CZru)#N04UyRL0@{o#( zKD^9RbV<<9j-KJrNw0Ti_rHRdXA{->A?-b;DXLW)z<x7lD0Chj-hhBe$0I98eIfR< z^g#AxUAR*!B+gzbONE$1mfbXvPD!GoQ@|^N7S_%?AhOa0z!((9k<yZ)WegB=2--54 zjY6vbiQNTbnD-!zV_i;aawG;r4@;s$U**W(j+0>_aV@e7gK%P2Q+i>H&yE42;t=<S zh{(tkvP;iMEcQ=V9|`WV8~Vr0vN9~|T9Am*FY=P0+}%kqk^u(uSm}M_h^lWM2>7X4 z)V0aEPVrU0fDtifh!~kE(TfTD{e(q$(wOd-YP{8&``{h0H*Jf;*QTOQ>^zSYYZF%n zPk!<W8u6o`bxTm)zh#~apiIyINDZA6!UPu@`&Y`<nP@el$0UAyWJyqqV$P{*pV0jj ztMbB}!djv&!q%2lv2toe#w?Q7X2R=ISS8EK*^{%g1j7DNz>B<5^fe?4k@BR+aP`jH zp1FF+v^DMH3CG*~*&StjFg#d;fyf(W`|Egs>w|sMD2>+_UgwQ<C&L5q<mQO|&GpAz z6?qwJYq~}dtNsy2y1Wt`Z?lgVscV8LQC%1IeVcrbI%H3hy=>}e^xxGeK~aFNmq<{c z1KFY23J|nP^<B4-%wOd=nZ%h@*4Vy!Ara2JKxCkLMjcnO43TniMvlKdCNoP2s!*8x zg0>Wc^k&Zm;*d5(TRYY0PTZ+o@bAp9DN1Xt`C8!QXpn=JUBk>@+xtEDB%>5yRV-Q= z+lIs4D_E4uR03zafKr;EN>5R+eik<2oNC|a4iGIPY=ndL#Je8i1N~pR)q8udzUBQH zn3n*=OM}t{LnT}1_Y&2v^^j+B5%LURS1|8ac5r~9zZH>T=nJ!n2sTeg&;LTizMY*& zJUsjlyJq$|(w<gC`g@2W<?eYOKf&}j0<oTi^Pcn^p}T`AI|or<)oy}#t_U^+>4D!^ z8y_;+z3OU=$fD{djL}Ht=a9^II+qME)2^i~fUcP#PIqley|u5At#?Q#(^jRSJ~rN& z294XT`|jk)KS*YiyiUcGMr(a0o!q=DXYalk<lnO@^c9NsaWlC})N$V1IU4OM?4JK* zEE;wQQAppDY!G8UNzRoG$9RfJK>^sACt-Br=_7b+T1ikXYJmjzV5A#XxJM=JA2d(N z4cKnirRzdaczztChJ}c+ed5jF2LnVU@h=n4P0M4RnYF9N4Frr7W7G|5A5kL;4W7xB z78TPqtDZm1GEJj?UM;$(*yb`Az6_DA+L}kbdfwVK$PvaGqNcjk$JzGdMF9>a*JSC_ zt9=jauo?Pw|Hn;c&78(mNFKY{b#3Mr8(uZetfZV6B1yMZut_e3$A2ZuO;RH~+rG;k zq*mn|iVR|Sr<xHv90)33%A{{rJ#$s9df<(`xq&Q)S(k7dIfWSBL6>f3?s-xWw-6lg z_&Ui|W}8ld!=Ju0;8X>ezIj}OLA?>bPOMpZdZ+nyDm3FvTeof5WBb03JrPDvawj<a za&H-)?f?Xp^h-^xgotb6jZEP?jK(IyP7Jd)r?5-EVa)rol&fC{#t_`6bXaVl1;Hbb zSdzVX<4s#9J{iHscEwg`HDEedxE&yLN#VT^hLfJPLkgof-7y1$oq3mmt$zi5Ikw0W zpKh1!z=RG%P7dw<`NwusWw-y^+vvDn_G0YfSr0a8d%dQMWj=&;V25#z(#tEt?xIpW zMKp78S6re)hG30a=r)HQQ2NB}=x}VRP)5dG8r`H{{u*_0zuAK3+}*6D8xZ-9f~dTg z%KRqFt?SY;F4%zsQlWn};un@}NbK~%wM;u5VPh(t>3?FNB0&pYp!NwAhZ~9}0t7pc ziG@F0Ws?O6UJsYy-=x5H?*kWt!<T~F3m}Dw<}k-!W|*`CYC(89t2~jnajj{F<DzHy z`sKo&_|<q(+lPoShX%Sy5d6gdVFCxp3PRIEJ~O8$(G7s(M)f^$JEI-_z)fj}J_7;X zHB(HXyX$P2(as1+DmW7{8%}Vzjy#`bs?3jn3p|FkC*M=0XM^SC2AC8Kzc*)%RCpQT zFUWj+*d*P#8<nLFj`c4#d$)D^#c(4B7u@QS>6123NfF2~a-eCV3@1Jtq)>-?&u*uP zA6r_x;cWvobXA4huXxC!Oi0ep@owgf6Le~~j(ggywt{eJRwKEv;L<-pB^-DUyuakU z)|h(6nDD472Ul<C?1fy(97`t}2sEEws5*=EF)*n+YWtkOXT>n`MA>e2g>igY)uF9+ zVBf|>a}CQrlTCNhO2My)xnk*OGE+wm+283XU2Fwv);kw{TdSnJ!BY(M#^%*+PkRZY z;qo<tngcQ8o-t?h@$1cd@Vx}SwY1w&>TDwPthmT7?YAWr6fla%SQEmDdLSH#A(BsN za_Qy`OWQVpsAX@oRMF5MK|F57qw)Gu%3mC)%h#-SQ6pw{<Nf$8FXV%_!qyE)V(N77 zrr7}q`$O2(wZZqEPC2zFDoxrUZ(3FL!H1g!7pxjNxcBV-iAVT-O+neR%UgS%6?EgK zq+65pZDtVio}Uph+*rP3G1;|gw8wD_s7A_&7h(T0bc_5){7rTAll*&69gII6j{Fz8 zr#-PRQu1lsg-YgU2AIwoK+kL#myyo)iYEYuk?oW?ohRI3DlI|IRf<*_z9WMM@M|20 zW}8-zzTbhdn*viiIVER{{NcC}aF3bSsix!IQ_VSAz=v6iuUS~KIeGaH^$PJY=*54z z?)~<kFXZJ5nK7gfAC<2%??3ficM2jn{huvPS<CS+&RN`lvAa8R5N$hDiw`t(Eph`| zlTMVsFBi>hnq0%e2`VqN1`)f3bauYYAK1TfZm)4V30KR9f5G(Spm|(1n4iSwaN2|_ z<gzqt&ref4G8XT5mYEMs7s&g%RGSDSZiJ8F;IavX6+5rIjdK+wG(Uwx$%dAP^hHXy zr!+;#DCt6(M@Gj=&qlHlHJ268UzPyftHrF^#ya@b?bpS%gfG|QF)djIN=s>-C5gv{ z`o_I;trU(9O6@WYx_E2+;!`-;Pd-W2WzJB-D$mRWj|R-Ylp>Z*q10K?dZf4b><5dx zS8B&~?jGsQ_A?!7dy*QSW0cK;C%dvHxA{y}T2P$3GX%bsb<G=!+w*I(*v0^_==ELC zsa!UO;rH;+7LQZ@s#a`C?*9l$7^*nQAv@6iW`4gJWC(*F#R!F0NIPVfHqR~Z<bIei zxsdlNN3PClUq{}3nDOPR+oF#Bp(a*2d{X(T5L!m_I(ln4?jVcKsv%4nZTN?DhmooO zf?wZBmu>LmcxJ4qn7I`WwT=cDg+BXbc()D78ZuK+FM;eEXz)rU8Sufn`A&`Ve)ix9 z!5z0U=Cnxh$)xDt+yv&!_QYk2K6C@B;u5>$H2QtT>3#s}Y!rcxC7jjEX79USf#-bz zu|66|x+WUPDl}v%5hSSkqRl!~z;D`bdzNVV5pr^vK7StEv;SH$neoK~R>NbKA<==d zbnm^|gE1Ei+Od%X+P2&Z1Dq(%?B@vGR<CQZpw`vHh<#!wSHTnXd*4Q%B?v7AADJ>Z z5$XovW`6$@<|ds#6XfKSC!588k^l`+Am5TKYNE4Ww}^*Kg_|jSP_o1k2G>p_UFcJL z6#H~sX%6~H-5?UBq&Z0gtXD#c+bitEr1>EB;hkK$I4k3Sfq7jI&VF}b>0h)iWhMLq z(;I(WaUqBMtS%!G<6kc@&X^7#(fT=k2lqBZ3EvgVk29QjNa__wZjwc5fT~HfWj3#% zNI6^r<x4nV@pB0$uL9pTmDW8#rF;D_g@8c)QNL^JRfkuA{iojsaEMEY=c8L=1V`x; zfZQTDsIkYzbglXQ)rc#nnP^!r&G)-Nb>a03>*}8iEMk`&x1GBF!|V+KEymRKFUVwp z^RKJtNx(868Y!vacA^4lTVzAOeZGL$tVSPn;S>D--*n&=HnwlqJ_v|Z*th@8QaZXc z5PDDVgMXQ<Y`M|{<@xrXkHH+2b?-l)nIxFNe{o?YieO(3{L4YKlqf=K>-?7vQ3?5m z1p7aOm#Y$B4M-HJu$_?P074eIhu+aEuvm6c#&2a_PQ;AE>{V(NIulXNYK6InrozI` z0)Al)Z6&Ce9RWsC&49F;{g39O<M?Ny)F3E}kk`3zB4i?bg_E8tYt1RUZgtd|Wq5Ud zg%@b|Qb&g~Bm7U#nhxDpf8g^A4tJjKoe9aW{Q1qI{X^|DtQ_b9K1+U2m2r>UpK)t^ zxG=O2bUjrGJTLJWJnoO^zqYr0{EK@VtV45X+n00j-qh)K+pDVanV1;v_B&t;Ti?|& zxNmRiyqEY~Rq%bSB4zZP<=8y&AHDB>DiIf#(EofP@|uk@IPhQ5GsBrCYCC@}V05f; z<732rPKn3zn}8Fy+C1HOB>I=FL&|wXc!}q1qE^S!!+QOq8$s$sNUeM}zVeJ5*6HjU z787>-<f%n5Ua&&&bQ*8j%y(WetYZ!s71C|1EH!nK;X1KIcA&RRu<MqpOu96A4jvwM zPI!qQ^1^X+zasgsp|k|9LpDGFf$|vP^YvyngPS%79qu3A6KaPQt>qd+YTg(c$7;Go z(<2w7KpIicXtV0AmYY_^WY6Zvrjw6p+p6z}^6m3s<83z27GZ}Y{vp;>&EJMCXSHXV z>Jv4mWc~jm0e6ist&PpN-tN6B)4*^vy&Zyl=*8vy+b$XKmHOxheAmVz%kA|f%XT%F z-g<0SPTW|zv?S8y>E}3C%jjR*?KEa@GuN#)*Cp_)=H|`|OBbaP{maxRyBtkij_#+0 zx!?=#@l25xYbGn2Iko9WYEow7k9q9RM$PTYmCoPQ{xYjgbFf9lmL|Q2#acqetfYX= z{!*uHIUiVlV>asrmP~bihE%+TG}L5Nui)9NUEF47pK>ZUCRRMXDZ5E})g#8}Dtt{c z?Td!~4;wx<?k3rXGkLpJigh*HdVOd$8~lshVO?DnTiUTr#S`trm7z&HI2(?SWlV-F zG134Kuy4dOPGHyhxeE9qX>nLbLob~5e0oDs^%LG^!Y*FGi+6Fy{)Hl))yTwYR_eBG z=pj{o>+y!#XEA<@QF;n%VhFR@O@AYOE}ex^ngq_equ+fZXF5k+{9(3DR9cH}f<a2v zjoi{W{er@pgD^uO9gfWSo8qKcRQ=ym`m&lmSUscCX_N8R=*kVR`4m+149=l=b(X=~ zi8@$yxv~`ClCCGC=TNP$&Bmc(xI$Aef3}`pZB2Zy>7+tNIP+-PsC$vUe#Kf!+{gI) zr|)|5cui7sDW1l7_b6+X?l-kgU-z$(!Z_`5p#?rMk6JQ$MAEN)kLKfLkWkz9Y+Jn~ zj;m`u(#%zfy)=GFq^DoicG8)Ws_W%l^-|H|cK8fbrL=D>Jy@w}c3w6#9*)FVw?|fZ zt8K_5y`It7bve0pmhK(im*3Io`_s*QoMVme3v%NB+#i_wI~B4ok>1H<2S*i$S3#(- zRPJDx-ZC@l?4mPhJRkB_e|GYGI}#E?6E)HZ-aK~u=yiLa(pfw4em@*XsXiS`xoO6` z9mEW5hJN4H`j8&^c9b#j-DcL%qTXewJ}Oez(Y5Mj)4Hn3>ok_~RyLaWzc2a!^XSEd zVMRLG477Yq&17UevkSW2(%H;6w==E-pU*5^h*u*dbf-VU&GF@&J{KQVa5E)cUMxMM zTvm$~{zhC&4{>8xhuMr812}9mR2U<HspXZ5TjMwsSR8fAWFuuOBHFAH<;}jHuHO~W zFGHJ!eCWov@%OM+*sJ7}=>%)o)hIl)<-haJ^s~e~mml)5lfE7itT!UC(~awW(lgwg zq|#06>Z?0Q9E$3Nj-1ZTxHYlZY`dydR=9>?T0bG$tqf--AE`@h1J<epCmj4yQ>F3m zRu+x>dpanq?8cOX+;gvcdq*uHE>9LZt!FZw|90d1oMT0_^e4Tq)nt;Fj<0)dOIjSe z&ShLUlD*H{ZW<M{eY@_tYd0=E3^Uo63$?n`3`E1a<_Rm8j{0L#?GSTGZM=xMIF7S5 zdMqoe^WvAA4ky<60It(y(=O%5nbxuk8>a0KM@|K|?*@M;7hTAF#Q4^`q${GVS<3d* z#@$?RdV>izJ104&9J)``m+?JE)LV8?8G#ejX$M;K<t_}kF8qmw<CLl9;to=W5<NFW zaOl&Gmm#}lp8l=kfnITIyn2o0=Hm(6Y8RuLbJLN+X0%IVpogwQJaIMEW?==6-OX9t z?}yhk-x4K_<~~|YAd;S=*l7~i(KsOgBaa2*U*goiu%W741xy>)VNSm}ocG#N3=df( ze^!OPO%sL=wXw1M%8VHE^}ikjTW=9dddr*Xyq>8xo9tPwbs27h`F|1Lj>ORJ37h<| z@*4g}?gR<2LGTmKas4eg(p2jE+o`t3_xEgeY}Cx)Ji+n|8{XZ`QI%F91tj5=8+f71 zr^qx*vn$WRd!m;duD?D@g8>g?SvAaIYSCiTJ>2<}H-9UW(rew}a)g-NvSoYmIe*XU z%U|AgFRj+{=o2nFZ~wyI2nKbF59Dp%8wGgB))U!)sQLjmo2!#aKhbTi+-YF`!J@YU zOP7t(fbA&K+;!2L#Xz=5=YphTQ~s0meZFw`1gBeb+Pr4w1c{Re=eMhhy)1|SQ@xG# zGs@K<tc}KeA!nz^=Y?asGJ)1fD^1MwV%;KbGnZSse>So7X632VNzPhmAfU5e%xLpO zc;pPcw+NiKb<&D_8K$v8LC7i>V_BY;<eN^jOuZj>w5_@AwlTEktI!E!_BOs~rM)4^ zc9XbtyZ%G5R_W3t|4mO|9j2-k-445r+PR(GE7s$+WRDu4{=#6tefnFaeMN3yKXHFL zb5XF;V!>B5#(e=*FTv0@i8(oABiBA(cj*MIo`t^_nTu$|u<<>Qce_P>V|+Hw(fLOW zy?k`Ts@vZ}lw4!h()p3FZ@UOz5d7ZekHhoqnQ&K*5HVrneZ!`>e~G2H^&HWhIC`k{ zSA34wYURF@&sn>JiAleMqGoQ#T5Q~-^(I{{a`F3fIyb9xwjKO37QgP0!t&F_Lf`{X z=a_A?**7%2(9Fr_Y1xYHbnKc?n9lFs2>1FD(o<!Ss9}E%J@@yBa3;RXVfcN|aJvbd z0VZ>DJcNhmp2)-fc4@o4$6w@jBlyeQvfu4z>p9lvq6$Z64;N=?PUM;XCp>qt>3#*l zd{UI{C=2D~>st=ummJtOzsE(vw)+d<VX(o%sk!X89H&nvcBJYcfY#_ylevEAJ>orb z;!UvqBzTmoZz_X%KQ?H283BGbCKjY0baKw0uE_htduK2ZO{B@!WT?&ViS7aCyyGuo z^!*%V>Q0EiQ$y>3S&NuG70$$2n|O<kOU3EfRW=soELYPu?`FH*boLmy_wQ?<+Cg@1 zpgpU`DhD3kE%s!niEK`M?orjH^z?^M^)-?H#-HY9_vs~uk2(5xu4x!Q=lo5|4u;LF zny0L0xg1Uo*1JKp5&0}ml;%Wk0q_mCAp^)%r@)xuy1cx+8OkGuePf2l$`-jCRyZZG z3s(#S`_>7L&p!s;UIwdN0$J<8&E9Lp(>OzRQ5CtO-=0pTnxj^?0ecr)q6RRrME5vO z*R--=-2CEFyIHfL+Q8GP{G9$~j_2jn#L=-3;@x56UDZ(wMH_>0KDelVt@d%#UQxuz z=;2lJTFiL)R&%y-9<%c{&T!*QXZLxScD(dQCDS**VVBH#Ybp{$W8?)mJXi9E4(m&G zcid-RV7-@&yQt8xD7DDyit+Fjx#ual>g8~g*I|&7@!gxV5t-IaShX9Hh2n3=km=H$ z$bykbjDMog5%inZZ=Up_jqr;St>#l7;5J=@a@Q?0TH&8gOM&)$g)v_jyi=|?cTec* z2xTl(%g8!~mc3mm+Fkkr7DB30uAWb9nZ8WRa3%b>A>e3he+a7@dhn9B>FHLfVmsT| z70;JAoY<*|*B$}~lq&w}=hp2X-~B>7(Lxau33m5VUjOAMVVBumxyyYzZfr;E#LcGO zTB@0%S29L<^0lxwtA#zNSDN@5VO@R1!lj)5`xDq5Yrh4B%i#|wTIju)t;R15#a#GR zbS*Xoa@lLmO0?LHrF!<oJlNgoJ-BOBiKs8MKS$x^+{t$Aj#&|f$&qPisnuK$=PXoo zRkSQAJf7H9uP0h9-|V|>xo|ydRMePtIlHss<+#Vm%bf(Hz5jaa8}n}Rm$K<dm0k4Q z+s)a&Z@CWpd}0AUB~G)E{H8g4M>g;ElFzvA?Ox|nfWO%SpDi`McX5{=RRjW$lxTb{ zpVxC6+;V2?|9EmbaEsn_voA54)hufyvh^h@n(lF4OxZH%Wq`lO^g4G%dROdg^6lmP zW#=VYX3Ol&lh>j>6Qv%VS^haraYJm~X%25EMVn{M_V$1WSIw*1#;!YWvm1Te3ON#f z=L(mr^!o_WrO#Vse>zgm`-F=Dmq)eATGO>VtF^CPldD|^A&<MP-c72-R2HAl#YP(= z<7Cym>O%x~(}S?x`KgTqrCH8`Cr{gq_7ZK)X`T5kqusXJD?iQ?<$c1Zx8?an^Q71E zvWP=ntPVi-i|>_Gr}1E-b_Ew`Y!x*T^eD4SHB7x+Cq|!qbO>(Je584DOWha`3Kr-{ zmgz~FXs$A~+@&SHP5!GF$3a>1+?Kqizux!<;Y;c_^B0>RQT_FeHNgoXrC7a$z;i{7 zH=<sA%Q7XL#D}*n@i~RTt%ciVRQdbJM0~&5Aw57VmiAzzS;62m)&n221qJ@9bXGWn zWS5jzdP#$@p|Rb}Xy>Ibzb0}m)_szAEpzJnZ(*IgQ4h~vy&88-67~p@p}ay0&I^0V zl<CR9dTxd-(~5_lVDqSlH@~~31ku-NGPz1BFtt2eY1Sg{9TS(JMF^ujSe9*b^*VOi z&7I)&YyE6YMlA7qny;prRGVkV;3HFQ`L(Iuf;q3Bin0QU0dx~WWW219Mb>+;!ByEE ztT{0&_P7z1-d@Vn@A`YLG~K;Y#_?zAIAe4u&{L~MMGSxHM48*?#(M{M`#VfCYW4j2 z4Z2~UXIY~tcX_$SKW(MPSZO)wbI$#)GIG#otrw2cdH^<%QGiGR8}i}&zUaE$<OozP z<t+&bco=&W18Xh$SPUm~Ng>Ge>srsh=G%g8nx`L&wGHq+-Y=f6K1k-%T*4Zg8ea=G z#j@8?qO_a$PsGrg2>H-0?8nU{vNKf$R#KN7I*EKGzPSQ<q!~^yxbc>mGu;z5NSNFO zXYt&G%Hz=B44`96)BP1#cc#JI<Uh-tD|t^^=G7y(fy({%qntdgqOK;Xi#bACr)FCJ zvhERX>KvZ3qq5~F>)>v2kpZaql4~iB4d?2z{Rl+HDTGr-gZ=Xq#C7>Sjk3vg5_E?+ zd4l`Ha;nHmmH!V*?;Q=-_kNGR5=kT^Bm@ybMDK|jT?nH0ZiwEA&L}sD7DNxCNAIJX zFox*SyTM?h4#te$W|Xh@=lA>Pu66FZ>#S!z_gVKoXP>k8p4p7ivfBS;Bw1^_YRHJH zQ?S^+yE|$ow0TvLIqv&r&8{``q3Pcu^P%-z3u~k#a9W|x?1!UVhb}r2aklGe_g&71 ze{nqwP9S*hUcmX3JBySf>0gN)wft@KknfRbuJH>8v9mc=!?8uEx08k316?ZYP(o|d zqoCaYWnuN7yji*Z3w^KB+C@~DrKTOYDZ=w&r`c_;%cNaFhN{Pjtpnjz1rS2@7fOuD zB={*1{Yvzj$9Hb!Ij;F=dXuq~_;kK1YdX$p#s^gpbEfA$o8}%ocmC<JGZ2GVOEIlv zR(c|}Qm|y>XD9P=LJP_<Rik_F%57b^(qbDOv-z)&;e2v*VK%sn-`CG)*MVhnhE;ec zxi@pWq}?+{=0xoJoShMlrbk#n12s>{(u9EGY4&}j^DO(ECZsh&SS{OY88tf_gv>m& zZhZa#1+%E2uAZOu&CQzCuurOhxTp)v2T%Ct2NW-^a6$S>^oAEgkWu(Tljie8t}kZ; zBnxk(&c-F9{4jNIE)1GO$crp^Yua1FT@Noo?pN<I5DacAI6Iv@IH~zDVoyby0O%~5 zzprRA>`N9C4cWoh<KI`z<OOrTt3u>0o{h0<$^>67(Bcbq@%8f>;zd%K?vZZQi)<Zu z7AGMHV-*4aP;DysQTd4|X{^Gc1)sHFi}6uY$#Gdhj(g>RPsjzl9dYhzW<ffLenyw; zA~WiL-PH{5x0;Nk>WhcC^JQxR+ZnstVFqIn3b&D)r<&2>(<;=8&SJg0jy@((DyjB4 zNA-D^z-R?3ns|N{$l#_L=y^+=?*=wgyK(p6c{PK3L#;`8d#S!N|J3YXs%7W#<j^QY z|E`>oWLv^~vo#WZcs5{ky5K12v524K{IrPgnt2u2_6REfVMWiPh29=$u2M6}2G2e6 zcid!9g(y9{_yTV5qOVd@TKQlRmm?AQ3dt(nh>XBIdyd>_<<2F$TEb9LGAeq}_3BzK zL|RJSlaMxx_l1<CfZ0mHFQk<l%4QE^eI63|{jWEM8k1WS76L_Wl#+`N=lvWrYqi2G zLH8ugL20Rwxe?{y696Lp%wuvp?(L!PRncQZddlMM*MG09=}nq*L~y8de*`5q3hPE? zF}sy22kdk)3?bjEcM2mn(qBq|&yw3NRX>kxUEwoAn7aNn1yB=2VHb|{N>+h?h1?jG ztkBN><8Su}!gIe6Zgz%NyQNP@eF%}0zm?zu24O1epRjm(KsSG1woho?icaS(s85Dn zy)PQF7vy+O>P?J94&}vUU#3*Z)a(xMVh;E?xkjt!6DNIIMN(?e2iUU%zUztM;F{uH znM#h=Pj!5>YLl0{`7=lgd}trOs8Ur$IHA1<v+H=R?TfEARi@aNFlsK5_!2uNg3<8v zRwpk){+Sp+{yurJq{UR6aG-1<s4=C~ggUTvSZ%y7(FUU)HdA5-R+qA`uQ~`zS2?Gs zv2Bed56#o9WL<J^r4S{dEjZrRlfHg4;Z+o0Rg;qc=&0u9Oz1eww{^GU)Eo)72KP;~ zYieLZtNcnuTW4Osz+!5P`vs33&|s4?<Tme*F5p=2*N`m@2f+rxC+a&#<6}&tH3<zf z5P1-J6!pN*cYUX&&@I=wS0%`MDulRb#FF5`4i0%ULJ18V!fqKZxKD1=sw1#s^E)=# z7TPh$khDWYi1iAYJvi>oI90SdH>%kAgpQxckI%eXJf2a^bLXcQx^2SeqoIHC#-A?` zpl`cbnkaI64tHoOC64en3HHRL6BR7G_+J>gwrg7<gOt#T%&V(2>>%cKUjYFf1opj! zS0ku%?!;F>M|$jSh>JsMaYa)wzOa~Hw*HCif4A<48~-Xvrh^(F-}Y9szQ5`rJ&Vch znHjM(4JL;!ZII-BuPCd!yVN~FXEFC4D2l60iZqz3_Z&fN7c7n8dO~-CV@jN)7^KHZ za$#xK>jOLt)q~qo#%U1{SaxH3OwIm`PqniY2_G)8XZ6@2*unOs`MI#Klsf3QeQB{& ze#(?R8IpO;Qdo$m^V_5Cd2YrGi_n&M9v3E3>qg02bZ_-fAx2XnNWPs+5|fjMzYT)B zM8s(z?(Acp|NA39*J*;wYF7xq2vV-fP_>4}{%>F@QKs)VT~*r%m+=?#UY%LzRAc`9 z$CrARPolb)7ulR<Bzotu5#OIS=jQv9_p{iw5U|Zr)5I?aq}C&<?6=YqXYX>$mqKOF ze2+}3<yK3a7cZ!u=T;{eR2P29Ei(*s<h?=iZtx#dwwg281hn!A#^Tee7lvO|`Oah6 z|Gsc@{Mlb4v8v~QdLZvA5HUEAp6&Dryq@7q@Tsc*r$9}&scAwZ7BgMJUSXdY3hjX3 z{dNaB2ESWyn@jf5UC*?%DmSHR8>|5<!5f>Q7K&j`Xs&c|ktk=w)ZfFV)@4sY1|43f zjl=JTJvV#)1%DB;dRAm?x$*T6+nw!0LaYmW=B9ahS|0qa&x=2{PdBqrO3QxqeAc3Z zn3(??SxPkjg%pba-wgCY*(7GoDEBo#beo2S71FA)dSO?zF54xB<{|f&w42y`o*&*$ z!<}lMfg%I+6q~aD6cK`-HYK~Bu6ztndoy=86lC=7ml2a|PodPcRgVn?f26GWNCSN{ z7oRRoL|_i=^~kI()gC505Nri!<@6iBZ7de)yH@Uh9yED5sQXj#rUL($H0;Z<1*vxG zo{MM9H@TIKB(2%q-XqHoNLz;AwE@yVzusWX=FL^8EKb7fK9iCd<vzty=r823$o;Q^ z4L%1O_W3?~gn4-jsZoydDPJLTVo-ngvEpv4@GrEK>EgrG_#5=qMfN4%;K@Sm7xAa? z*4sz@>&J@=3vm6_XYFE=PE7v;^mwQomW<R1PGQe(-AR3LbiuFsPZwp&1DJ}R?_6&k z_!2#3H=U=Zj*~4RagfmdNZ6dZ$^&IHB}gIS*qgHbd%`px*NleHoPc(^#Pc*Ah;HAn z<lWnmSt)dOE#fv^nFngT1I{Oui<@LW{&OD)kBFxah_NLF|GQ8~4W_^~agU6$+H&7{ z4y@&$uX}PyYSyMOZ&QW`3AH^43Hkoye~G%uR%zp(f3qF?e_4A}vEa7S<8qhGUUDaO z?~b3a$d!fjjj6FFV?l#EP)p?9mK#tX%ksEneZG>yuQ~}glOEEu4cjHSS2Q}-yOwTO zQH}B=8hO+DJf3`CwMw~IUtiqUTB@Q@IuAcItS~IHXvPzvw0XS(TIWRcj%T82QVkn! zp0@S;!LMoI+QQR5Q&SE%Xy(qgXj1Lk*=`4U&E<Vs-oWta?U5F!_Ema60g_148tUy9 zwM8ocYLZx*Xs^I3X9<o47mvT{TPP+~y&6~RCOB*1i1QG44?5NLdf?-J&B4mak?%LF zv=9WVMSRe)n2Evo2!pq>!EdVt9g4IU{K=Fw&3u<J8`sSzKL?X|Jd6!CQ5`!UOR1XQ z=-1<^tNG7tdk$<TO{I;^fZ)Ll*S(6=zXrq2vc35#&C#)8k7SvZ3H;ns^3S0^1o#er zXoa=QNzIMahGCzS3s29Vfq;Or8AnS9skJH^RAid<+vp}Lj~6Xm<PS*2<PU9mn0@7$ zWXK5+v(*#(t!ZP~p9}v!jyv0g3iBK8+h6}>%{{zO;S=Fc)3MbD#KI*iwF9S3Rq|wx z4gZ7SN4I0QI0WsQ%TmM(>y$YpQu|b(``z)JB_nx~=4>O*toN=q<eYW--*Y(^fdZc? z(%kzp&oOu)a$VQTE5F6mZkCg>#rwlFNOs+eUiVdxxjbVf_HFg!9^>{RSaC$^fd_K1 zOm0^3zz*Uuo#7b;Y&-$iZ@Ud{e$#S;or}*W@o;;sLU~k;PHiAb?;MO{>v(PR)6&CF zbiC+BE1BhFdcfflqE+oi02^kI!B|gKA;wK&2v(>SvT;xlkVUoS?KT)S$PmTngr-Uj zro9(Zf4CsgoRjg&F;a(L?WwpZ*X^{JVB>sAQ?8hDn-9Ez*8sS=u5(=O*oE}|yP`@p zzh_P%OHL=bPU!L=iSIBoYe5mJ3bj)G*#p-giSRapNQ21q09v1ybtoP>Ik3fA)|TBU zsZyacpD-Y>-uS_Igu0l4b8vP{e6Shu+XMTER9!-J&Am~|IwQALO3iQLCCbHmg&1Kf z=(_uI<5V4JHm{FK%Oti8)w^HR8p|q@<J^5E^x|QnSKvbZ4^eE=0tNWybhT>-hF{qf z`+Ra$#PtA94VA~4EytX^Pdsj{XrdHn9}u1TF>zwdZ>Gr#mmMVq6aJ#l+Xm)W7D$HM zPa0|Jwmf&K6+Ju372|bzX`*TkyS5Uh?{|5A<c$FaHjF#>UuRV0PT5NPx!)&nsl)a^ z5Mg-3%PYFxvp<|z&2;S<xyHx|bN{Tt8NAM5tdD99mee*Yc4ln<E&GAW22#gmaqrkz z)w)eG-{Aq5ZLoA1ur9W5Gi#;y5`p77H4sX@sI&?XJVuiuo!~K%5s^YZf6<3ZC0fNx zp=SU#t>rT1>fpD@ND_@VuHdbqhK?JEjh@v&$KL+A1%>Cju^hE66B1v^p}M0SET%KK zTzBkk7z^<ePJN+ykm97z%2O@mb{8?#sMn_Eh~PF02@QkCvCZUjKu@*j5yIgVWX=1_ zV?<>baa#h{?!?eB!K}{@J8ULy`~z7G0_HYRSR7fAd-50oZQA^bbT^+z#wwgQU+rOm z)B3@y<+Hk!s&=!%xOUIxjn<`egDLFW_a4G|8ujDlyH=zvVGUcH?VB9>`bN8Q5-kgV z;>aA$n}zj|Vb6=|?_y`Bn6X)0s)2uNU=<TFWX4}q5#O(5VBUxGds*|uuG1BN0JKtS zR=fT=DX}~^Du;_OqA)BhH}S%(p!;T<PcOJ?C(_Wl-wvrYZ7QYF`N~z4#TY4(5?H?O zvALr4K9HMqn#^hat@1tMWPyfNr<U)TPFhLc#!<HG<y++!2V2~xsAjshrm@~~bvl=> ze|6x{^%jgR?Zb`LCS_Y)@mv`mK!W3_<2-#(X9MP8j8{qS@04)iwyjS0UEh|eXf&}F zK}M7>nbf9c@*KFw8*oN<jY~H0nbrQlK16;~hmsSp=4It6;RY{6_z!fh2c~yrnpQ|S zJpS+7&A|T(;?UR{E!>TLa4h=*Gixc8*UobE4cjjyRmAZkVxVr{i2(fL3bsFtaPrpO zPbuGBh;?hc=hpN{A3nXBZJ7uT_lpcw_Ahh(=y7Hd%O&Ghs>wsf${PoR`G{2dZ|D3r zZKnQ#TWO4Amq@1L+xGV?+Q!62OBhPzRKgw&-rOY~^pW9r%iK}(y+;QhI&PsURvh|$ z>B(<>96s^YXW>3F5}>L%sKscw1V)uu!TJ<}t*I)uMfh+3e+|_Cby5HSrRLq2jd%Lr z%&4U|9=H!xNroOC`d!s6{oIRD?Nj(UQ2yI-GG+rb+?7hJU_2AlO!B_p{l|Js`@#!y z_eVL9`KcV=!}a#|u|BPGnt8JxK5h&<f9U`=7*LomVYN4;SMy<fpNhSV3peVwoL_Mg z<3egLFI&Rw2MC!n4%6r7{a@Dg*$xF1Je;gEpoV(GNR$mU&B1tGARBl)nzHzoP@@3Z z?~k<S(WuIqFT7x#EEi2SJalyw5n)v49?_rgxo)VmU-u4-)?vuu95@i{>xyhsv3L#z z5Q|QJ-amcnopLX$o}4U6(y2V{aakrolU!C&&l|rh<w9tfmg+oh+v)1IW8e8t!t`nL zV2aMrMyiOjvF%%FQ|hTYc{xa)N<`F&q+H9!sw)e$gX-aV51%S`mGLZUAkQc#2y2*D z!jr+L${wR5B4e`j?)i4)T-=ZP8}v;R=sIZEDc9%NFk~eu(~m1cwuc^;Rm87V*!wtW zpyEN0i1hGF-mq8Ssj+lHgWj0(bKJxS2<PP?Y4iGQC#iL-8pmK`AHTg2s%4mu#iC#( z;2go|Nm>DGJqRe0|1v#jcwCipnZg87+*oaWPRhJ~G4JJSKb-cdWfd8xL9!3z2Q(?k zx2%I+nl)_Q-GGl&%B}CXXIu7-R%+K66^&l3fMakfjggD;uVbXdi`Ul+hXzNht=u1^ z6iXp<z||_@tfsMJxd8$E6#|o%qEC&T0;~;xV=8JK!zB?fXL5HJ=py8i)7{6BiuG$x zVlF4o<DEwf={c)N>ZiZu{M`rYThdI>f09S2S`g40(`ri9y|yvpZ+O3{V7bXu${U&A z0s<&4laEa}khSy|*R}?}GngY*qs*+lgrSZP``2!vGL!R_d+sZf(PIVN$3zz2of`Qz zsf}k&u-dVSG`3U*MR^VON396rJaA)A<kX&ko=2c(&t?WtZ*@@D{RTjL2EH3G5G!ll z?KjP66@_kn`mfaY2{nzI#qwYYd62o$1JX#LP`5Pp^Q+1+OY4E-?&wph<fV;&F@LFb zHgkOq3Hs*rYakOAYrcMq<=&(n2QwC_78r6P@x^=r;=Mp|PZ0s1#9|muM!L?d(LZ0s zl}gpTe{G!lk-z0}xe-7qk};}TLcuc`w$o}}FgatfO$4v3VoDr+%FTaAJCbBET#*D> z-kBU@o*6MfQ-*^gDt+|gg{xn=1n2#0Qw}_?C~1WzPE{1!<z?=ef@j}l+Cr?rV7{S+ z^O{Lg&PK+Cf5=uEBg#Zx(v3<jSGwA`r+EpAJU`^=xTDoz^gzAdeFeN;Kie_cXC14Q znj717yz0u;o5fq&BmV6zF7MOxtVGt9Ahm9nJ-CF_YPHi_jMF9DE<l@5rO4v-?1X2= z0UpZnGcEk?rsu}Kw<`0zA_W?5-fPg?^sE~2{iN&(-}8DCD3hWVDXlApsyZM^7J2MK znB8HV_%Z#|2f*3cB^d;n!FbRGX0!@tgDZcrhy67%#Fu5X#}2=<{B+B0eI$g{!Xxyt z6)U8TCv)v|<`FT`EHS-<<A=KQ3PJi)k%9*2ntrCsuY4xw7k^lqzy)wV2^=moHmdcn zPEylW{D*vc#Kj#D*6^lD?0A)WQ+ny%&*(D6kg2&up!AcuSQN&SoRv9a^p{ExL{ma4 z(6I6+L&HQiZIH{Qm2>d2R?6>vp#78Bu&P2Z$5ZE7t{6h{z+MtmL7~q_B$Hd7--f%w z(v2<*(QZr+Y9-k!UCyj6DhzNFB&ptgt0{wqtCJ0b*UPmmiGcQ)NbLRfXh`-5T(v%k zV|WrM9vE3uPPEY#44Ewv6xSwuR7Y=2e9yG824ag$vQ;;e2HD!TYsU`v)&6@*jTjS; z|LH+HaT$H+Us`4_dF+4LVBW!(KI5n}+rheoS;r*pE!gL<rO&Usa@U-P48TA1T`#Op zHj`AqrKN35dqQ>__;pN@Fu#_(&wm82lQsam^Cd#rmm6K;uCQP(&qpaSD;&dtoiu)q z+8M48&_AtZao$-2_z#a1YU;s>YH&y0oi{0*+&-WFPPDC?qov0W_>zYzd0?xOaY#gL zvy)~s?ll#AxCG5c!OWbSlD#!Copr30PPcIq+bOrPJ8xWB+~i%AW%3^1+o|!J^KXC& zJAnX|s&qau95so7HA>KFG`{frYv1&w=cLAwS-m7;szM}YgyiJ;l)2Sv>^vchYCG&) zFIa#cDQ)9;U&6hbxdw_TyZcCAP4qzV5mt&6du@%a>3niwjwUCWpz-a^JUSKyr&Qdz z3-T=g*(4@xL6fi2zi5+(BSm}L(gLv+tr1LWupAd?&UZu@LO`j(dJ;<I$m2w_nZ@zQ zKGqpJ$nWkM<QXuKzg1J0(bR|-yLW3a0!#D9+o<?a+&xvSyLTRh95JMC`UMr>XZ%K+ z#`e^~daRb2#BjCkk~e$3EN%A~Vf-lE4pP~#jNNZVoJ=0)OVW8aL$^}z0kut3t{)9q zyN35%#ZCTkVp7ORBj0PW@OwdOBErAKRx(Rs+Iji)sz6k*LI;`$wMjnrvW)zw=AZ2- z@YsWNDiYdAYAkZ_(Y-vetNWs2Q2r?UtU>+yCw^t`vz(!+$WscRG#W-<XSlDT_y-61 z{<=?zI=>f|-qGsrSAHwF1SWAQ`yXFuI)AyGf81x+XC_i;;<!wP@8WW-|I3SO_yvk= zbdA;G8EoHB7^G-e!D{7PA;YlmH|(pTkU}Y#9>-;e6-6+!D}Ai@4O3QS0m_Oh-SN+D ziuvngtDUuR8ENK5bGqGBK!6Xwp{rrVP8#TfH;6>-`%azd4ihB+h~USPx~6ri%f#62 z>Ka9d2+OpS2kPtd`(@5_3Xp|3(vw%bs4S$zWd3ra)3eB7VESXa_DV5)Mb6%m>ARtX zSmp#z@1W+E>i}k6t~Gqx8K_lH;@T>0rSeWN<Phxo(iM3}Rc|b);#Vy1QHnb9WZLpw znx@kaxaqR!Y@IXEUT1K3cxonuNk|nYz~rV`s10FO$)QPg$=u0*%m#0<RE&x~jtj~l zFBaeTj53rHuR5*fF=p}-e?@h|xBqbs!eGc=3f+-SCfgY9@Dyi!5x)ouRhKz?j_zxe z3ehV0y5!`i^EbmIfA{k=tYW78bxopAShj^pV*-4?a8DM<$}!O?rnO&eAu-JGOFnTx zR)H0jT6^f0em0Ptel3Rjx%8BbIrP+vuK^~8Z`!{3<lDstTE?481%^26h0d_=Z#5jt z!He+?{6pBEm+XC$*X1E&3!3v<#O&Cm=;fULRo)V!_N9sT^}<Ysc(cPbz0opuc9>8a zOum2Q`2ygI7IIUm76FzcveOoim)5Du4R?aT+k+$fd7eV0^a{mDaBDGKwHTBS`e3ob z;AE@3kOtIz1N*#)N^)2WZBpG@^qcO7Y}(QIDd56=eE^VN_qk<Y33vUeqIc)Ni$aO@ z$Y}(0OHRo&-TVj~AnY@L{P(wAqaa*;cR$S(K$T=m?|a}Lm0|Wz>c-wxk7q?yJ)x)8 z5Y1!^h!2c^S7v(xRk?p2a|j{qt#ICKJB<F)c4Z%)A)5clg65T&NWKn*1=h7G`wXnv zoJv4c+_0_>cU-Ox7?+MIQAd8&gnu&a+gEf2rflZZ&(1$&;T*6R7s035AqN}m*GD*D z_q)siE)d3kBN#kV;YR3Kb_RC7#0wRiE+B(jN{$mJaZ<bZ)Kjv{dDlf~4{*?%Y!Un# z-ZGjixy3%sj{1b!UGhX$M7ZZ%&>=OXDTS9#PuUj{=3ZW-5`bSh8U%#wZdGW6>`671 zU}}Cz(*`Nw<NT@?*$3%DRs(V`fsyL0<0$b}@541BahSGd0G&y0>nFb(Tg~e%p8=`U z_x)AM*1tsY6YRVAD4Yd&)%{|yVhQ0FxF9@!m`Gl{6=(v>Y2I$D$Zeg2uO874(`aa# zdu_M)!LhxGhDE3=#bae~Bg!`TfOHFnIwrrmB35$4FhpIixldF}*Hi<j+_v4dElrt& zEp`jfV?X#>fl`FK^kr`{x#amKqg24EgnIzWx$O+CxpcO4+O``AoQ__%V#+I|58@gK zKZGF#omrVkn?Sz3#Za(3My?~Z41nbr@)7=a&vq}^D=DswN@I)-T&>bFKe^%R59=M$ z7_&E@dlo2}Sy+3g0bVe+PBXpI3TFgleB3if-$X1oYCLKjL@K5fw`pt(^_v2@H{z+& zvMmhQzt7^`_`=jbu9wUA8ECkdG{p`|r)QD|3;6w$y_iGGpj5t#3+9?SAcArwMTA7b zYdgAw`1hCfs?N0^QRYM4e8=Bf-p)ER6ez`gXOIx7_4CF7;Na6)YYY2ePpj-;Peoi` z9DVxRH*Z8m#l=zVUfieskmf!OwH<MR(<w^Ia#53$9~bBi7YQ*Wt~nerTWUKrJbc=} zkjU)S7dMPu6!w5`%bfUcR`_1~=-D{eHGleoUF!y)g65TkZ{pO!!q$Fw`qmBl80UUJ zk;-#%r3O;A1V`1>DjRln9w2o#pt<!*aapb+qei(|(`^;jgta(>Yb76Ze<SxhbHY94 zX-C)#1vvDSkuSqYTHNXZvFRmmOhwDOH+VB{t0R6xxl+_okf0?gX4D%A>VkmmK<U*@ zLOQmiY_@cnk%tj*i|6dAs29#xOY~JcBF=&O0BWE}`LKqN(@+CGmo;vyJl#L>rd7hN zV$X{s8x!J4{%@ag*=Dom^~0BDn5wBizE}B`n5)VBsMq*=!4G`XMK~qUIIfFRW3%aD z5<k5(k6PZt7KvoyU5;H^+8{65-I<1H@zV`Wjir=QUXgaoOWCLtlowi^d}%!6#T;;$ z*wK-Yi(9HXLRMl80L>K_lSBAcN4dHFRovFh-<+G7Ivd((2CRbbNII-nwei*`caB+8 z1|ExaPtv*T&O-Q%utVm^UH-5(>v-o}-;b5^=rHSg+jw;~N$HZ+cT}lZO?E{(_Rf9g zH2~|J*ETTAFhsVjDQSr&@*0%{7N>(2V&hW#nMUuSy?<JWeP<9W@R51l=82mr%JFy6 zz=}7eOOLCbcUrnt(^t@RuJ$p=u!U0Iyv&W!?4M(ALgoTy<b*}v;KT6m(QQmT+sRt? zR**$@bWX^|?5enw(I!$W1ktQeZz3S>*FAIjd49^+vUG6HcVgDRLSPa2TBA4%J7Ps5 zb|!r%V4c1K(pP6z{kF({KEyN9z9T1()M}sr=1o?4xG@@XvM<<_E!2_`OgE>o@Wk{q zaRjN+;zE$R39)u{^lm8RPO2OGur!=4&~R46J3_pqzL1M&H@TU8ihbHQU+$)yn|lTO z@STp{!nu#D+p@Ey04oAEF%GGbDg?+=@&jAon8=YyI{x7_niHHM;k-*>|J^X>HiP4Q z<gS56&(mBtYLO~Yb&^HxJl*h(yo74>W8Rs=Z??_xDTnIPQx_uzErh{|z?9sFKh78V z9r#ai#i^7Ep(b%{*rkDBd&@~8kwfeg$obMSq)#3Dm7E+vTk=Tyl|oyen%1D7guf^u zM`pJ1;j~+zqWwZuJ8!ce*5+sq#XHaEBug&n_!^@$smamJI;%^OkrpT}Of08wuG8r0 zx(S4QeQ>=r>p=ce@`vu6D+Oe6*8SE7H>4@eHa+hRChFw1d!GoL<*3Cb1bp=+<@`sA z(!sglMLLi|%A+xiq||SH>mIwWu4il=M>iO^Sbv;hF13cXPx;w%POCp~z>_(0EXsJ` zRLP;#fT^v>J^3+F{)UyiGAMyZ*KmaNMqKV&b<0%j=)7P9nu2PFXshunzS&5pxKfwQ zYq+mB`dr;PNO_KmeV}}1nvN{9v~Jnftmdox0vPDHI20U|`VbNlQS{Kb<r2g(RPD{6 zvUPa+cwSrVNd&iR=lTi_)qF$&QM*T8ia=XXo2*!Io@n~sm$dbDEKR^mo?POnY`9@j z*e7z^L34<Qo9$o%I+~HQ55A~o<0sc7ztaWhTy$gO*R6ysQna!d1q?!+@R`-{LM;&c zJpgc%;?*oH2Pp+0^*6{&vQNG!K%J3mWGUaw2ABB0=d*B<ph??Dn>z=#uKm*#sq*Dc zAJIUxP;(6f&7G#VL_=VT)3=Cy3YID*#EX$!-l#~b12+Tt@NS%=ddpGJ>hI!)XOHv? zo{<XHP#|9|)NHs9Iu*%t2z@U&5EjGr0x3a%8NYjH%JYm$!{-Z9C4RikW#l~)DZ0V7 z$r<ADF{{#(uCqA3+R;9xD)h;4w}MNi`qSOHG)F~VsC%#Dyu>0&9_#nxtxG$<Kx!(k zomXg!V&m+o*xTmNHF#&v2m0?i$Hk*{9GbdP+<L#UPkl8Y%_0HDorK5iwoiKt06mpv z{QJ|`?)4>wN$`!HN>QJWT%J8Fm>TJK8@ViQ=qQt}Aa9AHR+*)*?73PPxu^HxP`TI# zts3Y~RkZ&LSsiGctXt+5MQ;Foff(iile{wf&VZ1r!P%Jem1mhMk%><Hfdjvn^uK|g zL@PeuR^al3mlAez6s4-H2?@G@yJyS6Nawh`X|!RjTh~A)F3_7<s}j-H!hiHL|25I# zi0xriL02dwecSGpVNe0riGr`-Pu>qQjF}tJ1-izgUR6+VCDp*V#t`?+dx@QDMR7K_ z_EM3hoQ`A+WVJ}fx~MCV#jQMj{uXF7@;B$B@E<!#07M8r@1v(7WJd{z{B`|j*TSGp z42EI39fuuqi|Ei<+r~>jRHF%0G+cS&1VKLl606wvu-cT_G(0~NAAF`0s?^XVIPX}N zWjOX?M1r_RY)0g$6+B!F6@``gzQankV*g-mD-*susE!B68w(h%Z09I0CYELYaJ`e5 z(xTw&@zf`3dR^LM^ce89so7hQ<e&J^Zf#)1zUlCEOPz<FZ>j^Al4yy1GE`=5HdFLP z4$L79IcJz|4j*j%_d%lH(=HWRn-}{VasoO{ZH$gBl`Wsv^oesaeb-(bUjBxW;cNWm zlomb#=ls3h3R=o_tOuS59>eTadqVN12Y)Z~r_=W{5*Zl!Cjlw(-w&O+$OI=q@%vgE z@TDej_2vB%2Azg0#^*D?gjX6ZIc>DLHNClt8ycoxoCxwck~yC@Z)7-?IsI#Tp!}Q0 z8C0SBSF73>%g*D=zG_EJbFz@}rCWafc7ra=R<USE91(|&+@axT4^E;!XWpISF1mJ0 zp*OgKEnIQr;s9UA>wZb?v_ibDQp1m`a(QtrII|b|>_HOFUngn{UA*A$r6LN62sx_F z+z*we<<gkr+gUXyXYw(d^-exnYFzT+Y*o<^Gu*uPIR1(YzW%cqEH3Ce>o@y5^y?(k zFK)UMWw)YM&4sJC<H~=2$4t56x58V`oyBSPbQSUhzXFD-pkL{1!ROQb!z-9h^jIWW zAZqiVZ}$*K&4?k<@%p_z(^iOp2XD+xj!$3nEv7Bv6!WJ-^2g8R3?+4yQ8m%7nKi3T z$JNo~3f7{}P6tg469wmMVM}t6x9F#J{WeXg{NFFGA7`cda%x0{I~(yzeV#5^4LCw| zK{Ty>fpB9EW<Rc~8q^~OPYrhSC|{TI@+uW$t|Tn<3H{KqBpiii^C1tQZE;H<h&k~u z<Sshd6#3R-C(=N%R64~3K3CB|xY%9EFM_K|E)Ry{o!q3M#>Ixsx~!;u&CU0-;x?~G ztt>cpshaQ2-?3rr2{=e77P8Dtn~tBnq8-!$v_?73Sl(CjmIpZdE-p=Y)9OAAKe5)= zR;>)4y|kt?4exBAxSTxEW=U4&8#BwnQHdwmFAu&Fl27sMf}nrk-T%rGeC}^gQs%?w z&$&4`GtwDGlCD<4YfJ~Jsdg~0N0CVp&b9;!dcCK`ih90gKtO&#uLvqfzNB-9*Hj(Y z2UEU-^>>6fBxqwg>T{rZ8-4hz*kFUz-#!Ye_NIJ<dxl33o!JYf^duMq!=0H)(%y(~ zMn;0w8hj)N*&~C>`B}!E%nQiXOunU$P3k=HD1(7NpajP=rR}xst=H`+L|{hoJ~YiF z4jc1aq$$%nap+ZC0)xc#Sw}*h)IGou2%yBgDG=8#gsYvo3yy{5_)_L$JuialYN`1Q zzj{@5_ciO8PV!cd9pI*ZBn6wjz5WK)$Q51s6%_92Z-L3)_ZB)l=UA%3C<nJyU(YW@ z2z#lQSuIEZ?&JH)6ISTiaMERe-P2;&0aXRZvLv?kzXK&nl+=$)mGEd*TLRcT7tN_Q zA?TII{9Md1u^#Kg8*<SHdswrWFLYwdtolL?w4=E(P(#$Z6fs5V8yO!@F4`_y+dr$c zC5`;uKs04@Kb=nxj$gp!N*{}x6}v@Rj@BdK)JrO0nqzkPOB@bTNXxj3==;{*gl^oO zG2R&tJbkg4y*bc@@5j6b#$kt7h;mW9bo%h-+a;BJx}z!)!N3&=i}O;YoRTK18;Z!X zc-xEy%jjfI!#M1Rq0cN9`E{`^-;*hw4RcZRidno2L6yayOU~^Ud|IEyLVUNlVN+ds zn%=T=(#yR>7z-Nr|J<&<ft6wbzp8rvkWIdp=mya?@%{6w#Q@++0Q+^#73Bm$xXolU zc%M7>VT%}d#}!bd^(!Sl4_g*vPZ@*b=*CkUcLRW;!v&>_#cSVPcFjkuhJD)Ygf<#7 zi%i8_@LG0l9BO>HJ!DcD@u|P$;Bt6|vl?XNGQ5X-q<hY7=J#|Rk4p%eAyY!KEcjb3 za<9M{e2;L=0J-#;`X#%jMQ~StVB1M_a5ckqm9={yDpXWM245v}8Oje{_PahQaJ&BQ z4$8*U`L^v^>}a^}5;_e>vtKZ@wiAe#u1`@%^`i^N^)jNDF~I(^<~4p7dH7vaW^eQG zdeq|TOe(&WU>LIghvsTf)eZl})U9<tA{X3WZJr6>G6|V7L4(()8%Xw$3j}az6Er-! zcpYv*z$C}Fq2=vy(hQn`2(0GyY`=s|{jNSSd%Wg|<oRFVYSpJ&sgGvoa@t399RD5| z1wNhfpQ5~4Ful&2ZLWSTgp+Hm@bytJ(e75rk!d@Y*urzt@5*=E{-8lPp$URIuf{C^ z*$g{`UB3|Fw)31oKk1Mz5b87ubzTpZ;+{La6pcsWGx)Pw>U|DF8U4?y$%fS&CC*cb zEH1Lsys!Uk3L|jm9cdRMwaB*fdW(w{Q|U|H_=}VHYdn9uU<l!I(&B7ekexB$U#JWU zL8*y}iNBb3e|tV{C^LTv867>FLjv~F_124+@%_6nnTBPyklOP7%7dKg<|o)|U+i;t zZ(%$H;U%@4v!hrr=ORNV^aN)(?N>XLHKE`4L@Lg|X?$!izzs3S6x<+is%jtNctj6t zyIB9!zPHc~sqOuHwh0lmKYEc6xX-vYVudsw&Y6K%qs$g3!RBVd6({>RfZW}ms<-^P zZSME%O^ieVx*<+D$5Hb92cAVT^Y~~|KX)@^r@3C7F*Dnjd3d@0R6p2rBftyH;+BSg zAD^(Th-+@H(^OoHipVkhS&C=zLix_5p4EF1d!w$%ulE9i$J=&)JLzAp;!wyvamm9) zl&jB1o6&LqYNuYV<mC`Bsfi3eu#BMe8n!#HbS!vNi>VCUCbt6y=^d`VyRsK}Y06YZ zQsjy{jVhLEnge!6$1u0Cvn=PVKs#?-Hzjf0aG9o?KRm|#f|&29|Ezlf1z`2P?AsXd zEO4*Y;DaK5UR*K=Hcx<*z;b3H+r8G?oaNwpC;i=FIRn1-!1bT(p8@R>wPWm*+sXCz zBg5|O7FVABY@1mpAkFVDDo#MDb_7VeAbz7Ds=2S7;RGacjRq5J)J9b{qA)UV;b^LW zq*F|DZ@fs!q&%@H_z=<Db?%QZehk|&=!rTw);0ihWN4TSzsjDr&1b7$vppvT$DP=r zgs&wFHW0uIRhgWI+^));K*`M=+M8o{Y9;Qqc;XUbQv<%ylg-1sQslI$C`p&Yadm1i z#1j^_1cmsidtcf!*7mvcwK7OF{Pr<SBI^M!jprCjnn_!1`d;sOI~z?}8!ua|9xbfW zEl4eM|2D_i5y#^`5q7;xAOxi-SbvWFLLQoy0Q9y@b_hv(N7j>G9f<vvx*<K|L}AKv z+&0O~)L7cxkn<33(Z!bG9Os9lQddXn<f)@FY&2)MyA`04PhG&mCuel8cd*FvQEO^W z={7wE<NBiZQuXkG#8ZB-ubaCCqWis9sW=;Z|K47A1zTKG?&}O-X>pjIbTmlaC>lZl z2+xCkFQKZ0*71!6Q`GjxNYS(;&kRLQlL+SBFAPlaC@6KJCC3=QkhG2veb^e@<(eyD z89XsoUkvKQ-%yys{cbmmUU#vNh@CneKD4yjT?K)WH9<M5Zr1%nd)=q%4TU9T;k)6b z__dU3z4Df|GDQ?+#&zj&f0j6_cReuea6NfmlUg91{x<MZkXc+_7ytL$2GmvVXys9L z^hk_Nlj>-OwC~P75qpmKM}GI?{)GwYbR^--8l2<arfHI^S2f1&8_~E2e|%Fv8{#Ju zfAQT?$KATNxvksB_UNlmIR3QLD4&$ZfZc_K<Ixvm^+n}@|6~dK%a5wn*a3st^Roz3 zVNp9fc)Tcq!C87KaHVXi*%MV%k<dec2nG@uGJn1mY2U>c-tfA*e@abM05PYaJk5<$ zkfvmjtE&b9g2>fRE7fc;4&z#{0gYg#1i`_GTT*?ct=Pt06T&k_8r$lv;P=^ghGj~A z77YVWi&y2D`h>~1D0u>bk$tK%6<+YjzC?_`;s9?5*}*!~rFRRg=3x1h4%9%9A4XP% z9B1XPgbsZ7MH^B%7T3Zu@xe;}E4Yc|-}DxH=l`WtYX5#$qD4cN9FPv^!e+a`j0OdG zcrU^vI(I1E)J&>mlQE~(@lx6v^5J~lD>~+&!aGn}dzsDs0g%@!u0AS1GJBYCLWm1c zoz}OQV}jQ_IjvdJG!?owNJrgA;PYg$#6&<4twD!#&WT^gN9dQic3%#I>Lj#&p1{dr zii@~mWXhJQ;M4)X$FqymH2(-yd+30YdJ`oH(}JsZ+;&qM*RT~*CS1$G46snLL|41_ z3{YF<%@AXOkTFG_;_!!bL-r0q?Ox$UDes_ch6VZqbz9uxV%PW<8&&u=PF18LoOb<r zV|!5@({gLan4F4v93Lfg$~UgJ^TuCID6c<!{572SULarvs#s1-op@((`Y61cLZQG? zWs5rK$t(IY*Uo#ELyD;pnzMz&uT)I=I43w4(^rsya&&nDCfSD6S1ByUuAKQplF>>N zCiUoZ)r`1&o+rNX{rT+A%ejV?gnaZf(%3mrNxExrIN5{dtMY;`13p{TW4U)>eYTO( zr4!jzEsqpO<yh`P$Pa|8KK9#kDDpJfKQ~({A@t)rPd(X<m%)<-WrOm44TEkm95aM4 zI?`|;8pDr6yq-BLyK%URX)`*CzJ#mjh;EYQf7I{p*`K99Qh?%I)A`KSu!FgzDV%cT z8&V?rzxSHl^xi87EO}Zl;i^6yFzUQP{$X=92Tf`(SLMe~O@r?#2HQ!MdO>Gdn|qs7 zXV0625rsy2ayZC`_!br;M>82yF?zSJnKM9vWUbpPICNofvx*OGHzm>R#kEeDa0D70 znme7zMy_<+^GT#%`1Y<AYE3(ctFoDjkXL6KG*EtzSgr7>j&^pU?n~K(Uz&$)ug$kw z**f5?Gt950v<*rM<Shc+H(TasrP)|)mvy5(>4aq$i8z_V1$0k^oE9W5?UZfYNCBnf z_m?827Fp>zI(3;%U&3i~ou4u2@uGjhe~FYAq^6bA=qVjy)U!5xh4@`^u#d|!J7e-y zN`V(xqdxIFx0^S(FyTiDlV1A1^`&$Zc}q!;bfE8?hRU3WkS!fB2EX>+I}8=1B`(*+ zbbsvhT6c=%sJvgC_ss)EAx;AuLcn_dB{<tb%~CvlLVAS$SY@y2;jr%N`doO7t5|&4 z`{SXL2bTa8;={S2I``9C;8gAw_w1KNilb1E&=vJwp4yrp;ac}aY6rXOTxM(Ja3SZ4 zJvLKRG}R>fH|lZ%)Un*gf}Den8sL?2IUSZZEwiUrzw!m%N4r>3yC>HWECBaU3dKi1 zOq*H#r-vHL)Yhq+<;AB|>dIW@WGLSjH2hAel3L#wdW#U`;Dx)Vv`PBmtiesH1eO%U z1~t1hf;TbaU^p+;)m^2@t;UFnyeqx}!k@)`aCyT6q%O%a;IK2DXnKISSQ0lVa%Jw8 zE3!|H$AkxHE*vQY{XJn`0{U|Qk}0DL$!-Lxy`+7J8~Z$^)8lX___84;8Cuv}nK6AT z{B%;obm)3?iSVaS-|Tb+J+hQi4MEI+0$js*kp;0<)sKWp>L_pDiS4!`?TfGMAdR44 zVgErf|2SFJR>vxyx`*d0#k+@0*MC=%KE98>#Q!Q9vwEi!BBXD92*}CJN51T5-%@3g z$?yJI80L>U9fBKPyY~NOnNd`lKM%CSWqWN5wM*D5CWz}FeF}M)VZ(=zZ=8CP_~V`o z%M=@{x0!b{o_ir-i)CQbot6~)GOokAcq*@?v%c^%Q+{#R{$a+!M*e85>78}!XL227 zt_|2mHO0qa`k@qRDFExvUGH;Ho1&1#Cml#d*vi1pV%489wkqkc?N|+YN=?}poNx45 zh6H>k#K?vz2l62&HcEy8<hEfg&^|Z0kX-XfgUa6YqBn0JtDw1zBYvWx`Em(vGwK<r zLYt4{xv{2Ck$tjW%MvvYOhtx=IW$+gB-P$2Pl08hZ<8ejSOKf%f*JjriIXEu5`{`w zJ$vLECJ(T8uLdVmjq9u3A7UW&ACv5+X9Bl(xRi$(7_I)i{ACdT`uk=AQ~av;7t|lN z`O;q-AG7@{#18L!fRtGsu}aUNLLYHw&fJ^L<5RNK|NXi&s~%MKAA|Qki&m;65&xuh z87`N={OiuLajX>}6(xm6y0t{xel3kUM!sZu$*Tyfi!%7UQ^h^W!)e0gXW3us8u~9z zYa8@izex2!z8S`$Yr?tKVeTN4U$$UW-<L#jz7Efl{jQ?DSfu}5i|gO_mSj8c{z939 zWw&Q~wW5mI92yVbrj<Mt>3L#W;j#8dtz;y^%}qo1_G0)WAS!WoIDF=VxOd?B;!8%i zH&j1|>9&vCbdBylEX~TOUW|R=68)58@>ZQ{&TF~pHf0C8Fhd7==eOnu0lW|OHJXbG zdi&jfl@D}qe>2+p^MH{K$`jfnTxaFMtnoahg=os)%zaAdfy1|#&*&rPz8IzyTpHo) zboHj!INj-I-?IU^Pc>+Mr@f#FOQT)bc9t-&d$YdYq0vICG@114elhOG+E?ekg2!FP zp9Sgf9LRY0=%$H?Y@)PtsXBh%s^EX2|LWuQmjB)5vgJ>u(`^>@!Cu6rMNCA`7QgC0 z$H0ETXqKNf=-i8?tAF%F3$(TDU-xmPN%8aE7~sGrYMlPi1dt)hc!uixkEqIyUINak zJRHKqZXforK9<SoS8cqNRHvr@MMeyN&L7w#dsRwhc@Zw6C?bkS{qJv^)}l6SL^Ngp z?F}(0K6B(eI@!Q^XwhWL{8vkh6E|y!d3!%B^qF|Vvl8^az@cbW+~{iM*92!a@PFh1 znV%=#><qGLQMUsXc6f?%bR(+TGs6YbG)3{iX(FORT-QGIks!q|q*czuv&s}=m$i}o z)D$!Jf}ms@<5_auuz$c^@g^z7+_qw1mZJZCKKviA>RS`@U|Itz(G4)pk;UX*lzd;c zuJ@{$LKK;#Abs%mT|{&JAU?Hd|Mpbn0;SEs{5PDf*d3s9QGa-|!>MCV=L=<EANK>2 zn0=kkcT<NNQh$ZOSVWJ^#6yqR9`v%5I>&`#XvWpEW?cG<#pl986m=*-B*)#~+`9TG zsGNJF`KE`i)?Diiy-U`L)EgN<vq$`?JOz3}ElJ`jk0P`g`WCgqgmklbxB*c--sJ9v zPg3vpdLUrny<F-e_z**pkT@S#=&4Zb+v=&7eYWk<2ZE%1DpND+R2+W#)31SE{IEfl zFAyy++KS&$AE~cyJ@G{6q0@G+HG1Mi7uTz4AlKM-zH5X<)<K#@i0z{O^dP^3e=s4Y zI_IiBEyVY-bN3hmIstHwiw!;)`83zS^P?1gfZpW1jmG?937{e$Hfq|@9c}j=<=&d* zCh&uNyzB{AQwpf&L$3Y35=UGz|Hb4af9v&H8{iI{Q!i@RVv$W!9&*Fc$7w@2Z-y?v z+EMe%ZFW(2_{w~JG1+im;N<@4Cz$qq1zJ)SVy=>3J?&CQoB74jq~`Et8F!<CQwzWk zt8X#unb>xjAH7Ytux_fm3qQCVG!@|wUQLQHgceJ;z1;`wU$kJ4(tr@`vBlD-gZZfi zT^Y|sTT=^A?QxWh>GWxVUvA>>owAj_rV-?CY^W&QcU0AI_-ylvmcTf4;}T8Pyah89 ziy9RZ?FqC1?~lz#wgsMM^P}oQfpr_?^mXl72GtBPbQEH9vlcs8n06Y^uUd^~>|^fn zplshn^#xM7u)}-$qHuPw{I*x7h(CVa!N(P|&Kc{fQ~`j)&Pq_uN^Q*K7Fbq<PU=~# zj;Mtdb>Aa)Pcf85(^J9A`#n~AX=*wOYqFKM+%$$i2R7k3>6Vt?)X)h7Rj<BvQ)6GV zWWKp2Vwn8j9*a!;>yIi(qdT<3vL|kgtZu#8L&^FTw{yJx1T`Nv{z(?ujsY#)D;Ll- zsETG7TH!0PdLvC&@-XK%PM>Eu$3yXs1jIeyh0#;7|LpWXj!pNSA5Pm}QuT~WE;GbK z9f&14?L0<FJLPhI6+hj+aqEovZS%`>++Trqt$)?7-A|z@|7N-FzJHioUHW-q`9DqB z`smquJ)4}G)W7BW#Cg$=olE&ozU(4gtu=Ug-H^Wj&HE6d6N$!{J9=V*lpfnWym!aR zC8yH*;f=<nvVs(@R6tU><O$K=qxuCrF6nh2uj<8|md4j6((S0RkCmc;B<+Onm*-Tq z;YLyKk$3UhNB=rF4#P^xPr2Q$3YV2nTYQLrE&OZ~@%+Uo6ele7GN+c)&R@U)nG*M_ z>iGbrSDNWelYGu&dda_!9LoN*x@-Po=_q{Ytp8b2<)-zIg)<z=mdv;vuo%48c|daf z)RD}Z6ZYnJ^**ye$g3k71n?>cd-(O!*N~M(3cu^T@!NY)N^yOw`B&rL!cX~DDv{H| zv?a<(nH!%T3jBovpUYm^owIbIKe4gi_8MiZewq0plG1kUKYT=?s9auR+E}fM!b;ba zk3^(}s?;>bZY*igqYWe&_w|lB)mJoVvKG!oB6&i@2##jU`bE=Rn*juTJ^t_BOyu`} zZ3=CXZ)^$p=nd%`Q+gxOvc)g9d<Q0FG5a+PvW8$WY0T^4^V)Xrf8CQP72_6Ip#6;f zrmVu7%tm0fWp0Pgy$1iZg=8|qX587jHT4UAl=u^`OVf%zM;DdHDDw#WKXeZt=sE_E z7x7l&y_eesdHp67p8)LNTOcy7{1wywuBTN4$nl7{%~-@B2LR7wP0M7ba|(EsPfuY4 z7%avuSatt%v*Qa|8~%{hw3p&~kAidb9v-Y^;j3q8xXpQ==lsV+*sdT3NAogXU{|Fz z@AaxmYo75uV8lQFM9vbI@iFJ$_o%MDLKvM%<>F;K4{J{M6%$a{p*>HPko@5;8SYnp z=1O9zn896|A70YN-!mp@!%ikgnb;SpJX-RXO26DYO}3jceYD$5Rwh8?*(vHKHy%d_ zB-%Gxuw}UFPuD|%KA1m=h&=fuw(KEWCc7Se6Z}45@mbW&Xhhcg*S`(|5?CY2O>QZD zXO#R;Gr>#d@{T7UN41~7{NS-{z=wgmj9HDRQpDt6*@--pE-xy`t?rBbNp3T0?Lqg` zCH!f7<4+-a_*^ty?c{V9>DRFSHe`P^c=Ie6x+R)f{AXY8%j_sH>Ym>hA{}2x-1hik z{&yIK&^Pe=w1-ymgl~Vlm{D>`%e3EDDH}F_)5_x+N92-?0g8h#+9$79jrMI`v|NM~ zp#P#!hvf1f1usKAer{SHv@I{NHN?M~geI(UcoLU4F-W)E>7&SOUr#3S>K0XaYneZH z0Gicve7P6?jn#d0{W$8u7Z%!ocXQFpbR}Go4?c@^KggW}Te(<&5V0&wu+9Nqd`{t| z0PD$3F<*EbJp;7w^WWMd8>G}j{C5vT#FY0Rans5-?`Ig~hxO|&gLkOU!~SiLUz13G z{$tM)?s|21E*+#mGS0Sir>iHCI^>;sufT)bJe2w*5&o{PivF=Nz|^(i+9CDH-=aEh zz0|4UkFl=RoxNk(_}ILd3X@e=_Su+}h6ugpu}!(W+&IJq&?>P7EgMVNp=ax&;R!+A zeiW9}*grU`kqEKwc)!%ucLIEgkInxviJFqN-4)25f1JK!{{IL&r|7)9sN1KpZTo4A zMo(kgXl&a~{!wGwXq?7&W2>=kt1-U!8|U1ei*vcx?H+sVz4mXeIXR1k9SAUuq)bZs zSV#X_{*>B1f|9Bt=SP&L040WhtK05-%k!{)T@eD(39R#lz_uh7z9>K7myr<SbCFd- zc2w75^SBcp(+cA&0dnd_KQ=<KJqMxz>V0cIY}4(Xe{|^lQZ+j^Tx|Y5;GvBvTF5v2 z{rxy7IbF0N$W8>}@oz(M(_e}qee2(#zo<2v2K<I3O0^nm-9R*&IS7;bDv3V}t6!Fg zpSIr!@tbp-$d?Dr8q^{eyh0~obdoO-k-Z$qZ(L=F-I2Tx0=S6|`*jEn{fvJdT>FHg zuOSkrst5?nd0-8(|HTo57Nqqhr|(V+zRtlUQr<BHD~C(cZm!hsVPejD{)EF4Nft$d z%hIk3j7tcNfkg!@2ffi1TLYk+jq6z`z!-Q1YI{ND%b54ly=L@me2$K14r&-X>`JIu zL?B^7F1h;e0EY=7X|JeWKnNnDx5ZBx1E{cweMSnB<!=#d_zCnhf&Hhntx`$u8MZ|- z#nisq-$x{+>1=w{b#`H{8_lia%c#k3iVImnPYUGO8Kj8e`!MPwxltuT%ahp`$gI1C zy?>JS-?Iw9Hc&^4$WbBT3hlHasG-4>vdP6^9*)AR0wlE=@2sqvH?4k>KS`0doBQFK zZ{~Ejv`m%^DJP`RKvH#ZoH|+amF~k%@FrhecH%KR&U13$-SfXOMvrwBV${&|?MPmF z2J-O+d9Vh-(ikQci{+2blgkm!VW*e$aKMz%vC0QpA<C&5W<vhICE)+moFoFle+aIA z>cSu+$zBKAX?%n}^<O7EL+|vy(-?VoOzA~MUnj8E7O#a9Gp*Ys?vz4Yy(5Bfo*r{G z7dyXqqror?7zyP12;ZUq(K`|R&zN`ruC#jVWySN#Ur<Az0IoTZrhD))(bE0phVl>& zE%VWYE!{7C8V=xMbUJ(2M1W0xZ4TdH`9Za*@`%Tie#PIWYr>R%H|!F&9){U1X~ant z`h5Ei>R~8;Rm6mPAuGvuSYWj|#geat660hKjDQG4kxDNhVtDoJ3z(K<r41ul=npG; z-{3h=7NotoR|aKRLUIz<*|&Pw=2>-xO2Qb_qnE)_1^`@ds`o;2bUcS7|GfU0q<Y6Y z2LIgye2E88^mGr@k9X{0w~zRrpa+RG0?e*OXsw6%n0JmxSszEY{Dk*INXrRilSoZr zzuDravwZr86XLQp@h`y9K74pnuWH7;vS#nlnWBR-V$U)BAIXU+Cb{5HZBj;>Dp8%( zKq$B^O2Ab>EA=z7I}EWHj87jTI+f{AUXrR5Z;0Tvyp^MUR?pdQ^e~TG2+u1tG4`_F z61p9dD2;G)Tfx+p%nAzstQJlP?%)~s6ai4QIJts8XLxpvdQ_o{V`EO9*#IsNE_=1D ziyhXTG@Ug^PB&yI`BQMCKdS0lc235~Yu3AZ8PHEKF4(FI<4RjBI`tJD)|Jg|a~iYA z*iwaOnE2>@7)J~$CC4=bvWn;e5>kpm^6ztG*f{)PhFf!?SX=GF4`F9vJ@&au9=wpR ziSim)nvxX_v&LYTOhb6dUaZR$)Ae%Hht~FGBbfPZgbpGSqJ5En1A@8`0%YIpbVX5S zB7imQ%>}!ebA?3RrZqOIf%}lTG}UB|sgsa%%U`b}vsIoURM{7%Y0~Rqlv%%c*lHwX z_|{4!$cr6ME5KO%(rVkjHc#YAX>)1FjNbtf@h^em%ttDusKlBq(DbdfoTY<Cf%%wp z?r32gNZ}DZ1r_0ArS=0SBxbrNqv~eiqrfi`Ow4Q<ZA0+at7=nyX;Ya7Z%<GcOBx2k zl=nxky}LfjJqbF~J}=TAm7wQO-;i0$fg7}BGojxU!7<vH`tm%p*`_g;eTQPK2*MBz zHGf+<vL;*K)un0&=6v02B@9Edc|G?y9f*>m_msq<X!y_fz0oqh;+M{YlYWbY!vF&6 z!twB>+cxIVxlp}xhe9&4ON;5)#YU}vvNgfjGf%qayWZ1X?H6I>hWT`8n!~~ngXu%C zT--jaOw-L%U&JRvrWfz`8SnSD8Qe8i=L6pdt<E8u8J%LQCPxB!oyV>38CgVnzEJV| zFzZ9g-SPlG2U1J1KGu3vF}Gv5Er5Bb!F|8jR>R<TR>V;Dcy!{M=y>X|-pT#jz$^wP z;?sF*Jze5(B5;K>@13^g-2L&C9=)_QG*z%}Z;|v4viCfoFLmQg?GzC(fGTx8TUX%r ztDGy&y&gh&0aMU+!WTqVf9i<mkZZ@D@iKItiI7YoDYECOfQ}Tx+~Pxx07M;2pvz+I zm>PgUCvb&#!hBL@NcMs41Gk>~&fmgy6}Dm-(i}hYnmdRyy|yCCu5zT?ep2ceKaBk@ z$F=?ai*|v@Sp{hXCb`b|VT=WgVP(Y9GNuK-mj7{UBiziTsVtvI`u<i<Sbr@TcYT<- z*V?r^R>Ru4s%2QQN{vWJ0hBGUj*W(*$`Ufi<ZW|pLRhn)=@j<-B{pLSnjaXSS#3<x zbm5Bs#j`D2U{hBSa_SBH=2DK^tI#$u_ywuMF&*zcrIh1xtBit99E-Yw@yhbIME;Lk z$D<5dhRkHtgZ-|zNE*n+b0?&FVrz<4*s=)5d=Zx!qf_<>PS7MZHIU;?ffg?jz`A5C z%se7%qLLs%80f?TEm?5N+t|Mnup*=Kbv3`U1bGw?hMj6ht^N`(9i7q3-<oJhT=WI4 zWk-lLm%3L^H(bO$Hdy;^_OREhyoXT^I~EzSg_Y;91iwm?*>*1MD`}tgV0Kv_iB@`R zFDIg7ZB7{Mw9A<A5P&^Z(y+Kgt5Tk1ic^L$e{^4IZb3tr^OhEy*?831f*BmDU8~~k z&Xpsom(nv4AZYoRFSCEbJ2Sj4iMV9HOx<y<!nU1)njKGE!>B)Y28mjYE6+Js>0bS( zELnsB+WFu<TP)7Xd7Bh*8zyO9q0xKnj^4r*$9@<YnjdP!0yz4u0NX)*&A{eJseQtc z2EOu^{4y>4VAH!p?Cqr@PmA<p3Rh_GD<OI*zNt=E;R8oM+ypO8DP))|46ZHVA8I8g zr-|%r^ZI7O`_kL_bko>tXc#_9H6t*4p4ga3yr}k3mjcpzAXNp1;p4pUcL8R$MiC;@ z1mi`gpOW_3;y_VX)ZOfp>bb}Mgfs7v7eTD~)c%x2Onh$aG7KLCkKR!{4IF1kAp4-v zhu$6zc|lvv!wlSZvS2`(i!em4Jx?gQ<=ae9c&zfXRCI1@d2eP_zAWn+?8Z*Hse&;N zBWAU#Iqwu@`H@bM>N>0u`>s`mm;*aDb#XG@ohZ591i;=ekQH2+e}l5?S6ObS@t?5d z^+=dCu|aC6)!gP!uW_a&sjV08Ml00ik>=M>C>0}zV6#$=iiQ{-YQ;p7cZna7er5Mf zm_8JUJSPy0W8?!)iHUL^lWkUS!eh~l*E4CN5MDYMM-x3IG0{zfm}=~fN1in0)gjqD zDJdcY+5iIyKMTeI=WxT{VVmNSaWSfhwN6XUrCTFI=|*X@W5J5sW~l``rBMwd8iiEe zLk=Ihak}XRvvc~=O9!XEstWg<_k&0NBdr8_`Zdg&<^&BaQAzs@iw;hU=622ZS@_yj zri(?-^3@7+_0hf^uU`zMGfyeV6T08@mG8SO+yT|yb<K9sbsQW-q=OvYVeb3*wZX3F ztgER?{Y`9=jJWew8*r+eamzcz!ZPnsk=7aRY89D%w756fhxf|k(V`cb=6@c3;3?a> zae4jC%u~x`rSsVOK7Xu~zzt4x%=K&KL-)yl$u4bNXyK>nHZ8pFug_{7!v*Zx{}}+r zOaY@#fBq0XqpHpsuwC*CI|%q6V!2G)ww*_=(d!HL`gv~}_#QT^a<^`^9mBQXwUs2d zd?dr=@wl$grR}KQ?_9^eUTXUr4|e`ke0%x(s_-)JwkFX2PnAJn_MtrK5qHbic+dg2 z`wD5TIoIt4P60SyXz+K}>R%+<e0x^>PygX_xpMUyS7WQSJX@z$o=axEj@atw)4vPC zHE`+wCyoNH6Ki~T5OCRI8lUps{s$xY`tMC^?ceNAosYfCu==Ud{yc#czm&36$xxQ} z_l&Siy!V@5NG)4;F9;2f(`(lmYs}cY=SYBD&MS9Or`-6DT+f@nE*5_eQ|58f=S|?Y zg5b`W<>Tci9?N&XwdT~{Eh%~p7ll_oAI03CH<jIw@BMn)(*IWHNdH)T2v+l-nXr7m zj1TVO)jTi5Sv2`MPeqv-oO#{qk4Sek`MnMw3bs6TtyOonZ!mW#t2VwD!)$$wK}Eo= zR@i&m`6D~u9w_?XUWP5!Ec4$!t1ba#L_ZWN;hsBJIjyn_NU&Xah}Iy)+}0)0f))7_ zh6oyeVE_FixX*meu5a#z3_`_Y8y#sh1zydGh||w^Ixk<m$M^Vz7Ns0mCiTBNhCyu| z#1|Ju*?dPo6eP1av>!TY<-y^$UmYJ25WxD*UU5PEz^*#h5I$}5osy#)5>g3hN8!#j z^c-OAe9E(Yg+5+kjRXxEvxLLv^0}NP!XW+n%WTN1Si3{vf`R&z3p*CaK#%a<wo9Ds z^T{CtG{2^k-G!|g46GQ}!yxyZ4F2;(+gCOqyWYRC#BF0$3`a!<=p?f1Ydr@&YXm|- zOajbv_UNdMB!;=rPQg2Q-a!DvBhKKiPdcc>11K(DyN2dogXY7K&c@D(k<daF{J7Cy ztwL5b?)Oqr-dYUWYs~=By0A`M7yWvAvOknIAoDaP;o*7OFTcdxyWFw&E$&V`pe{m4 zXv;Lu-~MC$iqoQ3=&3Rg^KIQ7=W!J+r)9g28@I)Eco(T_a9ilGSOBoMcLY>t+!NC7 z*O*TyRc$@jU~(PT1|QL$_{y&~qID3+Ih<6%Jtk9?A)f3=F85TTR9>ZQ603ivi!lAa zMJZU&-=%kQ7MGvy%?{oBLSMhr!dtgzW5z+EA*n1I1_emyawEMh@F<4=@ckiM;fpQH z(t4Bj?YK9GDCL=O%@1fV>Gz*kzvMn3?ta{-(|NfvlHC?}!g)N<-&Ou>JA9Y1^jCQX z(lI52n3B2qdLI!>C>Ax}Qc#{)j6ONT;e;jRi*9yI3L~yY9CqGndQF3jknHl%-WJqK zf7jacp*`l<e#yYflIs-BdpdlOt*Bw@h`JIkZ(rQ(eaungw*@Z6y;yJ|X32*9zQTXb zay~yWDcd@?VNM@8CV5HY@6O*uD*Nswp34dj$2k5s&7mDZ!2R#x7hQST)gVw;{4^`u zERX1s6&*r3q!eIp?@Z{;YJcj$aOoG<b+gpkjw+n$2C*25V!AVgN*}Z!F#n_S^e9UO z_M;E}{<C0CR~;~P+KP4C6{uWJ#-8XgUPvhL+)g}qK-+P~zb+!;+wl+biH!8m12IL7 zGTWbBlBPuMNXMNHg)b{jUz=WSqJ1pFC@vO7CBS>$;sJrk-v)=nZlIUSkR46oYb38j zBqsv=UT0WRaPzB3;eM^0H+TJ+vS^`6Gmo+mQkd=f8woTM{OdZdimF(it#>|e=8I2C zLsJrW&nkJ^YeaeHACC}3E%A7A4%)F3(!ZnB(&oJ98e;S63;$B8r67as__pgAkg-|g z4+XZmK7d{t|FXJD4#Ih#NE&3gF#d1;rm&vCvLkXG7lyCR%|Z4rjG{Tj#u0*LR$wJE z^)&7e^=JSDiYC6L#-!t9v+6Vnz~AGUFhqhX-Ek*4qe8uh5p8h9@x{Hzi-~EH`I)TQ z>9Ir!@!a|w$_Hi5Owd)-Z|L8#HS9fJ!SHd|aIkN#8`0=A+-UrCj<CN+-w#SwpLzTT zM;M)5$>T3X)I*L801z0#PnbUqZ}={bReGgZ#RZ@qvmIif@=FNzwNOp|*Lo7ZM8n|Q zmP%ozh6Z12>_h!o2)^bE(%QlZcvBrwJhC_2VuNx^29v11fw|+J?+g8g(ldy;94#+1 zsjnLeWE&Wu3BE&)hIp__p-CX_5jSWcQ+Ao9@x3HFP>j}wZQpII^h0h24d)sXayU{{ z{MWKzjt@K^I&z?X+j)Ec;groz+Y!roY?8C{cc1$+STgv%d7D1TW~62&wJ>imyj#;W zXoQWo{x8Co_lS;XkB$`k+dD_IfjlN{W*{np_x$u8=t)tSbeo_9$G;dc>W@>UESJVy zb)7N|{F0+3pK9ijjP*~!G!;23GAQ0NPX{29EUrovb~>)U;}|yt$sF-BcSlnUfgZ`3 zd*lzCDA~ccxNtI`$Mm+C9Ek*DTO_vy<20)cu&G>a-;;zG6i#_)!0pDHUo^KDfvh?C z6M^BPk@{pk4rOic!XX+LDi@szVA{ho9i1xwf$`Hf#S1i5giU@6!eWAHNzyCpT?X_) z)Y9jYrrR+ceXT?035Pr}?@UE?>X+`K5<{->ct379I1!Z=AXnJT>OwG6X;KdD{8Bha zG9D9*z%k0aj${1wV?8B}m4Q}BI=fA*Sv%{pu$8a0+SuUm@JzaEs5)fmMZ-5uX4cp> zyv?pjpC<_A>!je?ixdt<7#xj#I$(5E^y{_383e{#y-T=F6~&@OysH5Li()WR=gO3@ z5W@z_k82d{YC5!UVL(1%3m+pBg(ZqNq4SH+X^<m27c`0jvUKl=xrZ*(K%bn(*3Jf! zZh^I#YPGIqYXTu=*;h#J8yZf|QAk|>f<OzGaI}&GwO_Epnf)=zKND0pV*y{gK5+;? zlpe0GO7kFc>gg0hQq?0ASR(CE1$jC7GM02?-<6r7fFL&#Bm=^~(MI~r(vk~R^TmwU zqSmW}JY%-e;;`)+ATUC<r^=N5)n6|u`Pg5W{@I3Tzts#Wu6_$3!rOEWTBQpFr(Usf z^1Ieg(qV@YruIm{1$GS)s{v;Ab0TE1(cbZToqA9P`Kt`n9cd7$>h^A8U+o+$;ez@i z*}MTq{FgOl?^2#&Xy;2BYI>afzJUS=+xSH@VIvfAd`1xY_p<N03R0Aw=!rsM-&-WU zZ%fBF^(2gTCKVE&l+Lhi$2JuGc1gs($0<JhzA8bRSyY5NCR?L(vj<=%ww>qWt^6!O zS>_=Ld8f)1`0qA5s%Z7?yJ8d~gN=vyJU5T!S#2~u|JRF3GQl+jG1)fA0(G&^I(2ek zIMzk2razh^W<w{>HMvkSCQ63fB~?7O(j*n*%9w&Hs8P@~ck*WlK05e#j&RX^HP<wG zHem27&k}r!{3|2_x(lH8NA61(AoFcOFx>r_U*7+?T+0Wuj?6*TPG2}6j}_ND^~gHb zj*;0VW9-qY{;0;Zv0N?wi>~TSn}5klVrnK0oj-h$<ihOWY9?7$1c6}IsX}gMkTWDb zG4NJ0w*KonORaxwRrqz@PIFnTZwd1B81pwA;vBdij`h|%+ql5c@9#Jp(zL4PpI}ax zLMki$!h=z?>AojiA00}P)xH%mLMl_m1PN6be!LDVa+m0yO!P8`1KDhPeo3z$x`L9Z zu}|~-$~~}>maw`qQYS}vU<K2T8fHH!CSMB~s!-ZfMjcDy7qBYl@UOKLd213A-ikzx zpv{FzulD|C+c3a*n<Ukj&EijjaRlv8)5Pv7-Z3Hzs&zQD&eeW}T=_$`nyUnuC+a^M z5doZ+{yVk#i9v^vqk(Z!6BH<`L6^w0>7vM&{Nz+tsE}0!Zo_wjKgnCUmPxyi82`!` z_2*uUSf9zLq{Fp0?Hduhi(`STnpLHzE7b9$5r}De`~LfXi{3fR9!5f7*N9bf@1r|P ztrZg@&a@O3LWgS<&$GAeA63E3L3*R+pImed7|V)ImW94Wao$Exk7(n*gHvWraUPH> zyXmv?;TP<oA0KOPb@Qp99sR0#>y78gpJ~U&!V0RJm!o2`vYsLrTBHlN#ImStgp?^4 zvb_qC4Wb1idxMReX*lD;Ia~Dg)q;P32av;LNuHU;7vVX+$uZOzTJ%ISjB}WdIHCA) z(zPQc7WTHv(Ukv-7r0kx?(4(TP5r6G&l4PSO~*6Q7af-5I7VlY3dw^zbE#8o_}`1Y zD!K3LMNq7q;N&N+PQS3RV{*wqs6fiA`CVcJYdlO~lo2V6Oesl-h1nCJhsv7qpP&*= zMP~Jb@a-F)L94-Kb$rg27QYY>!53`07}JT}eV3nvMZrSkBse+E@B96b%&UI9_Xo^Q z#yLFIYCnY4V=9di5#wCl5nq`?5S_|?dU`<T2tk;5R9vmOd0Ff;1!eIQOBURO4jVH> z$21O5A|$rBQmh|3>7(T)K)l*8G49H;`NTaq_6U=Rc!Zm=%0gG<<yZ=1#*P=R9XG|U z$*4?Aci3kZ?IK9VS}&B@9`fFD)f|@a4OvLhR=z2Y>k<^h<vOPw<7;i#+*X`}_#>K; z7?}m<GWlN*Lr5Z)??&5h2I_gO*O?jpM?Zlt0+oUUx){*<`BknP%sNO5&q5^0Z4{2j z>P0v(OR_NL-Qd580U(5atfj7Iwx-XJ#x<|1oH0{>FvDkhQ=?OIw(o6p4T&}Q;JIVm zRv8zA@^(;EM-ea>?*m?jv~>Qoe69P~tr|C&)P0d;QNI9RMSPxrOvT2LT0hGS0>Jcd zo?@P}N}ast^*=Sw>ylIdvA)ee6^DiY$=TQcm5Q-+@=^K|rzE#-T=+gIbhY0^z)gEI z{y9cM`ZQ~pxO%yK?@uwN)h^q^bO^O-1KnC9EM1!pHEoYtw|!EMjM^NPvY!EL<Ih1Y z`$W?*6Hu>I2HC*uU7kfQJVj;LCeUd+=tECP`m|I9D7RLgwofcr*m><%R&70hD6;T2 z{;TX(_jCAoJFQvoya-KA()Tr<itrHxrb$3KEl1T2N0)T|=EG@AHOs7f#A*J-6q&qu zd|C}>fZ*%)CW!Pb+oLar>}2a|gqJ~q@cFI$EKaWV;=3+^*0?p}R~4`X(0yE6N0qmi z<}qx1rhVAgg#8+QhJM(Nfey}!iBDGz(I(Mu%^5UikMw&Gw>4nW?-@58{4hX1IRjGx zl01X6o4yZ1NeSGkX!iDI*>ork%sJ<0cu{sHvrv2peQ;j0I@wXI*CA5@b|rwu1LfC3 z-FaudPz9W$Ps}#)3^FBPj9wpNgZH{<%gh}`q$er#K6e;d5jBVnlPWGTkjHhA7B1{} z;h-(`eo9@`pk}3}DN1T2jQII<=~>VbVx;eDaq1b@9Lu2iA4==B$+r=a7Rr6;@nt?M zA5#|3U7;j4->H2>=k+3e&qY%M7`q?7m3)yN&f^1ic<!S_PllBM%)Z?hMY%P%8HbMi z0QnpPM)M5uZ<oV$%^htQ?0h?F@kzKz-aYVZ)y-{DS_=6$;|sq+p6Z`i;Kshk7P4vj znh`~5$p05?LpwY~-}ciB@r)`KV!%O62}`1;vpkTHHyUs=DY;etMHme{XLDF5lCqpq z`h_h0^_G(0`BQ2OEZT^@HWTgykiJEKP@nM%v~yilqHbDn-qVt~%}vcks}pX^c_JeO z1-j?6+Oh^%Y};a;k@U&9tShxjJio-HI}_zXe|YJX`62Du^{MbN)|H#^PDRoyHsl?V zNdPyiV!MRLoF(Tp9tkZQl?CKvi+M#h-5FcX&Wvr|NLKg2&D1GV<hwEFa0={%9{XSC z?E1AOJ<+`Dw`}A0y{SReg~FX#82X2p1!q&bwT{>@)vYI3!NTs`l=1?!IDwp<{}Pu^ z2f6!cuDqswcoxw}IF{yzAA5)2ec>yIG|%;C5*ZQ8j6r+;f>@_3KQ&c1o3C;#F|@Vy zk2zacY>7sIwTItP8Hr&>2&e}m4-bU7__5-r9a~18l)8>0${20`hS;;nf&@s=C7j&k z>(KZD{Wak?x`TY3gk^P<4H?t+!#Spi5k5pZ>Hf3atyM&xD5c8(#r-}+Ty`g-;Qw#s zW!gG%efS}6Y@kbQYo+6IDv%9J;Ua+1*U|4QXi$F~@cBnk`F+X^%r=)~<W*U~<Bge3 z#s+cxxY7b~bRnz|0w0P?Gn_OQ8%P<qH)6^zFqBhLFe;*ukAO@`kQ=Swd!4AH;7icj znATLkR1;U9ZK_7>yeoXb?Q)iObAa?ck;+ALZjCz|w6Tpq-qB-6mB4wHdHs-@n;l&= z&<JGyFMq?A4;-tBMddxDIG&U2*U>^wC~U~Mr6?R%`{<@KC_90aQ{Bc_4FFB`8};Ia zy#gKr4PPCT<L08{SRjf~cHg#)o<rRzu95HVeBf>U@NWdV4R&oBB8Cy8;?Om(J8=$Q zyogH=D+NFKJJShY<m418d-4tk8!-YbE9-#gox?GZnaBwDG=i-hzhqHX-zI_NihB(0 zY66lVCYh;t*HAaYo9+2Ry%!m#7fco(Bf6~JVmOYMlP$=4$c?)bs!1lXPs727c?-cP z#U*t+0PC3hI+m}$lIqV0cBJ0@$l7DQx96hhN};s!H>pvgLF((!M$IqUnB&h!naBWk z*1FKnFvCFA6HNUe(kP)UqqQa~tv@1B!lB9g?d>u9zPz}ASjIO-4hcl~ElADZsQRqI z8|GNKe`k#uPdb*htkJW;`Vp<6FZrUwti0i2obGR|`#YqrCn_><7V=<MLVr1f2<^Cy zTgUCN!*X&A$iw_{WBBP}de&X?rvxDQgYKf@ZD;NA#d@NWCX8O`2N?I#<C=d0x?jzg z|NhlRap;8Dm3{d(JUyC)3wM=H*IokmBPKgpwJiv4J8KBM5OeF~MgsdgpR}QNZxBt9 zy6u(-Rr7d}0>o(<0_}>W+LQD|3IXlPN{5RBCj{ey<3)kyK=6zBuP+U24kS?g)N6Th ztr)pM1J#iCl!HTa3=wox-g9WgJnXqVZdOp=Z}y9Ei~SuziS3ddJvy=%_JQ)^KXxt) zS;4~7ZamUofHptBgWvBbY)pcj)Ea5CZav&5%uZ9+rU2U{SX^)t^fBawo|f3-__Zn9 zgwyd0-5c?qF#axhgX4dZ@c-q%|36F&IZOh>y#8&Ip)IDT7PC)X^RVGO>nCAupTS!L zMx0~RYQJW$|1VGscmV!-q~$`=x8ocy@V&n$73#(Y=T_X;GV3t|Z+q@Sw4NE`sB>}; zXW&m*$nB%72JjPesbzeJE?=z(W0&z?zaQ3@R41)SiJo`b>?=VEID;~8KVUzjXA4<p z53GQ`X>-Y4K$LfL1rEF@H6bD=HN1O-J^h-;NAdR5Y}BUkb+Q)wJfTn|mKZ`GIe^$P z#{F9R1N}PbA984PI9W7LuAXyt8kQ@zg==im68_%@e84DJ_``yp6W_2~sqT^W1a=oL z>8)Gu<-#)%j7Ao$yI^!%i;8s#H%>JaOJ;S6i%)jp*^l31ej=Xt+||{vbvttX9JmL6 zq0B6Ffp|`pADW>c?Q^4?`$O<XWbAL*clbWG^>fTbs75@OpP}^GtU0_Q<r<|G)Kf77 z+*|oIi2(e+FVT*+dr{<J<c?#S-joiRtly8I(oKq$h0hITIo3Ikzl9rF^l&w&s-&+^ zoAn&6j1BGd@!T8UF;Y!!-D}tVQ&TS{U}LT_&n_BLFpX<aQ?E4>8BAbt!M4hFPN!ws zOF_q`RlzNG3m8IH!hVs<H?8Nzyo?vvLB&y|iU%SxP1XWpazyeg&<MS7u7mYbu)tDC zp9urcm?X<RH1-aSW$FyNE+S9ryU{)|!IX0qO{r7L9YvG^Sxxtbz2{Ej|LH~y;DyJr zy#2DgIFXU=3BT_jSPsH!7WMGDL@4FzkVzuc&N~TNMi1PhlA%2p+(3R$B2o0nc9*32 zFVxQ^-@_W(X765pkC9++AmaF25G`yd`pUH-HI4*vBMvJ~JSit;)_e1>ETce%j9yFI zK@&7&m~m@ktVp`fGaU`en88w_u&dqWf~Yzf$n2xodVKP&WkZyBx@ZeyaQ-9wFPbK? z@F6gIqWiC2EN8pi4IVpu1ZYm9N2)7epC8bfjS!YurDJ-sO=CxfFeKn3ccw-59)ObD z#^y4Q1?(#XL~dYtOjmyyh5P;;RZ==GgL?}PDl*H&aICJMO|I6f(NGt$cI4p3|79JR zKZ)L3$g!MIHy!P4>>|SPLfwyn`c>R<%MH62@wAYXAwq2Xwg6+@^cg`@Lu4ku6cy;J zLfy6ZJF>%=f79*g!xy&6CRGO+8SBohRwbb}+0f@7V8;K3$1!EPikk;d5ooH&@W>z= zW3`J4eXBw?5+;K1r3$dZu4N40fep{f3;e5zZjYcotg?IVnpnSmZrW#D5ojMc$Iwd` z;^9JK6vs_!j-Y~JE3z;-Cap?Sy#xeQYfx=&n;Gg91!!0+vH2%xj@o@qjd3TL#}A-} z-w*CJR)7u)l>bw9Mb5Y;K;GQbD7j%#OXO9XvNW5J0`9_M<G;uq+k?N%PQsSK@XML0 zN{UIEv2){gj<nSKsNK`*D1&`ObrN@M9F1>aKuPER&`fu*fJorP!@nm%a0l?YvR#CJ z!?^4loeb(Oq&sTLYV(&ObB~vQwO21ckW6Q^>&BK(u#B;(A|zobCs(kdW?$$X()GvU zD~A8p&0VL0LQ%z!Yr%t8YY!hjc`c;lBsF6RN>_PC4pRStiF}lufFL+tkYV0^t8g9T z2v&+KL~@L8{)(nraIu%A6bc9?V#q+8M;xcq+wTVV^-a!`DIiz3Kf&CaB11@x=k$O5 zdW4RY<c!NZUXiNNCo|lA>A^ShYlSi0FgyT2Ag)0=)ec!;fwzshpsP|44GW$xMx4r# zG+_5ir$&S}y$n$jav(<G7d<!Ms!BEv8!}w7$T3$3qY*|W_N)Ik8wMN=0yp}*oz)`A z;;n<`tV^A<xU#$y<-Ih2;Fqgy|GPm<JULlEX8cPCO~&{KMI|=0_bHHP{uRTJSM-)` z*KEHJ(u9X!LrVimh23GlC_24-(wBzzPM(sKJ_cDd<0>pUT8saZ1X7_56F9AMctG%% zlVS@}Mh9uQhK+0!R00x+4<5A$+XsYm3j8Qx&1LQ#O#hwxbD<|TFB1Q$8|aAI>oC7^ zdWNpv+mFP1a#;A?7Or67p`Su|E<<U{+e#uM7(Alisj4t6N_i}<y0UkwRN|x8e4#Ss z?MYBm(q(@M>BrSC=J?eNoN#ZBV#plW!N*y6;fq7n+>?LYI055Dyu3~}8Xeos<H!;6 zT?<C-@$}(+cGLxEbyb*H-K&2mkXEbR_h+hIxVh~4^}Nl@IA?URDJgPRIucW)WiIN= znM1kG_svh8vdO~rE<gAie@pX5(5@C{rQJdb{LMD{FE?FAb^TD*D;8Ou8+aXb*?i9e zxrBmJC2$6V@&TwdIHF&@vlL|}Tn|P+d#S6t7V8d~q*0(lVl`2vAm3&P`P!`37C{<Q zTJw$)6VjWh**{(-qyG5+>nwVCsh-Y$X^F}{PgMP|@%#KX{kFeW(|Nm^t3%p)d<LS? ze_rf=%<FJnm>96xmexXO)?eVHC`Yw$@V#AQ$#p$-um>KzL<r9U*4<Cg1(T7D&W!jd zu8Yh!BbE8;EYjHa&f`I3;CqRR7at$NQ;tsr&w4&HPfCSN&et9Og}SKJswXR>&u>3I zc2DyJm$wYM&j8^4n}>c1@H96m>mf#(dp3hmJc8vQA+^@OdeaX7Z?}PQ@Y&U%;<)CD z1nEC>F`#_X#0UlH8(pHE@3K34M%D1j>OUUV79tPS#vRCWL>bA#t}fp~Ax3$m`F6$y z@n`!l0@L_m!h8F>D(zsyc=o6o0@t{UvCP2uorpL`Y`%!$Nlo|jXknGua0w?v?xv<d z8gds|B+uEcEr~((-@7aEAe56!7z==0XAAv01i+qMyz{749>yfQ)KdMr{<`AHa&`wz z_V_iO;C?UrfNd)6imAklnGGICxm)jW+feA(8lEKdKV0@B0Q7f5KvC(gV{4GFK>as< z)uRPZSI6><hVFHQot8BZJi)FYZo<ol%7OGUNr)?<UExK=5n45r-O_+((3&EuYDC!G z0MMv6cx-RqF%faU?jCsh9%|Cs0>Ky2WQJ$k{l#ucm?JNo>7v=@O@Q<<W<7>P{Wsg@ zcTPimw9v5Y#48%39<zvkBj{YRh@>zD)3gO6L3$@`nbkY`VkQQn(UoXJqQ^o*`P{>u z9$^<rxGe`tyQ7oqTrBBLtJc{?g*boGL?8unBAr{Gj_ZK)Qdy2##WWB%*}igZO4_pz zSES+U`U;Ey#cjl`heO7~19{E%cV=~6$9T^ALGmW%op5YP7$0j%>C)JD4^q(;=WTxv zq5EjxyZgvgRq~@T+3srFRg;7?!H3QhOPEB^SF2JSr<FdxgUIeReUB;ol#KfF3J~;V z7Bz1F<~DTnh%}EDFa`DU;Qy_9+;DX#_!#+Srkkz#dAt!?HkCqqbS0wtCeqdNZ${U@ zD*;MH$dXR++_zt3x;(5Qp!d*69F7sJ=pk57=WQWI_oo*&eXA0Yx4x#mZnHs8XUs!Z z<y>Fm#%ye=^t7jE(^(_`KoooAG$0A%hUO?|fkQtb@;@0gRkNPa9w$LA@pjuUuatNY zR4~`|fE(NaG#(@xfkE`+gDTrc$juV@FkR|z{9gZoD?2-amyHEtBVfU97k^PlEXm|= z4(%p=Fj+6|#wAx@J*LaD1m0(OM=I5rNY{`7^vxIlvZaw}(Qe$D<`lvSf55(;Mw?#R zgm<)^hL#E=m<(O3MXf&gLZjIyO~yW%(M@nqwTOUAh!4VVl+Ws&=}Fi$DfYr5$Txp@ z<c1sdl)r?!^h!_UH#nG&hz1so%;12a^5OQ$yKZY|O)QV>xz<D;$!8xb^i@*wuE^B( zddYq$l8nLjoUcUaxX<m+5s*eKEPo!3ASNE`&n9TDlq_MAEGD(UB8l5iM8GQjN&TOk zmha_Ss{oFk#1Z5N=OPqEp_V|5O&A)>3x?jp4ZA#qg&l4?0E6I&#x<k&;BC<tF`?M^ zzLl^Ap}l7Q5oGXR-iDf_f@Lf1WcYYYqJ#Vn_0y@E(ySeZmYNGz95C8DcE)e@0{1@a zJiS3OX73??tKu8elq$q7440@Bq0b-7w^1e)KosLKiGj-JFJp&9I-3<5-5%aC&1aL^ zew7(!6ns7&V{bQe5n^)fMod=GBX2C^T$f4MDAwkurEtYWq016hVM-={v!PGwEbN<q zV24BMPaUX^q-BAz2k6Utbd}cs%j=d5%;c!AWg@|IYDGu(Cm=E}7hZTUQKGcEov}sC zi+5ZQVH7~go5Q)-y?VUKiM_{8cH=)^cwj`Zx8qQQ$ttFW8U3;%AI{-JJnr}zQDsLg z=U~&4@}2Q8Z)MrL0Y~>LA4A1k$$g<{JmiHq;J~sKTO3BSA4pjdS2cfvCQ?3z6S6xf z;}g+ppoR;)IqMiam!d-7GTi>vdDJLV0LFrFZPzN|sDV#ILP;X)=|Lm&{es1DfO1q5 zD~{2a7g1vwZauB9l*hoe_9RMv)$w2`y(5E83Z3c?-69KfVL6Dvp}D(HZ2A3`Q{g&_ zTAi(?7x8>#4)6*=u=>Tbx*s4`487<9GRVxQU?a%zwxef8c7PJVZ?Nc!5FJ1GVcq<E z_W@>Q8jlPVT|ep%i+Pw27pi{Mx^&<{-v+n-3*@FNorGd#hc60tX+hVQQF0$NmFZu= z5w!c5*_KlCgtmG^JQn#*!PYSogmVku&jKedmf#@{0;*XkK*bc&)v#V3-?e3IMN*{N zRIyD<M~)E7lZ&YDPn~CJi*SOPTBzH`UDPDlHg#-QSxWC$tFeYR`cYnD;hvtLXYcd9 z{$?J-xg=7S@*6P~dZ4?X7LeZUi$rz~44V)nc$H(sGL_~xnyuZIo6~{eO0`t5r&X## z=X??50fLoVQm@4@+ijDAS=}pWX)Q>yw*qVegA;t_%(TKUU`&EwZ7kFNMqT{aG`NM3 zlZ`uD^K)e7rbt1ef9G;-&5x27MHUxuEgz|L@~@NnFVzw%B(aHaD4T1+M28&dg`+_* zFdYxkn-DOCrbh}J3NN~s=@3SrgO`{=8C6M40J5cJ$x%}Xl``u}(l#9I4_Ah@*{iL0 z3wY(wwut{c|2hViFn=;Ju7(_gM<pOlJ{P6FgicCz&DB{TTAN{0m@cWNsp>H)z?Ki< z5eOzoYdH^fZppPvF@Lqn*Aj91f?R=!ddga9-O{vmYl5cyO<H{Og(J@O*<M9mHJ6L7 z4VW%*udq{D&*6QRS!M$rPPkZxnJfS0D*0S!v}aln3kW>EE-1q+hFt*3cZ-$yv8nYL zrr0SO{VYau7Xr_qpb+EAcne8e?3o|McI=Jm{5Viv_Xf@5Xn9f+4tvgfCGM(cvP?Qt zGsv=jwMQtxjqC9cE=~Ybwk0rX;XC;+0Xp=h7vdRsmgUQyf6QzrbFmftAy{TI`Z;iG zv{n%5OH$gqME$jAH{?T4d6*)PiR6`8Y7j9iD>HU-V$?8pAL0u}GcOh>qd;?!$x?ae zVW~x0oF21-r|~4plH5L-HjRbYw!+61KSPtw-TML%1hrwYnh(N}c_C}Dd0F2?fH)NC zS~g=^WOPkIR8mI4Oiu~6T}<kfQ}?NQj$SXf`h$wYCLI;03%7uWnAL_gUe;cyUNzJm zOZRPT%rC^|H_Nu*dCvt~0rI|7)7=Ej1X#^7-*+Qwnk>J}&lsZ!=yWQCQamRyE0Nvi z(bV6O>vO~fd~0W|SFvg)`!pSXfTZe}HH@Hhb7AIKTd+AgiDH#PqW1me;ipu@oMm^b z_T(?wsWi+DA0Mrbu8_`g9Xh&Mu~N>tv=N*p1Yv{PWC`PAj2yX$F{G2AAB>Z><2yfo zDe=GYjkKtY>0WTR)!p3M)ZxbI3r{<AVaaxX9=kTHpxj?^#%^Jciz#|h13yb9E5IJ5 zjn%5{dvX<6++vFMYKH}8ZU^61e`YNww42y*|1D1dYlNX6G?X`my7GqDE;clHl-TSq zMeK($Pi0jNWTVS#m-kkFvaMh;o%5YdqJ>WkGF*K;*yPFU`MTHbMb+@<wR_HGO||&X z*Hu10XSuXpfa}hOK#J`rz(HvmH`nFH!)?Lm>cc4L(SD=dYi-ePjjPEzH7QHu;-jYl z@K)cwQUGr1FXytRpT-EjT|IYrMKN^OTVb8?r%pZ<ZgqPe_cb#O{#bp~b-USGe@9`> zGw6c$+TGyO%2l&7xG6citXch%>&xtR6T`A$?s*%`z2WeF+?SLI<mDB+m`Ny@`(GX` zj4vdi42n81+H@E#MJeibwe6}h=>ShqBf_r_S^9!zLtB6R7si%44E|KSHp(izk0G?! z8q`@Hp0m7NhfO41a9_M$ME+T8x0Aj}X?yJQbvi1}L)z?s_7VZfrGj2xJQb}C9O^Xx zqM79wi+eOLZ|DsGap)S1#=#yef+kztP(3Doq-0-Z{>sr}5v;pq+Vu<+;YZ9bsiOV! zFZuPj72a%zwAaz`Ex}%>&N79PEVSNeM`>EeDHt?Ub_!L%Aaqy2M;C-Qfz^znsChTW z3cW`w-C^Y+D|;v;<w9>BwXiUOHL>G!7KMXTslyfxg7eJ<Dj(B6w#LR4A~=3|*VnY6 zog3!XO0XWmfGHNEg<`lm|6Bfo+#k3OIqwB6ayBCGjUurqv5^)WXE;=A?cIem?Z5rG zyiA4KKyw!i1tV=cwzCF%De9&1Skzyk<_6&T<qNjxiF)<frTxW6^y=d?>0V}JeAB%) zwOmtQ|C0xJsTde6{V|W(a!1)2HDM~b*mW&Nse6=f_T_vYliWZpSTx~_eixFj{T;fR zp8uoX(sp;y*jKsND%k5>UMprn0y!H4)lZ!JLZA!5J2L%kk3(ef2efA=2P51r#?&1q zk#~&8(lX!9{*y`w48XUdq7}Pf%S+mRw8(dh=`sRDAJi(%{_}b;A!#9*lviJ8#!4)+ zK{}CDnK4;6y(c7TKg@b&THsFJaFdt(=o-&2Z7pU-+hpB8Y#<n-+VEw}DRwGbmCz3t z#=a|q?#%+Ph+LfQ5w|i$iY+%XW~=o;%sCW@=oJV&;Ax==piJ7_A4t!I!n}*)jxD=c zzMlf}&I->{s;&P;*<krd6j8SET5}NX#R<mJWUBlW$Kpe~y*^-h5Dwn3vw?~^ixT&d z;F~g0XM^Gk%#&0WP;Bpb?LjH~&92y!;rE&-on*5dmDT-zG=cTi)-ONk{Hz%x=h=J& zYshY`YwfzI_~0hB|Ic5wIB;)t46SP9W;Ym+x|}9lUDZ?wBH*GnBeLf8yp<IM3>27K z4NqoW#hV2-xwRF_;BGNSr0c$>QRyj;VEMofCjPZde7_mqqhSQyeaw|E>2N>(n=FqD zil0DA#mZxdPx6io?kl?!-QQ1s@$SbOLGbKjpmLXT@ejt2n~%;`Q^StR5{yXD`kVot znvd=OW2-S~wb{1oH;ZjMrLH(@?gQ%Pnx-%hM;o+Q3iecMz3)+)+1xMxdD<oP7YySc z)75uVrH{SD*s2=p+*hs*d|ZDFA>`bRos_apyk?Ddzo}R)PW@?86PVO`PjiU+>^8t% z2JU9Dby@+o!KlzSor0ruN#L&MJrNj|hkE=bvXyWn1!(|v^<~SUT!@8z28fnxui{h$ zSI0z7{s~@EmGli2@U0|fur}0SH$T^;D^W`)uY0y*&VUqt!h<ZKmxM*0k41*!1GBHr z$KZ7M4_`6IZQR8gX$)T$)8-}Rx=gp?csMJ9{}<>vS;B29Yj~jtZ62XP0hM{g9nNEc zmCMC-qCChwBKY53ZC8Rwgb))1QoQi!MFW_K%Xeg*XCNGj2|0ZrY{*NXNfuRyE0mf= z6rO~=C`K?n*fG`-g%L3jf1eY_Y0hY@5OyQ?QO^@oRO%1)r5d?^l`z9@(kh3pO+d7c z5pqL6Jwg`<elLctGa!q?1Xkp1!(o%a#llO(E#WXKF^CO)D1^L3YkRIV@x<s!Cssz> zQ5Syj_sn=)MwLb>S$w}ZZ`fDD`Qzlr4~=_~S2SUE-OM(LPJ(x2kLkpHrfi05)iAxB zzTt>Ol4wHTaA$Z{#>4y9_61S(VvF~vqoZVRO_qu?XrP(z-cf$j14wh3zVhIOHLkP| z+fPa$^jDH8wmYuw=W|-~3iTktO?=s=@h*HtnoVQV8PlxOhD1WaV<8LvvD&Dix&6uE z`0gKyo>5mGe0O4GqFHiIhEDR3j5_fYW}<}q#d>9Am=(qy@94x@$1&h5)JcemfYbr? zapfHy6NYlWdAgicKfu9ZQx5r*0J>3Ft<LzuY#d^uc6Vv6z*dtEP)u(#iEH{+F423& z)s**)ai|>^*wOW}HcH9;`AXyq5qOiK(5FHy;nK#?a*_kjo6tWlMHzEJsJ6a{{MWc= zM3YGJgz%<=R*x$l{s{Z2C}^Raf&^SWv%0Vx$MhAg*ajX-76=U~7LSx1Y-Lu!`>O8P z6p!iZe#?ECtcMSc<U}@mq{7T`?JV_$MAB77CF%B{KTrn!NTc3v>6fT(t287QJW3?o ztrc=XIu(rO-E}XqG8kGa8(X-8uUkeTy#Wq=Qw)fekmbCcfC{3DQ3!Eey?}I;K|(KL zE<<+`FjA!f0neGLG|v%&{1Oh<Hkclc`iX1AuuQy$LJI?HM#>wi9j^2CrS#Ixv6gGE z_g!>@fARIeb=d={#?p%<`-j=dOJYrG3shDF?1eh2Ap!z5Iwbe^6h7!`?X~DWC?KRz zr7__S(Zgm*KrrHwQ_%<%47)&qjhfxOckHn&X8|<^6tB@lcocI;jF-po*CD?|Yy9lR z4Ma(lQaAHdYz_1DqzIEZ-==fYjOGU?K@*(_y9opYe;ELwTC40YiZmf=7j45vyDDPI zS?aqPg&OOyM~s4XGucn(u$|Gt@tghnI2*xA>LBB5hN5pP&l!}#vtd{u{!7R<<zD&0 zX1jU-MnfJROC<1%Caj8zMw7tK!XkBX)#>&iz(5-@R^JmyD(b54hT_GEdYIb6Ws;;+ z{kJf?PqVkA+7jCsiZ#)aIMwiXWADc(8(p3l^Kmq1Wy9aq{PJJs2zkLo2ieX#6u2t$ zVjg=X`d<*2mJM@mS!*X%>8*L06+cbf7?D!}4q}K4o6G{*E6o@;?1T}a-dDIU-)eGP z*_<r2M7Xrvt=q0=$dwTVPrlj@bOz<|!pk8FBCvfKT(N<l=G%50xV4lM3gK82slZ=r z5}V}a*%kfy#Wz@YcPRVQVHRcpT5%ak`nQBD%GvvQzWD`IxNXKk0;&|6P+h_3V((8h zK%R7p4MJ0;&lI~-YPA+(H66G0K-nj~0D-}-@Z~j$DKDoiv2W9m#y?TG>Y*|NJn!gA zlXh#{XjNPkWXF5=+gN^@#`W};Y?7SF`d8jX<L-c@g!)uL`zdP8Wg~-!l0~Fx=$NZb zduUmc!m(S18f=UfBGSV}t{IORKF`VzKwxT)CB2imnaVjrwLn^%#@@#NQF6vThrSFK z4z74W(S`=xqFJ9m+WueGO8JX|PXX5K_E+JIC~}@FcY%9p>jC~h3cGz_flkHC6q$(p zQ*8>i7Ky1~i+0M4dus18RQrFGd)fKJyZ`+8R^-l4pLvhEUV~!{UM@iPHk;mEfSc^& zNzhcMT9@bXTVC$l%a~rvddF=y%cS7VIGOilQ!WGW1}yP-2&`NAJv855akafq^Wy1W zUxH9czF(+X*!p~PpI!_*Yu>N!-fLO_G>)G~{#{muHJ4P^*js|%MS-IY9d-L)kl8L; z0BBP(4n<MBlH^a<eshe@=WHgh;^$p&dr-WHq)2U`|6Jg~vgY#{8TP$5>343&L+X4S z&^Z5o+Mjcf*I{?aInK*%K+TZ%xnQM(MpOMfpUTp~V((|Cb@(&xKp%MNe|&g*E?vhn zcz?S6)c5FT+W65K<~3Uf<&rK4ojdWeXzCRdH9GO3dLBMZW5z$2YD@+QM5tkZBRChh zh#{>EZ%|O@%8DI$J$3TaqV0b=x!=xJt?Zm1G{$>#(^K?w5C=+XPxJQtRxUYPY6aJF z=;o<{<-W8mzX$g8S<vbz9W&tPvO3hR;prbr*DcRtUg<QHR8JitJj`A}#pO@4CW73K zDcLhz*OYSa2hYxy)@OlQhj<WE2k13d71Z@FXSAE)2_nG0{0H$+QhVs8eje!a0dnhT zxtRsmMelkaQY1#P2H~KHv=rr;&uSSiX5M!EQvH+oHpHyP%!6x9$26Bi?m@j&>SeS= zk3!LqDEG<kN1Y}d<|1Byb5x{Vg64!nM><Ea-4AF!D+t}|B^2PbHO3@2#18Ln_6VUx zPxJF7IN%r!q%%Q#svV&doYX49*N7FEhnApSUtU;2Fm1>`(Ak(%Iy>;lG|NYD%wo*G zcU3^n0@=CH(?Q^=NW~Y_C3>w2hSj;7-N}s@?Y?%(^LJk|HTYZjX2oTWs_yno&qxtT zPtRZ>Xnu`km<K#YIN0aq^|86lh`#MvXVZlH;J1+bl5RC<x>a?VB(+&2JeJ?9aZl&d zELFUxRcBG8>MFecUaHG`0A=>-pgnRbJm{55y!=ek*BNzRdZfL}5czJf)p1|L{B-6j zfbiq{^bVgsdt{7dQtM~<u;H&eqg64qUA(H_{asDiS5d&QiPid=W~GpAbD)!n6NPcz za-VJUC(6ABElMeaU;0ljW9J^KHPdc0kCCM2;kB1jpEXi$KH)9o7)C<~B-cx#z9cDX z)OXK&ZY?R4K|*7@jCR{p2iob|<97Tr-p{w6NYBheyF`4MS?f9q#q&scndfV_@U2z< z?bq5K4i3Nwnn<#3zHlNH&A3tFR|w5Vbh+{&lNBNd!TqPd=gSCGr7%W8v14+>5i-fG zRpY#WzfG&dVbFNnxiOvkpR(Qqtf`<`7)DSKks=@{y(oxu>C#jLM4A-oMSAZ@34tRb zB3(oXN)thl-U%%Ug7gm3OK1V<1PC?d3*PVj?|1K?=Q+<gyE8jGGdsIGn{9c_7!!`^ zvj>qM`DX)ch=*^9e|BlQu50pqh&Y-c7AFO*wB#S=9G=;UiHVP%g>5Aa^q<;I1s62H zYXg%pldW(#fJffS-0n8Y5=agkfOVd|th|4{BC<G+T2YmzQecmkQoX`q5WVa1Zm#R( zS7<!r>_pdDoZHR4im}$G5RFTs3!_geRR^!NGg)uy-LG(-suby_S8l`VcPDf;o}*kR zmky3umF3`8yoa|8@}hSgw0^`>gFjkc2E|>*J-fr33k-H`Ih(aw(FgY~aI4X`=%>DW zsb6uT8|KuWqz?MT!LlCv`_YF(%VbXniU$e<>;rnc=9KsR8Br|gXzzE-w+ks9jwsra zO_P<@Ji(ynoT}`Uev-N5m5FI$kJ7IWyh`YVy8Y7IZIGwO@EIB@Uek=fb{at=YcsqO zTizyghYi58ver{@en|3;oO{o4mHMrF=pT6weoF&#<l^zp*T`M%&TAF=e<OCU9;w=< z(>+1Aq2l<S*pylcIK0R)bt+&8hpc}Uo4oe*$qTm?hugWEA4DiLSZ|Q9B~xbPP&>Ii zu5qkF-8NOJ)c@Z7>66Tj8yZ*zFW#-6?2)%-x2Pz-18i)r1$1Rxid}6QF}h9cba#L3 zI)8W6f8zdIDeZISN+D$cnw$5Hbp9ac9Vsh&BmD*3l7|3|j6RlZ5?emWlUsQu-R>Kd zIK`sGWn{THI#=7wQf_MNr%3u`kxXkM@3y&{-7kle%OyiD76wR@!$0Dp5xRGhOD|(G zjXY+Fi{fk=#D?h~UtOiUXZK6hh^O59&cnJT8-}75C1X}r<D1eIJUS#EBsIG%`=7Z7 zE|nB+eW3o+ssZ8Is=~!d3gI8~-$*yS(lBKBYUwyFm#XDH<yTEMJ^>AgonPgn{h6_T zp+_{<GKR5pDNRFH1GrdSo|0Oh-mZ9&actRj6JSvQ+REQOnw6bu?fUh63o2>hAxzmu zVG!G}-O5SF63?j@(Bx5OMZ?H0usm$x@VAVy(GPAA@tGMjd~?kqZiuFO@dJH?TmgF% zY4op>%Qq)^<(@G+Lq6s+ql=|x<$6>^=sJ3ue;$3MONnUD`4IK$gT-Sz0|!_BkJ@yX zwSDR$5&;`IfyZgD7iV7F%hq3=Wn3SLdV2e+fbW1omg*J0My^6dms@w(@q#6SpJ$+T z0S{lb99h7t<+Ft>I?toapP2K1;ay1o(O*1$&8Cn45|e9N3jK1NlRurd4ZoXM?WKwu zpBjo1ZgpSp6#t&=#Yu%6{>Osku)yfxsB!J>I7BmW!$<tf2Z-@N|L5?~1dl(_;Tt?( z0rLIT8yzmyQ;!{jzWID@DfIe{JP$|-XJyhZvmD>(7cH;(5FksuN)$G#@B&@x%O$#L zX|t(NcJ1x*xnb<HNIJ@nRYZH5gZ7=lceMBH-aIi8sBB{tKia=_SCQ#)YX4cz(@z<E zLsK1fTtHFD6Pfae+fhHnZqz)y^Ossu*i10<Ln~B}F8g$a64l=0-e*%(LoYBoOp^FZ z4NT&_2t0b<x=`p5GJ~u;M#v@Rh`6Ftqz|>m)V8jz(pYM?3T0|^I|W#{#P&G09)rAj zA|4wT?|gjKm;6^^>;CBK)awP2vf-!nk(>o~vA+O2N^x@H0-e+#+8)2S$6v6nI0=F{ zh2BD>lZ~+gOJRWL&ljhcN(W!rUa}Iaw3*rwVLP)i@JqQNmJ}CcB>b3)b}mu4H$a>x zLc`{|n7Z%PIL4VDq$vb!KuTWbkGH=HIJIgX&{6lCYg6<1v{JWcJ$MEtk3F)K{QHfs z^q0mRfQ>qXdqg%)Y;rrXBOSz@LhZFCZ<l!^uCg}x{X*8v+K{V;6%B{Bep@R&({(XQ z$y7F$J&MpI%JCjC23eIi%zU`nH*IavpTgU5o$z~?g2i-yPxc-e9qB*qN>=6JQ<ym9 zA<yyggXCibcZ#`L!)~+}g&J3nwNZ&#w>_{^1CXn))YgNe-<4IlQ9cagyX||2?7ihj zE{jY3r990)NXL7i#do0cke3V(gI)POyy~Ss^}NjgIc{bBcco4f{Ypb<W`5_sk~vS5 zov-BTosbHRpW|%O!%EdJ^B&<XjUU!Jc)s-i>-LsGh^O}Lc(sm_s5otW*2YfvCN3fW zjr3z6Fbi5c9p4y$Qih%Uh@m2^entgm*3Oz&E-ppM&$YT1HY<mC=&q3s?#|;>HtO}( zd}V}@A>+)0IO{>7rUNB(ZTdC#!7%h#?|@m&K#1+;_j9X^(AC*3I=RI{S`a>^?DZwN z%(}IQlv$gfuL+&~t`v=46)F{NG%xl`4e<pq<sd&zQS8}Hu`<-zZOqhxnJ}mm7!`GT zj_?c<fo`47(T3Ky!H0XI)1_Z49J?RzDsBvLZkC6t1S*8|4mLqLpHAe;7%KaZ2Rq?e zcRCLaZq_L)3lx|^M1~4=<QGR2eqMoGH`&;}A4A88%AC-IbS%$v(3XCh5>(i$?;@_h z{zWCSz+P12$VHc4dzyV*X}j;NnhU<&Q}i+d9U%hW-C6h*fg>JM|LXXavq1e4q}lRE zns~(bDV`nDo(@|-PV~{!2U^Ip)V<(!$&+Dg<ERiEIO`3?)E4|w)&f%p=5u@YBBkzb zRGX58{N*gh<DF1CEup(6&6w@`{c*r;Pu04~@o~$zcBb7-g2|ob@8+B<8s_FIDyo$^ zm!8-J(L<LOx}nx6R;Y>2c=;ep)<O)+-{*Z_rB1SN3k*98Yzy61dv`JhXl=DEA+L94 zFgs7`>o=oj%HZ(R#C{;o{724U%vN#n!A#lN4G+j5LvPQS2eW@<R6cJJRS-a5XBjda zkV3C(+qsu+^h^#6CY98`DV_B(^JrHuL;Xt;L&GK4KI8pch0z$+xtari=LyG*O>vE_ z@HxX}7%z8sx*bglPh#-fQ0FkXcP@<gQ-^foTjh*e?>@t*3oCnkNrJqQ92E0`cm${0 zyU=;QWzo*}!u_FXliz(I82}qYF|=jyC?72Eyt$Cjx1FLkSZNn>lkpBi`ZrNZZ1Bky zJHd{&mIP)>v4W>Em*tZdDn{N!u3qkh<_ekauLWa<CYP|ZPaVGtM>yK5O6E(E)(f-l zPcW}9%MZVar6S8IlOl*KMbX8yFt^(Z3s2c>b3{QzgzyApSyecHJ}{@;cHJ{H>%~{% z4&NN9&l*vC5p#VET94B_z|Wrfpyw46AJde0AsA!Fq~iYS&zC`zMD{V`2+Q)MNE!hZ z+}jsALMq+`*e>5z(o1l<RmqRZwt9Whof5a(tdgzQS*y!HO+8n$Zasku{-vOKT0bX> z2dl|F)^T>1v*8nC>H``QD>4{kGp)Ba&)YsF*ZL(&=~}eQP5T7CmY9)gifM8@ckE1D zct+Mi6{?od?i9GL4#5rmm7$-zeFEH=Zr=UyOC}0TkjnXCFN7bj6zSJ@@x^xO2VY@Z zLO^=PSdK87ee*m%#nF*I2+1-pVe!<f7)~ErI~MMw*I`OYtH4l4ltu(4m^x~Zg+bp{ z4MVWowR&?$j<!vVAR!-UBD5oZOyW%v-qb<QohbD63Pa6`Y|IdeE@SS{N;u!6277w- zNFBzM??s09z9ikM*uC1#pJvMiaS*2`%Uq%O66>K6js1xFG+t$?I`iRamwukF)(xNM zF|m4670;ei-n9V^2#TZUf77R?=GMPte!-o2uI&<V$H%&Z)ghop-K?f0A*Aotg2H_u zs_5Y37|n60^B>u2y(_M#!NTxZXVCZCHU8vxMZ%`v4ZOZZE@J}x+C6O(d!NUgdC1W) zeAlh4_LpC6dM9GF!<$5S?!Y7W;da9Pp+Qmd&znD9%1xyL^bt00g*aog!s*lu;bL<Z zi*I9gh^do~yn~y)KW-v)`j(A%(V`-y-i4sBpRFfSAem6Jo6Dtin(YK1lz&W=W&y{x zs+|zW4W{&%Xqdwu*{c+J!r}-fADRQmh={DI(t62dsnJ)R?1m3*z~Nh-E%1rxD@*&2 zntxB(<y-~UCEge*G%k$}el8S9H5$<m_?S{08|=4Hkd7?#e_T~lvowL=#*U4M;aRML zk3}VV(iQUL1eZV@1pV%;fZ_WiAbHxs-(R<n{Ls#ScsR_BcXR{_pzd0FDHXDd>*ZR` z=2gw^vZm#~543xt1q?vN=sR0Hicfza=Jk~x3ZsBUt-p+38tU#IA@u9aF^R9Cd0x_% zH@_b28Db5a(RX`C*a^=SOq8Ty^d9By#S%Bg#f8O7?-`F+eVi2>brWEbD0lKvTlzH* zI}9?dIr8Nf&E6^g<bY|1$>9NA_nCdVB|=b?F4P5fEL3IIaVAREgYh2)?zy7cmrFI# z@<5MCslxXrt=$zgSN8*fo7y2mPeh%<a@PA}Y4O{CR^z`rM}5DFrhkOy>a5W{bmVn> z*`#%UoZwuUDKdVm!59*oZd!t1E3>4XSkg%z*oYCfubjeH?S=HN17;o@^)~RSmiC&j zPTN9w!>1YH{$j37{7YxP@|&=o=cnsJIl$Q7D>Gq;r@U^WRpFE7JiDfPefSd-%brmO zQsTz?$~?^EVXMfo;t)2!cEFJv8w3(gKNJZZ3G>;Rjqnk@2f<4`vsxLJN<2P0G!}6P zmla0eHDekKwvbQN&yEGus};13gaU76E$cSd{c+xN#HbxRV;vGoU>OdJ`q-Se05I9D zqkI@Xsq!^vTeDKwZ0C;pa`3*xF9jW=o`EOlaBwZb{xdyOm>l6KUq(F9Yc>RVmen-h z{k&H*_)sxj$6|8a^af}Ck~I)4!oDBEvvVKqeWn0UOhlw5x06|?dMT2WTJGq+gtb#8 z!V1?tKowW#PQHx_WSPSim12JblgGb#*_UQ(S{qOmUp)>X5Vx^`QLFAM&zRqDafQ9M zDK**tjgX%24w8y*gin08?6kdJ$%iN~ayNmbW51(0LXoUI==})Ow>lkTpN=`w&mK1$ z1%p|?G%w5d(OEH6ZFS|A$1?ceWx7gRvs_%RQk_9a>X5-aJ$ZVrUl4KxnE5o!?FgwZ z9r?}!Z;`(I$cM@<*Mreoja;r)7NYwm1vmMn{mTI9T_I$b-BGT%SstPuzR(+u^Z=2K zHZ<AX&9Z%cCs7-kfZF!Ns($cS7Uj=Vx|u%L>B`+KIM7qLBsymzSjHLc_p#G>H27;& z=Q7g9G$B-T)O`B1lGO_UZH=VwPheMNz$bs7*Jl9En4Un`sXh}xb{{`Ev^t6%v+7hG zBTV`6i`3~hZ#rXrzEjNj1V&E`_Uy#_`SM!hpWfiW<rK{>MU~1(!s2_0=hUCl?!x{A z&%n^UYnoo`;O%Tg^N34!tQU7%dT(c5KTWJ~;?vSGrx<U6RlxGp8BOIxaIQbx?9Dzw zr4gdNt`*a+meU0H#f;ImjbL}j5V%-t5Q=yAoH&7eekRBX-(<HY{2ARuVoG&^?I^;Q zilCqu+^u0I<O`ciIg@HeGS7~P>RZoH%)y{Fcr%(Gd4>Yeya)`0@ON7IbhcX;yK^9_ zh~GqHBLF-nwzZg(P;0VbhK(gKhq?|RWI&RQ3i}L*gOuGc<S1tt2$y1<5O!`pk2^dI z3_Bl1o;oQVuBM=5kT*vf%wTu5)xM^L)nIz~mBY}A=*mrb{HZQ(JXtxJ(6a_7L;-8_ zgBG~oXEUDoU*(9iVe42_Pxs%?<*R44Ob>wi-S&JL!Pd;?gJ={_X1Cuy%3GoifgkAI z<W&~^%l?v06M@~MLZAGB=+1+Ka3}~T{I=+%kA$U?aF*TilTo|O{-d39Wj?Vo12pk} z@195Nzau}U`~qRweAn)>zpzfdw`L#On^96A7i}8ls8hBpR9il)SvWq3ckk+z>jsw4 z(=e6lKzE@5J8%fSrssgh-);UV4;>u>j6LTF(vZc6ItJ=MTW4L}*ur@A{2XB=^n9tG zzES{YZKXmnAQRzqZ$wFAN!=Ws+vcxicQXtBG)`$;IngI~%s<PHseJSnL(dxVT>MTB zUBp<@>-n=F1y0}7Upg__vFJ`|;Qsr4a997|*3!%djNODd6pce+m_~KKeO{AzA7r(h zouFOU6dW`&p0CUp6N02Gk2d{*>4g%~z3(b!WhpZ>BAKo2=F(elC9YAtjt!gg*ghO( zx+gn+a>|d^yPpZIPc4t!Q$Eb9ZJQ8Hv1U<&Vop9tgM*8#;XiMlK2wGPkY>YP%bLIF z4jC~;zdS^3En|M|$vG*^%8a;{_`Pmv6ygO+<j2E;o?{8k%9NAmWo9g#zGHiF@A|Wk zS#e8W@*vh$=JKy4`nxgS`#F;Q>Zu8Na<@SWrYpK@IDF)uw;ZdrdoBFrH$y=Jn_Ly+ zNQS%Is*6kSS)7>k!#HyQ=(L|*HO{)W3wFij^t!o;hH)#sYhTTZA*wjO6N3p#So(-s z+;5zAnRvE~ftZ#4@I`*``&0&nIhY>G$<;PG*s+>gikPn-CPwet<4)9MOOjI*P<aQp z4Q`c{fmIsz$zVap6d-gOQj_qj>d%w;j5A^zHtq(Z7CCM`0y=vt{zlmxfIC2la@ehy z`VjDHt?AkKyOsswv8uK~;wkQkGG^UV2M`t%tOq&A+mD*3O3l4O!1jNpQr0S(_s<i? z$vAZ3rG%6F3#kq-riCM!1QuJn2FabA+?M6LR4Ox06UgTK!1e_66v|teL9PrATAV4E z#V)z>&wK~^w&sjbbsetpMygC=3P+rh^?JcwqsMpA&&qD)^F}V8#$=xO@4a?-vi9ev zj7nmMZo4fk=+)DP-&|_Nf(q;&uXRx3Ikibh!P+-a#QdSOL*cKHx|hFG6hZ}jg~LSH zBI*wtLXxIEj5-KQ&!2i_dagm9a9F$DMBmEmEi{q`EP9uVQ9`ksu`srCh_;vYxR+Su zdLb9Cv;)BoG5l%yd62CgHg|FwI&J-MT|*I%QoSydx;tfJ{wF0GTu@6kPIInt;|bFf zy)Yg?(IQ@6Ev|h=Qo==8SU^}rAlL^Yp*(a_cN1;Jp{tHX2bGJW%8o%FHeHnO9Y=bE zdg=nvyMxPe=9Mkap(X;hKMw!C^iSoyA0w2{<f1gvLn>N;6c3M|nY{hbVL7-fa3fEd zANQbh>6G6mIz;ojomq2{U0lGEW7p>inpX27``VjcGL5fQ5w%X$JeHsBrAn-<<6Y2% z+WM%^%#z!XdZ~Mf(*rSM%AB#x+eg(CZI~dS&UpHzEvCeT68$#5J>HvlJdTp8IpfT! z-^;>C`g9rQCeDX&O190&>1wK^^4P62Q0t}mVS73a+df=>a&9KX$=T%z=5y;jh-j^i z72ud@sQc>49B6vRO6_T$G!42ppC6Td!aT9mrUQ0=m}~^<J#tFCFBRFIA}bMWvCaWR ziv};RynZ+VI!e4LUTZPUEw5iH>K?RjpzUSG0c4;06AWsCyarVG@kQDnjJZU0nYF8> z>@`f$Zs$7kS!I}43V8gNTY!0xkYGYthn>xS8attrG$*t!@XzqafK{c2^Q?TCMd#DK zKO(#6;Kr4~{rwrwT}yL;T}PCNWChS0gdakE_Cec*iC8)Cm6UZbyKJL&?0Nx(I(q*5 zN^jcvu{!5}p~6vD@JDyD{+xP{g?BvD3OvRO&g&k3T@T>AmyKACEz|*NDhI9qM&7+w zAR&Kl0jArmSq}5{L>bDOeMTL4g10d(NhO)KYiCH?R5_|Zzr{gmghns=3NX4)hK|k+ zsZ5USHD1aZfz`9o{*KjX-`g?TKVcPQwkrh7Ddk4Rnqs#<xCaNHzFve@$99^b_nj-l zKmmh2E}Zj2&1=8alk*||Uy|$XCweMEq<2_?oBbbsSXU4HD`<t{{sL_@9+ipN4$AB8 zpXjXK>_rMWulev_JI+5o1llp4XJ4Y()2DMF!CemtJ(tzKv`a6y=~`5s++xiBw47A5 zz8yq73`CP7FkF7Q<ahVIrI+bTI<MD#OMsB8!9i{N@xGkVm?o#{Aai_-<~3#?IrNiJ z^VdIM;4^;(NvT8$-{6L(L)akDKML(^Gg<1x_B4sm><TOSrid2r0O#=9ty$P{-5_{j zZda+1@nK*_h?sonN?9kzRj2A|!9Ytz_W4Y{GD44MP{=`g^<jBB$NBKg%+!yg;geNc zl>V%MNV`l(PLn@j!a-2bbW89pjg^s7!~RNcW_2kAd}AJYRsG@GLuK%RZT&0_upVNJ zKSu5B>t<P-%4KH(3(8E>fMUqZf;1B^<~K$9d;$TRz~BYi|2^C!VrhQ5kj&h)d%8JD zm>n$#Z5!<3)>BeMVVg^+oN^dqF?mqw^mlZVSt1r|Y$bQx6=|%v-y_Hwwj4-^&Q&I` z>LPscJLR|@UcoiQQ5i#E=%KoCHeSB`G@l{1IU5_;4-9tq7%MjT9&S;Tm4X+#Q9Bca zOj-V2#o)zEuLQsSmG;H+?(?w2(_<LwuO+dOT_d0b*F-ZA$2-PW!Dpqra%b~{%7hLi zE^+=GyZhO%%6EcR2{`ITq`)M!w#*)Chit)McF2a~hrF&Ogmg}%nXNE*%(&gF)(DzU zZ2=@AMe`2_aW*EF*1&cW_Q%**?cP9OerNG#^r`h33>o|QnL2yaUJC1afH-6sF>)AC zS`IX>5}JH;>NwF&2HDx?7CpFV-qRGxMB>eD?I%mcAFB6HF`^K4>TGu$E^2(-Q)JI> zqLOxZr8>LWd~L-UT!h4BU>7-$R`bq*7uR&*vmrKV*3)UpM-$-wX)}WMP#C%F!Rwun z8Z`GfN7It|Ct2d11_@hE4aeO}Ys>Q$a6E(h(wMWCd!e7pa%FL*zL#hJjK2E~qb5S= zsQC@$Hen>P{eYo&uw1`>UrQmoGFzzx5d^nW*cGQ*^py$wo0jUYWY1K-mevZ4>6CD` z-G@Qz(xCiMi|X1+VWG7<VfV(Un$XALklx(bo|6hI{ATk>ht)hrdH%lf*_z6#fI^6L z)@S{303axI+idp%XJ2$>VAShhmQnF)A%nbgQ6akBz#awbZD`5wP3bIfFzg;2{Gj=x zE6UhbUbMU{D<<*fI=K8~9SAKsh=d-SS*##MW#>+uFuICW^lSFQc?6&6M$r_(b;s9I zxYpkbcl*0RUz5{tdu^z(v}Fs08zUL-_KGX5P7k<z;7j};sbE5|$-`BT9e!HH8m3lg z-ci#!RL=7~76q~E`RH(Z<XtkW>$!<9-p^=iX6FF?UG4YP86UL(QqQ}6o4*FTyC)qd z+nv&V59L?JbhXhU*f>mS-Dq)@wYBxxjHd3Jiywi-Rpx+cUC$=mN@eMJH}VWB*o)@g zTx~-~oCi&N0Xie6#oMy{vCYkxFQ&-G6ovSTgNYvglM}lkfx5}wLO^nJ=6G5t-g`ZA z;xie0n3DaM?e{>-<;zQhNBF+WU&mHVNc#y#3np#RDb+r#X~$>nbA-VXkJh)GpR1^L zBz9+1a};k192tUiBbl)<TL&LJ)!1}j<hoE)b4uq-xu%`lkAqtVW=^YW(|d0c2o`PB zo|2HAKk11o>29o70xYJ4kk-BD?X<t(zKg@`E;JAP3=jag$z(tqtZRK;(PoK@V#Xd> zO~|SQm)w7%@KzqiH<R&`@1|pMsa<*2WDtn+{TA%>F=lD_G@ZKCqfBIFx)L#U=!jaD zu2)647ZEZzIGfDS*0-8)KAke?v)r(0n<cVaBag>5MW<C8#%Tsq6U}<jC5@<N2($t^ zC+`$63M?rNTW1Nkp}uEgvXC-<Mf6lRvlJu>`!x!-pSIzv8jOC#T`v~AB--h8T5PV# zY|cwnKYvzgiu{QMHTcymRf7XJC2%E)A%taljP8+j;B%>&OwWf83rA^!!Hw1@foL>; zSFfFSL0(h2=SXtrm}k<!#D>W0Q2~`$ct%VokkWUw|6Z247wUw*S}8feD&rVZ6CbzZ z&ReQglXQ~Iwf?uO!uKi%l-~Xr!+>)ChBgB8MDveH4UIHQ`s^1wh2|k|mA~I#8SXR- zmTwMm2|kfit%kFQ+_F}Xv9E*7WXbtFwAcz5c%M>|+|Izp9M&Lq&{?jCsSFBRVMStq z-%SuBrJxy_H5HKo!^|yqX{k2W!#|z6&FhL@;E5#Kvd_du@H#DK=(@*=9y0bh9RP9Z zfM78AXnF~yfi}rzS^g*&zcpKPTBO~?DWGu9Q0>EEhhy!U;yi<^O`fft7fFvjhaIrk zL89z+M1C8{IDw<HKb4geHp;_R)PRT8e@EhIk3L>6&q(IaddB&RGr{ScN&+Zti$ci1 zLzrg`o*XgjluG0M>?DFZmC(HsvOhgkKqr8u<#s=DEi79C&VFV!mX7Puo0h(7j1uxy z^DP6?_@<{4@LxVbQ*pGF2RI3(M{T@BI7xW&F3U&R8I7owd*xGEmvec&?+uai<A)z7 zzGB94e%jT(A58@mnWd-iee55a?TZbkPb+$}mR#t&83!5OCpTfGYn%&y>>Tw4A&G8& z!LpWhWz|X9C2~9qs&fVMYlmF!x|Y>9d4OM8SlddK781TquE6ssnUtT?tE#rJ2K6A` zz-GMLD4Yrc?O3%9#Sa)}Q5i+tfuOg@Wp2MhkTTC#BEM1?iz?TbVZhI>Z1G3=FL_8q z#CORBI7~>wJp-+zzq4DM*juf-qC4c2&ou<=_qvzn2<|s7a5&}r8e5vd)<Ds_*~Q7X zPCD#g(j%hPW(AZ&u+^RFjJHLbMin1ek(s;gew$x!F7yj^o8p^DpMB5Q`9m0jR-sVm z;JKCo2Jh7Mpx&-}_N)Re%p!wx(p!7UN`6pbaxF;CHn|K#3+YwaY@bVf!+cs6EvIn| z{NtA{a+l?x5*gYa=q0a<ppqEqwGf_{T_ft|3bUg{^Le%~59AjMg|Bcv_fSv4aBtZ8 z->gY5ZOm0Rj_~Bf!MVCdt>szmDJ<<tE2?3J9O9DEBp~tXLZdSDvBC@Bj`l2T^NF}O z2e;FG{t$0~-X&MNz3}Zy<6H#Cud;LEZm!L$YxK^BEny?~3Ob-kEEKJmtOK}*Jhs0N zb@90IYTl~|2{*<q?)1`#exV-xr1FO366xiubX+g~$;&nECu2*N6+$eRHBSbXV2FI6 zxkt+doM<z%RQ^qV)s(?qYmO!4&)>AXyP^=FeaqzFqHymqREUudI9a3>)^Ia0dMhno z_L0)Q(2^`w_!oMUYnl>L91+|Xl6zeLHuF`U4D$HPe*}}erDeRZvOKz79zH)!U6Vse z8bV)@y%nu#b0M~nUO4;Z#yR!}PWOx1*_ss%7<_+{OI(zAAM$QI&6s6(2R)Z}*A<;G z_pnQ=t9O^N^sK?w3$602i9Fc|ZdP;#l|NvEm*(1~ojT~o_GjK;faL6u+tJ8ckd}f| zq0kW9RCOnJ$RZ0x_+671;k6AjWdXqNm$HGZV!kazjrBbbUu*S4y)eUFdbwB<Hz<3d z)u*J)3ooeHzLb_)Pb+13x`kjL*-EJSbCExU_}rq9gM8d3SK|_U9DYEUxy<VIbG;-d zKvIQh*ZfwKUj6H1n>yu!iZ>v`Dilt(Y*a$Wo%4pWF}8-vm@~{i2K$2*^O<hrbw~U} z$gQ#YdelJ}nRX-w{bxD%?Dk7|ma?;s8m4jr3(C&jNHm9AS!a-hw=>9|#vUNFPqAKa zh0}b(sr<aR^Yz}9ZA(6XrUc>MCT9ewui4}3zFt$O_V`aeVhc@3P^Ql^MoGO^#`6>u z>O(YzzKBQToc0EbKRr0cbYWpIup;uHTbPIb!UkR`lQM?|E7v*}={V)9*@>xKnHDH` zXrfS-z{)wTr)+0<ej$MQfxPu3%Zx?&#BCY)l&_bEVaPJ^da1;d9+{b2#F&wVTD|QF zx3ONYK~4pJ%){jl=<)5=pGO_{k<<LJV1D;KQ>YQ;0alW4#jxZ6gF<O?}uvJsL!j zJIx9Omt=d?=zVru?vVM)TJ@j^2dV{~Zl4Ci-9nm~i-~z!?b;D@Of8>a=6`fy-XY9? z^Nnu+>iRH+xpzLx4!rWSajpofS}S-KLUIA8@sD(N?(}BLp!sQ;mU%b$pw^<u0)E<X z!#HNXsl#Wvus<`E$j;_?@5H|7O6@zw(tp|58iwHZRqu(sw>4gNVRlHzB>bkls40*9 zNXI(cUYd9{Jm+N6X#~TN5~5>3$Sn3llT`o$4Wd2wa58~`&M`srx<6a>PG2_M&+tDj z%D&Gg$^X*Iz~-m0cCC4B^)ObLl2tCk_{c2GTQI(0{z!jW+x24$mTCp3{Wogv{=6;| z9T(k|o^nf>w#aGS7{!4-tKQwpQyddw`v-2^(2Jfl*!?goQTMxp2Ynjw=@BOXb?aOv z)?R#(LlR*eK0~l9SF4<eiK=YI5zi0=o!+#nADKB^dU0*ine;LXQx}V;m!{v?Ity&C zjC1yrLkdZF8{do2Dw)8U(A9!9&#n-5@A2{%k(jfWXBFNfs7>7aOGw;!ZyYOfQ+m4= z0Xkp0%tAMbZxk$%8d?F|rIVx-O7dq|A2!QdvwW4>y=@ARZP<i1ZJc6)h-R%MWR+6h zYJ;lFgPdy+_qRfF-E!dexOe%jE>LTXaXca>kyUzbJ{9c_Y&H75RrFZ@bD!9Db=>&L zQ7=7RkJDx?HgbH#6>C?&cJB0w%iz|NV3r9QB*XZ@Ci;wS6F9}3SoM09BD*(hL(ruT z`aML05?!t{F1Pkl?l|bLIrEBkUp*YZ;KuYmvgGApd8dr#5iu;^sXO;`LKmI6xuuAh z@64OoJ)Q{3n^zzlrmF8$StuenkZjn6qxX>Av68jKn5f)zMI*P|jV&pJEA-m28DMx? zG#73I=;b@I2E$I&Y7n11?l7Xv6yZti<ZHB|$YRq$q}=>m-_A=>FByhdwIv5$bI+=H z%y)~6nvikxU;8{%@rYwdG^|D>(pw-=G&b>_!fxj#?hjG6u+yAvY5~NsHj$CU+!-af z1j2GGKJ>_HbYe4(wfy1FR-c*TiE>~XCgmP=<a)IjE%W3_6T9a-t7faREbBzCRL<G? zy?xkM3>Ku2;CX(MU^%(<0Pl#by>(HW;I$DoN}eIaihb1n&$|C_hw-m!88FnZSsyoT zXq9TR-{2C{B$a2Am(*-4NksKo7ZwP;0PC!+%r`4j_&vm5xzb26#RyqkB<GfR^@-Gt zjAii5<)!Sm4|hn<>C;B-d<L*iWOa4esc&gkkz_G_sw1oAYklqB#gDTZ^hzlqi)0l1 zkVm`ZddhTH#*cD7Vm1vImA<}ksBc-%-dwAVf=p!@xF^O)iR=}v9Z%cCgXcPe5n;<# zGNI2=UO*voIK#@?_qkRh_l1uk%iQuJJOn=&HeNR9#5Vmo?)~Kq`3br_N63vGa%pKt zE3Wj@8#|tFobX*cJpxjy;kA^9DVUj(R!aYz?o+yZt9EI;>J5jxYD`lh;Tw(dFYAw) z{#<k`LM(BN^~Zj>G4{FFy7(*hNCgS5fA}8$4gCBOe9@c93erGZio@KqXOQzwFhk+Z ziPF|E!$+@-uI$uT4kpzenTozF)=4U975}QA0$JQ5m*b=m_U`Q3lt^H)kuG`zCiN5D zD@vMhVylhTdCqqCPWA=TecrT>Ez|F&*$bvhtQ)R%x@cOGYF{mp8h+O1VHm|_Y}3~7 zmhfNHw6D#|9AR|T;`vx#K2i$*!YnI&5%l<;Os`Ja&Hv8<d+=)D%J`}`))eS_DI1ku zG5XOOgU|F0>~h=v$nPc;F7LTj4RXuIeEn&Z$zvL+T~kQ?Pc}YBHLmn8Nn4&=Yn;=T z4c#d{d=oXPPDZchbt>ggaQ5@R9goVKUS0SLvQlgxTPg{a>j~BQtZYM8uen?Av%Ppq zA5MN{=UjqX+DICO{avX#(c!sB!tzsO(lnAn?6M{Og^Kz4T7F-tiaxG@((IgU&G+ac z{H1Xsn4ksH>Hx{@tzG_VzJP^5Zn6tpS&mm7mv?~O8j8=_O)9t>x6BuUmM4^NOWj%H zPoV##`_GT#ZwVru3K~1MIM4cmP+I<}{k3lLC%P;9eM`;YQ91!<KW#f&&-^#yLV@=l zIqEI6di5>+JbI817L8o{zI9q?O|WOw{8u=a1NiqW5GFTw%EmK3KNQEfjl{k6(K_lL zOngABUbf>D&R|FmhFprJ@R~jKalkS9J?kH~@Y{6GXMI&O3H>c<w@D#r7K$KNnxsc{ zogS8W-jI@Svf)?gCO0vxgD{&*($jnp8&(Q8W)`|GSC84{Gk&QXdZgTc$`gH?HnZ!^ zFMvVpukx?#;F6&<qD@j7*TPkVEB24fWe{Q1o#vX){yAZ;oI>yxcCs?yfom~w3V(&c zL@eBxx*p&CQ`<lEv)+^a|E_MFLm4fh=k-Lr%>TnolL)u_7bM<1-|;^%xrnaiGQ<Ca zDIR{#?;YBqm;U!GKKI=U10<Y<;<cQtY<Myv$U9VK%x~UMMPg(in(QKt_MqC$kGgMK za+qZSl8HXH$gs)s!r(=S8fAZ2nE1Jh<P&HP3k7hAQ7nq|G)aKEv3@Tkc|*Wc#ZBMC zE#()5By@<2f|~Lfv5%^lMK0JZ-b=K>e0`3Pr};K-6sm>6!aCAD%jW?YP7mE|{mMkv z6KAu%Bdyr40dv=yu3N!PhP8Rbw|9lj+%_tohs$2L)*Jw_7d+dhrc!?`Q(|SX&K-7a z?p3Um55ik5YeS895kx#<7sRB;wdwVz!uyXjZSjO*<65$w1XuQdHIr$A;Q=fjuf>8a zN;}m(v|!+5^f_{56Xxz06&^R^1Y7^tHbW79&FNJK{SPoFjspuscgAsfjqppY{1oVz z78YDSGWGJFJ=(x*Ztvdm@>mJzsRe;~L%N>Bz@z9xeBQic=)M0(Jj>tJ@efoRj1s-< zX-x|uUeaO4NsXn@FC%p#Q)+qlCXQH;Kj*Ed+;DoR&FxqQqQ62C-c98{TKtZ;Fq`Nh zfts~u7xS&)>nFpzK#bjU9K=pbu#_<|cfdS2ro&-YDWp_#!YWh&c697*4sU3<A;<^| zjK`e(%-=wzClE}e-bi-D2i9%#92w*VHB&Ah-A;d|Icyk$L4Pi7;{MldjNbgIM8m<9 zz|vm<(*AJ{OWC-Ic9eD1*$)fXh=jIJh+*o^Ej=$|us{+TzqwH~tEPfWxeqI>m=7C8 zyJl!Z<x60>{O?iE_$y>d+tbp02ifhU#kx086xWlt9?e9la&h{pc%7f5QM0|>X#WgF z&te1u>mfTV?aw$rp&WMC>+VfB9<Kh4ODL|idClVHVn&^L+EWAiIukYm6*jO;0C`Bf z^va}W0`A%Ro~4idNble1`pROA0e{L`j>Snn#B`SNif%cjZCp6T-yTVey(WzgR1^<a zqpj<9e|Fq962+)ozcRDxn0GGywaNHg(|Y>2uISk}f$$RKP=&Xla@&Sf$`1B~Xea<Z z=@>4M-a|L9U&1=;S#|ZKvvh0(i)8-55`qaRTeXEQa^;u0G<i57P^}~7??H2=xB|?D z1s2AaYK|vL-t_bc83MtwA3Fpj8`V~)SJ|bwuxE9aRc09SU6gH`z(@G6>Bj4E#uTlc zZyoTdC*zF~<D01TxN@vDjAPTTEYWUOiC8z3vOwo#OQ()zr<E%-=>AXU;{m`u<suji z#cAG*G%o~<n{MxhQY+ktJFvJGHx(-v;q*=y2Y51<XRM3L%Zh_UOV)O!;ILYA0O?S^ zP4wMo64528b+<)(GW5_@LoMmwwfd#^`EDp1NL%mP<@VyAD+1-{{F&loYcJv;=3*ck zC+saidpfRmhE5y5R;mebe@63i4@Uilj?Y!WH_vjXIa4?X;IpiD!5ojg`WA=xF~)2v zyDM+>JmPwEw}0O)_f$(kx`nw0ZdRGS`%d7i(3+2fs)R_rdob@A#cJaXb~B%upn!0W z&08I`bwdw3ZgoQHc;g!^w&(08Z2ikU#(TY{%G9Q3a&W?yrgwpV=K5dbUm|~0_q++Z z94%_KBT+Ii#J*hy*{xQgz+h|y#e>FustvMr(*pUcziB6W0C~nF)mLhl%|x{wxtin* zU1c2jBp#O1Po_UQ?hg?}K3hK$rZ|@zDN*aV`N7&XmC)hggx-Mi9Txeot;Kw9nk7Jk z^6Ng30RJ^O|8Fi9S}s@35RSqzrFKMZZJ96Va?S*fg&J9O+qE056&USLzAiqHfCcR? z&7Qma{wjKn@S0{lEEK{_;#sqMM1Jf+L(nhs{sf!shexnwe2tm^nyl}s9UqPRfwK&* zZM>2H`A{avwCS!~qQJTrR1>J1d5iH4R?LYGlCDVlRY(>qja3bh&j<#2D<^CA_n!6| zP`Id9&hmI;*`ar|6}Yp5X#M6M`<xf#E8<HQLqliLv`Sny-Wv<>BmDqxsu_b_eE&9@ zvQwHSv&%r;?{xBIUJ|m35t?U630=+mY;Is@3pDI0-yGXeOVb}g0-g{aCM_UcbKZJ8 zs?=<9Fg}VtMN?3z?a;V5<Cl%NZ1AvtVgXf`48p#auXwI0J!_%&8J0V$-d?r2dpY}< zpE3vPKWOMiaWji*ZAqeUlcwnW_SW&qdLeaD^{_z`aYa+tNU~-F)ZN}hgEUY<qO6VY z^_V{9DO^}+Bq<RE&`*GzTxwO0&F(GLq@~g4H_G9=T|Jg;zBW%^Hqw<~*bOOrXmZ+D z-&QK#xtgky^ux$5?QO;EPN%`7W=!F>kW#;O6Vvj9t&q|Wll$SydZk+8TZ-9+i4N#W zLB%(w_ru4R$EM%4+2-PW3)T<$xTzN1u@lsRp7!Pq1l*`JU_yg7n`M??be7lEJ=->7 zd6eWSq!@lqXs@{&7JS#<hhrcT6+8G&C%6bKzAfGt1Rx)7qhG76fo30PZLcsJOrY;R zQQGDv0vOKR9imEgXibb~a#Aeg&NT(?3;){X;7qOwYb@ZQx-&Uo{8h+uL4s=9*)NjO z`N>dBAQm`-7sVSCzGQ?Q$87J-ZfD-otTv1rUHU$jd3K;tHygdnET3cE3^#u_9_@cr zE;j{&ZomOIca}{EBsIIKdQ9=PJ!+&gK_t>Z6)U^%I^6g$9=?{FxI>WN_E8G$>;%pf zX)|Engach*Uli%H(mLiXHPHRiuS)zzCjk);j0u!t&*c+Bk9H<t=jf(v95fqy;!#S4 zic3otKAStiziRC5$MC8@sSlRGHqebv6wDlh563glq5xLEDvqUDY=f*sY6R2I)fM{& z;yNtzwPieKqm)OL0IT2rjYLb8yaIg4$He!ZXF;gSA>p>5kH#`E%Lccu6B?U+Gy;&{ zj^BB|G(YJC<~X0fB@#s&X^W!H+#7dEv<o<w$488E%*2Y8DObYrL7TjrnwlIi@{RKA zTAB7sZORyf%}u0#=h+!E!dZv>F_OR=q0j&2Xem~vEkud13vBV~hTfg$3|oirO-*Ff zDPnLdk(ionES}H|_tYUrI_;bTq7((Y%C8&Pt&M6E9CKS!I`td;^M;SS35uf6`^R@B zVRy?Zjct>+QF@C7RaLXwIN#2qigmPe;{P3`iLsKd9Z)9l!bh|<ckiW)ude$fz8~la z4}dI*2jYBDzvyB2qt1@-fI?xv=oz)KP1X`Rxznl{Sk;JwFwg@kz3*F6;%n86_d#wj zjb}(nb;6-dXhx>OoTCq6z1;wG-+L0WGpMWgYI98%UDHrAn8$txXDWTA(R$j#%iH51 zfpeOYFl9Ak`druG#k;*%GEGdn<j*yqm%4tYj5^Ohk2jdZ_ebS>77&QngyPq}SC2!r zT+>t$i#6%)LOuYefWEz)rjvNS-`^3>YBsMee%5DBEQIS-?v4Dj$?(+37fQ+Yf~L<C zol-kycw&`#^aj-HnIe1(Tf+`3$V&;X56rW?yy~76v>roFmY@cC7zJ8Yc@8_yLHg&z z_5RZ1Aaq-B$l1i#`5pJC5y2_h?TUONFPpC!OfOm`5DI|NX}m9K-Rl4sIg14AP!CN8 z%0)P*r&-Ql8Cju{vto|&qWTJYSwOc|I?3CQ-#Mkc48%_osqh161mk629+{^Uw?<!g zv|>>_#doNiJ)Qji_c!9wVr~3k^GP>dmIm6X4&nxWbTGb9DbK>`^DtOa#PoLEv}w${ zptoMdex(3&KGrBi3MI<Ep5i82yR6aT0J<Mq4>3rThT)8t+~#Ul941}Y1n6n)gSVdX zN1}zc>do`^(BQinp|8i!xuZX4-T%EeB$_PC|MOVD$Y>;ruFW@kQC+1eGr=|5fWEbz zf>Y>8Q?>71|0R6Y7Y-qy+~uvH@p1;EYQ3-2yafQ8hSNv9uuwefM;`R4x78-r8GsaC zmf?i0@gvo}%7+Z)gw^6f#>HF#oU18(9o=Ug!dxb!xGGrctGsTZG00pxJ}l@!QJRYc z=P?{7|Hu`9eONCiB+x3bW`Va^5e;L}=NiwwQc&p}gV@?Yf_3In8t44<MB8TK@9Nu} zK!Ovw;!Ty_{1!$aSK?jy{FcnS#1i06zXsMXf87XDkH^)X+{v9;wGV|o8@18#yrB&D z*Bn`)clE1E<)~ZAP`F7DN+;DM`1`@W)CPUG<%hRgg$gN1-dB+SX(5rDwq}$-a30M~ zv|jJ9ZlK&wvVqFV{InQd9=2jM0Tv^H3Z)L^5B*eW$*bC(9>W=Nf|KA-zX$p2z`i2U z<3w+uxW(3amx)U$PvT9He<u3QNaDQ~uS_r25p2h09%N%Ku^^YI7z2UL5-)q{O)^Qi z3YYh)s7^5Nvbx1g>Kq#n_@@<R=YcZ9Gkr*scWjGsbj#5C@)55$;rz(JEdzLXDw{&9 zI%jm|(J^JxL#r3S(qkjXw%fWbFVJT+Z}TO29hgrsX0SwxZlH^1bEpOhZE}+<ZB-G5 z257C?2R|y{GD1<C1{<a_7fy_rMz}iPRFDMm?7cu5q02Nc7M?C6OovW77~`R`o77q9 zm`nM7aGD9<B~-)Yyb6X|x+fZtIPm*)#NhY9eANH%s(sx_{QHZxW!31_D#A%?!Yjjk zE|j`C#Kw9o-$WpjS+0G@U-e>GeT#(+6n?G@dUF}hEcXa(NgQZ=Grcs(-w$$)znDR? zycc`Vd$GL%S)>vmwa}0)%K9HKC+&84a(3pIoUK5vQk;=tBIGeE#VjjLR7)iDTA2Kd zAL2?awe0DXSu0l6{6NN@mk(;gO#vgn$z<|P>W7D5Dt@MVf`8OF%>Kc)YYOxi7lk>w z$Q}WzNx^@e^f8I56P@U#kcxNPtz}Q1ceiVD2|ojA@a}xNssFZBUZ^^RZUx7EL2&8@ z)SH{)5tUKdy%#*bnO40P06ddEv1IuukaK!YF7dIKB%Y;T&b@S|Ab_>{clBV`?m3)e z?o4JBEj>7DKqb8OhP}R(X6uC}*=0r&a+0egoi8{wkSP!9V@XIz1|Z(56pE1Erxa;q z#CV9KD#h}}2UJUqLjTgguN-xXRkDA;7)^?A|DuGoDB{VkUeK{Z_tQaIbt%MXE<zt` z&X0PZlaRbXq`sgK=eme`+WPU%z7PpXJLe@5Mq-8+ze~g?FI-<6qW6M=NB#n9@766a zY?*{aBkC&2wSPGO!3qG8ka+vaSi5+-_>0)R(7Z&-NcR7U0V#Vy!3vmLUHWen=l_MG zF|$q6LA69eqW<nG3C;f?{l)RW(^)%tyZ`^lYh=95L^53^A(>+!`Cn;=o{|11PslSp z3Wk6BvC^YpC8gJcgb?5VBEAqm6ue5V{0G%v#NW>Se=|6xPFhXNcZnoi*_`C||7Gyv zl^5>W4B6A8;QvR8MW0BsW{Dh9sZPNKLFiL3L%j4UX#c^&FJP(5{|)2gzEJAQs($r# zqOSXhkKq519K7-m_YUNZ8pT!G|HTmGu>q0XFzO$QjPU=0YHUZnPthe(gA*U=|3S5J z{a+Gk$f*GZ^*_ca4T+R2H~vLSK`e+N$<1wY5)l$H@gOG$88v-XLmf$dzkp}X9xq-? f>ppp4^h`8ZRm@05G7#h>E@~g}8sy+EtN4Ea4SJZC delta 111553 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踬nFEDenpj9z*}d)$ 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 diff --git a/FASEC_prototype.sdk/system_design_wrapper_hw_platform_0/system.hdf b/FASEC_prototype.sdk/system_design_wrapper_hw_platform_0/system.hdf index 0398df7aeb783a79c4b21bfcb553b399a12e1c5b..5f8927c562242e7fdaaa28268156dbe1df224efd 100644 GIT binary patch delta 82152 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 delta 111553 zcmY(K1yEeg6X0=ocXxMpcbDK2+$}gP?(XgccL)xP6WrYi7Tkivk$nHUx~tk(^Sb-j z-81`Ur*>z1jt}swDhL58^575{ARr(xAZ~_4vI=G^V=Q1GAZpMcAaI{rS1(sHa|<R< zd%JT@Mb{z`6u}WA(MiF8jB@ip+7!`>gDM=ieQP+-R0C0LnT6NqTvQg#KnioNk#5dA zpE{#y1?_0$5zldfaBHk{G}vYxA^`-wqTCDrQ2(h3W>_GODxguGat1V}NRh;a5+tk! zf3}5zaJn#<W88NL-nVlcE}$4@K#k<9w=)f>Px?XYamuf3mgq*ZSgg^|FpEko_C_;l z(vBELeu<Cc2g66CUfr6`?u!}_oK;+9$}1PSca_n{aDhNHnz=#D9NVuqeup4Xt0-uU za`ToF)ytPRzW}Y3NfsAAV6oD1b|_VwK4MZoATCCyn@TI72z6~$*QS(oh=zGczAwWH zm2CMFe}~kF{Xx2)_XmRWEwZe!;!7o5mgm`FeIZjK7wdItzutAkidubVy(~4H#zE%A zUZPr+B<t7i1|&l$y9-BK415#JShwoTEIrf*9b{?QlqSIYx2wr;CxHg$B|136%hr4i zuk@ua=Mx!XoBr}9++G_iZ^eZi9`kOx#oGG&=S|}@%ra5Mvq#GPbQT==)8AZ~0?T4Z zJWjktf&)Ebu1q4y`$ih1Ipza_?#C#bDW&$Sl$ZQ6<a`PGh;jMr8Ao8u55IZ2kb;`> zFJ~%|e$fGH818uoUI=Sp_HEB}E4!W?QRob}df|5&HfnEJs;Ca>hCGyBJ|_Jr?m}H1 zFe*25Mlt8*EZY!HP@>r(Frmq84`WE_+@)K%pFQ4eY_ATccpMQD>9G&%7oXw(n_E!- zn_JnauOOy!ARv1^U?8af%`G?cWFIhUP`%`0FbcrWOjquTtVr_qd@ByTSgHMw_lFPO zr}c-I&Z)ZW^NT;%yKZ%@+nc9$M76|@4#Yiq7d2@|bz5iO+^0{&v+p<e2M*mXcb)5Q zTYKM628p|og+t{5YuD1+#BU@7)0QyX+oud8>caZo^Ft?FH|yW`{a)5^-T1q=I{S7u zcMAaXmw)0O_=rb{yJrPJ2a!Sl)B&E=%Ut_W<1LSF<FFB!l^@>k*9U|j_{cx@J&*G* zy5F@uK<uWvXkWiRtY3J!5^vhMw;B=u;e&U4-0BRN?)820e#JWuf!`)JfY^c&@>$&G z-@$mzPxoiJrHb~dNBDr_2&8-8z>N)_@4f~I3=82w&fa@tgC08hvLY!z^ayU)^^j!Q zWB}|&QLrS6sOc~}Xx1kkZWRvCuMaav*OtU4neoMksotM%+>q^(@ez?ukM0erag6l) zkBk+dipQPrkjyDgv$Jb3vjSrd4!4k`nS&uLB0>dpq~3p?6(eyNXJT2!p}9|u2)_V| ztpwsP9Q*bYRIXW-P=F|sy$-bOJkWBPX0XTeOl$TY)A_Lq^dqc5!|k^Lw3`!WTM>>Q zIc3wc%Vo!0((q;AM?XK_yH<s&FN=ou|9D{!^-gUP^Gxpga@~f@JH7YEvbARTui;J` z(`FQ|zc+5#*A^QY=5co(!F(rpUY`dD#$AJcK@q}CAS$_Pa1{b>Gw~Q)&HHLmS-7^g zN7fQw7L|3DZ`i3_HwsAN9zUB+6ttix$3u~Ibo#AGWJ8mh3_EI$r3O}M|3LVy`)hwd z8Y2#rlLU9bmQ)K*%D27uo#?#wQlU)e=7npnx_4WOIlp-Q{hM2F*p5}U64xsLVI=}s zx<oRKSY1FVp5ltHPxSak^{ZWnf4pf`z@GS$mYhO#fgHX1V1smtQ;IeGu$V%WgEV=b z2bMek@#*%Yo>;NV3boHv8;!8!g2gh9tv<G7Rg;{E2e<0rj4s*bkc<*+nVHhGMtLl6 z{0kMZMK060Mn`VF!R&QGC=C{%g-^RrlBDxa24gvH4ZtyBuxw+(0JSCT_fIhy(;3|T z<%dnFk3yNUYlEdCWsvR5F8_p5OZtS;QtaDZ&6$yHg;cKv>)MtpnQ|UTR*0b86u|a- z?N@Q86?0T(`KCluIpZ&Rm)HqhviyN}41EMUBl)0HyGK;a9UH=4A$0@5gqr=$B*TGt zTi7r0g}58%uMw%{LjF2!x(DM$wTeP(kEIF=pYj6MP3%6+p|i*4sXObfMbE3b@o)TA z1YPz_B_tP1JkJC)07qV*^GG}Q-M-t}DxHGRDNxwc8<wkYIeQZ+&Y#S``iAefR04f? zF}CB0L9DbqPjuid$va^EEc&1fvgFTj)3wVP<B=#IH?|?j5xa=iD;E(Q<Eya%v1Bw# z9H8qb9Ei_baV^Kmjfgsc4_Qc3h5{6Ksx10xBA-!QkYq<s>lI55leGcu%#qID4@c^K zf<ODQ_}6lN>oylAN(^uTep?-M;HPgU3ap99Mdc`h_O1((EfheeN>%RH?(E2d9>r+z zlO{)wvevwg+u`JvHjL{JxPEhvYfJ3$afmKCqpj)vQTVChao_-iGX@g#n>Am;_-u2~ z+6=sja@(EdfHG`@p)$A=W=why6vE9YNpDWga2LGqLgobXu(+d3M|iVkeNFEx#tpKH z^(zibX3QRt1s?D~R5C8wCt3g{CHkA#sk$^ch;$-3Xdh@pllsMTPaPKXv9Onc4L2WN ztA9$`cvy$)+N>UpO2s-qA4#j<;7O8d71V@sAv4_)1qq6t)CumuWQEt55(CFa3DxPh zHsW<5$h9(Ih-rZ1N@iY|8V=?J>@I~5p9wX~$pkNN!ZHA*=Pq}Y*g7rsv4Fu)aSo8q zObey%5heSuuwz<%hS8u4%`zkmm8p{tGC~~z1;b`DL7LE9aYGc%0@pW?NBg84hfePW zf>9qxBOYKG#piStT8dDgJOmNAMKYH_5y=TWH`Qm$jn_)1z}fxyol{4JPNYLX6VJjl z&zAfyL;(nzPnJBWi^twbU^)Jx{~X8-n&1f;KKiu|+$|iPIiv{b$zw+y=?f6<bjIut zs+@>>_WAq%pHu$VU4z}_Em99z2A(WrZS@!}wV^`r>wzmfHsYT2WzwhHIPMTD#4qB! zl2`5>*kZnLRW<^agTlq<hx8PE-MCBL1n%2ni{k(~Gf9@KA;vtA(gA-L5_Q?~e2PTv z8`LZ-rZ9XdR!PZU9L7VOp0CjWI^)DZ{e{wCzb-(~UUB%5)sLR=emqnG3pqehKaa>6 z-B21_T0scyo>o#p3IZuEGo)E%1UvJcY5|1!!^^Jm%8+oy96hVP7-AII0Pm|TE6^-@ zgbaX7qE(;r3U3_%n80R{Et550pWWD%**!}{wA_`*i)BM{dyeHGZ{q1A1+`THMIjEB z>wrWU+V_`I<GZo^V8V<iW=I@Njw8dp(14LGY<EN$0$+&Rqr@fUIMJ(r_N9~QXGZo` zLjdiG<)0&bgqLXauVBy+TXY6lq!=TO6a?rg@k@EDJFp}k&Rh7r+{xQft6v<N{-AWO zsis_#?=8nNhWWkFd=$QDV<Mxg3156%o7R>1+R@Y5O{>VSMISiuqY_eSP8IQ|nf#=0 zr_T1PMFkYndL<r@tTd;H0x42H{M7z|#hbn%z4akKPaM`_KkU-?l&&MsRl%>RxygY2 z9iFuX*sp5_)H<!#rk9)$R@rn`!<Jnuod}?7-;r#badx=d2WTFnrxS3!U2^aVq@(3_ zAqbD8Oc<Z+gt`CX<>n3)+4G))kdtdnWnj&UgbQrkbXfEEKjLI^$gNeGgX~A15|2x9 zA{|d726>aT7UvWwdRiXvZ9&&70a!NI1dx~QTWg(hI6pKw7xn~_Lcghe(P`zB*!#?7 z^O;Lfx+tYc$tHpeI7MP=txg?N(5cjz*cQBOwQUU(6~{*-fse!_9`M5!3I}iX6a>j< z3jAXLPWk7qOmJx~>n%eg@X6p*w?`A}W5OP0sloJQgm=gCz^G+9mS-N2u2!!N*4wC; zfcbspkhl9D+T;3*TzEA6M^p+~Fj5&Ae*0>FOKXeBzA0wvpsC^&f>jum0p+U#lkAYi z)YoKX(r`JRGR3B*M454m%D|mpQophW9_^y?^Fq-t$(OwA(VH$?og~j*-tYI{_(v@r ze;6$-;|uU~_5#AWr`X2;ib#AATUFQF<mb-lqa{JvHQ!Ztj3~m{rQ6%n!eO=H1<V7~ z-I#&>I9fMJB9=;S7#Q|#`VhAV1iu~8$eg-7cmnCL5X*SZi^qGZjZZeFbrlW!uW3B) zzN5?e=$5I3c(lO1z2fGlsThNriI0XMDd04UfD#}`b&<hNrObB#%I;hzag4-B5hlS< z!IV?cn`USUL1!S)K`Q#Ah&zTx;!L^7fHT2jwGjOwgW+DfH<mXqES81FF%o-p`lbhB z`r1}Sx;!D_E{I?fB0)P-(00Z>x_gAjvz}?*MH43Nrf{Szt%Uf;6%XvKIlk?A4xZR7 zJ##Y`M{y09F{Tj!mMrCNXFmN^SFZ!M_1G~j|GQr6RMa(+caxEvOkMuVDB`TL79r<; zSps*9*8)87R$t7py&s0LpfQ#Riv@HTQGyM4(9huI&KkQab~KtiwN3}BCMr2WG`mk5 zv@XDSn&zx7I?dqGt5en#I?-PvEjUw;8w_Iwqi2<FPFi$;;L*V>Cl$5?viOQ2kRC2= zy^Ix(=|@~+nilIk0(PKEWdu))SwOKH&wf`7mb8k+e3WmHjX-D}(;E2p+387orD%&Q z<8Hwq(V!ChfOt<%oR^?vETzhrFJ1q0GPt4Sh`6<?v9^I4bOnZ-EaB^Od{W1JH{dd< zW9w2&ZG;QJ<D#Lxa#bqn_4_{+Hn&y)6iH@{1EZ!T+D(qQYSEEDmAN<*i9Fj?wM~MC z7PjlGj7e_DhU%b%n1b!=R_V8H8l5dKKSMscorBck5v|ZW{0a(HT#K@w**udR=YQ&h z9^>_OsjEVVc55n2ah~)R%7%Fx+<Ysby&KU0Ja$#ODt3m)HZoLtl~BI}^Q!+X9~dvp z9e7FVmwSPEe%1z+8CdeCZKo=BbOtF&`SgEEza=SsDb<VqUbI4^cS7M)Ak9>h%rVn3 zuVR0H!bkIn;9{Ly61*fBMyF#^8oVZds#bI5D--Q1o*2+DC+qHzAb(1M*et}YK?|Vh zK!OY3B&*YKzlALBwIdgig|3-K?5q9?V$_hqm$FpqjVhy?Lj>5F<I`cRk=~2)HAhsZ znlf3N$oyO{_N{2psF#0^{+Q{wRI!LXSpw;kT&2W*nd{JCWlUSTmeEgy^H7nC{oCO+ z`Wke;r>`kXvUpa4Ybt~)Gv`Gp0DGRc&xNjNUxT=zB$K@zPtI%hQQF$TB~zeRJl=M1 zkMr(RvRPRw{WjtAMpH8Y!A<o2a4gP0WhwHxin#RK<FT@?81|>-MOF8qxLN7<@?&u` zlf(XzL25c_1zSrcS>7jA<|8b3T2EVo{Yq1_zsUkfSyJ?EZ)RGL2k>iahMT*VDjV}+ zFZ?ViOfi_vQ+h`{R#=v&OHlG(o^rFMOjnogs6!$=QTuXEnBMPiW;K_nq~%vUdAy)_ z{On1{ve;y*%^9<h>f+Zb*Un=E%x|c&`d(A56U7Wwk~ZcZGPa<2fp7i2LS=+gg%<K* zfX1ID^JJN@O!85_5b((SF29=RsR~7<NHRm;+vxd~l>OM?Kmq+|#v@sNz>u)~7WDhZ z7dhCD4emLbD#>&mTNRh}aNm_q%^Ptc-Y1&`f(CAKuN%6go(D~Lr>o2;h&F%M^agI4 z_VWztX$DSeFT$^RnH!m{$q2c4+1|K7DF`N?mB>j7Z~obs6+psc-FaeJmgSF$tg1wM z^Y7i21NmW@{lQ;us`wCp#!wKLE7^=^q!zKAFt?cH4_J@3nJ?ibX8!S(r)zrkmIvRD z83_CfDKV`UC0t7#Ixsx2Xp@uY7OPgRG}aZ!Fb;51G%FOLW?DPM^pY%;<BumfrRcbS zJvo(bh8}1HI3dQlo|)h$W*!c!W#YSj)j^A6qjq5MBinQ$J2JAao7No3Ae5AUNOs0a z@**?nZ5=JuVw<_wbA{^eJoW`Qc+tDKk97%bSu=MBY<GiNH(hqIgQavsFxU!bIloyA zw<x^D`?mh*x?6a34$GOBcU){pYoyijhEq*tG)I;O{Mt4@{%Bx|PqQiMwz>a89#d4D zub}nnX61Elwc24s2Z-h@YXHNe(^%g4pj#A)=KS3N#Uty1PgAAJ-OZ?5l#In3<r4cU z$`qAWQQXa6Bu3afatm+X-+DpfpMP3tzSnv|sBtfKm-TA4t<hH1$E=gYt#mCm(5Ht$ z$|EWbFv>I&Lu0K@8|TW`-KpJqXh+s%!yO!&aEIQmxpeLtr_rO0tqV#kFPYRUAoEt? z@GO3Th9PN}ORDX<p7@e2RIgH*xFr62`v}ac;<ctO<NDitN3NM~W>QCm)h(K~0Idyd zMY3koO2E+Fnq{PBv*&)Y?Js1P{U!y%bAvw^fZvaTOg?F_+a1A=eivS8k=x!f_I^W6 zCrnQhTzWlY5BotI@$fD}UFb~BSNlOZ;SUfEdT+hvmtL*m40Qa<r@Eus9<|G&ANX#y z;iv2&Ju{W^)_@4Z15W+g+cEr+I?X4sRHm+~Ia?j(A$D9$sAYQp+U3Fx<}}Eu?lIeA zfWYNDk@(YKL~C_sO}z_){81VmXw{%frTo`u24bXxG{c{v`_Txs+FZ1o5BMkg$jg3H zBiL0y{%jy$4}#Ve-Onc*w%rzXXqG1U=~Q#3Ey8o+pV*fRy>-3*++jz~I~Pao+<lg+ z1<N3Sjmik79$)HSxBI)=N1w}t2A;(%fMH*>FsNQc-NCp1Cpw&<t6l+N;ck8&PcN@k z<pyGXK)2uh)1Td)!)tF3rxyso+xc^|%q4Sg-n%yj;=7CM^Igl!_Yb<aSnb!$wB;9N zZlk%V_2l3Te-}i`?$<Qm5UT9c8P=FronOi$w^rBr^2~n6QXb%pVK<iVXhgNafYny8 zOj;EuEU^$>s4W%m1FBR*+GS6!oN6im!Gax~+*?;+7AjhB$)o*SFO0a4yt#|}Z4I?> z%Q6UqAAPsd*!~<rJb<<wb+0cm*zaZnx2~4}&3R&rlCV~gU1wTj<GsFMPO+2j33VyD zPLblaFTju5;o<{xFi+nvw9hP20L)87?9pKa!@Q2WaiUf=6sd#QS64?)9jS=m?p;WI zYJ%fx2D3#bnBUjZ17^lDRC42qL0u4&`LyJs%DCszlH7CxtKSzr;ZCP#0;R5A7hD8F z%C2@`DZie4We|i$^4`Hb<K4m2_`S0t^Mnl#d23O?^BZy!Ii}pO5^6Gr4iH4A#=BP0 z&-u-onJK6P<pMj^oX&YW@(P%D1&neMVC<N^Nh;NW(=rth_W48Ol<v0$jh@R0{<sa6 zmmyE}V~RC47#V?Uo)0!o!$fm-<>6R-DtzEJe^JTlj&vgMxa%E;sAs$yoeu=d6=MIy zlh=Yd?gnO026|ZAVkVz>0?;KJ_g#rWU-t?(cGVZ_c|bFv_PB!+k`x`Cjff3*Okhj2 zd@!7<S%D|!Ez(OOZ4OM^R1$uwT2e-I7lo-Lxe(ZjFV5J%jMCUQ_rwYs7&2hRslNxG zx;RYCjdyIikP#s4*lUjf>hmMu4Pht!ese12R{%o$RoJCqguJtD8UW_$V0?Lhd66Dy z>WSIs>Y=)$NG=H-?U3GUtye*Z8(x$?1cI*vBxa0D#bz)`*}0Z~2Q#u$+xD|70tFzj z(s&x<D0l^cYTpKQu<R9<{XPj4*tyl#Mc99@*FX%XVqk%w)aBv$RiFVY9Y&DyduKEx z*ol>Cv9AFZ8bLG?2@r?KOS9N#D~=@h?P@I~xR9HEu@4^|2`31Ru#5H64chS^pofmM zlGb9z=S@ZM8IkWwfybCPkuBcIq91HTrGFrk7P%ChmE)k$jUtRnAf))ZYmfkO875A& z0vc#MCLT%TZC5(?to5r<0y&^BBwW)|s}kz$Pl<UTfRtud>|-387P)*hWLFm+MlO|w z<!@SWbfmQLM$F1(PTj)4ogu(;QK<wk#)RYf>~10~bec0Ik}(1tnu?ejZVH~>SpC9r z(&|RWL6%N+1U5tQ$-#Cq&#e{93UR%#_kQ|Sj#twIs_hF`PMyU#gu%BU>S;xmUNzDa z0AZph?i95g1Jt}ul2yicPNVrzqtb-u06)q^eW^YaB4O+XwpcpgcOMqEW0peiM~e?m z#Z3|1O0n;AKKH@Jep$8Yv+W+KjWd)%_?88?f5LvI91t{KkwGKJUk|TA6UA*O4R;49 zthIEKCv)AtbaQib(m7F`UxVV>w@n`!0$BE>u^N9s39co`TbT*+79?_V@YD*0{lpI% zjIG9}!_#o%&U$Q$J}~FV{XQ(gMRDw?1&(zbqYa)WiulDwRbC@ptB5ZJt^G8F_^n+J zeq_HEH*Um$mmt2=|4~26)np?s8FulsdlTTN;Hn>if+rFAOBZQ({o;L{X|qaf8z8{h zWBB0N3y^UY8{H|uFmbHkzC<b~8|b3nuixIhBqU5kO{==Pf6q3&SC!p5@4uD~g?f3B z_S@TofT8E~bn}!!=gBLjl=F>dLqBK9t8Xc0&@2^9FCA+ZrL}NlF`8iBdGr+;#}*=( z7lUCfv>ghMWjXzYjPZqBC};9p5n#aI>s~h6wOz^W+i#}Kkrvhrh5annr3#6u;wqxA z(xH~}JV$cw3U$Wg3w1(Ak{?Eqid%4QozM1ml#OoU0oC8`qn#;#xETekAgH0SaajXM z9kaX*-msb=6s6Q1ts7-GO8A1TfF!#*{fd<Y62<YwVbPi)AA}#ikFFuw7=Qx2b27oR z5Omb@IBOi=Ai8SV=BwcAy*cC^X$6a)?F_dXY0zC7Bz!_bTj3u&@o6=)PWqu0;iBpO zGs3_`ZOW`3p%~b*0XYmPK8urcy6)rfNXoWN72~{KIW%yC9cMR8IQ02t#K`topiUk= z`x#HYSWVqsAWuQSeXs8y96&+9zzH2fx1l5P`zbEZc$Mn?V}`Oh4?_9giHu|8nFzSg zZ>`;vM4sQKaSdwgSdS!XG{k~<LR*$C7QUQg<BwJHTSGH?8j*0+0A220{TO;}1ayL< zX!yFdVFVmeip3}{3AGA?V4dI?krEw;L@1svQjD~0#v#YMJ`>;OAix(^cSgZeZv%t1 z2vzz4lltafFTojnWHR<IyQCIF!n%4AZfiq%K{4388VKff$kYOd6Qn}1v1&7mD5(Ww zHW3OLhb^<PvRr-zVxncyI!;C*fEYUk{2wTZn$JD&#vh6gH9})Uq%)Fi82VWW!!wa5 z{kXS4m;+a2Yn14|Mu0S~NHAtX(3BZ#$=>`ULDDrjAXT2?><q?Lwo`X*CNs3!tco2* z@7zhtHYsMF#J6QY$6nN(=QJtzT!rPktnyGBC|;ZE5B!Gk^QJGABHEo%Agh6t$FIf2 z5MSFk;UG(#ZsW|k(4p>5v8l340xUS*d614ov!dsZ7+Hhd1^@}svv2~(t!GaK4FO{L z&=b_^a5PBwV-uF@a6AY$qArQDsG(aKjXEi7EG3zmZvn>lMpQAhPKEKtDAL2zU-m{H zQ^Anfb=dHE<O%5fO86F)o7wzSoXhVL_v)9SA*D^IHD@aPhq2t1Aql*7#vTjCiW=47 z;(TYUNadLN3;}}$`OY>N6$H-<VnS(5PKB0YxQ&=s$KhPV#duk6e(WQ~SzHnVLrxP) zOkrhE?NO`Z@cu4(eDDZ{ECvcxvrf1`)kRzqnLX@aP7eX*K+aKa(PK5JYLAg?RYKEI z;(F1fOwDN9Wg8w~A3FgiT!fDEeu-qCQa&q`I+;m0GvL`P8@{h#&N~N7|I}*~T3N^Q zjbI#7P{&E|Ngpf>E)RLV@yh#Re~Jw#^&90*U*5PPniKk~yf&M<m6L>b^a0qKZAR;4 z-yn+&b}(v1!<LX|>7*D>7p4ug#Q;SqXyObkI#O9QV)lTl8N7E(J(Oe;*Ba`^S^%7b zy+~i`3ZNVdXjk5Fx`721?!<LhpFGUbSehlaJ~JFZhq|~y50-(*2}6%&dN>t(zeWNy zVTaBBgU6G7poNPuH0p#gSrW@!po*$G+{PPDD0s_-)nHg|FL>kR?rX?Y(#UAPlk)r4 zg>=!{dN=7i-BA5BiGFmU51bX_i6>4c6A&q-0idl(y0kbwHHfDlK)3?c=~OtO-sA$B zD@uf1W6N=0j*cl({sWmrqX`-%YN(h&V|uKUNar3*!V;zR*S?iZHwvmgRMT-7PA7TX za0j_*AiAN4f{iUs6C1)IX$lVXel+}kZ32u>Pfq`oHv*iZqB93lgZ7rpsiWG?0u5t; zI^eb$L<un!LBL2hSIEAAumoxi$rQXfbYtS^(UN}tdwGR@pWuFzan6?eQn-f<JUKNI zO!qaFb!MZ#q;Zbe+}_!IKfJgp3wrWkoK2sNXe4?f)5cH$Q6ur&Dw;03iuH>ybJyx9 zvFMtGs2RSVsKhPl$shVge5qYCn9ZusZCz&=G(Fd|C@UW1R}`~?WBw`UkQE<z-5peo z;jA@^_5l5L0mXbdi<P4JB^wCIyYU5{!rx0JFp1|gJ1UE41Q5c$#Ec{ANlkIV;@-?! zDLkP+E<>}1$PGOL;%q^G6!7RllA6P)hcWPf8QY-2tG0PIvM4;Am1VA!rCws>Rh6l9 zBUU+vt?Z3N1*gZbfwP-!!di_B=7R{IiCVG5Wxc|j>X>(_<Tnf4vgL(VzW9;Tuh)Dr z2{!L@Ja&cj)o~f9O{L_pn+=(~ON^z#ko&xX0J0-O4LTG46(oR?12zN|_SqSFshEl* zrfn>b52qoNM1n4J0E(O}(-le`hD;l)41RSUl)Q(b@#PMKU$E05ac}ByAvQ!AeedLO zWt2%hS)POi{7@7x*`I`sOi74b3bH&l25dn}2~;la+pO?N*FDS4l(CG{be<HExAWKJ zITA;}t1f(^K0+9&Ga4$Mz)cV+>i3jg2A|i!F?wi;ISB_;6s4qdnjpCojKVA@$hzVf zYA03d!7_n8rOIb4;681bB&wr)Q@~kgepqbNNcit`E|uQ7ZUShE7?zTLOQ+KPeP6Kn zi&AjGC!U<C0VIu1|Ajm%7g(I4JoKVRF#a?^&rP#Kk%r$OEx1o{ycfhXj<giZecA1f zdPqDc6$6NNuISNp@<{sB$VlhW{qiKhN|Sv5F5LRJg<Gc{pl5v}0R>p0<$%v|>@nq# zZ!I%tG5K7D!}fBPVSA!Hzu&OB|Ht2N`N{QRF`GP#u7LQ#C2c8CDLuUV;jMVz`mzmx z{#dv3Lr}H^l}OC|Av^#Eqp7&?S~xCTNWV5LPkG<`S!mbf;oR9$P70gJmq$q;c}*f1 z6p`#0>svKIN>WSUY;UCLm=1^8&r0ECRv9{hi<XDz&mK-Qxx)Dx6g+e8qgiywvV6!m z?-DUJdJLE3^(Y7y?EB-=2vB)jdT!rH6uJp!*mdTFx>n~fVSZxdqr>N2zO8*-U-(1Q zR-AHlu0#fLbS^0vFQF6@W@&UL>bIIsP!&`xWt)x4m!NS`qxuPt;&Dk6UUm*uknnIK zec+434!Dn#u@6`d;LB4o0XYeP5V--}P$0O;P!%u)omi-an1I`SBWAb3kH0g|&K=B$ z!3!LR6!RW8fm!(|slrOhoHAw(lH~9fk1sMa)_ZonnzA;c>;MDthx*`6kUr^tPYit& z;f8WA5k~0zbBDT;C{%UsY)aO*Gy0PyCLfe)5Y7se2My*-#%OdGC=moGL{cL8-N217 z3~O5di()&8l$-y)k3t-n965(%EO2?p_wqvMR|*F{6o@#|1n-;0S3)lyI3P(FgO87| z_*Bn52LUaFWWkL$Dl8_?7tmC%)Ow2*UQ(uPMIn%r-}e*(j!hsm67HWrc1)ce_-M~$ zR4el4FBF75r$8jTpSc6Lfs}FFBM2U)If{A3(Og^J-Z+@yVN<tjlOkFn@Kq|6_A}d; z5pIltlG7j+Hy;TKKzxH0LLw|1?KfIlSG4S0wa?>MZbe>W#KM;P874%O6iCUbLPjQ$ z*q)w`kHk*p<V{9IO*O{QpArhO6$u|+cnq6dUqT$m_NL_mUYHNahKc`>{WZHx=<Y0r zBajwYUoPGTX)CD*Jp6gO+?~O)QP@I-Q18|6t&D+gC{pSa*SK|TW*o_3eiKUGS`mKr zm=ErCACN7x9UVKA=<U2PSz#%iTj`y$>2lnD1!G4mDBQ?k6m`$HgEKg5*@2;+0t{3| zJfc4y63qkS^@K*$)R+YCJ`xx5K8y3RNS36e02EGA34)&&flrB&o-HfGM+V2RsvL%f z6f5Ur;#&C-YAC{za{||ZNY^#z0ohG8ge5afd`=C)8Q|Fb5zZ^CqHy*V;93QHd&oFo zhKHt>&<I%4q7840*(OkHhR_bKpcw%@Ce=NIy3oE9_TLi3^nM2{^7EI*@j|@=sHtYK zzC2s*_t)w;BIJ02T}})Yl4B!mWkz$y>9crRGI@{0**QT>`6B2m29rDOk;|r=(^KC; zYqSps{PM)vy%yHHC^S$VB3K^j^V9^_o3L~N@g&vB4(q4K$4nNXq65HXjmxTu84Y)u zBPj&6aDV}KEW!{#U-IFh|J?9@2hrJeYkxZt1gYz?I9RTD+ZFNzHU@x;BeY5B<qokv zvo;@~un?q)lk}~rd$5ZdgK`m^0Zvd<zLNyUev>f_W}ErLr@~K4ep_*59P-n|5i$-v zadVa?Kf>E`0tGl2y<&pguDVdg3eSXC{L^$wHVu{gm*DwVGS#vS)}Hs!7fLI0HGu<u z|7AegGMMmoQdr^2&zkjf1!3WnaTE9>{XgX{$SMIbCJ9Tz;<m>~99&CM`qe+!7$L_@ z0v%)Pe|3-?CCgEh0x<GY>(%9VDItA0oH&~n&JYlx+JAO2n~W%$c&``#WLR~#`che` z&-wmvH2KHGuPk?kVO9e??-d-Lw<6}r<V6%@%8t=>bf)y)e<=#9xN?pQRWp?{tC&tm z-I&q%x)h9CgA*o0UVh~|*@u=qe9*1?XKz}f_}61$<6x?wLBNpj-mYe7iT`k?f6v>u z`M@d}U0aC<Rd75Q4qIT*EY<`IkCZ{_a)g7zrI_>awSX&qw2Nvi`Hlz9f$rUi<1@bo z0awnW_D`C#3xvCPryW=ViQ!;e>O`N!?olTJ3raQxE9k`Cx!&wiztGWE<nQ|%tr&P( zKG21QCV|;AGk_r*0+GyIyR}0xWQI^7H#EE~#x_{LV~V@N(iv$bG4Wy;?!x$-5TQnl z=M`BiE0<lWy9P0<d0am`+8bNy#6rRF?9n<x34eRq8+_`-?Y5}bVbNdQX=J_M(4K0l zMjby*wzMwOj0oUP((_OVOjVcx>yT7}BgPYgc<P~F0f*xpSB|u8dNNC{aX&$V=Ofmo z%mrKP5r77Yn~W^rPz=&tC|UMI6CFzRiqWoCORmwAARB5IVs27N>%4rY?V*++4z#U$ z0iW(OAmYwp*<n^7IjAq=-j+Y;FWVulK`!`u4f;7q9BF^(6?{SqAi)DxN2Z*&v+nRq z-cx{CJYy#me(XBj=uMC4Wsr^8QPAM-6%aeiUw*Ath(LoOElJz&Oo*d;QRi4y_qks= zfhq*{!O>YbJRsGj3l4$0+q^2^2!GU$ia2gF4I<`bV6S^zGoWzJN~eab4%M(tIkFa} zMDaKt>eKnK3p3@<u?p{V$vJ?=%q{i-OCA9D8IX;|$SN=nbw>;Q{CoIoTyt!&nOd=` ze)d}daF&GYz2R_!H?e@f!xaL5rbFj8Y;r}-YS;)C3z161FCZMjXK5Qn+;QI*qzSR2 zX#b2|a7p38B*jjADHikBO9H=KoI{--+G+fnNy7S*2yPDKlVMNe$1cl^2Y8Swk^ej= z_>Q<>@)@*UW>Wt`tmLno3Vt~_=ht@EhOG9D&@ZtRt*+%<D&aQ6E=NV2uI=!%c(M*h z#`XnBOECviL$-%5{6n_jN1li*JT+f`T(1FX4Z*FJ+lCko!J*EU8V1C=q}Bq#+KP7q z`pki#8){c#Kq>SMUQ+<STlC831HBR({41OByTPyi6G#7w7N6Gt#EHM6)u(mspLOQ1 zX!B|PD>{{xpU?2xfFsbA)iTZx5Ap(a;m$D{3Hie90{RTC);-VbQR-$DHh7J}p`z5X z!zw`Rc$Y$*VyS+(b^+YW<CZ5FHn_g<(?Qs#D8h>H58DJ3@+=+x)BtJ4KQ9)m{`+QV zfIlm_tcTf1I~3vtbRxCUX|U&Rh-|sE!3W}5x8?3Pleh990<B$y8?b;sL-C4R>-Nf= znRYDDH?qQ@cB)Pm;OE9wo1P}PZ=}Y7;pwzVws|J~BjJvxfNZ3VxbvLt8js%Bg$?0r zB=7lST*MDhK1L5f<vnv)#v3wIIH=3}$KCwz{C?B`oLA&JJ`Zo<$X>M^T-AwiegdP3 zE?K^Xj}5`iKSi5N&#&n3E2)4kzt`=}4>aO|X~C1Dp1aSoBQFoXhxq&+p}xAFLt;rI zp?&EfspqdzfHv&Xh}CH@))!n9cDwF@$ME8h=aVO&kchnAZ4%c<?5j`!D8)OZ$Rqu< zhp_#Vqr;Qqp3znIBlauRJ7jNUFIex-^1E#qy0_Mkd-RB#`3sB5UR)56msHV-S&~C5 z5Q6KvxP4*~_jlPCN07&agVUGne21lJ+h5slh-dY^08qgf{CcD9*Si}CFc3?Eanx5f zaSw=IKY%OZ$EJ`?xDTqB25%UAG;uO-H_Tx%W-tD?t7YMDgZb#58N=DnS5X?4P=Nf4 z-Ba(+EfD5C?YW<fv}h}0>Pmj(;Sftjv8G`B1+9C7>1;`5d})by8dZ5m1ZQOS*CJuv za&;j|0F&_doEt2ixKsK_TQ=*8D#>^l-vjCKYYub$Z8r&10=!5aWX%3Gr2k#Wn8kMd z8ZdT(8r`D~<yZFv(W-mKzd%2)hFxQ<0kY#n>5ze0Xz*RT5zz4bvz4n8lIY0(K89h? z3Y}PRu(@2Eqj?L0>O=4zTdr4*oJRnu6MjkEG(OKHLb)X}U(U+F+%Wq9YZpbvAgP9R z<Um%bd{)*9Wn`>!vjTB{j@O#8e2~16Q%PTG9p~K6Tsp3`Q}|D(nVmR>-8fpOtJgCh z&nVvh0FJ<yn}gG9+c$F3nNd2vm*%T}l>GDWp+N&9FVvpC&%3-?HJ9A52b%!L&Z9{` zx2Dxif4_*lAMu~HYZrfZZ3lZj5fKF|_ptzXLU_z<gbZ_v9ySKl(6S6f!=TTwJ*-); zRr4kv7a~%>-H<z=ZX$A9*4uA{`h)jxF$Gv5_`94vJ08w=Ep91?Y6H)Cfqzcw=SN?> z5EL&v60w2&d;6+!_839(WeWfgQ~@m<2V14E+trxXzyyu-m+$O(q4JJgA&l`!gU>Ja zcg?F?LT`=BeWE;@@SQ+Lr|zxy&tja(E`3A}<P-@L1yC+?B~Je&7Hx+PlpWgk!*ADf zDNIvW_d282=GCh!3=nS7S&v<t)sFtjM|z4<s64b{BCX{S_Uch>S)Krst!`X=2xtdY zMCJtEN&W5Wp9CBF5-&tWT+po7(|xewVWJE^N$UtsZ!p8y=~wV5?W^qwRxDg=wzDEj z>$*z`a4jN6FL(<<U)D6n<p*pkB<UIHOSN*#sb*H`M7Dnmh4U0~otwWrt^dGMrng9v z6HI=(@*`X`@zm9v+S~`+3){fRwK*84j|ID|K7{S}4lqq_y5Qt#eQWA`TmH_qS-w<S z)$u)5WZ}EJVOGADHm4$eT$$zphfqzeO_mmca#csgH(go-Bm(oL#xJY__P;IQE5i7= zAP+7cE2%b}J{5<hTAM(0s;HK+V5s45)tU&(*<-7<jt)OsYBT|I2l|U81aW1G2VESs zIaP_RA?OIpB;m!@s+`PUwAAuf%fBzo;2SQXeK<=n(ph$Q8ybD689~5UvJM@4?oDr; z55uD<R#mpI3vk$S6CbJsAMzD;fy_2nW&ngN3=<nBeqTfCo3m<vQ=|zj|C>a(u=aPR z3c{z4wYQi7V3EBLCrb-+{wkycF1;_avuxK&S7T!Q!s}(V4{{(G|IvMMEFV!=bghg2 z{p@;RzrnNyEP}!V>7erLD2n|{HS$n;XGhD+_9Kw9lmxSSjYmJV*<r-S@a4$n)Ej9@ zqod7*&-4z$GdlU}o7y;Ou^6_c67>~Whoqu!?ZK-7pfCb>(3}e1S{`OkSXM*F$degN zV{fgFte6>`9c{HOzHmq~Sdl=M>!vkwO-E)uD<srOT-(n;yDZB{ea%Qbxa@?K|GNZ7 zTa;D}2Af~MwSz!0`#YF6dOiV|idM;&QXH7V-zo^w^F^j4NL8w=mHKun${mTt*6QqW zC&Rx50rF~BSr_noYWc#0?vi{MBQ+Wp(_o!x%|aS<f}vxO-y~V>R=!^g!SH+9?_hiM z3hM7~O0zF~0Y2aGcAOhYKd40gSQSfcEH~Q}rKI=ob{BzyCu5E-B`;oB$FrS7snF)` zr`3X7j&ELum=gk}ZFbwzm+tKnC_cdbf>Z&52e{Kr%%M?mtLIdmm(DmAENhcve4j@; zGIGn#4WyWDYI&JRZ8$pZL?yt0p>4>61uU5xp^0D<JN^pd+Ri6msw5e6kNq(=41BzS zxuH=E*gw6dBu)AyQ+neCvGd$VJr{0>BS`UF)$yDV?1OBno$0MgZet9twIHFT=pjfx z0w~V4A}>D<9;DW3d!jKivoA^lx`5RBx)Qa|QecwuTv(ol13W!Bl(>l+B6(9LN6|EG z!ij_3u(I`bM?kn>!oY`Cm8g*DOdt}$ye?n_e)go1J{!l&Xzd?^v+L;Pxs)?_?twSL z>}m=7p@HDk9(@N-nhA0$Ur2irEcnGW2l%;4M=)J*(*Ie;o2=ZIIhOCSLrl=l_9GB9 z*i2}FQiSp5=Em(Zw&X`Q(iRv0CjRvBctdN>fTMrTgizjvUvGD(-(wHp&GX~p52$HB z^Xcg%e}?e(_Wd8%$k$(NSx!x!s>F3QlhU(baSo)cKfvI+-&GH9@JAD%bDrnDt^l-S z8vy*NGWcUPcD=Cn(q;%8AwwH~bWK!N1B!|6*#HD_XHk^jzd{A3*Bzgt0tDn^W<Cph z*FnP384S<|#o8o2%gDL)L&u*u#1L_4==<sNtbPZIqe=w*Kb5^MFG>Bz4N;3QNIJ}E z>9BCQMAuq5*g3K3GjRZzEyFl58rZ~I2c|wzS=)$y38$w#5qff-D!B*?AK4TTgTAV( z9#9(ne(+ow_Sj9RK|}=KjsIKW>l*-Wr0);+1YNE`q-O>p;s95VBlnABmmHi2QWncN zBcPw>$cpYyxTK+`Y0>mjk{PLGq6v|mRiTbu;sLhs9H8ICO%(^5$i>Q}&_oOrqZo;C z2Uo+_+)J?tk&&UUbX=@yM+`nP+6#+G*hgcSJ1CVO`d*Zow00hH^J++Mni_}|gKXTS z@zjx?>rD-PLznJgKoh<F^k@lyV7%DlWPWS)-wk$8RQ5RC#_&q_FmmX1Ea*-$W#w=q znHka`0>HeM87A+1{j!lkDDpar@`D8lN5#fu{)&b&$JYXEvZw^1nhsgbNk{}-C|HFS zd`xIe#eU2^Nx*>07mwlv?!?DIp?*oc9133D3kGtv`Nb!6^;ec{Xcc57xCJ2w3b2FW zB0M5h7h7ghYd(V6(`lNRxh{UVDcY=ifpHEd7I5_HsgsXT4O1&(vbsAqBKsv$D14NB z7o|TW5DKbEZ1!LqJ)zm5G;7H-1^&&O@8U~N3L<t3nwNIf46;j#Tk#<zmIzmf-Ejal z75rdK#5(Dp6`5hWH+}Ze^!hAIM&WsMDb(Mj5WNf(-=knbdSOLDP*T$&V6<GNAK!qz z0f0xI*^DVS6+6{lDH1Xy0$7wiiYXM+-)|G)%)N@o=4(wfVa}jnrGMr&!?QSID}X_0 zv4`r8IdqdHgz&b8qtWv&{sT^g${k51wi=BL6pZq0<(jIQ*hWj*rl>|X4H1S|b1s>U zWIgkHC<iuj1bh69NV5P@O85`Ccu)p}XaH3T&7+4d!C6)h8u*J8a=doy;?-j;Ru9Go z44(VX*Y7QIkk{$DL_0ztoe9-a{XOi!K1ZBN=laV#o;~<lIf^}ba0bk|tIk{~9=eiU z50ZNxupU#I(B175=ZF^%If7Sy!8np$AB7|S!Q_mG`F)hu_66UJU6k}Z4Vp)7ZvYcm zLrJBR=ie~ZheomBy=*`rmJKJ=t6V&3Pg>z1X%7cbjS03h(Kw(`A5E*HZir+LHkII& zo-wTLkIuP-qIPnd&6ik73<Mjm$nkHQdl8q-JQAf<aFCxPEHpJh=Pb}Aa1JbuLi}o< z!f5}+y!;?w@uFgMA6wT7^;;!i=jrpWdonmplO3ZI)*UX*?zUUqas;T`S23=ysb-1F zk3XTzT1zOfe6c*6;Cq9WmXHV7^*81Yo!2LqyQgqN`d-Z}afS>IuGlXguBlO@JbH<d z!p;td4Uf>C@ecy8*pWhn%>$-(r}H$dOBkT>!ci;F+#GSMNm#-GrrKSAfL7Re;e!)o zUQ3UT^lBL&LX?a$Str*4bjn?b4pa-!kc>vc!e<*TOnGb-&BggDI3?K+%Zkd4tY<4F z9n4fcRpGiUU!94|^3>$u{yTozbsMT=j0f|d@Yq>TB<;}Z1qx(hh$-_rVi2#&{TasC zW<gYM==m?n=<o4UpM^YtUG@(VFSHnSeg{o2ulreKF&Va;i~EOJyU9-d8?4eY9~S4# z_S>Zor$KmEUm?7HKa^v-v7QjX4Q+hND(}tx{=mQ?US(Po?_8P3)3$eb&JfeB83%Fg zcTY3|02nzIU<vl93PjKC{pR)c?qX->;J{p1uwSU{-TUSD?fC$pZ*u?sV&@O+`}6v} zb>5nhzu;R7@%?{wK0bGUFnvGd4!u53q->JCT~Owg9%ZLxlH)Pj5f$pfR4y2DoTivu zyo_HDte?j-tF7de2)csB!-{94@60%oIcQ(`h`D&6-y=2^NjE!z?5lT!TQGc6n^I0m z{JzLosW4iIfcM)>=zE%><VQQ37T~R^=aW#!&9GBHA$@%o5;#yogJrM19D^nKQBz$E zNKZr5U(-fw{AkV9g>cw(y*-5cfToL)4fZvWhU(Th5`lWZFa>;^A>s+)xp}<_{B%7K z@eGJ`4vaek#+?HV*8{s7z<q2XmztWA@^Vw}&Z<k21^I9w&Z|otlXdtAA;J0SaaWRk z_;3M%+B^1O2%h4ba1&E<J8us3Htt$rj?#LnO-*Q?ohwmUxv9X@cCCf8Y6wHemO?1U zGTp#c9oVjJYstwexwy0HU!(tDv+^mOSO5C2kvQ94nfl}FizMmq+_-23E*-u<H@n;B z>Bb`jf9&LoH?s?P6et+DjuZ*sXAeXgDFee*I{Wo$VVl`yIG40LJihze9R1fE|JR(1 z-VNr(Az4~8n`%p!S)LdT_QWYo&-F&+66WTW0#JSU`2^)Z$lN{5yiI+i!<+7yO@sgA zu;Tx5ibVgobpbZP2EcUjfX*{^!+i1lU$E{!(BVJu?LUxT=o38nk30E~TmO$6{*S96 z&dghRncZc0i(Yw~Jz0Iit~P9tVG40S@-RuChT5|>SvlxW?0eKF3Dz+e>1WD^HM7ye zO{gC~0tIAdX+lvn^Y_A^PhE<2-geGhyfXby+<TJB-M$Vf9$2jrzE1f}tOw|?HRwW{ z=HttEzm^lYJia^IOZ7ZVJc+FM9A`83xUamx%dzj;D*RGa%z#rUrbLJaHExM=8CyXx z!JKH^G0BKq!m?Wew_8H18OoQDa&cGydL)7vv0sLe8QtA%IA^p%sL*pl7KM6YybuLN zg$4<>EY#<%8OcwL<6>klX*SH~WAPt}|ERD3C^M{2szT;3Rf6`9f|dA3ttI@U7)sOv z1xRs2KEo3JbNB`EkIEGJM*-gB|6%vVYJnld|FA>yf7u^K|E8oB{D+an%R#z$nxTAV zKaBh9P!E88+odZwGmHT7qYDMa+)03Ql7Qs-4%YSgDg^7I1Opm|ayiwjlY*&8<GIsH zz%3+(5yB;ceJe5X5GxTOv|h=ap#k;)LSX*hC!^4QVt>g0VcjtQFyjBP;7<(cKg#bP z<xcdEGJyU^jffV5ydaW+e8#O4{TJ8rzgRf`s5i)el;bDG5C4zS{*O}qFBSm(AC?Od z3wA~x0rJ^N!Ot(a&LujnQ9BH}BAu?sEcV{_c=5!Ak=TR?L>3L8_$z^gYk`ETfrOu* z@*m(nU!ngj!6E!1;@XGeN1<oorw`nWz~uaFaw8#IcK6@rKaY|Aw+rwyvRJfA`s@$T z$4Fw)0ONJ`CBg&HCNuMu8NMA~dZUEY`WBegMg4(BNaTu4)6|;3*GdL6jecOLCu0Pi zeB3~Ff5M$*K{WFS)1jAlQ94~r+0QBgO-mICbs0o)za>Hu8S|Qoa*RFj67O04#(%fR zAaI`O*I0g|Sg0_PU^SVC=`Hgd_{%JfXVQ<{x;RO{8mk>}BrUdRAg<49*Oy>~`1G-f z_6T<p{yw*e_jtBxx9st=ykrT+Rmr*~?ngm^PC6yUW#3!pBLtNbqrWIC-A5CnsKDOC z<yTmomDelSxo6rMq${Z@@A3SjIK-e{l(3Jz-m<fc)aEtt&HhsL<Dp|VS`CUl%to0C zrm|5jcnu&RIvY%4{0s}Dz-CGjaD=MsYtFcH>)zD!#Q5+dqX9I+VS6&V&W7GF`0mQ3 zG5D^i$?kTpN_S<6<ZYZ#V8E9Du4};iwvnE%eVMdlzS+@!X_@O}Xgz6$mzDo*`EkkD z`BuUZT2~k1#_#iFa-jw`bIUQ<`USTz<5l7ihxQJjEjKLv+{Ilrnr>}Yq9$te)TI0E zHP##r?g{b+WA~Dw*%)_E68b?!R^juY&IM83hidq;@iaqoVd5S<22vimS2{f`S!?Gy zKs0G)Q)(p})t;v0F()io3~uZ5ckpsGs<L}?0ovj|$^Gw=?>Ym-B-Y~Oh|^i=Sr&)@ z#Zp8-=mMWDh6BW(ew6smPSihk3h;2MU84Ie=23876|$tSx!G74MV=}nqNKq^UpH&3 zw$iw_TBEgnbY~*=yb8QIZ`6{d9$zFFtwPW%>G|l_M#m?gz0NNrAEV_aPsOiYlA{AL zf)`Kk@0nX5EMHH`4>^l`!z&GQH|&Wv7$JxNe!;D^YctZjiZ$LX*V7{ggloX?`n4IU zUB7zWmTR?TUsT70mIBm8Tg%S@<UREpYS@YsPfn$$dmqC45Y{5vbMP4%x=*i9Uu*^U zx-EBcVKD!mwUoOV^~(Zr=97-xzO*%b%}Dxsr>Oz_eAa_L-i$ON_bx_=SXZkj0+IlM zn3b-_N^Bh41piZ)gyDQQJ45%O`NVG#7aUhLi^%0f-PNMrt=8LX)phoB>4dp{wfnyi zwju2O@h}XDTG)cwBo|zAqNcOC>LU8dE19B39XkuF%^rRcVO@voW-o{CiLUUqfSOZ% zvkDgGTmS4{{5qdiaYo_VQgY!Q^D*E@0g|1|q4yFJDft6#1>cukx++n21(UtSp!Dfk z`wza3@Uh%UuHRDpRty38bzVdZlK60U&ZLHMQ9h3o-xAGU)irS}UNO7mDvf3Ev>}W4 zYT*nMl5Gn33M#R32Dq4bsrPBT)uJ+@47(#Mv2s5(e1A2e>@1(>Kxu;k`&M5tb7btJ zBETb7a1?IoQoW7aGr!*hBic?$PoX%>f2OLn?m<8V$GKqp23Uw|(t6MniLe|qwXTT% zI^W`Os-1%vnXTV+CA;t*UF)Wb*P#7I@6L?lmclPfGJJv5tfLuW`04XkmEOq#$Hi!0 zJ~xy_ZoP5`ncCr|3Wy16{U*^zAiG~_MFqFCAz%3;P>Vp+_uJSk931`sA?q!G0*ASF zVcc03cXyY?T^4tDcXwE{xVyW%yDSb1EDnpiySu~Xedm7ve0TntCX>@7&1ssZ>64Qu zTUySP#aef2-a_LA9Y>~<y{sY%#RxHlhOdV|Pn3QtU7|C>mxLEe@zw1q&w3jCT)U5p zhQjOg1F_XQ({k$%w&?AHgqbecKkyxL>`Y!YXsbU>K|PfWCrZ(%RL5iz_fQ8S51fta zX{riAHPI2ilqloE31jOm#ZGCB8JO*Qo6jtGOoX&2!BM~xqR$bGfHImX#|78CqbL9k zK9c1Df6daUh@x;Zf>dQqLERlP$VE-On--L-DhthUHWK#sVkBx%MeOKV`4a5BFuw%Z zG2KXTkWKZ!;f|13Dv2L}p3FRVuOn*}jNBh)8k#E5y(|sxRY;3jqs4{?Nks>iv!<*x zGIv^9{Xj0}8qjzPr^Yw2ukunib>!&OMDZ0JP`Q|cX)?kCMmn}#`2UPlgy0Lwl-MC* zQD#-KgG8T&p$F<+l2E0FUtxb~Cw-n5o~0p#9=-o3hyWq7yaFfy%~7}h#qL1jIt2;M zI4vPp#rZbz6Wj=Awaw3s*Dp_L^OuPGI#3Fgqx{R{MZB@QX}Ow(2acw|M7*cUJ@fP^ zHT7`fqJ6`tkM7{Xsh}PVp|FoGQ^_o?uY(Rmb6ga14i9|DN&Qf;K}K@Nsg7d5dhk@* zYg1$EWKX=j_X5D}r90UHSwy*1m2sM_GEbQ@8DB@u(fs29$(nMy2X3EnI?j?Vb(wWA zPQoCe?;N5GW6RcIEn#OBWNT(;ZS~&3TTHroH*QzcAB)sr$=>+W_wlD0hT}%V>7*fC zel=Z3$X&76k`|rzs1AjQPICMBO_D~71SNZ`1Uy&_PZAJ8KE|o9S>TVOl&m@Kv1`X5 zJp%1(tJR)r`hyu1bTbPU2JC|3JLbtBC+&$#PW`2#&gSteBb^FK@uV30*-G^+8dtpS zJtnzHk(+w<36YetUOvcl(X8B^Xj8)AyO8B!y2KF(=tlp{yoqI=;Y<Ff<>TrRu9T6{ zQoX?b1s0$czOr?F4nqM^%DQ8F4~d5S5+l2pR(W^%AJSx3ey%s%<;vgxKvio{M6r%t z%jaJ_5n^xmm5Xr_QUqp8r(63P7JZ$ayz97R$!7)3<9g=LmfN`(|5+i)@6DI)!@K_K z>*fA><@5P+{ekZVdOY^xdHXHl{_*kB^R->P3}C`#zsEpHt(t9qYWtC{9~HW>=fdb4 zR?yh?wVXQ^0)7M)Go6cAZxU<{<=c#nZm@{za(+K?4z)s_!k``vLcx3wSRfNqHD0G- zHyEh>V{Pc6y=U2Xs)I}^C?suos;$K(d?D#vS9WzFV|gcfRyS~U5Zu0g9>+=|or<kp zeqc-MWg5+%-@8_<4+jL-z`)iFUAW34*OCuvW=tbk*u{*!SCM8oG9Ry#u{HsA;aPnO z{F1S<zjxP$4{9S$HQ4_#W!`uTQAQQ(Ntg8N)Rl6u|K{?d(H1=mIt&^Y=e_q{H7z>U zg7(IR{1~|XL)jm{iED(ddc;f=g4K~@U|Td%03B+kVHyOQeMs4eDbc^VO1U3*q&Ksc zdds6hc?x*m$wPQeZXxmnrEb%xWYMR=D~L=13qElxf&;%4Ef(zMv9x3(Ug0YLj#Z<$ zZ^g6_;91<KCgJ%pUnh1-dZ}9YT{pg6`GkPrr*@f{ztLr0koma++FdeFtr3Jf;6wzS zVc97YE>Pbh!rMSoBb5wMFw)BVJ=>EQqB~lw0Medta~}m?tEpuheW40X<XS<IO<0dP zK~@oK5~-F`NC__@J1io$|2MiZlTIt#2a7*rPB+ytCdo2{e?G=&vcVboO(VTopF<0V zk8MD&LdZ@IS)T!COo4VM>%K7pP~lx+Mb;@ymTJV*bX+hduZU$ua`91)_D2D;^Ee4C zu>ZB3wa?4Cd@GWJD*39Ioj!q8>r)AV#7MNlEsfVBZar}EqEFLMzZ@EK^CO2KOP%2N zuPdy;{N_sDUs3&YE2@*ULxvXTa7dHPOI{A3_LqH-U?TKMw0(Vn&KP*SK%1ZeRp4kK zCEb=#q1$97FX!;qPM<MC2z&L-7BifPEEV6csDbGcbb>77y2mZBjg3Hfh!8CWkE@{I z0KTT3zU6I+|0z0mqwRkc?U0qs{GY5V|G%sb{(TD2!T3LD*+RGhEoh`kE~W|hGTye{ z|7zllz(Bw|WMDB%gG5lsgeO}J9qWj7BD~$l1?7druyxM&rEwW#GPJyg!`0UEUmd*6 zY&@C6!udak<thIc>)59BhQ8{xguqbXJvepknC+U}pBEQ^8NOXU-ay8ib{%STIGzY` zs3`@-0~p(e^`H8FIUYlAK==*(&Gj%x^$W=)?HzO237(!6`oMom0w+=ab%NE`X0v75 zxdXa0+i`Z;De`SM>)(h4zmDwtvJ$tz7biu~t*W2!+y4eXGI;+7{P=&ckCcV~U?2BX zCm;I<cfhgr<<k|q?<-uJ&tTg+@cTId%8U{kQcn(pskD@Tuh8Tn0ckL>bKqz#Glnu( z@Rxl9nA_)nSYwns+eD*g$i9C}jloRTlep1kf)H5cb<R&=C`6?YzKk6?c{`?mKh5}F z82E*V!Zd{bH5aZZB@SjX(1mCD&O=5xY5oIf17z$=!VH;8GIT7N!M!^HPwypOUh&3z zzD_L)zo!we|2ttxQ>r^xJ2y;oSJ>E&8C7sQ@<u~^W$M$qssbiV01uTONU;wN`*yW@ z@qFEl;xFJy=olL(D4EE=+%MRMgX_Y=D903;^(I{;%I&~)!h0o9^|pM4`YW;K2>@3- z;^bVHmTGZxk7fMzZu+=7;OgQ7jf5G=&T>74?)vRekTl>^DYyRwDM-;zIw@_`hqPVN z1>qS5PNFwZrqqi%_$T;6tcSDE*EC6cPn6wuJO?qY*8q<1!pNvtJ1*N}6>cI&zEbM= zsr}|Wi!?+U^1jXP$B*&ysZ9+_ctEZ)s++ZrWAPC=C&=Cog=!;B0x>lS8&tMFOVU^w zZa~|pw_;5E;<i;6!vC?=nt3RK5<>w&+2swvv{83+kQbdGw>Z!Eo_8@82?=-0exgXF z>jxHXMkK^1O)P(JNdA-$foW&&VM*4#i3$E)JHw6#c89HG;+Ffjq#wDLb%1gSnY467 zaUyb(ie7988jP}<pE>y$*M#I`#V=bNjl*u5<6jhF?1h;K#ZunExC8YBQCH<z<wkEB z&zQGAet57ajoF5!?vLX3!DDBMUG;Yd1aN4NTe9AX%?8LPm_(S#d5JLJ+{lrCU=w|~ zIDzzuJi$)dl>+axpWt6~N@!nPUH`+Uv}bf{xl0EE;-6?KO9-sCG(3KOptU(3%JHDm z7U;dXt&CGOoSn=isE)|3P*M)WldsHF(;Z7V?dZt&ysksSpn!ln5Fd{7S{ifhT<nAn zc7qUwudf2zxm`YP?;b6NSD$I?l#wQU8x+bd=~d>H^d0#2TZChfnG~7J?>kAh-L@?w zB6J_^tyAr(vA|>Q@`H1O+!EHuq&ZUK`7a)A2Eo1a8^_2+xB`7}THjBm9Qvgb$1W{9 zl$OrGOOTOWH}+iH9^$fd6p0V8@{wO%Y4jKV)jS64gY50lMPqCoIpfPF&sR)(G8}Z+ z_GTl$8y<y=&o0mDhmc0h*mB6|o>_7lf5A`iURE!R!2&L(xbW|P+`r~~G#d|lwsDMY z5^a<x1}m>0e!TwT$fUHX*Aa+1Z2Xj68eZP9OIPxKF>xqrfS7V=5ra4jZ6Zb+#$FhC zaP0cqjVa>=3;_B=r^`<mE3<Xy)M+O0OX;(-!W{hPT{`x!RqtHsZ-Zv;|AGt<7GvS@ zxS>e-G=ZAM5tFfvsqUy!=?8L6`(B0a0l)qAwLki8SDfgRR`W-7O1lwhyu!DU)sokW z2?RF$jEmX|5L<v5A;&7)PIqQChj#f*z!Tw_ut2@OuOT$Dw5;)c+j^aPt;0Cw?)lyi zFR?;h203|-5hEM{n~UA$q%Kc)4E<I{q=J(XTHvAL2c90{b|R0(Nxc3r?qDhbM;N2( z!BlyD8q6lk72;j-Dnz*<s{@&@+m>&n9u=9|mwC~*Hx$ijP3146vK6v8#w906fjGrK z@HXtmP1fhO!RuAMjiuqE?yvNX`9RliJ%&TvhcRt-88s%2QTy*$V&6RoIFhCI^=tJC zg8<0k4_CfbitF<vFXo>~Bi#N}&{l@AmE|axG_@Za1ISX@bYQhF1Psi-?GS7A8DIj> z6KqlIL<z_TEjlN~px3;*-y%e^1_wIsZ-gpzAVvqxxa8%8=FFbkLXJux?^vr;iTDMF zH8BU6LtN{!2NQ&@UJ37X@#ak;PJ%CsHG#>4?;*;~VAfKv8SBDthoIiKFah24gxGEG zM(w7#Umpz^GWo^{453oG-Z$s{i2;tc!_2!5&I;b@1^XG_=?tY=L;cj#o;c+{&7%bF z*IZ$d@%97!Mq$#THcNdygyyhM?C$4;XbpRtTWSB~MG47LA<)HTh>V~snU~gP_kbgy z^8RFf{e638TL|$S!l4zgy=UY;tNL-Gcc<Aie_E%{Gw>~xoR{c8NO#tw!b0@NF4vLc zOLZAB-*qv6aH0PQ8l+5b!9I~hE-EqDyjmR+D|nQ+_tG?<QoI0_fk#gq2zs_2G$KQS zNrsHaRKor5*7o705awUZL4>NzXaJL((w_M7g$Jz@Z(L;T5LtSl@vRUz%{8NBQp`$Y zz?pps;u?PkwyQ=5+ewt%OsL0VLGBWEZad6i;kuCX+Hk!lEFYrt6FLpeSdjqjMAu;X zUo07S$2i_911GTAfZ?KkQf`);7;!Hz5bJKqpm@GRoF`nB5VMEP&k5gOlR$^`@z3*8 z<pqpz=@>r;p@oy&e0w<FCnSDrL)<hj6&CzCk>%3Hjt-!R9=7Ygwr1v0Nqtn5LysY& zLqJ9V{WwhLh*6!;N}f&nxW=M8hgYjwEKZ=~{g(F00w7?#n2CD+YnU-RoC-abJFoVX zcKb7Z<yspG7PG+2YQl+g55R)429dG&9&v6GZ;@Qp_l17;-epSdqjvPvuYPpTC3W|n zd3N|_S=hDvl{=~%{WA~|_7-KCSYtu=nusqLD~C%MFmUZYkSAz-N4Uj0I=5=~dtM6B zX340oGl1DIM=1`4V+@guEKp5bEQ)90APEbwwk)k(mXgtj@kNXW1z55NO3_mfW?;?l zS#te2XyZO=*5m|=Go&efE37mQl0w_<l=Lx_^hD;=(MeILJd38sttYB(d@*%yk0=-P zOUk+TsrTPMC63uFtBnkcX_#lX9W^nT*DC!XZ6eHr6E6$AmAQ9rUhQ?S^^vCzH=D3i z>Of~lZy7p6G&3a@0j!~3*C2i4fe$=AxaxS3)9B}-(HO|+AG#u@={i5V`WLnG{I=It zZ>>wyMJy^;9E*(+et-G~HFNFl16@ks13h|%O{mmCrTd>R!K$WZ1y$W7D&oIiUW9^( z2y*s!aD#ngoBR0f@``2$`>rawJg!MV$!^MzK-g&#sO8#kf&Fg~E7;z|P!EI%65Znl z*=%~70{p#f?ek!9L>WbEr+bcpnQ-Vj2)%QdM=MOS1DeCM8iqcDmY<|G-&4nIMQvh> zO2Rh(E^juDMmQpSlV_TQqyPM!9H9QEmpa<=mN#A}x$-6G8j(V|J7U!wGcGu_)qBDT znn#oiDb7IdJD{(#{t?T3{6<{*(~^dOEX38PTMuNhknXUuU8w7~=9MiDR$2!(-MFYR z!ePhOv&XFcC%jtWR+|%7#v?p08ipNbn+KACApgJuW=HmC@%_ciD%?Z%zu>quU!6~` zqq-*Iqu6E9N&iIEq}1xju=hX5DQhiQ4$dPl5VBqS%RqGNr}P6~3-s8><SZOUYTYV~ zXS?ju)Y6N#PMo$XQ~$g%juX+4eT#8g$~$-q1bZDNOh<5CnSQCKA3b*%rEZ?#3C&NI z`cX>O-#+Z4biz2Y1ZRGN;r7_pH9sA=lV%PKu|R}w-P=6Ec+fJ@{w^=a`KXYvDXb5A z!|!ex!U8c%xC0v}8Tj7mjNNsVOQ5>EszfF^X8+_$XYZ9eHzwr^rIPbG@pzi{ZZ8P4 z8{52^6W@+)8Z%;hwlmxlY#hX?F=*!sXFHaaS+eOH*&E%IvWwqUy*xIo#T{R7TCF-3 zB44kS0?9n#Gc(U3&|w-U%TS<HU?nu-rYoC42Y_+^{7mDxAT?O<3J9_}GM$#ZXKnRc z^)tU(t`k=`5H)>t2PFdKNdsuEzl9^%2;%S7XQu^K(m2H=g<|;H+0!)nCN|EnLrW3x zPJdNWN6#Z;tK~F${ZOQa*i#LnZ0Wxdu11NAfH{E;r;ITVwP0A29;il$QP-2fK7E3p zfdG^12Nlz4HnWagxYH6X9ibzMJ=Iad=GV=n8cAvguxF(7hu2mY;UwiqB@AWte@m{V zVTL8M=-wLOf*@h_sIYlT6FSEx$STx!N8T7?XRUrFIJ@F**7C~S{3e(%_2e<#E!BLx zXV00ZxCWP(bG&EkN$)k6x7KK{X>I&@zyZKFo1uD#IM)rrj@TrZaHa9o(2m`|Q-3&V z#W`qI&e>A+#@u<+Qh>1kQT)DhBoM^uMA99IOPBa`tG>4QSfNgd@TZ(5P>Hm}7g;^~ zD8d<xQ4H6ETFJGdk()k((^f6RNU}gyj?;?&y)Qj7ZG}L_+#zs>bW`5!bH!T!ehTQo zOcr_-S+mj~K35YUa0yulJsWLh*u6D8eB7x0jO7!bmrDM8?)dAxaPj+B!NIj+m(}+1 z9nYdFk9zg79o#YrPbT!%^H#yWMU__nfmKxyqLOSL3bHX@n)S3DVwDV={;)40A|C0% z?E6ubm#O{O4}(I2aY8WF?VpE=FZV#6m$B{N$}rrvV~hO&lO3l1KE%n39m7+crkUf` z4PCdT+ilBpR+ef!DqB7QUf!x+{U>7<1h2rcu{Iw*h#oKZ1)r%L+>%p2FSQx*%C<O< z509jAL!qaI?|*9b5uowPf-I8B!bgLs-~A?ILu?<`JOYB3jCfm{tK+;fLdgMzO2T9p zvIugqS~AJK%dms-ef*ifd=r%ebj4ubvBnFWRJ5>mE{?1;f{&y~qNHGx9dxnmHSBI2 zV(NL{jaxjQwN>Plen><JpOB*+312;4#SRfV*4{%up=_Y|^4EO*-X$Gjcr2dWdqRF> zoS$4!4Ck|*Ekg-YPC^%$N#O$@u<{f-6@@9F$V?FuQ7%;RTY5id$Pjk$B<EQ3mZ<wE zV%~zV^(3|xZ~u_-<7Nnz+R=c<4L_+9hS0<s2M_sQEcRVFF+~AA$7?P-pg~Ive@6Me zLN0--k2|QEca7S26^MYS>wDET0x%KWX8tq1zDr;zHTyAJnrSUSE)QU{867q`jYi3n z3W4s(F0J+cRi#uL!c^KP*A@V|NTMK0R)G^<p(jT^&w17~2{p|t1Fzd2NJ=*yn9SuA zo!yNgp<g-!fEXVIxe%EXJ$yMgV)Ls<|5?c8@-*Ve+_VMHD^hNgWVp(7Im$35=m&=w zit4Fx8mM%%m8$${pafe1vf1eEpK?`swP1F~X#MsvgOao-ZQM&oiJxkLUh}ADYh^V0 zVBL=s9do!Jx3Ly_(|Ij;{C+0LFnzhjCc%mgY&2$k-b~VvG}#RJ#I|CIv2ha$HbpVW z|0MQdmOG05$fFg|Qe)$asArOhM-~o~OdMR7`<n)Gw6CsUfVH3PI=;;s@=|;!I&LeA zXC8Oh7yG@&@!p%}EmTZ@qBnO=?P`CROo^^v;qPLJXgkI%9`C9uG@M#N3yXOBthdOJ z`KRL6t6H@l81&ueCxfT@J*Z_(?4pbraU4#Q+e%(EuY<YTbsQx1io#)yXGIrfoTnH~ zm%U@z6n#Tj0nCJ`p`y8m4OV`*O^Tgh!P}nZqXmkc4;zrW8hn?#x;V(<8*tVR-xgXT z-iDEb+hmWWMzm-qRvL&8R#P?=TV>^2?us-fj}C4gP1D2@0U42G>Iln*O58K@gCzv_ zd!i@*;fQULqcB1Ze^WJKrb6}Y!>}w`S_!QCEFc_l0Qj!I@BVtBQibfX<;;Cen*C$G zlC!HklW&U^!$pl7K-npfGKUo;|K};m;Y<Q>7}ofsjD^wZHX-<p=jSjdkbOYS&nq2J zD59xu*{f*u2q8)RbCMJKJIcjOPwid{XT2F<S0gxZFsg3z4d)<cLm_(Vw@4b|)jmV# zf+_j29&laClf$^#>ZMK!m5F^>?Gl(dHkJwM6=IHbWtdi;Y~ix}+?&I3r4+dDRJ5H= ze-`E!0R;;Ko8~u)M5C0v2N9eiJEIJt*r}r^xDTyL>R+KKB=noeuOiv6B2jR@JdX$+ zRd8NfkWC^FM@1nTL8U+Uxgp(Sj;e2t%+N}S8DOJM%OFqtrYiGoil>N#d;Ggcfsjj@ zZ~$&<%QPxJG7-KaF@8J|ezG7pg&=o{FgJw|H-o>6u%C-?u#0ejixOD4Ul?3i5M}VL z1T7nV^^z>Eg~c^446Gt-+0Qq(G&fmknr{+wNnrg{aVAoZLM%!V<N}Lj&k!)wVJ7^J z!~n}pI3hAz`kcfFMA_Sb85t@ri4{fpe)=C&QvcD|zY^r^Kj(Or#%{xq;$_Hc6lYN+ z4UJ(-v)QZ&K!qdlllS5?QpC@~$}AyF6u&1IeMw?E&Qf_KLq)vtZIt9h6FkLLmL7k? z!!slWvs99x6TdF<x0(WllB^<yMUej#c%Ut>DMrC0$tys_`<_Az8`cS~zUUN=iprMh z#|cJ}E`tZI&XEw#Hvo#RDDT1Vh>I$5dpaUP`AudnN@?mx#Mc$682GSZ2mQk{lutb5 zt_>2X2ZKi>sJ{|aDNQy0CjkwEjF^(6LBT<?XO22=nu(U9A<MrAaMZ8$VZiP9P9GU+ zBs?m0{akrCBn)hQ9$EdIWH@A5SiN6@hG2#Oh5`ya7mA704OvQp;4~3AMqU9mEX;nd z2NP(rx-_Da87K`&8E@m0U~*9k6m>HQI<iWRmUo_%lXPH`wqFDc%@jSqf+@SG6a%7_ z(^sX*CYz)}QFnl#D=K@q0oRrlWL>OLcSf3`ps>iu<gI?JJ%`xsgHT}^8aPRRz<&A) zY8lm+{)S?!1|c3ykh+l?_)E)<ub2q;w}6OdgoYI;TtSA72j()0s=!oOXQ714$sf@m z!#Y#u$jH(2NQ_1kBcPQf<t(kZ2JO}bMSlJqr6QWFrBD*HRQdt;9Y6`GA<K^w=3sM5 z1ap^MTj+1`St>K+iCxLzRYGZQ&a({_L0s_|f9RzSUk-|sjb1A9(?zLmcCcOi#-@{4 z;3`?yP2jd=d3mOJjO_LC?#OHUM78|v-TB=4nfpq~Z+Vl8F|~R`w?*WC^5Ooz74VGo z%NsN(GWWUlV^hq$7Z85(kKL}f5P1J<YNcCm;>}<2OHKb2MeJ@fbDl1OBlF3P5U8%` znM@(9%>7rp{V4I=Rr02n+B2X%2b^!#`rS!*qi?S7s9WMb*S2p_O+wyoD)+s)e;+Rv zMSPaNo&9)#-GmK^r4ATC>J29B4JYgkB3pgt&%*IfvK9&_G!YCZ{O>^~IHFztWidV{ z$A2!O{=hL?-=+i&C8v}cc7mda|2<qf^ak^&<4J6^GLRR7#Ut%vpgq(0&x8Qzw@--c zH`F5el2?88X;49mB3A#jNNceB0T(d9T-sRW)d40^(m)6_HZjuR29z?<*H97??v*Yk zDRJD83UoH{-Y{H8AVkO!M5^XGqe(I=v&j_(t$qVp^@wFQ)~Y1+YUmk>OA9$B8QVn6 zd`C3)L6iOG!89$IlF9(NnZrGCqH#=QQXp%NVY~?;R5}?Z3DL;+bRon+sthMfw2>?O z#uX!BP|%k|d=m*cBvv?Y$4<`99h*dZ6DClk#Jn#*C2__C6I4F&*rWn<A~DI72voSS z*^~tobSv@5ObTr7Ad%Hv8&oAR&Rh_5J8{O`3SdKw_6e{`2ww4LM)My|2=ggJi)F*l zcRRtNS-x3Wy*A_P`y$5PvwP!Ag+$R;8!83kVRRr9=#lna;Id!W(ZluZLlG3q_ivhI z)$?7dI}z(!V?QitKCieDIrP<BWkMev5Lf8YEgkw7$3vi4$b1{><~C@{|M`8+a<@E; z3D7&$HPnj5f0VKuKTxB<Z`N}Rnl#6Nq!}(>fFV)ZRpYfmDAlg<mszJJ2{bY@!sO19 zhp<8+Tzf^{4-T8-ITAcODclL;o(7Zg`^MT0f?tMAoyV0dd!UejK_8{aM7qq8Ctgs5 zoDZwH684iu3NKzlw3-x*`bj`e^R7VL1>pC_N~^)*TZ$9cGl$3WFi$SJ`G(VoNTU`Q z9Wy^EQKu9b&x=);H`q5e_8Zv+?6LAHM|C=nG_dOirCJEMCeJ_s=qWOy@Eaf&Rrw#` zn4nZxlI9gE*^w2&Qnd!dCyUiw3!KYUbHa3jY2@a0v8gxwGw7N$R+|SsiH!9^0P3bh zE^`Y;=gDcigRDQkPEhjqWlpx?!Pt|I|0;x4Qt;R6>tKp_iXxMl*df)Nf-tg9<WN<) zoK8c;Vv#;0a1>QuY&y%F`DX-&#L~YwfAK>#Gt)v48>5ps$8oIFtde}8mP5M}#qoQX zUYXnuEuxELj8bFz6Xx?tkj<Nm0gE|<%^(m2)$*+*cpPFog}9ZW378BC@3(j|6!lk# zL^M%vw6Ov?Blsv6B&T|mZ7TvaFm+>uKx<?2{`r;#;Vr8uLkHWcpKT7O%(>Aaz4KTD zTPqsj4ui963aXWB)YE5icmy$I@gktKvax$<9j_@=PFAkXFkK0BH}_di00ys6se(Ig zT699LhxD&ep3mU%d<`Nt5hEFPILG8i3FCsiT?E5K`rzQDfTi?-SpqQb+#m7Uuot0O z;@`Cuz+so&1$FzB!?QxU6PY5-k!1#}id82A+-kGhB}~6V!z-0vuL<JVqD4V+3ipC| zfZ*)!iIezt21mvE#f^YZ161bxD1&3DL?e5k7D>AV;XC^?u_iYltfP`8Kd*1l3|ZPa zV-jQtK=imu5~%cYG$kpJz!<;PlZ~pyG?6(&Jcl_+kk^BHn0*mcak(XoBhP{F6G<9@ z-{?q^c=&SiCKJN|f`3({)o1EVf~&&z`k1jRWP|T8q=Zb_D8l3Vfqol$PA4#N1*CvL zVl-PgD<V#VK1VwtL<s2QDq&Q|zX5@8bBb^$LJkTe5tPVYMDlIqiL<B)TAJZh{B#DU z%_)EXf%igp*e~^#3@f3=LkCTIUaetr3frLkJ+@MbWSx0|!xOUjgM9dNxlf3TcK)Xw zkx4{SiXF-5w{K4h6#%tFavjGY{8Yj<#FCH$i+_fk(3WZPH<Dk9HGvX%S!E}N;c$Ng zSqWJhLo($3QIWS`{&n&S=ak7frt!vea`p*xl@ndv^m?%5fMg=cZD{(_kYv>DA^u0H zTJ{DhwVzivOkOM=AWsH~NIx=|>=CCuNjW{h#lyP5xpbqg0DQU?DpR)lzhBiKkm#<4 z5E&+xL_v%KZN6Ithtcj2vJO$YSoMaEEGyBiVy%lj7`iWQK_tl02g_9HAqqj50y2xE z@pWsk-)XcUA%p55(iX-@0+8hVG^y#Gz(L)<XU*hstHsfX?xU03O{1Z+<A2LU4CQRq z(vDo1ubRXF(s@l-vKH3As$=6}49+PY7Y2;5!Be%;6?rDemb#?5J**)R)j+K&at&m? zJy6}k5SG%$2O}XnAW?Z~hmMXdm~J8fRarw1PFlKv1Z$!uATfasLkyh|1w=T-r0<!Q z&L`M}u`vuwmdz@@!s%OAr=m61C@5sSux7})L5v(gn?{bc5Ne=72=!Ct3C2myjyfvz z#v)29G@QyO6uO`eO-3&-d|FOSAkTumkRn}N%tsdcFe-y}h>OkCTlu633Qm<?!wXWn zFKBvpKJ4GI)laM6IPn=ZVsf%-#%eYZB^WN1olh!QNF%idHuce+H0WK3ip4ZRIUjAs zbUSmvfhzlvt;t|SSuE&i2+Pp-YE$$eHygxD1;_{bJ!J7}`@a&lh}h*#JR!?6o5VuG zh6Q49!NE8TXc$)G3L0hpBBsP*u~FnyD5W}BB}dyDhH!JNEvRLdCa`m?NWcGNRo(@& zW`pidY5dJdDJ|cwEVsh1b9!`hK*`y6cUW)(>=Lis3RcXvLHevT#vng>`7xisuZ&HZ z!L+R7>mB%CD)D&;FA^}Y$2LXs56HT>vGeU)SWNeA-nOu_til?MlI{}f!x{`gZTE`% z0#>k*&2jNG+|n|X)*@jPN7Cn7gMTH$5v~_-mI}(G+5835EQnF_0B%s!(N^w2&@~SM zny_G&goXq)J&?!^h_2xROhOY_W>3^!;qzdYITi7t$;dA&?w>7MTHD?(KUk+?c0&76 zapuPK6xRniZD>GBHVB^a@$?M7X8rU8Bc|Is2{1N%kc{$bi_t8aAVd3!q~#!m1~MUk zhUkvtB@Yp!Xd_?Xa58Wy8_){vl4uhHv5_V)IH_6TYpLr)<dxWBI6n8f91Z%X(0!0k z&65(3*3ur#!k2XOLq|GS-co9+QIn9ZGhl7w%GYJ!1~)U}y?bOx{$-ZI^{UkdYBgAi zu|{uPu}WcdMdeL%nlO=Cw{%&IRq9gAO>rgvb}WeLq>`Hq*gbO_Bsm2JGgqd8Z!@x3 zAy1M4=CpxgZY;RYex=Jx#}_G1*25e@B#UVS@z!U3f16QZgyXHpxBs#|Fzs0;vj-p> z-!mMgx_!6_3Pg?zz0);>-X%I)@8U-27=IJ5sfQ+A9O6K0AHs{#F-8*Umj0s*HyCfD zlsy$cvmMVP1=@ZS0s+1$F&bG1KsG80w^>NO75$?X-Lpvhv!+u{i8(G78lszD%^IhK zFISPD>Ft8c!4-%g5iGT)u0SicH+Tp$st(uO#4vCaz2o9Po*z9z;$S$@1fCfWx!JH{ zmOrt4GI&lkK=;`YiB-(BV0U%{6|V3%hNW9vK8ahaBhSyI5S?sQap>^~2v_2>z(l)Z z--+}B`%nD87gztT>62y18()|^^TIV<4eMVba^;?_@VC+-Qmmi-{=&pO(4c*9|M+_m z?oEe6nB3fe|44#QzdQ)t+`P{Q#@6_gum16O{=tV+Jr{n5h3sqtXS@m)zV6ui<_#_X zE1VRqVh_@Ni>J+B3*cpJdr#%|uddJ|3ac8@!y;5!g*Q3+LaR`6jup&5+D3a>ybbA1 z=b!qQ?%+HOJ2m?{nb?<VRZb4h`!nZf;7x{vJ@V-+=Q|Br1Vy&@?*ed%c?(Om)biH| z@`VbO2=2QDYF$cguBKBb&HDIA#9pWu@o+wcR*HKQ+@-|90JOa8U@F0!DeO75IIspK zU$S#3!aYlji^3)&l`C3v=93-8)<6XI7rVGV34FZ3XdCFip+L6S3FG0S9_6lWzggsj zTW1<s>A2c6BZ0ugj%q_rHGhxU?qHH_0zFE<`l@Dw|8Kuz%tVvMboz_kiPi~r56%Ed zoyigY23UJKpgVgg(S+X|dexrR!gKIj_c*5h(yR@?Hm@qhSm^BX2^zL}q-{eE9cH9S z17Edj0gJ;~qMwqQM;$O5h*GMsjYbRi`>s$BGZ_iKLd(8oNvVETv3cc|YIF><jKYR+ z9={e9D^QtgdGu{Z06QBLaWk3{R(hUSo56v17T8t*`iRyB;jyj)&p510w~q}UuKAbE zcq{ikI}ESxDR;e?*iR+8g;v&a1TH^7MLqHpiXr_w#X{nl&qBx<2`d5}-FS@iNK|BQ zC(5)2q1oN$v@dcT<zZM@!}8*fPHlNBWp_fEIUl%d%qFz{RxiYJ+)>ybc@f3bonpX< z{+SsAzTbv)L+@mOU$6g4l-ZfmZ-s?O#;izf&41;3DR4O{h;+UjB0TK6yRbou*}oWW z<Qz?+?OZ1NOYat(Vsuv^Sk05vwJfCBDENJvPU$rR|G%jAMgM$_l#qo6se7x=u6rM! z=K_q>>U=r%1ovGQe8G`s=>uD3#h{s5+bR$j3z6T0(_XmGztn`#-|u%xKp}r^#=?O^ z1r>FI8|5yDJ(a=$4t8A<2=hG4toq?{ma6~biV`+x5n2g}L<{L81_Q=NLYwMTWWWNn zAMEU^Wk<-{x~v>afJOKbh68`+RpnaZ2m{bSLwb#1y~EDeev233h2+D$6soQKF$wfL zb}R%QbvHF5j1^jWw!7H;8DLFVnGq!n@h1e=`PS<<XM#Xt$912l%P^RyeCgL$5voHY zip0%^IKb;4yyQesdl2lX!1(-HtN3p<xL6N`5?+1vWdG)Y?L-hEX3{zSSM(A$r7LUK znv8)cmiz&rS%P&U3TWdL7naZ4dILQTO$ol2_JZI0c>nH;FQj+THL6Sugj>(lfzlh4 z;0MwmPz^%hbzR4uDh`TU4!lte*yPorn2$BKLC(bY<}*yW8El^xUZr@dY80LILyZMH zuy>!)HF!J{Y}g!()wXpnduz)~<GVHdFdZ`0bgE+SpMn`k(iB3A3A`*&+XcGqZq;tL zTPThZHGEyk<+bap!M&Im!t`KQptN`ow0}lA{mpoH+IuHjJ88+bapib3nqt<BJyeQ` z>BeHK@Syv?&K8HsmBeYh?+}bbTR#D&;_9^7Qqh!!y5=P=cXgG`*`BD))n)cr!fEqj z_vaTk<hiZE;?oDQrp<GRaSOl}g=yT@|7~G+(5Jsbe%=cG#=Lp-TZ+4T+pLa{)!gcn zY>qR;BAgqGu2<x4bpusm^e>Lqy%c25?RQG{6P>GgR=0kmnj(SU5<!w&ZG;8ZPRTF$ zukp4XiZ7tGJ>l;?*{_PP{JVy2+7T5?klAt~NCS0KP<6FkIs$c(nG8S&9-z%{w{4A8 zXac%zlDWljp9M^O`(xg@T(i9a=>^5@_Q@Ft<TR+i5?PTktl1CgCs4m~ulkz3Kc{Nm zB;%`PB$o|oRO8?is1ydSz;?W!rj{w$v&SsGHeN8^qq@!b$5QM(?dMj{mN~VxPAv(o zEcLB>d-t^CAWl7~odPCo!`Z*O)l;kI|KXFk)%`X{=6Qm$^(U1{?6}_bw%+{%+s;j_ z#(C;1x7Ih6Q7-PgQ-#g%Ke=QjE0DR?lNNJZl7T1?%Y8l39`i2aL`q?9G53a-F=}{A zdl)6PvV)7mgk6CFMN4z6wLrlj>WH02&B9G1O1t2_R1(wDnG3v_W&X1Ww{>hg8OrSU zJQ}9u*l>yw(=@)xkt<2`3<s6o&FJkCJ!Y72vbA`{;xc#Hxm5gJGKvi&yFcc#28;-b zk?SR5Ys|>J(Re(zA!oiA4ba%nY_=vv+jsYUC`}%4NF^h(KRU4kk8!f=Vt=2lK8T7Q z<N~qVpA9DJ*nkV=zYhoc2URh|3qSC()_GnPi?98BjtEE?syWFaJ5UcYiEsWegd$k1 z#BIYi>WGaXs3fb4(0h!pQ_G|GCo8+-lB^MAFj6k?3^JEgz<g9Teh6TfRGg7c6;k&w zD^BacW`7U<*{g35wEiCQT0yKPA1aq_MHARTgj^ZHAP5Bb6I|s&;sxhbvWR_m^H=sp z)5wRHb;p!~;_V>CtH*)i;;vZPBZL~Aa#Qw0`UD?i2-`O<D#5NEj$^MIek<&S<KuTC z9fcB*oy*XXn5Rkw(Dtmd;_TSuB$)q>2*72j(OYMN`L)8)gfRIt%!ft5)njS5IG#4K z1yY~-j|0SVVzfq4N=CZSZp0TxrEZQI5ttd1&UBMbS+ZWF)+^mD_<j^B#)w!=B3C(u zi6j`-_IsoRz0n#5cMf*(K4?(Pr$XGT|3dUR8Rbyu6^l6G+G#qs#jU>vpi}*jHJ~6> zPgH)8gx}Ylf}3^k?N^t!ahf{nb#IyE4_dqZk%2%$4PJ^8sIs1K^=C(IoB`8>2!b(8 z=eCgdeo$be{eqebs@?iIr)s~P>3cKTHos35!E92o!}#?1a=sX0NvEjnMJGf#=6FjQ z#Ji_X5EDa^?1((^`savwZ`bSA2o6KHj?wc3Fuk7KZ*1-y*Ak!gGb~<BFYbCG;xaAo z0{U(K#N8<Jj^UwT%SdC-P48_N{d2I-j`&fFr6Xo;Js|0?Rp3aF43~Qs!=CMHCF;PN zrM<oV=OB<5PQd$Za+0x@-y6x%>zF?};L8{YQsEQn|JiY`G0<~o7yN5m$5snHP#&27 zhDyvpS$F;$T9*J5`0u$;LPfAI2ma+CS_u^)wY2{m?_CA?hJ^Z`O(7%Z+oz?%KtcQk zv_ZZoY*HDnpm2b*b@(*=L*2vY))SRhIl|WY(s^6W6#HVa`qda%DQ;K_KUJlmLX);8 zV|N(rusuOAGHC~fpHM85tLHJZYP>|aJj~<Yx#a@t+tShzc@6ObP*||tuA|Ps8#G1| z^B|o;<@f}6;32gVclCT~s~(ovm1{35Q*NrCc-E@kFB}4Vu3V*+FKzMl<~P8kXzOo# z-(mUg-E8}}dT@ceA@{c<q@MfU{MJp+Ra<-S*Vf6d-DrDYzuSKEeg!x3s=C%=cXji+ zP~c<19+;`Y?7o9!bh39S+<a5+FmvlVmKAvWXYX77D&+33>OEU?+GA;!`bx}k(~sGG zM$YKHJZ|0E#_=2I@^aZH>*IP{dP-VVXXkmjb+(sMZKIVV6^+m(;33>mNG;{i<lfs2 z^vI-&HfnvXbrT(q=!~_p7kF^)xOpIb?o><t*|FBJLp&(DngM^CG^RtlvH#C|`I)8A zJ3T#f{Y8KC9Hw<<6|xZm5bS~bbKhxB86GOHbQ$q--$J{Z>d2*!ow{$TlalJFxe>8W z>sy=5Khd2urs=F}P2YpHyWJ*nm(hIEF`<1*eUi<iQ6z^aejI)}wqMn%yWAZ$_B`4~ z$GF?j88vp}<~<mE?y|Aiyqc44%jNsb5JV+=`^T}x^u4d<<-sWe*r}m9A62E9weglN zevvju<|G7L{%fBbJD>CJ`qJ1F(by8QGL_RTnmY`cnhJkd4_{h;5}qp%o&IXOU{)y- zPy0`@vP?J}s8G<CUz-0@%;0>%zj-%Vyg|;;7-^21`Jh3q?0>aMJ3Z{`T7O{!6Y<E@ z?UmBmRCZc(GN5w{B>F6s|ClXSm81C>r+cPjG@S)_#%MVYBN-o3=H1hrH!_vAwrjKh z>G*Ie7yJlw4qyBu%Fe~0vhNLCqYk@vH9(f%o_O)ileyk|i(h-liO$1L;8uJwQs1$j z+G!{AkzL*of;*r6^NqL4Ea`km@vM3$eW0O{qaFPIOmcAvP?g`ie;(n3!4Ua@fE}t4 zUBFE4r>m`LV)DGxp74zFB#QbJHrjL@Z~x+Cm5pd~@7_JZjjkgQ#o);5*dp~<De=(! zC$VCCv*Wg*7T4NHMMoNI`@8!&k<&6=qriR72AzJa=B3kC)4pM$h7WMsk=`JyMQU{I zs<fF{Wb4TQXc2<THzE%l2{b!)Z`4p;P&U4}!(_Zrahrde|5&o2LEKl<XV^R$-CBD% z9dp69mPi_ZRZ6iX<6nNmK{-`EQmh=P{^^CQC8`_l_I}->izpv=j5UPX#63@As{>=Y z){*tq4!lmYI~)pH=^R&l<Vdq@KK|%!n3H9#ILX-pHPJ4di!rwD8f;lrzGE_%HqmUU z^Q%txZzBi#9krE=_SOINw0TOB^KX~TO$VRztL*l@#>SvTJvhx$O;4l8Zbh*lC)K}N z>Sep&aBJ?^6!^Bw_erEo+|1R(*v_`>R`k8YXtpUz%FNA|e+>!+i)(5#mMb+=t2Mft z+>A|t`LWC~h|ThDtVi|pZ@s1GYtP+7)Xb@vi2;wb6CpjjS%u3g-)83^=jdaFdFJIT z8@*;*@kCS#dG^mbPcPpoN_q;E|316_?K$K?F!*@rK0<P2Vyx1yiRv_a1s5-R&v=mV z?pFHzdNyb)t>oa}rR6>a;CU|!UmClI8k+-H={R#!PLC#&i{A+reY-Zj+Uh?{ajiE} zt0}uX7&~0yvPZRUn*hvZ25VI{BIbG(e>uCn$YrRN2kY6sWqGC46~?O3Ohx7W3LHJP z`53}Ydp`P7#}QV#^pE2dWc)wECr>3lx=I~YwH>Y7lgH|58|RL|ZB4uQ?GQU%GCXRm zTFscXiv~13VFgKPW-^9rX(;~CKZUuNNE?0e5u^v#NA|gP;`I-v?#eXNzIIY}iPy3G zmFa>>`(5>{&H3E+W^>7u+|5kKk2}{AB#kruec^M5{okEtp^Y-C-1$pnKiLTy=U3&e z0&lk?CJ8--X`7h=#|?p|xXr)l4f7duAKhB-x*e^FBfr)M6_vqvyT0jTV7TljhtlBp zQ+zHK%qGXOl)m2EN(}90Ses3ZocU&}$ISWcx7h5kC7<4C;Xgc>74g@8b%ggXz8vT8 zG0ho|_Rm}140y{5Ym~?D5wr9UtijIeDh?8Be}?C8`(Sv0(|FwV(+0jt(-Ea^Sy^*Z z<$9*;9+j#AYc~!Y$=e^EoY|)YZ`zMX$j@-!!kxVq*ZxMR9w8R`KJsMt*x%{x{wNR4 zyn85eGTbr#QUM1)$7NBDKmGTz<YL;K1eKgfr`Rn&gWb3B*Qbz8-#&?kqIZ*#j$@PV z85!fp=PMz=gz&X?p?L++s%}a!oe=fmtmWI2c4PK#bQZWhv>SH)ROpknT$$e$3>tdR z{cW%Zu3z=qqj}@|;&q5i_@dRhYyHWj+ZAo?+v4e?*EOvE(H~m#wgdkW%P8l2eDyB> zF`CQox*yu@HYo3VPS|6AzwoZZeXS$#Xh-UU>l_VGA6kjn6+gM(Dx6y#nz1)T@mumR z0kl>&#f}ojH#%GtQ)|3;XY<a^#y&fp@pcH~Y2y=k(`me`IEl%bxn2(^=tCx?j3GbP z)r<>_7aOaM7ndfc=4<$W_t&4wh}au=SWcWfUHp*bR-D?6`@9^1!kD3y&73+-jLCB2 zu+s%H7Byt#Hh#A?S+DXWzS8%c?<OXec5OL#`>kwd->NnULwpwm0fl(c$cry`j^__) z(#ZeIajTPDQtN4)?CDj|&CgpM8+ado<y}$UKVTW=ou+1`^a{|-uh)i7vNK|5d69J! z3`N@V3V?yXzDFH~CN|el#MP*2)Hj4*R%igB^3&^AGb#MebGhGLAFjgfFd1@uIQwMY zHQ1Oor!3kg+AQrAUF_BO(2of)a8o1zU{I<Og`!&_IVYzoSNsNQgH8F%Oja2&G{<Hf zdI0lBs$=~5Y}o^&&q{r?JMBdV`Rp$hRv85Krrlvzo@OuQ(-!?F4a<EczN_y_DV2ai znQg6t`Qq~Y7e-+oc&4(m$R(c3#<OJp&b5DGlF@jf#A9;2cEOXHsFfW|C-dsVQeXYm zGi-bmGgOzlaws)TB{?5U{N7l8Ez_N-!GtDZHMW&n8`p8B?pPQUZyH#7(lJ&an)ihG zwX^Jx_1!iI33ul{r~b7UJ))8=y%JD!U%aT!F~7?$+!mRAZZ<z!%~;XDvt5)cHm<KU zUB6Ym(v>>5@8HPqZ@=jK>k^-A%3iHg*46B!t7jg1e^6gwxPyv*{-m}3a2^q3(oqLj z&ZwTBczRMOcMTV5SP_(cn_ROc>AQ2+9i_Os!PuuQe!zw%dPO{0Dyk@2Z~*jnn$tZ* zJYp1X9S-=i=nuY|82C<c+6S^+Zk95`4j6d^!^MPGZZ(3Sb3x3={--hcOTnFKX6Z<w zwl*JmH^{r!yX?_6$p+qj>^+S4FgRX(Sy=f-LK$qHPuhQp9BLL!5jAq&-CwUq;qb#F zDa<>0Z`$4BFAaMv)S)8a6XK;t+%d)d_@DaXaI)uRSmUMjoO84nYxo*?N{v|CQ@qvP z?Os=w{4M*7uh{w)x~cjz9okX*5cztClf0gGu;neE>Jhn5RfXW|l-{wARIteTrfS=* zOP4U%{DwS*Z@%yx<%Lzo!M&)<&d|G#_G`WG#d`T2y*I4EaEubrrQMmK`d0YY8Yvm+ zaY?j1CnIuh6th*PsfW?xT=TW`U<a5L@Zsvpp$lE^f-+)m5m)Hc{x<cIv!OIKwifu% z%J+~gVm!sUl#>9xYF&ZC;QO0~kIzz|3yRp0Au_`gLgTTL6~h+8i%K+bSDxGJlT`xh z;C0u0pj12kLq`ZOqCUqGukbwk-3jOsmM){#KA)Fn4W&11+@Qk;-kxRU+%_AlyD4C5 z9vk+=1>c4vP78N#VN|d(fZv|!_+P9)RmEtBN1ld9oDqw|t8x#^pJ0#oA>9AsoKImJ z(AO)UqhJTxl-Bti&3*LFjZ-NY*46BbUT2R{r~bt@qcQ^L!+P0jxo3)?_$_w|ExNF) znP^|lypp;7iFE$x5Xv+Cn67~`^8PV=O^%~N=eK|QYr*l>+UESuoUz<YRb;HkWs8kt z;i4R3$MP}UdyJREhp##p*<);bWRA;BVxr^+p7<MndIx*?Ki9<)fT7hC#E7t^uiMed zllk|;xeicaAD$Z8ZL9|Ap;~tNI<l25?|rg+G^u%Lzr^2cefQfox={H+uR(ZG9~0@{ zVZWjIRZl&Zc+bo5t+>E_dEuh|b%1=-`}u0<I{huWCn5W_%;x3j>7@Zy;wx}}H7Ngn zf@$|MhtJ`C^0K&j#e<Xhw6dq}Yx*9^wMkFe?G1E$ISeiKD7~`NJDbXF@_P8=dYReS z$!$8btLOLJE5Ghwb8v0K>u^21vQx-^jui~;g?~Q(E>y)$JkXxx*v8iX9KB$o(0|TI z@$S=q8#|5ZK6b>M=sJk1J*=W<@>ti@zI)cX8vR5Vt|@$2tYYN6T3gB*DpDG*2``<* zTnCo5>^+@z?IrjNYtttd9V%CifWu+_wps}ZJ;nH#n!?O&E-_5<0S3M@{WpwlTj|?Y zTFv5~2__4GwgNAL#CJ9`h5)~E=W*=8W|+uSos~kpvs_Diu4>xxLB#}k8(x-|8$7p} zY*ZR#rmm5jEP)@}Nb98qjE&DNqk9+gfnE?_0pkUnA-4)umGGapBT_E6r{#&@Pw!Eh z)^982YKr72`be*mj*;r*Lj&BJucxCfuK4&9RkF_voR-BjuEW{<8I>!M7U%KHma65l zB#SZ`JaqFmEyI6r=3$^KW+oCJSz=t|D{l8E$_zv9_8RYvBR{JNd0e4hOu)Yw$-wD! z^A%oQg1No=Yf7FSD{K7Amay*Z)XtN;$W<rA6@8szZxD~LQXLd3r_B(jH;<}HxigF0 zdjH*0J}>LFE`)Xs(N@T{JrP#UF5cg<YReb$+y7u@nldW2%&R%IDcDuxn@^1LJR)X1 zyA?V**E`h<*nqqF{|1YxE31%*fWrp_4u{#cd?_0m*Si>hY@+Vr7YWYqgB9IUZu6dr zM~94+%lgjl%Ri^;RPMBDW&a*?GywXb&6m9q|IC9P_o@vuS-fh!+{IPnA(JkpCXqZ( z_j(zG$;}4Y^ZU|Qf{p;WS4DLpbQZ75>5==pnMs0lY5UQep?GDX_?o3~z;x%IH)@4| z?Fz^ltT;_^r@9<ZwCHb=mdd@+pgQv8<8w)#jG`HDlg-_{&v~ABw9L|;Ykn$2sX&9* zfjYZl`LXDVodemo(1u6V*wBQR4ae26@!^MLP@HHZLGR%b*AkwHR~jx$VBbnX7{d;m z04_EQZ5LVY65kwE-`{o}xQl^vaaz}<`(u4UoV|8BqS9Wea)t+d{^n?#!d<BScTu<H zd#_<bx;x-MhPkNgvvI$1;iGRaq<TBWvx6h+!{?E-+-mL8t*FwXWoWRG+qNAWbChYJ zvzJIF;D4mkpe`^EKU}f6Kkv2XG9h|S7{8huva41l;8uDo`P=gp@MW<5u>Bem1^TSU zFWVXNNM->Ssv}*0+Bes?+#YRjNeOlDrd}NytpCtox>)*THk!+qB<^Ii*>`kl4R?2H z8KRHbJWBi@rrtXojyGx_Px**Mi6nxAAd=|4cM`o5WrejwFROREn1~<<qIaU#)vaz5 zqKDO&U2ODDbgO>7@B91X_upJ|&2!Cp&OFb|J@+~1K4GH;#OYB)4d~f`!4t-IZw?0@ z0~fGEdKqSQ0{)`NduNzmeN4!C%FHrloKYRIFc00`0Dov3T?ZhQXLa3HQrK*kvtZ<U zmtKRN1}*wV<%4YKV6VnSs&SS8zwp6h><UjbaMhc_szfo6!4v&muR2)F4Yy!M=+vg4 zx{^d4E;j_OVVh_!&UPf*y*tVA@UF_rx#nzj)_W^1aFgo=3__~$GUVh6C)=`kH!3_6 zg*=azMa=^RmD46&{L^FT%9N->Cx?x!9$<mB289U7Z?8Mg#SU_E?wlw?$)#f;^?YJ@ z$%d+bwlSOOwhWiO%1KGyyH~w~J3&pdmqEKu7Y(IRUn}(5_1k1B=N8ex6`c)eWu|{n zRQB>PqVNnBB~KgAvBP>s-}&)N1L~5_ChPnG9T3mx3$xy_k@OzaKb$fs*!>~47io(O zOsAb$n@J+3VujBjF~<H2sb|$l(67bqjp&Bv0!XX}*u`tE+hX5o$OQ-TPhQ{fICNSk zJww{kZBMl;;}=0Tw%L9x*X@*<yGL!T19T8I#=6P?c}C9#GOzg&{?&&s))?Xi>()Gg z=9FJes7-iB;Alp`3esQJ@8i(5iSS8$I7uKw-C5-E1KabyMB=Qb?UN&EkNNZ!&#h7` zUn6F?X3^stJaYSS?{37iFHxygyXN#?zmxw4O(~5#KTFXxmp{|~+0c?8`*n24kW<*r ztNslBd2XYVCt$%YTO9Pyqo-n<Hsu@y97dHlcd4Ja`Z$?V3D&EZPHj${&B&PA+i}pd z1U8S(?(X;}*#`L7FS`#05h}>@PN1hn(1a7)y+YALTa?IL*|A|7VL=~ns)W@7y{uoK zpjumMZcY&~NfPB^cwme%xt!{4PjPxHC-M?E&tfXU2F~3sK8HEriwyRL>&}4(_g;Td z|0sJ4H|l?K%Tb~I0ruVDz4o(~@G^)bn`Q27{)P+nK+Y71rIgX|S})O`jHR$lmfG<h zBPm&b)cfngm?+V4VR+GpBZ~C{@~lQbdAd1#)X^2@#D@Yi(Xs-*NzAwtRhO;763own z<NVoH!NU^OD86;^vQ@Sz5JCrNy#7Cw|G!Y5B<L>j)s@-3|MEVg4=Z`D*Yd8V*Z>sl zWB1a}pp%QPjXZ;<(V*w?%8Zw7?+Ea`yMio<IJz~y|D#auJAQbH`}g8fNPb)Xay)%( zePI9Pj5EzGmMlQxVSq^GYz)Iqf<nM#b(ELw0;A|;dklEhO#43B&r1c$*8%0NzbXji z$X(1zy~_qB%c<3@??wc4>_y71*YLB4z0xzm2MxrwkT_?5{6>#>8qKj~r4~Ya#t?9D zw)LoRd^^PI>?%{H-AS-&J`<JGx>%d`U#@XXW@;y*2E>GelnM#C^C-#srgQrW%<Qao zn|NlsR0ejYUREsA`mm?9es?`4FeBA8AJL_MiupMhD_SR#cNYHZlv2#uqV!C@8cVHz zdh&Dn`1bWxykq_C&4Zd>1ZSgJHKCV1Jfd$;-ibh9GYo%YIM=T~hie}JjF{=peO*q( zzos{iz{c;N{=^<KZ|=IC!f+C1ArsIfgUSKF7$^!dkySb2f&wX8_d|C}Gz_(|BMXg* zS#{<pQL*7&da30r>msRDzbv=!(U5gNq?BG+_G!0Zef~jP#sw~Dt8yB289g7~bl~K7 z55ou*E4^A#ctP1R^rO!YqMt8q^|qtyZVf%a(|^xe{oa~ick^7IZ7`oeeUP6QdB3TE zFK(XrWBk4KlfCv0nqOU;_O3&$cLiS3Cf}4Peae(}lxr=%d=pLl_c9!Q@Z+26Ab0l= z-0X7O{!0I-A!p`uwZOX>(L3K%@nni+uVd<UC$xkj&HgihbMDW@P;@BS(cQDvIBr@= z0)*VarLugKhK2y$KDV6&N>lRkWvk}=Z!tDrHRRpf|GyRZ=<UbLI}-tS5Xh^ja<zf| zn^^u~Lqm3b!(q~Q<y%4Ts8xuq7VoVZ5eGQwO=!PahL$!PvMy6UI;nn3fNlxwELLPy zK?k?KOz6LIHNF$Pf5ck9sr5KA2W7+X-Q(h~e>MnclUgHB{)HprU_Fd{>$Ur{ETG1W z4DBg9D%keZ1KApmm$ogFIOpuoe*9N8sFrt-HkrSjNSX74-j8PO-##v*Zv$90PYPq@ zZ+?ycchfw2`*&06CH;49`uyE4hVM+~g8wrh;Psoo#0ojbns;lM9Pj<#2C-FnDJef7 zj*m?B{YBWhy{X*rzMY8u4uh8JPf`4+RKar;gRR5E%ydN7R2)}ky)d(_Qy<r}hR5wh zRsS`-Y$t->;Rrfl`rcdzua}<Q>6aPOyl`gpiLNk!{8&$$O&^ZmuGm^M*^UpG5pNDn zuEr6CyvUFa>h}jM_YbG#Kla_vQ1~H$$BPkcS*M?rK2CnuPUQ7ENbt?~3K#K!gG;u~ zmPw4cF_S9`QQ9W>1KwYj<h<|f-ZxP44PX6*>EF@on+x^O(<h=@Qcdj-M@WJ^*oR&4 z_})Nw9_4H=rsNzPktgHN_51mo>4a|qvTDCivdgtIKmp9I6)47#%lyjF?4jg&98s{T zEAqdZBOYH|%Ooz&8~Pw0YH*lzBDB?qG&Z}K1I7KGruw%D@xL5~fk&OWgS-NPJP&Dd zcnzY<#n_Qq^?&%<8yNTV)&n6VQiKIspz=Rw0(gE_m!XNj?)<MImOzGA5SD*+qszGe zw7fEbDnsXI_Zv>*1h-gbxsM--M#-IxF6l(Y?hc}x-&%UWsf;95NrHl?KWs{-O=8zb z+ec-3Ts-IMlT-=o4@~yIcw8M)|C+JYdP&yRON^emWAx<41lLKT1%L9_4OvIR)t`?@ z_*ga*C6c#W5#Ky6nt(U9kpD6AFNshESHocP1B?G2tv!B5u;u*Q&@RojDh%(FZK_-Q zw6N5A9Fq8YxbhBG`{|VInV0{XA#h(P+jf-_r`>8HCwqVD60&Vc(^D1rjPmSeo~$&D zO9v*NnI`Kq$f-FGMk|=JAsP#MoN}7p%6EZ{jrjn2EODZ!LrD43vR&hW@}6u=d%JzW z<B;gVK9eh!{U9n_4!iN$<^Q~PW8&KaB9@cw)F_j<fUve~G)Eiz-7$iyQ}`TT;ZBa2 zS9>*|Fdw)(wBhE-wfqP0soZgs#-|A{%nSF=N(`W<FLn&Bt3cUW^%TqgtdZbNuaIRo zw|5x`13Wme$~OeTpuE1ZJcOvcm>HDa+pj<KEDc~=l{A_$by?XTrdus|j|I0YU8P7S zq2K>b<)kyNE<pUg@+wSt!0ea0y#JlOKLP;76>(dyOC?k<a{-Vmw&_Hqze_KS)R<ti zufiFi^kn)$vThA?jsXO&H0y_x)lKeJE8uWJoejVkjU^{|mrCl`bo7zV$r&#bvwrL} zmXZtaWSl41j>`$TZ1J4kG%(35sGA(8-{<esPiay}4dCJJ11k<))dv^!MAr0fyUDMA zcUM*Bys1?F3&4|1R|Xo3&gyE6w)^!m@uoR+u*57o#gffuiTSUc1npZFT4fl;%Nq1o z#k>ohvJB)sCPsxxT4;-;qx$`yCr>~G6GP~}It4Obw~+rCnW!@?D0kef(}hUazt&~2 zcwZ!8_h3d?E_Tpdd|QTT2+YQ4RDyL#E3r{?GtE^%0Yo^g=Y$q_rEas@fD=%!)-uK= zfT%IFU#)4Kc-q5Eu2HB&;0(;h<)r<=uH0SW7S7=9vh^CYUGDm5qn0EqZ<<;m-M!D` zyBe9Gn1p<Cj!D&JNm#N@8VELAiu_+s7kFBXsaS7+w67$unfkn2f>zIyA~~`aV5hX6 zIR#Mt;|^{%A&|=b8iOZl+bMI9ZFMo>7u<9-1HFdMW91Obl8eNGb<g%Hwu8>W+%gA; z5-3EVEVggKQEY#xrArmJg%)Zk=GhXQoxNXR>l#Njpi6U;?APus!CeMl@Q%!i*bhna z{NuM5LyzetN#o%*P3W)FE32FMF`ifa0kEAGfQmYz1o~@q;_M$nXPuv~MAeGzaU?aU zJ8_wm4F4G~6Uftr7p>NRuUd(9|IaD9Kdc&W>Onaw48>B(C=Vhm@D+BJN!FRcdgu&X zX+U{aNLi7_0WMB}9wUJH16~>MRNlXQBOE~3RfnWai@k6wS#gcM;inDjK#Gh&=vJeQ zJ*R=Uzn|TQYn88~d=P8h_I<;W4IZ@)<K_Y5rs#rv&<Deqq&n88=O3q-5~3sDbEk`L z|H$C6+j1m5=AitHxdl@<D&g+9_omh=J9LT)+z7kgk~X$&JPgik+VRwiFRfCjN%pYS zO5OQxEK>K7eZUL#rT%KXqFOE;u=}l8GP+mXNZu*~&z$^dXw&!EI!|LYAHt(4C|Q8* z?+o|iP|NHt&cdpU>v2Qz;iiur;LX2$cwZjM?C_8_)#W+XpLrWy!E_IrsaG=FWCn)) zIr2vZ%zoSZ$vn6LAzOb!NvHX$b=lbyXx@mpKqo-4eZut$Pp&W%0u<B$)J2E1Ot+US zV&j0vzK~-~dt;|oBJ*!%EhYRzW4~ZQx_RkuBMLVt`Hhnt^_1IfYwN>y$?9t%PL5D{ zb==c)_Rgu3q>{x2n|AF22Ygm1&EWo%Oq%=xPuhsu)|y#kKX~N(|2Q!MUf#!N4TFj$ zQ7PL@-XS*iG(yQHvta;Xk<H*;dvZa=^!STo9%jARz`8#$6T{fa@|C?IzL*-S2h-ta z;`^bL6BP|wl^&VeLQY{j8T~C#2p><{?)U(6e8ra=wWEmS46wJV>(Gq5#a4JXKFsId ze3Z=`wum-PKhM%qkZ)ei=}J`&3uY`gE<h;w)K)B9q$G(J7Xj534IAs<Yx1U11}$fE zd={z4dm&bp(F(>v$27P~Tjf?<Zf!JHsbq+Y13a1v%yGA22eA+H%KmYgR30(VjMtT# zA4DHa9pqcix+zP%NVlN7zv>|JzF=Z?`{;NsqJxZ3=OLa`gN+~T8S=S4_%%EZ*7iJO zU*IDFSuwd-0rj*gZ$`qqIzB}yPO)erFYHq#7~Qz>G##apR%LI-9&_sQ@b->5OqDi7 z_6q2AuUgU#T}VK$H~#P*JWZMk#wL=}^mPdsn0w{OxICS1wEvgettvN~BBdHhX_#F` z$ZT=nHI^2ikV!Z|(6gE+R(}@q66@C{>FGjP>b*D10Ob1hR9!OO-0*u05siOV-Q?-j z;+UW#V-<grx8Vn?-hmK;)ZC8cbP@Tnd5vv*pFi%XhU^}qk&oSJ-!RZEw^tBxp!BTl z`(_C*E|E0_bhQ+oe@Z{t2d<b~m>EPZXM=Ww+Elg$zek0+x5sx8;?xgz#FqMB36r@< zB{t*&=90Cz3d#ld)pffJ-qS|=&h;CO*ZZr^S1XxNuLJ#aouLNrnPw9;<2bdt(MhHO z<-Mxhizfrot|BBN69DAp>U8UYxj2+Qcwm1pinD)-y=&DW&<RTp_4@aJgImSRb&F!> z)0l7s1zGCP1i9Gq>6G8Xmt<j2>Kj;q&dyE_eVrGdC!k-oyk({{Ox%oD<2{5?-Ajwm zOzp|pu&jf=m77_|M3Tl2_N{!(OZI)G2me(@7ZH$E)oM-Ss9~|q%E9&z(H7dlEW$$j z-!g)Oi<PT8>FxgnTmC;p`F}@293)SD{!wK=$|&K!@AG=iN5oGG$VeJ+vQk?{jj>0{ z&G;sA=x1RluJP8^(=wIX9lMPO%>#i&j(Xj0NkyK!<{#uOWA>Y=a$+Z(rUxyI25TUT z6JAgZ7xrjU8L{s#KG=;K8gGA&-BenvXq_B$oOwEl)59C@!XuB+IQPyA^QPwP1&uFW zGd}(X)mc(Jj5>hV&b;T*L#d1vD!%|HV7k=NY#dd}h1u1X8P{4ZAqd4(?o(r&AnIzT zVPkZNpR!Wht*>OWIg0-M+y5n%#e)lRGy-(Cg;5QJ{bjDAqpF#jR?f<0UT6VwZtiS+ z5?qcyUk0HfmTk=I%`H^V*^8*bbAkJwSrpScy5rVHK&n_pz%=sPgzh`NOSHT(i}7Cd zt3;$)La&5iSz+aib?)OfqM-uC_XIHuA5xc4l7Sou?I__5xZti)+0{qw^Kpj-OHkSe z_ryogs%V6+=~J)4q*DCZ15Wl0w0;5=>BgL>6Vwp5kgp@Q6W!p?K3_3Y(X4)jnv3?X zEN(yonc4?dlRWIY%Xhet@OjCzR5fn(BRx;S+NC|FzHH|vZv7RfeVaWurx;%Lw9`kc zdfSjQ3}wIb@zZRv&6YCoG$^;Fz1Ny)sBVvdD45KS{^4E*4XLJSh=a1$)R##(*hG37 zZkBV}a`)%xj&5wRQlu(Q$|@dH-V>_BaB%~_RH#&okt~Qu$P$lE$LL87giTSpN(;^R z#OYT5Ra!}FQ>fE6gBGb|r)N}OK@WXPG-9Ntp>gVOU6IsIA6UfcsJ=)9ay~pd=AKv( znrnxM&~XkJcZ#=_uqxx><E^(Z&Gue{71Tw_mvWE2ck5&Hwu;s+%;}{$*+Fh@D*>CW zL#AVhdTcneY*T_}L7b6<hVJsl@rF~wn3uZo&?`K?E;-IraV(9Q*AQeqpY%~ZWIzo< zRQj&;o6D3wle^4s^U+vG8ji$dc-I+br1$3K5#sksfvF_na+CakLnRZ9H9%~y+0jz1 zYtVCjZkW1N;~y5o%@pt5xaG8c2w+Rt%tE;h)hTQX{OOTg@KWv>`c+-#LWA^^mlIBH z10dUvb1V9rYbh*7DSk$EB&ie7G+~!-Gtu8`!thQ}u@T!wd5&gwDa8WrycFB@(u?xu z{KgSorBb#`n<jd_#pj3`0qbf^jFT?I9U#f2!o%LwIrGGvQvXTEGTJZ!SYGGTJa8zO zn8M8dl2)@zj5~?A{JN6i9+;C#??wtg>iKU!%v~_*t$$@?Yev^1b4h~FdOkO6`CC-a zAa#c>WYQI0E4ubPLJTRZ#FuXG6JFoXtm*aoi{ZJA)U^^f$KbJ~XnwO1xAQ>U7&fNZ zeDV-pqklfdfZ$R~p4Bn{vKM~{pL|(VFMn5<JucK7Z0ZRUwE{c6Q$e_PHPH0wyNPG> z_RD2ZrCt;in|;#8>5(7n^2qg^m(%C0`K4h8BMGyIC7~?t<Sk&CaI+HJ`*Oy!N@X=& z;W3p7%QF2+|3a1{X+H|e388U?Hns6<`gWNDgNI$@G@7OT1xMomYstzX2dMVo@r9Am zdT&Pwmk0_pQDtTBthot;IoX3M7tN>pRU!~SY|L*R7>1%<4m3N}U$!Xko(E9xeiJPT zH>ISd=AC!7{o=mtzG3WcBX6lK_QjfUyvxwRl5R42`8_nzR^~DCB^PLujH$N1@-Y@M za8KrqK(c+AoPZS2^g>s{c!{~|aKD0X#1Yy_Es1ih)V{1G&KFX5sC3$;-hUmBi8mn7 z`&Da)nn)~#rbU{Eo3HE9runkttNo|LU}<a!?T6Iy=Awj=-=ogSWvl~UxUoVnvhhXZ zlB*cIdLCW1UoCwhXN~apDrKx!RT2VD%FX(Uem&(qrn0~)*J%}t*XR?bMM;TAB>Lt| zu3wr35(zp?8A4L?Pu=IgGl<O9M1=|OomDR;UFM&?|0h!YxVq+#fOvJZF-SMss<1xP z5>sddWv3^P6~2#%|K7_AO5fQ38MXE-X>B;!uwB%>$I)K(Y_966%Z@D_ZFT|EBwO#z zFQQ40JnjX&YZ~=>Dx^1}k_z&<UveJD`zO+uZK{+GKELnh(?XLV>62_UWI9M>ZfHF+ z*RXMzY9Z*YzTA?OyLZegu}X5TB4g`dxwYwRq^?s{;v;iRo;g4J`TDt`*`#UwMn-un zgvF1M7su4&+~iKt#Lk%XW7;C!kV!K`wh)4blWPM4UcY-vR%l=l^{Vr_jXdXp1Tc2w zGzK>1#!)Rjh$D2+N00ddd}FyZ3x%d;pu)_47@bSx1aab*3Qo7<U_=F#Kc`p67m81_ zn$+XV2DYf-ik3+dBUAH+`hpUrkH12h-FBGTX5`UAMirY=)-O5G`^lTVHKu4nd57-w z9AH^G-g=Vi;E?>@Z3EKGtsgBCZ`o(?N(<78U)eX`>Af0_%06yJmQvUgB#-XA@7Cr% z^(_KrHwA-DTA}>pmBgz)c0(S|Et2UQnwJ`%RK{t@682cMNptS!##-G+2rTnlyS|@_ zsJl!RFdcX>3~#eOq%{=zqEKnjV7m&z0`dWD|5E2ZnJh09a7PM|3a&fm$tTRo@$!OY zMxU)~W8XLnFzkn?o286rNU$^|W6WrQ;Fukcup{bTTN%>L$)B4Be7g=q1tXWn%5}4$ z-ZS1Y1-(&1uSDA~7<bk28Ed-6t5+pL>Ju9;h|J1+beiRj#vrurb43x0FIaiq0P&KO zA^I_GNsT~5$=Udb#W!QTZ2l>tlb<-OWjiAlxI2c$m|soj2p4Q~Ztp31z~k1a=d3Ct zYZWSwGeO&}9j)L)9@@F`S>-t_<EU5}E2?lU(Re17IVv*J>AmEPf-h&ONcP07sX+5G zFOgQ<V&6*GHj(A8p0i}%)s;kXK>1hL(VD`K??ngtl1>EBus0Z%jb*V{F$Vn#E73$w z1r<{9v=t?CQI0nJ=vlO${pNWwS%z%;^v1npqJ>SbzL73mAhpWV?tRHl4bqtATvbwJ zy|uzaPSc=-q>XMaH`fV`%gfA{@yoBc{m;00uD`fP1nSwwL)#tiI{zpM$R%=^Q>-kZ zHpc7-XENvQWv!)f53SVSJN9svpUT}@+T=>NQp>k4gd({REkhA2o`zn^Hht^NS*NXU z^zySmTti{$-&y>sU$ym(J)a)hbT*{6b@n{0pX2Bx71ucCOfJEG_7;Wwkw6K~rmoKZ z3Q04SQ#axsl7qHUKA&C(URREt>j*}kK#Py9us#mXVGmtOLVs#q5bon%)v%{$C4cv- zoTxF<HX6xgtH*i=OXZccHA{3J_egqVt{1+nYnxL<E{=l@N(5f>JR~%VY<c_9Ns7i< z@!*5UUv6<qj_0>~v5mYM$5KD(SUMciClp*VeicZcKg+bIE!t@YYGfv<l9jNWz;IF> zXKNIui1=tTGDM?=4N^xM!8Ig@8t3s?mHKk22X4>$JHh6XeI$Z*2SeX~8JN>4ocs#j zd|Jwj{X*mE=2<J}B0Je~<~lo?L^t|unV6qSGTHP4nHqz=&T(<<=jBDrN=xE0IM{_s zB5=cGVJ04SZmJJVNuG&88#t+P%|m*d9?v4`D{Z6X#t25)Y)AhE=+p~F)Ns>xUDv;c zumq&)a7n)&0^GYV=v$-Tk@~siP-)#Z-9F-JDYQ>pVdN6I{9MZ!BCu48i__!W7g0T` z&WF*_KM#+jxIbgj$()Y0v_?qCl^*){;_6++PwB~rOh<tRYU%YAT<T5Gn(>KZ6U{FR z5j;POUx<s6+Y`keiEgX4M);e4W*eHR$Ws>jUki#YKl_PVBbDiRwHAt}zsjZFh>W^J zPC8zsj_1s^bT5b`7Y8f^_Rj4Vt)JR<vNlhK^zyRckq{bf&4AWMjPSPna=thWud<)F zm)ZQr6%6EAEs-=>i==rq2pxVaU1?G|9XagKn|~@?Za&v8IF{X?dQ`$8OxxT)S(dZH z?c@9zZRjy&8i)M@`X}>(-<TkfW5FB{@UB`GlvJu9C<Y<MWIqT8bt%G)`vh`G+0+Xc zQrfzik=wAnvhjg&#YGXdqr$ksPKlb$G5-d=LBLDA@SdA=D$2C-kd3zVT&x|G-1*uW z^Er?|PNC%NQCIz+?dJV@FP{O$_pRlGTnwZ!!;T7eFfYtzs)(x>pc!QJ95@)sJZTO+ zRtXub&f=Nq!Uk9D<p%K1F{CLOThubJ&e3L+{Rj+o_5F1mpKpRdYAq>3jEX;ma2#KW z0?E|WvIq08wUMReIuqJMqV2HN*`6I}VheW<JzfL9L18-FxK;>t#@3~DN0J8m2AW3l z1&3D;@-jGUd}EAu7Qg6K92qqPTKB+#u(bf17fk^B+0W4xv$G}ScKXhX7T95*k8nkR zrqIzvWP5X!<-qICg8>*I0ALCwD;k0M{#~4m``;jd>UyQ?HTc+nn+8}6#_xa5Zaus_ z!J9D>e$IBHQTq|<E@$1-SVmOS-rk84W2;Yv+i6fy;q_XKsLOO(BjPBQ!U?swT}hbD zh9R!wWZ(xriZl~+@jgwOIq1pVS_TbW^BNzG433EA;U6i!q&3%{yO&500OfX_$;4&t zA;zl>Mzjw@3(sYAjV32g_fjT}7+pMuORFmq2Bx;xu=<-9De4lqH`(3TZMFaJ^<Hn~ zx9fi^nP<g;dY;!k6d0PMx$`USw)WUoA3M7PUX=YQ7GvVGEqoGq^skqgvB_12+;YDi z@K}$myl8hptsi;F`kpQVCt4JE_}_l*z%^wT!sc$k_2od=CU}+iB8U^|(pKU<mJ!uQ zti0pD(ZC~CZi#^ab$+J>s;%{=*CE@yz8LQ8nX7<<0pl#x=Fm-(tX(rtpP_~`Gs5rR zwpz^(IGq)pwu<h1cqFAfr#mO??KQdR4W<NwLc4psEK+IR%^m=QASLCo#DN}OMie$` z18dJy_kOT{YG#;cP}=rj3iW)|xnjaWzP3J~SwN?yDYe@Ffi-Cti99D-x@el}>PkG_ zd))hw`;XCH-&7Rq>@D2cMEBAS;bKNmgKIF*0~(g@cD?JBFJDNP^23AzMwYc>CMvS% z0$?`Xga38%u>fd$jo+rlL*?J>HL~a>bZ|xJ;t59te`>%=YGn++c;clMS1XV0KL5xj zz`S)gM&@|xc2r-Uvp3#@ma>T7=sEm`?<q6%hHBJFKDCsr-JfxeQr+~D5ovHgs71@1 z&ji_0OsAB88~hWpoNNjDQ*^0tt^}1$&D=)Fu0zWN0CE-?_-F+~L-tZw(!$gPZG28o zw=j!dOmn5bV$ZWx@7>9iaUS4oBd?{$5QOcicrKdHZ_n7$y^=MOGM<$laI7QdZLhJ< zQ?I0XMnXs-BOe^P3J?p;tmL0IyjZu798+LKQRRr@_1f!;@mQk@&rxs%p6t?NdZqD$ zTr&*tF2U_TfRHC2I8WEsEx&7Hnl2+1IsZ?<eo}7B8Ip0KP+D6RaYQh@@30WD-@V#@ zR#zCKK4TjPPDc9YW(hevE=Lj$F8FPa&ZO<$16(8NFA#>=f%cbCU1w3UOZ!L5+Zh{Z z&0(bw(LQQu!Ogca43~+Ktn_ZLy=eYDYX=-r`y^?zI-9vPdC*+BPZ!dkPfmfS5s~T* z+N^z-%M$6S0OC08lsFS*IFT&w^V{MCDVu_Vpk7YH$_{8LH<5vzx(Q}Uj<aV-G|y}x zB+mcuWPx8)-%|cEFMQR233bzkrbHMh#_a2(1~+Juy^ZiLv(}ql@h)R$VH<h?7+)9& zIUZWNJ2|xB1X&dk^1LzuhW*@a4)<(r;H$pJ(<ARs{#09T@2?bk!w};dV%`b$^+hM^ zQwLuv3b5uE{Ple?ZaY-k8ub0p&<_4`HkXNHkEp>xh(zta9bCNY!us;`Hbihuf8rtG zXlgN8Hjt2_rNcpSNh@2$X$EMw%!{izIck*al|_X|FlLiuc&!^Sf-II@w`H<d!;5ZK zj}(OG*TP;8gG(w}8WOGQjGRm<|5HAdA~k8Og-((3ev2XFBpfNsvB;iOnp6NDIojqL z43bsnt>5~#f=Wt2cuaf>9UWagJO?I+usK(?oriTR?7ozcbMnsys3A~Py8)&?d%V9r z%Td-Xxw$6{JFxydey`it(z-xu9!wl@!ksLM(=LCB*QRX=<?^WL4DC^%H*wO?FTb=( zj$XC?fKEBwVqFY#)R>&p?xvvXsd(Xxxcoi%qMqLfE^Ggd@g_UN-zT%lf5pA6zD}b( zTgcnRRl~x}IY1Wp-F5Jd5qh!=ztT%}wo+T~L`hBVCPqBs5injxtdc<5%WDG4W*Gd* zJVcHiv;y83{JshLfswd0YC;h$eEd(AC6{G-+tEz^m9c3S@Z$siZsvA}zh9e8sZDRT zZFzug%LxvQr#y5`OWqKd+db@apI#}IdN0-UEQ{4dw++a0(Lg9wD>5PdT0Kf$!B_Ux zsRLH#4}avYeeh}VRrRaf*VqJ)F6^(;A54Y$J0$Dwp;s@fmy426wu#5)fywJ;l64+_ z{To|FWH;rG&%3t$O`W}t^+H?g{un_(R{Q#?(1tawdhjwg#u@*DU;>@2OWe@1VoKL; zfr2X8fXS@V$v}w?ejhHhU*v@r-P23j0y2p=*vCGJKj<KnWcI}m#<<>~N8XgXZF^<r zH%nVSjU$Z5RpZXywjfo6sc_oQYrgjuSx-N(yp$`YukqGZeuLx34h(GykY`?!{Bc*^ z%PYQbl*+bP^K)(#tDQyR;+nX5zg^{=@6fs;5BTNQ=bi4o(Wq2pP&MhkiJVvL?I3^T z$HF=AG<iMOF8IB}w&3NL^sf*>Zs)ri22bT=wv2j)8;DCC$0)<J&Rh9nA_jZ)ZDehQ z@>$KW;V}QDrCOhcuaY%^V_x)4M=WC#v`DSD6`8t{P_Q@NV!(%J7HfUpm+;Z@hMzIA z1%j*(E#Ld@fips{d(d`X2ql@Nq2>IUm3mB*Qt}aelGHGD-D&`u1Fc3do9SgIX_r1$ ztyhUW(Eb2RGDDaD++6(uuXTRpe%6Oc&L_BcZsKVZn4aPwa3){P<fFWEX#vGpgbHbK z!-YZd-_APtsL{$qu4s0{&;Y{u=xhi8B{?^sp`h#)#MauDe6VGj&2b(@&6BQUy)T@V z9C{JyX9dk6^j+%wRzlUssabcic@F2-_K*c*$df^(W*-XykLmn~&Y3fA>(gV1i-U~k z&qA5e^smX#td`>!<DS`c*N*!5czgaiW>fl13@fZV>&-EbZc)Bn%z{SQkPYBv8#dZ( zF&U$!Vr-aX6ci&MS+I5BybUHs%%+k|+w=B99~_T8bdxkHbU+#AFVX6{HN}50Y41Dc zAy2HWEzzEE^$zrAqQy`_r?mYuBwP+`iM<*entzN3cN|1Ce1UHtY34V-(^{xKqGQfv z=<`(9Oeh#Ui<23d+1-)w?E?}bJzrmr2No?Cc~?fX9Scfx=KU(MO<q%~WHX2bt$AjQ z*-n%sHDGYYPZx$~bOWAlHT|rYYZ|LGc0q-0lOUG~lSO`hkJ<I2lM**$&gXI$Ln@M~ zolew7&1bco&O6EutJ}AgVjr>^9}KZgAj<4Z{WfVOX5$%GyossoGk~P0iZUZ@tVs3N zcL&|xDx+D{>sgq{1^U34At5ADc*HIyfS;Bn+n(Glu(+0|cy!WlM;<JqU4Ov3GoXrv zj5NpOTJo0^V4hjEWeAofEwc)ZJjX^ar-f2_K3Ng)l{T@p?~^Da_e>)5K9g3z`tQj1 znPDQQUEfd=A~=7D3h+DC8ccS1XZ#yff&G)LPS(>{4+C?pkSVkBOFKJRp9_fa7fDN@ zNynicSo6(moYpEk>hHmq!PpH{pxi%>M{aE&lDvu9N>?u*i@vzW*W8U+G^;j5;Ih$w zXXJV(>0Y}z+TN8k&xg&D;+4gZXE{_51l^i^`_}wRC;RtpfF|Y1SFEB)7!kPkfH)IO z7N)^H1?Ozg8OW=ZIg*ABuRLYCnXEOzp_-5yDT27!$-Rqx**yDmegzt3Q<Lm%Q$?dg zuR&wnYhKRhou6COwH0s&p%Q;SsHDMi-^FIVpL(vjGjbN{X`4lzx|Bcvbve#{Hl*aU zzFG0sMdJ$4Y&Xsvn2jl~PTMeoWr`-$+DHa8=4p!$>i9_3F;_=hosHXy*J|o=XhbqB zUG}PD$I4Zb+*(#VbvJ8cv}#BgMcyv7nU4{})fUDdaV0=OL#xwM4jVjrK~KB`_h=cm zA4=-(dOnFca#SxpPz#96ls&AnXwQG&Fy8C)aQh+PRVm(z;pGUB0MJ+TlM0=!oj83# za_yGab2pM>?nW8x^Yt-r&g%4n^V}=zVRXBb13gFfUneJcor;}wB~9E7C7pPcLq0Bo zyX?g!1|%G~zoeT|6k!cQeS9<dlk$PY71i0{5Q;`NdSn?nSTSW|_Y(K{upI2WzNsq} zr~>$HhE(Jug==*(H@sbP%B-8eb2WKlweU#!4SPvxZo<4GxV0UaWJW&I^b|1m-1*7? zdoTNB6-ryCKd_C_X>a!W=jDghZ7S2|9*WqnBEs!Fcn`N=44y)jL##^1!%7OaLY)t$ z;ZY}s6Emwb!Fe!d-foI6AKr7%O3-5{K<<T68FwD|N{uYf_O;iisW{RH?!G#b1gtpJ zwwOkV8a$UeVEcdVwvMA6QNk6Bku$C<JYP}ywdjl35ctVjji$C7$8X}yhrVt}iswEr zzC8>Sdp_9m*t)q=hD5X6h&kA5KM%fk$-E4Hv^s#O{(X@pfQiWa9_OLQ>mlh1F!y*D zq{0R4g(@eqA5T3gz?bY{0atb}RsX#D>Fo6dwc7P0npKe|6`Fcg0<0=Ik~%-Ani7b! z2~_YXny%aF0~u}%Y6Qcbq^Db0J-xG&l5Kd^3ZJySc?fHRj_~BpDpSJ8p1_msgQ&>8 zn_b0SraljC!Wh*u4ouUVVZ*>{lERk_AH_Ylhr}e27$=<f*uy@cA**%t$9l1lZslhC znJP3bQN1RlTORgv&f=W|Svgz3NgTTu-{^FJoH7>;qrYzE@aN+wUS{mJY1#S5nYLzY z0EHM|Q59~e;B%CGh0xl48{_2|ug3W_$)pg#MuVojRXOb+7~ofy{sJ|BYW#Zt=m=_p zk%c~yanp}Q18RJA482PCDQLf4Nu#4!onh&ayTY?74vZBaQtDM3MXD6i?8%OQyEWt8 z!w2eQB%`g5?0ivU@?7DQ%U(mS#I^LPN`MKCC4uuDx04DYcq13>*bSrR4)IrH)qIej zx;Yif8Q9{Z*BUwg8z5xuPtCGmgHu~r-0`^>WZCu<Q{@SX3Q(KJz|4qyygf>I6?G9d zi}Zy3z8BaxB<;;zDF5M=2aT<q<IelUCKec17rmnrdZtu9jwhIV3+?&2YBj`XM~7#! zDF1z%J!1mTkgao|8QW-X{3T-*VQklB!(iV*)Tq{vleQxiIQL%l`06e5(H<<RzF#*) z1WQ9a(+-ze^WF$B8CyEU`lPnS#Y5X#J^$(by7bx&*obZ_2$|xB&+;@md~Xiv`Xk)A zld${5F9%fQ8X1_@T%nh+LEUdDp=;msygEb9t_Cd}^Pw<e{%eD!&*aF_{Pj$%+nhj@ zt5CS{a!yq*koxz#@YutK&Jc=c+r{~h9*WUY({z=36LR}w=AByo<C6W_gvTvSC%fe= z&gB?dsh0-6>BfVsJ8=(FJ;wTS=eoGc^po%Om~@s+2A0yczf9fXZ*p&H<Cb~jB5vZs z)3~7Vk=d_$0Y8rJD4cJ+TIlPtIUwxJo~^mMc#Ml417_5yt**SmOgzCM3jHr(%rcz( z^7eN_);`C^;>jmMA4qAX+gch9LShDG0sGCG`C4q}3jVL~e+L8d${Vn}3iaUEv`UOE zUHRsWuyt+q-x9pmdFv{1Tnh0L^{g^#f+ww3Ik8&Je+-24)uXH-7f93mv*Ld_6;69Y zMMJ#J0EI0*-MV~y_fUS0-svcEARSi3pnR@0<1^&a;v9&+0wcHDcphU#7~9T~=_@V- zcY({x=7+`SxDKelP+;=V-_Bh|Snv4mu_hpvQR*dClOy3?HFxnXRm98$)xGZ0+GXx_ z!tlbI{BoIx`xSlENg<ESDRU-X&u4gdbh!hFOW&7WnhA&zi`uE4QZ{}o+-aEn5IAJ< z*&6cR<!vs>ocy$QZAifzFkeBjOYkf+3E^=cA!5Ar?UZ)KpiSMDkF}lKY&TD1Q2Vp^ zYfL3-(WiZr!t`3N5;Y%v^1`=|9yreO!C%Gi!Z8>nS+BoDohZIDLS^9mae8~oEZ~8; zcBPnYShvNW49f+K!FOe5TCc0{`&Y2>3*XmS-;^1BJub@t0rvqt7r(y^w3v&%*Sj}O z8xALU8>fr1rX~CiX@EZ79skP~Ufjh-$;tu#UxDP@#fl4#kksYFFy}V#dL2xC?Jje9 z@fu&}+qjnu)cEW5c-O&9!@ooUeR?tjE^K7dS&fBTjiH_EC}4HI^Mu#`bgZY}osNw( zDh8?%xMM5Cf(wLiN`t!%y@Bm$GyiGu^;*l-2?n(jO|uoa?zMZ0teo-hkwsr_wY2+V z$You-TuhDyuU93*T*j)QLRXB=rA<edyXV$s_=K4@A;L(f`rdpC1kmg0;66H?L)rV! zAFQvg;9Zw8!z!B&VwHEDgpy9QM6=JZpp(@wR_6;eZ__aXLyi{{zV39n8o)4Tw>kHi zZ8r7A$~K+bRzfbyNDF1JH_<KEmtoh=o1?poq?s?ihW{$(Eid01i~Swoc(KbhI@{80 z?ek~*sx6?l#bzc45SQK)@loHOPTk{|e96AH^IrPC)ya36b4RwS)lW00ry9OvVj@Mh z&yGw$JqI954@*(Wlektyw61Jy`*0Ja#X-2G)6d2RpEJNq;U&13w=<gB6c9GEe6G|P za5B#@;oiQ{W7z7@hO4R(VCc45nReFzJ=_|rb)+SS-*<BcY{qBz7b=HLBv!6KF0T&X zW=4f;&er~NT(-OVd&7|N3R#@jnI<w0w;d2<!G8wPQe(97H0}SeF7^C=3lF%v*4Mdb zlXtvO2mOCeou!#`_*0ww@jI^g%TH0Ni;<i3@i{r1l}{J@|J0iGkv}YNUDbhVI5$~q z?V7d|c5Q8d_K~XV<vsL<c$bAn)`M-sXl!snspJNWBL%7Uj)b)Q48u)ztRcwQavy;| z%i?31)XIC(t#BSmeRjB$sBYMOOmEzDG5miw?E6=V@X=5TZCAEjkeQ^7H%d-(6!S*d zX>_l|X<l2iNPU0V1A7+lx>d94B|j`9C}a8!=$oO`o~kaBX2BM8J2TKhqx$N13E{3= zqZzQ~Iw|kz_*m_jjcEU<zQtrlTEtb#+GT|_O^NNp0apURuGjpmzHE3YF*4q#NcGag zx@pjIT{<$J0^179(m{Q#+?_D%o}*qjtb-q3<jyVPi%(%)@XqNsv+Je^*`ES_UIIWp zW;<=%RzmN52H9r(4RNk0(Z~!V+j&>e=@Avx)g5)*YH4Y<=wW;nCtX>*Jkjaic@S?- zFqcMnZy#q@9UFs~JNM9n-M|Ou-kAF^<Ls`vECObITM0^MU4G&NYu7<PCUJ)ff}3a8 zF<)eJSE&(~xTj(J5OoYEa_?Xg2<#Bvoy`1zJDNmqEaGM%I0OI1nBvT=n2VDJ3E49L zE0e{R%Ck?>Xy0kp250h3#!QZ^zH+?X=ENOj(k45ujhhp<DXv=I-~|%USa+PB*i%Q1 zCmPrk^5@Aee_X|9ee4M!6-3^rx9G0ON=q*r+`&pOc7zR}H8k61W(xt%H(>dss2#H_ z3VB|ya~q1{kfD1L(wjx}b&XZ6{GvifB<JUp%YKTh2YVxib_Dt3$CwCsxHL^6D(K%# z%4c}FBPPNu2Z=l_4dr9WoGFX$8=;KqGx7a&$()8wk&--*OaAi*lKc8<svn2H+E2tC z_B_}!zA4Bab2hPb?*+PlR}6rj$Nvx$74%%AirL)NerlP^lnI9&QZ<i)#3Y)}Q<J9z z5hR?Jmi4U1REYjb=jA=aRyp3_g{J1=D&zP(JuGqaaYEshnxRjMxWw2aht;3U<Qnoh z&nTtseUEZRX3-2){HaEMed-Qq28qLSPV~j~RvT%Cm4O#;D=<_6=~_>-IP=sy6yl4S zwHAEJ>ty%Vf20NX**<o&lDOzypYYhf$2?6<szMgD0PVEFIGLj4uX|y!c0AN3gMWWh ze3QNC`t&Q*m3$<YDZ6+?EMjgc(CnM60Lkmq-1ckic}A(;#6(PLP-<3tZ8KDM(iFbk zhQU^P3<bVrEdnyTC2~|N#sq<F&km<t`<6_q(q+-ppG%>%L)pcf`6BH;c6aN(?X@O7 zFU>^5jkmYT5Lym&BI8MITEp;nAdijz&b^v;v4)#c<mc3sGlK6Z%Hzkh&LySh$RCDE zu<L6xrLniPM;6Gcvx-CwVedAP2a5r(#{0xp+92|D-oS2WswjwZ_25c%r{(m4wKrb4 z(Y(`HsB@aI{3b^2!}M(0cHO=1&Ysdod_Un^b$8p6b%(lJlFVN|j%!ztq@%t#<=V2y z7gl&6b1HMw14Pu$AG>f)BY4_Dgd1^DjWOT*Z$x%-FWTj0T@>|~bEZ5vU8ny`2u(J~ zu7wAcWd{5+-uSt=BvrMuiU^XVvh-b#4nAV3LkK8X-v|iY$?W==&4in8SBf=aWH77N zqxuwz?_NEpHs~5PApOyBB7^;xX;8R1T=iP&ATQS<{zOr$%Gw(QftjC;T&ZD=Chj{Q zn0}xn{?bG~OU+-D<D@c^5${P|5Gl+Ukie)cP5}hCn|;踬nFEDenpj9z*}d)$ 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 diff --git a/FASEC_prototype.sdk/system_design_wrapper_hw_platform_0/system_design_wrapper.bit b/FASEC_prototype.sdk/system_design_wrapper_hw_platform_0/system_design_wrapper.bit index b87ea842823ec0867aa78f4bb2f362f78bda694b..ba741ba3b4979feb0d5bf7a99827204a705349dc 100644 GIT binary patch literal 5980033 zcmeF)4V)!+UFZ9M)v4~OK51sEA2Jy-d8lcI(21@zX%^xWQ!_R*1MX@EX+T|_i2@?7 zE)UtA=qmoZ>4cL>!~ruwdF?`z1(OV`aa~k2uj@8ku8Ztwh_0fmc>%uGySs8P41{>E zyIlKzfB!nwPt!g9Fb{pI`TS?P{#E~ns(-!zr=HHKI>+_wI#>R4F1o|L_^m(r);nMK z<Huh6y0`x5kNm{36K}cWO>cVLTfTMTt*?8_%f`Na<TZ!e;agwzy0^UbNB`MReEY2< zFL=>6-RgeG^}hJ0Mn*?o|N0+!(TiW?e%M`Q8P6ZN?fIiGaIbYeFBtijkr#c-3r5}R z-1i^oom(R~=N|7Ha${AoGru(P`do=4aULmB?8?~r5Qn^Se20yP>G*hACd#AO9r){! zXtq7=qsCiie_^C7-&5ALyd)ZNGm5(ux63wMs8h{zwRptk<-E&zM&&#UH@^E1e%cWb zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmdVG6^PTaWoyLUYvj9j{(8$*<*T@=SH)F&6<6t1T&2&)?#O?bAHT@9RP$MN zS*y*z-N)T=dt|xUeEw4N`Q^0pojcwhyKo%k7tXKdv)*!5`6{mJRdJPG#Z`J0SLqA! z4bNH_FWb6$*-Nu7=g;4T5aoF}a-MCKe|$;)!hG7vimGm1NU7mi*8IO~*y?pOIax=U zPA$?n*{Lo2x@}j{^PAgg-P=bTt<uu%q^Q+O4t}Xt&Ao7AbLaKXLOBeh^&4al)vwK~ zwm4cX$FG*rk?A{b?8s(qs!{FzRpv5P&o?!Tj;NIVhmL3ljo6j~(U4Xvx9!8%{4!<0 z)?{0Rg{%C9v#*-2*c)rw?(>_S>o`)hldJgrQgujqvJQ=0PaAt&TJE#L{%buoI<-vp z>`rajCfikPvR(&OYaH&N##~%eY%9s#Q0iLc*u~9l3u`z2*A_0EMI(R!0tg_`aRTw8 zpidk_n2#6d#rin1Jzd3%vdem9LUVcgdZxSM?ocdg$II)Sm)~rL<tVba>D*QSrX06n znU*w@g)(LG!n7@*EN4-eM;Y62ef5(#nK!YK<(+Gbn73S#UzV-%P1edS)KA)PLN25% z8B5CiP|Zb)vgYe8sjuP+U16xtW6HRUtlW9imJ()~IK`1xGsN@Du?kjAsh007znZ`0 zRl&JyZ>z?uSY4vgvMp8GM&h;Vt4l(g=htDr)i$!&YDq?WVj=&0+m*_%l(wiFSIWM~ zG_70+RlIz5ReBXK&v))w1IyDAr_JXg!dmqcdwE}yu(|ncuGU5xTx!R*Ijk7g%I_at zUah(6yq1?-d3vq-tG9LK`K^|^+}8GKRam_5v$W;MjcU4zt9n)3P7nL+Ds8=Sb-bwJ z<@KucDqemp(EjZg%Hu#d9E9V;&gRaA<42jiFl`Gcj~lBVPu8k$ZJD>w$Z~UA#A4Hh z{Icxo`SZtxg({23v;(%u^Y?l4^_IM_%l-Ank0(~ojwjt^Jl}#c-G(9GS^i4L2<Mu^ zA#2fKXR>p}vWtpbaCEKu-D<71dFzfR^Gu8&fB*srAb<b@2q1s}0tg_0z!nKK59-~4 zX!n<!FE8wEg7e;6-J)h~VzC3$o2b;0RURI8E$14ad^peTM#xWfWFyzrsO%@#Rg6Li zAh0b2@@=sewi1nR-!7|S4+2%8s77iTZ=+}Dyi1)Aolp*I*&m_N`|I2Er7hP7WrhA+ zk-0v<G^=h?pQ&4eS8cCP_PL_{JkY{3jrpqOJ2oTx=N;R$4K^&wUH>gE^6Hl?&s<(s zZ%5@sU53Z&($ICaGi%>;Q>?3WhZbu14sF=Ro0aEQN8f5x9qKnei_WN#{b^^k<KkNp z**0P)#5&UZ;^ODGg>(34Te$2?yy)SP!E%m6SzgV0@l{Ke*6H!UY^S$yz3oeLH<fzr zx$?A7oqWCZI<VaDcVL?~*Q8m!RbNDhz0)47*5|^Fmu(K9BWrmdIXCH@SHEbiuA!0F zwdKp(Jvr-@WW7@N(737YYcSvba5ztOAz#cV)pI0!MLpZSN~?=%GpXWL%5`+|z=Iv# zyv;YxZ@%hQ*Bp4qR=401FMsM1&u=Sc*S!@By&TKb>6Xs6rn@6=r(Jap0|)Ee`o(S6 zJHp<k!@x#r8?sl|w&}|nu5)3p?PSNKwiEASzbv~(li8PR)YuC)b#g|1F?r8D)+Z`h z;}fre4_$CY>y$a?%70EVp)&;Nlg{Xe#jT)E7Hf3IIDOI?{jjJNcT5j{G*9B)V=lW@ z$;qOunvG`L=64<5{E60G*WH;sc$aJ4Hk`PznsvmY<_`SlMHBTNwS5<%vjpgq&gu_q z4ShnNbe=%RwWxfaaj>s^p3$9-i_pZ=9oNt`8}#z$ty!cd1s=|I1Eh2RL(em|bUWnz zlX*=VeqJ-PUpp_Ut_kIrrPa0d3+>K&KDaPZ`?2NMiA7D<Xu78DKEK)e<~-YZS-7f< z>NzZWex#laU$NEpCAlHAKRn6XlQoO7!!>L0>dk#b-&vr~f7AA7z^fNrH78#+=Za=@ z)p|2uOr=}yBD>vA|0Dg=q{iwQzF5y@uh8lbI6E1hbW?6jH-7lCYijus@WcvhSJR|8 zyhH!)aG6paS?ahdjnCDw)ho6+b(wyhAWGe=>v8Iz+J=FDTid2DYxo}La{aeI?YX=w zLlw6tYY`2cszo!`(?~tfm}r;v%5ZG2^S*0fYCWr4hcbF%?zk)RBAs<d?{)FaCfclX zwN40KKidhdxD;&|xhZnGHhGSB`={b5e<^0URrC1fty=IUUvA6w>(K6_*tcgrrO7(( z2C_#kxy=^M&}&V))3NVy+3bk>rDj7{jWs>_%D#1r2rv0!pIhiD2iNEFG+e^BAC<3V zx4iz6<80Loql5jqei=LYc#`z04T;NZdh#_;<L?(;-ua2PlgQ;+=0?&yY1s9=J#t#R zFfd-bCa==qYDLO-xbm4*iq#?cnL0Fboox))7d~9YPuKYF)PeS~aGh)2!NtbZwm3a_ zXt)@0>2#8$nLc*33;X(ozpY=BS8nkK(&pzL(2>1w#{J@8-?alS37gHzg*!X-A9r^1 z*5A6nena!zgXzQ{ee?gg?HB*mQ#ZW7IXI}FitJwh3_7M{<EtIhl#6W0Gbiu+{GSdV z`HtT{ckZL#cKUZ;+%q^>*L~NIUL-~5RBt~Mw0EzY+vR%4ddKQ|9pCss=b&C>OBVIX z#Axq{1N6y7f?k5^?LL`MJTZFU#DNn-wR~g6xo!9?_8INF<_?VY(kGYTg?@3fxWi?) zMQ$h=%j~&Ew_9_o>&ft)7bnp<wckA5x^2&$$pd<x@vd)7(!;u(uW6qQ40Vp`#kC~T zM$-3GbExYvd#>>xUfj&Kwsz0fF8<Oj{W;GGeR87RC%Z1)oUiztwoRWnH#GFb6UR=R zI1#p!IzI#4b;Vx=mvMoO#<8KHq0lGiF5_Y@_pG-~pEL_mMecMJUv9X|H~-9EzIk8S zIX|4+^5Xle_{uJwrL84Ued1fJRd89pUpBoplUIMs)-3nREVbCwVz&Bou-&iRRI@w0 zQu&$uW*d2NwKu!eg?hVddab*#1}lvf?Znky@m2ovx~ruxFL!yT`=&4N{IBfX?Tz64 z$}aM9EN%bgnCaHcQ=5FEv*9Fi-p+~@SI7G0?NNRQhryS2aN{=AH1$Z2?yFa4sArtL zjdy%Q^*g8Vz&CYHTP{gUeB#n;L(g22*=@y420pqKOTApnoC!yhk@zNCKz+|%w#|Dh ziG7Piu02-6I%L`gc3i1p*gnsgmIrwI31-_s^ir$sc9OljhA*U5nw;wgO!L^K;noPn z53N$J)04N)@0gl&9{%zjH@Uj@hpol-c}{D;zEiC=?A+l-qDSS+;H!~Z#RGp)tL9#y zvE%9VkPhlu5k*6Tc6n0UkbOsOo4%~!I_t_}Z7Xp)HCDK&Se9L<$tUX6*bBB*hxS&i zV|-y3@cxbqmhI@wfxeDz-Ub>seo$v!`eoUX)WwbNeXG6IwShTqS<y$gY{{2+!HxE9 z^j-FLSFJ-<)VleL8=v${yWz=cABRmOTAWp{@y4IjtG%nY)=&59ZLZssY1i`Ob>4G1 z_gAa0WxaBCG#j6Gk4{bMgA@Ib{K3h3wSGx!yO&JWc;exo-}SfghyVC9|3~Yc4}H%! ze8=7OU6t%P^=<pomVf4*KmWI{eDsg+{;eH9_a_rQxBv0d+&WEV+vq!=yBekZT%GR~ zwpD1aN1a|rtF`qR`eZelElYpq=`CCIrCsng+D^KvKB?`eS!LHYw$1TGzssn1yqtcY zagW6{zL;<P>ZRT6wr*~BIj{Rw+~IaSwskGJ*d-4fyx2K(O8v(l?|b~L!kG`B{mXM- zId`s8+O_d^G-`ZpwRCN}9y@kSUGkS_&YV4a?%cUAFU_sfRQ8EFwe~`7?dxlACuN`1 zcsse!TGlJC>#=6@FKypd`#u@?C-sv5dT8y-w#|9h*F$fyj$0&<J^LeDwB*aM*cyMd zxI|+>cd2ccV3+UPAQa8_Z-cd1_bT{xm)y#NgFm~KOTU!Mwyk7n;VU5XmF8WKHz%+8 zxs}>p+qBFLR&CdtkTrcDvhnh29qJw@MY2af`Kzyb4qcJA*Cz`{{(5X6?IvIIXLaw3 zs{O~yk-}x=Eh|Ns_F-77E^*1f42|9f1N%|zq|gs-l%c5aDh=FM-?lGpd0tN1L-9qv z>XY$H>vZVU+d8ye8*Wyv8rnz-=MFBat4Rxa7}jJk_+M($&^4QBJ1rgE=f6CnzPG0i zd~wZ{tx18Gs-02MXOI0B8XdPm6{>?wHQm|qj?Z;=`_|vOw3QC0dHB<=D$P~XHWfW2 zRJV}bR<{<@UIY+8009ILKmY**5I_I{1Q0*~0R+At1e*HTB#N?kH4Ck6<l1pEP``B_ zsPpemE#ZE6*tPWgCyzdyTXGe<Pc11_i;2enTZ?9HppklmzJ71dFIm6Lo&nr$p=hsA zP4Dm8KF?`YFRW<Id+j>?Q^(}NYF&sCxa0!EnxhUT3Wff1{nd2ewQzr})}huxKX+nx zrrNin7cT13l!Xv2+gbUL)479dw$JybT3;M@{qFei{vy+ubBDCGwELsoMV;Fbi(0nh z>O~W^9z7IiZpvjxotsoY*q7FCydQi=2y}m;Bbspu8j)z5(7wxS4;DJ3?2$SiQpyJd zE&<8b&%&!0^kjoNC4{MRtUT(s(^iQ(tmC@ppP^Z$y|qd1(jF^uwkv+AzQ;N#pF64N zsn?5YgT6*X!v>M3@kuw_a;~Z4i4HH$4eKvo<L#CX+fL$Fsm<FW6mO4C9rfj^D2l98 z*652+V)39@Jh5ftS0CT9MPKR#@6TK`=>Dsl(RMN9X1tpWTgate%;le7W7|CUt4$+! z?i1y=-Dv|Uzf@7j{n~|rZS#GQ`*QF6y)H?@rAdb!A~y88$i8ty#XGsMcZFRiCTXv| z?WNy1)1)iP!%8Q&`@FUdeD8TlHBFc;oS(_u$0C=%HcBHs)o3dcg`thrCuIMrK5boB zOZAbw%7v|?uKTZn6YE;jdK8KxH~%bl+2R`Rx%AcOAE*cS+O3?`j%wC*-=mB8RBzaq zZ++SMaQ(u2>(}I!TdX5T5k2Cg-eh-XKOoXjw<y%GQwIKS<u$Bd>gS8-;Kv^M)6d-4 zeZwzycXjV*B-7R<HSCkdo9d^(a*IFqIsf@5AHC-t*I&1LPxlU&G^W)j@!M<IC)rP~ zyoNPQopa&e*w}pAoAYC}8VTRKU#k|c+SqoVoY+ohlB=$4O)}bj(s-hIrrqKyuE`2i z&D?(5iTb2kx%rVQf%wV_+%Y})(L9NF>#{NYR=Iu;rC%+uzq*BO^Zi|K{zU7p>+aNj zotY1PlDQDq@Jc@WQr%uetF~9ilQ}nj?E16%M61@JeJeq&*P-3`&?iqnef``S`lM6( zv)WENr9GQ(hi<RkCc*k7YBa7Nt^4{6Ow@f1s`fVvjYZvGE@OAPS@gE2^{JztZ>-97 ze*C?^*ZFN+Ukl6U7#p8#KhJpo!@0f5V$+8e$B(XWE}c;7n(yj_R?vn;0^8{KPl|=r zN)|?IImYj4by~L-J-^v$P1<aGibWL{k1tBD%jis98oG{l=IxtNweRv8uO4r-v08<{ zs8wq()Y!-s;cL;8gNfJ4??PBSzL46vW83HR_{v!K+-Wm$-TKohaNYXD)*^ep4Yxx` z;#6O{9cQ_%Oj@0K*$sGU=pIY1M;QEpdbD#LtxQMaNMDYgJ9{GAB|f#=hU*v_+vdD0 zpAP=s>k|_nMspj+Q(@ePVLb*rK3tD>uBVlHCa8KGK1sBx*z=8b3<G!7vDGWLSr23T z+<P}<N0X-W+IMN2u~39zT?RW|U6+=w+0IFQ_O3n{antIKIP-S?r4Uyg6Q=4g$o^v; zTDhJ!?%$bs*AwlD?QRuc*y)x+f9%5^%-cjw!Zq9GnIJoQ_>;c<OMuSl{`#7JA;ZA7 zc^3OOyZmV#M`C-(G;SY9V&`jk(Kzt?HQAuoZe~|v@2C{db^C|YxJSJ*R)k9BaP9gX zQ=;)e$28?)8&Wu3$3G`c$BM4-d};X$bO+np%%O{&{gtafu<yz(>+&usD$lRlk<)d& zHkGjF^6mKYF8|WaeXyqQKddM)6jF6iv6JD%FPaLYbr}pCtxHSSYUgyzow6-sXQuw> zO4KLb>r8Bi`ln_g`&i8yylQj%qWC!vM3dd8x?4K?@=0GaPSi)X-|}H-<FyDozPlF9 zTt_2+<KCVB{=xg+{+{>W(CSX!aZmT@lT#0LM}9{%>Am`8avihikRpjLt+q#a&(BZ& z)`QWzcD(Pw_g>q*V|vHcCr?i6gROU{H@wy`9PR6|rpYt)Xy<xbsoUx;l*9E@pv+|# zDEnmBE;n}B7j;<|P}8@BRyGNT^oa>~cIE84q;8*U#!7s2)P4u0&SCp(CwhJ{&J(wL z%<bt{+;7wB8BN#iIoj-GonKLl+kThx*M4K-4rh9fG0_!@O)KA~YxWy219vW7uR4z( zIdbfnbLYO&bzoO`rslwbuE*-RJ_Cp9+3xdOJv!HTT77cvnFFKYY<T=wZNE`s+k8jo zkt5^d)+b#f<#sYMQrGQ7Uvsrx!rAtAGEzR!IDTwssHUs7efp%P9YC`YKmY**I$5Bn zlN+~I+c?IrB}D$k3;2tl#n#SYTYV3=-sTFSjH{`w1>VHc8(-N(rH-tUhgR9Ma?aQ4 zqu$W&#e?j9i>GQm9zM|upSzc1<;pA`ugmH^S(k>cyPdVai?H$5b+2nZ3NG%E#pCs8 zeQ0I&xf(TgJxyJ>XQ-w<qLtKV4%;K-VKp=?!iWv(+AANLUxT`jENmeQW3@a18#q<> zu2|H5+b-;z3R?EKR(-=ZIv1{QC(v>P5I_I{1Q0*~0R#|0009ILKmY**5I_I{1h&0E zQL8l^d`YdEOJlc<KvAnTVLPc+ch#-2wY@)hIdtRJ<ta=ffWUSZ*e*M-#x2{qmsmFh z5Lhn2zH7M%(+Hd=P}jTY&s&j!@(W|mOD6#V1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q4jVK=^j_TCYOmr)%B(6&jzfkXEmxfuE^Yduc5K2q1s} z0$V1q_`A}#tP$&9aN~39FH1=T5I_KdD=5J6<O*W5C<G8d009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q2Ko`0U3rFxDxMb*;1D zMHU<APg)l_i`A<qt7nme00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1t!4Fz(Sm#uC`)nx5fCHr*knoNW1 zBapeQY-~HKChM~X?Uu5g)UL~DFaii5fB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2wWP0 z`uu+5_@!B4=7PW`1nTqqjcg~I=w7NIfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0z-1KZoZm;`cO5QcH#6&t z6zH7aM`1g;$gZS10tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sre4Pqhx!-T(cjvxN zUt-&0wXfXoH?o~<ix&(lfdB#sAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Q#@m+tpb_+5v2R7SR)z@__r6t<IX z_u^oM5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|OL7-S6ZN;QL|6;{t5-*29Ue2@~ zxhgJG7lwPDyD-k!Wfk!2oqKv>y(KAk(E?dHhj!$uc=>$O{mWCBMgRc>5I_Kd?I6(H zJ--&k{1_t$Ab>!J3$X9%@D8GR2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@mtCMS>s;DiN)=!Bg|dJP3Rs^M?Gjboo+Ls50R%c$fPGiT zb`1^dAOYJ>s^4|0;tpyaO+jF*1-vz&=RI5943>`o0tjqCATG=H+_8Z=6urCx^vUJ* z-Q3*0RpS`HIXr41fB*srEEQ<pSWWwCgctz?mI?IyFH7K4-(@UYI{EDX>GF016enBS z78Z^`rwV90QDFP%)c&Deogt7t*N!K)op{BBP7tuqei!y#?87>tPiO-I2&^se>_6h9 zYi*?~TjJV(uylF((n+SaKw#i+%7uoH9eImo3wq%EMV5UM?zSt=&n0Cm1R8(jqWR@= zDm+iIl_TmCg?zpVetwJ*1Q0*~0R#}JwZP!m!STo?#Y^pazNq!8Y@5apYE5*(n7fDK z-1+9z(6(7KRs;bA5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 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 z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UATWml`H?9Ny14Lr zlj<pMLu*oPYnK240t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB=ERCa~P!;9=n?k74zi zO20b}px#z}O!fS|#+z=h-haLQQSrQAU|2YA{bB9yHa*Qry=+X{w&eZTe#32z#mIi! z8CI{}zBmB_1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C78Wza<?F|b@bvLYDQ|Tdo z_ginPKBjv9UgJ%-SMR^xzBmB_1Qt;s>u=PsaMU&rtJhSz=aW%0AfEsM0t5&Um@9#H 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 zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXTSfDkfZ7Y`k+q2gv(^r0E zGVN-W009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNCf|F=sACkz5X07YjIF9Cb7gzdtvLQ2WSOCT*sdPyVh zk`+>d!aFRpdl2OPAwYlt0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0tBuoP$F`jUdvp6zMT?}tmF1~AKKkHk3nxV o{u<3WY^~d;b{n(Av(L!y`@SCC`Zv?@HqX;j3oYz`9k{{{>`PZjZ2$lO literal 5980033 zcmeF)3z!|}UFZ3?>QuK*AGg(~)oodpZ>2`D+l~oJIteC#RZ@hbWVp0rcL*7X<Uj%> zOK>hk1~Sgu?T*t{JRlo8G0YG;PJ*$xn3)YcVH|=IG8uO9jO`F$vx^}+59|h>eS&!$ z54Rz`zyDiR=caC{Th~)3-&g8-uT}Nd=RI{fr>pw7k+Em;f6hg>x^I5RPrl=wZ~U<X zKlH|T{OAwA^}wOG-+J3^Z+!c=&b{M}Z-3>!Z{PLW8;kI*uX*F!-|?eA{?>1Q(XJQ1 z^aU?+Z*ZgE{8PJTcD?CMKm5{feyRIGcY#%W)2{2kX=a!EAvf~E7ryKzFMQd|x41XD zf4zHj<s`v5_t^N9+gCO_`tx&dN>#WkP9sH%T^>6h;!u~TH(5I5<AZsdD2-yb`>%FI z$BMj<YHvUGbG!2PBl)~mmqfeVvf?4dMcbMS^OVb6E8gYOeA)RjqkNf}o89_f-|Ywp zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb>!>3dHriXD5k=Pg3uS`t`Oe+m~@UUm2I>Wn7k*aarDq-79{tl|IeBl*?Ij zU284B7~|o%Nc5Vu>buQb>nZA;J6NPn97pMi>&xY=w_Vx3jLZ4TxGXQ@vb>DT@^*a1 zh3$0S*R|W8nQb|K`7VSgP4mQYwq^anuKM<JisG&)?aEau(`<Z8rTR-}5jY<L*~o97 zkJX<2b^5cvinF$c+RvV~MW4q7mzN9Yu?wfM>WQB}jhXvx)@G|ikt@<ktEfVWf2vSl zPuSJOr7m;sKHv1trQRhjvx{dNoAy{KQ-Sc`E6~Svb+PVj2#WVGzI&Fuw5aQ@>cd>~ zlYQ8!Gt;G2PAdM)Ecq-iWz&B<%PTnNi!b(;)pwY4-kVce;jf+2TzxoGqBDqdiPywM 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 z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009I} zNx(PX(mbUZzaD354xO8=p4gHsowYS3XKl$W7y$$jKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ 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 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} z0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*sr zAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_0 z00IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@ z2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000Iag zfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s}0tg_000IagfB*srAb<b@2q1s} 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 z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXFY$A}o`=>T(b|u>!B}Y41clP*C z-g#>~Bc<2V>)Yx1(0hISZ=N0c5(l@wcmM6<EuANWqcC9t1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0Rja6|90uv1YsZw!0>y7G=e*1gc~5EiMWCr*jQ!- zag>0Ic!w9Twu<l-$Ga<%;`<)~0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+z|R6DBIna}o$4RjDRId<4qx}7-JSgy^hV>S(UilZb$ixsW0tt}8Tney_pMw1 T=D5Ah{q)pA3p-#3{$U5+%he&_ diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.hwdef b/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.hwdef index 1e0c3abea919a93373ef54499bc5aa320f8cf7d8..4a5332a5c539f186b4a58066c2bfd52eb27b2a82 100644 GIT binary patch delta 29083 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 L3lAANMbZBSw<&m| delta 28905 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 Pa}*cXk(2Whbr$?Tb4^ZO diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.vhd index 2e6604e8..927f47bb 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.vhd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design.vhd @@ -1,7 +1,7 @@ --Copyright 1986-2016 Xilinx, Inc. All Rights Reserved. ---------------------------------------------------------------------------------- --Tool Version: Vivado v.2016.2 (lin64) Build 1577090 Thu Jun 2 16:32:35 MDT 2016 ---Date : Tue Aug 30 11:33:42 2016 +--Date : Wed Aug 31 09:59:55 2016 --Host : lapte24154 running 64-bit openSUSE Leap 42.1 (x86_64) --Command : generate_target system_design.bd --Design : system_design @@ -1435,7 +1435,7 @@ entity system_design is pb_gp_i : in STD_LOGIC ); attribute CORE_GENERATION_INFO : string; - attribute CORE_GENERATION_INFO of system_design : entity is "system_design,IP_Integrator,{x_ipVendor=xilinx.com,x_ipLibrary=BlockDiagram,x_ipName=system_design,x_ipVersion=1.00.a,x_ipLanguage=VHDL,numBlks=12,numReposBlks=7,numNonXlnxBlks=3,numHierBlks=5,maxHierDepth=0,numSysgenBlks=0,numHlsBlks=0,numHdlrefBlks=0,numPkgbdBlks=0,bdsource=USER,da_axi4_cnt=6,da_ps7_cnt=1,synth_mode=Global}"; + attribute CORE_GENERATION_INFO of system_design : entity is "system_design,IP_Integrator,{x_ipVendor=xilinx.com,x_ipLibrary=BlockDiagram,x_ipName=system_design,x_ipVersion=1.00.a,x_ipLanguage=VHDL,numBlks=12,numReposBlks=7,numNonXlnxBlks=3,numHierBlks=5,maxHierDepth=0,numSysgenBlks=0,numHlsBlks=0,numHdlrefBlks=0,numPkgbdBlks=0,bdsource=USER,da_axi4_cnt=7,da_ps7_cnt=1,synth_mode=Global}"; attribute HW_HANDOFF : string; attribute HW_HANDOFF of system_design : entity is "system_design.hwdef"; end system_design; diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design_wrapper.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design_wrapper.vhd index fe2bdd69..650f51ed 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design_wrapper.vhd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/hdl/system_design_wrapper.vhd @@ -1,7 +1,7 @@ --Copyright 1986-2016 Xilinx, Inc. All Rights Reserved. ---------------------------------------------------------------------------------- --Tool Version: Vivado v.2016.2 (lin64) Build 1577090 Thu Jun 2 16:32:35 MDT 2016 ---Date : Tue Aug 30 11:33:42 2016 +--Date : Wed Aug 31 09:59:55 2016 --Host : lapte24154 running 64-bit openSUSE Leap 42.1 (x86_64) --Command : generate_target system_design_wrapper.bd --Design : system_design_wrapper diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design.hwh b/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design.hwh index c37ccf2a..fca90e2d 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design.hwh +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design.hwh @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no" ?> -<EDKSYSTEM EDWVERSION="1.2" TIMESTAMP="Tue Aug 30 11:33:43 2016" VIVADOVERSION="2016.2"> +<EDKSYSTEM EDWVERSION="1.2" TIMESTAMP="Wed Aug 31 09:59:56 2016" VIVADOVERSION="2016.2"> <SYSTEMINFO ARCH="zynq" DEVICE="7z030" NAME="system_design" PACKAGE="ffg676" SPEEDGRADE="-2"/> @@ -558,7 +558,7 @@ </BUSINTERFACE> </BUSINTERFACES> </MODULE> - <MODULE FULLNAME="/fasec_hwtest_0" HWVERSION="2.1" INSTANCE="fasec_hwtest_0" IPTYPE="PERIPHERAL" IS_ENABLE="1" MODCLASS="PERIPHERAL" MODTYPE="fasec_hwtest" VLNV="user.org:user:fasec_hwtest:2.1"> + <MODULE FULLNAME="/fasec_hwtest_0" HWVERSION="2.2.1" INSTANCE="fasec_hwtest_0" IPTYPE="PERIPHERAL" IS_ENABLE="1" MODCLASS="PERIPHERAL" MODTYPE="fasec_hwtest" VLNV="user.org:user:fasec_hwtest:2.2.1"> <DOCUMENTS/> <ADDRESSBLOCKS> <ADDRESSBLOCK ACCESS="" INTERFACE="S00_AXI" NAME="S00_AXI_reg" RANGE="4096" USAGE=""/> @@ -566,6 +566,8 @@ <PARAMETERS> <PARAMETER NAME="g_S00_AXI_DATA_WIDTH" VALUE="32"/> <PARAMETER NAME="g_S00_AXI_ADDR_WIDTH" VALUE="32"/> + <PARAMETER NAME="g_FMC1" VALUE="EDA-0NONE"/> + <PARAMETER NAME="g_FMC2" VALUE="EDA-0NONE"/> <PARAMETER NAME="Component_Name" VALUE="system_design_fasec_hwtest_0_0"/> <PARAMETER NAME="EDK_IPTYPE" VALUE="PERIPHERAL"/> <PARAMETER NAME="C_BASEADDR" VALUE="0x43C20000"/> @@ -2490,6 +2492,16 @@ <CONNECTION INSTANCE="rst_processing_system7_0_100M" PORT="peripheral_aresetn"/> </CONNECTIONS> </PORT> + <PORT DIR="I" NAME="M02_ACLK" SIGIS="clk" SIGNAME="processing_system7_0_FCLK_CLK0"> + <CONNECTIONS> + <CONNECTION INSTANCE="processing_system7_0" PORT="FCLK_CLK0"/> + </CONNECTIONS> + </PORT> + <PORT DIR="I" LEFT="0" NAME="M02_ARESETN" RIGHT="0" SIGIS="rst" SIGNAME="rst_processing_system7_0_100M_peripheral_aresetn"> + <CONNECTIONS> + <CONNECTION INSTANCE="rst_processing_system7_0_100M" PORT="peripheral_aresetn"/> + </CONNECTIONS> + </PORT> <PORT DIR="I" NAME="S00_AXI_arvalid" SIGIS="undef" SIGNAME="processing_system7_0_M_AXI_GP0_ARVALID"> <CONNECTIONS> <CONNECTION INSTANCE="processing_system7_0" PORT="M_AXI_GP0_ARVALID"/> @@ -2870,24 +2882,24 @@ <CONNECTION INSTANCE="axi_wb_i2c_master_1" PORT="s00_axi_rready"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_ACLK" SIGIS="clk" SIGNAME="processing_system7_0_FCLK_CLK0"> + <PORT DIR="O" NAME="M02_AXI_rready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rready"> <CONNECTIONS> - <CONNECTION INSTANCE="processing_system7_0" PORT="FCLK_CLK0"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rready"/> </CONNECTIONS> </PORT> - <PORT DIR="I" LEFT="0" NAME="M02_ARESETN" RIGHT="0" SIGIS="rst" SIGNAME="rst_processing_system7_0_100M_peripheral_aresetn"> + <PORT DIR="I" NAME="M02_AXI_bvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bvalid"> <CONNECTIONS> - <CONNECTION INSTANCE="rst_processing_system7_0_100M" PORT="peripheral_aresetn"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bvalid"/> </CONNECTIONS> </PORT> - <PORT DIR="O" LEFT="31" NAME="M02_AXI_awaddr" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awaddr"> + <PORT DIR="O" NAME="M02_AXI_bready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bready"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awaddr"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bready"/> </CONNECTIONS> </PORT> - <PORT DIR="O" LEFT="2" NAME="M02_AXI_awprot" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awprot"> + <PORT DIR="I" NAME="M02_AXI_awready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awready"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awprot"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awready"/> </CONNECTIONS> </PORT> <PORT DIR="O" NAME="M02_AXI_awvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awvalid"> @@ -2895,9 +2907,9 @@ <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awvalid"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_AXI_awready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awready"> + <PORT DIR="O" LEFT="2" NAME="M02_AXI_awprot" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awprot"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awready"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awprot"/> </CONNECTIONS> </PORT> <PORT DIR="O" LEFT="31" NAME="M02_AXI_wdata" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wdata"> @@ -2905,44 +2917,44 @@ <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wdata"/> </CONNECTIONS> </PORT> - <PORT DIR="O" LEFT="3" NAME="M02_AXI_wstrb" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wstrb"> + <PORT DIR="I" LEFT="1" NAME="M02_AXI_rresp" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rresp"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wstrb"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rresp"/> </CONNECTIONS> </PORT> - <PORT DIR="O" NAME="M02_AXI_wvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wvalid"> + <PORT DIR="O" LEFT="2" NAME="M02_AXI_arprot" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_arprot"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wvalid"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_arprot"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_AXI_wready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wready"> + <PORT DIR="I" NAME="M02_AXI_rvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rvalid"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wready"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rvalid"/> </CONNECTIONS> </PORT> - <PORT DIR="I" LEFT="1" NAME="M02_AXI_bresp" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bresp"> + <PORT DIR="O" LEFT="31" NAME="M02_AXI_araddr" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_araddr"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bresp"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_araddr"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_AXI_bvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bvalid"> + <PORT DIR="O" LEFT="31" NAME="M02_AXI_awaddr" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_awaddr"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bvalid"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_awaddr"/> </CONNECTIONS> </PORT> - <PORT DIR="O" NAME="M02_AXI_bready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bready"> + <PORT DIR="I" NAME="M02_AXI_arready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_arready"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bready"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_arready"/> </CONNECTIONS> </PORT> - <PORT DIR="O" LEFT="31" NAME="M02_AXI_araddr" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_araddr"> + <PORT DIR="I" NAME="M02_AXI_wready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wready"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_araddr"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wready"/> </CONNECTIONS> </PORT> - <PORT DIR="O" LEFT="2" NAME="M02_AXI_arprot" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_arprot"> + <PORT DIR="O" NAME="M02_AXI_wvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wvalid"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_arprot"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wvalid"/> </CONNECTIONS> </PORT> <PORT DIR="O" NAME="M02_AXI_arvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_arvalid"> @@ -2950,29 +2962,19 @@ <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_arvalid"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_AXI_arready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_arready"> - <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_arready"/> - </CONNECTIONS> - </PORT> - <PORT DIR="I" LEFT="31" NAME="M02_AXI_rdata" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rdata"> - <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rdata"/> - </CONNECTIONS> - </PORT> - <PORT DIR="I" LEFT="1" NAME="M02_AXI_rresp" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rresp"> + <PORT DIR="O" LEFT="3" NAME="M02_AXI_wstrb" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_wstrb"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rresp"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_wstrb"/> </CONNECTIONS> </PORT> - <PORT DIR="I" NAME="M02_AXI_rvalid" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rvalid"> + <PORT DIR="I" LEFT="1" NAME="M02_AXI_bresp" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_bresp"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rvalid"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_bresp"/> </CONNECTIONS> </PORT> - <PORT DIR="O" NAME="M02_AXI_rready" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rready"> + <PORT DIR="I" LEFT="31" NAME="M02_AXI_rdata" RIGHT="0" SIGIS="undef" SIGNAME="fasec_hwtest_0_s00_axi_rdata"> <CONNECTIONS> - <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rready"/> + <CONNECTION INSTANCE="fasec_hwtest_0" PORT="s00_axi_rdata"/> </CONNECTIONS> </PORT> </PORTS> @@ -3067,25 +3069,25 @@ </BUSINTERFACE> <BUSINTERFACE BUSNAME="processing_system7_0_axi_periph_M02_AXI" DATAWIDTH="32" NAME="M02_AXI" TYPE="MASTER" VLNV="xilinx.com:interface:aximm:1.0"> <PORTMAPS> - <PORTMAP LOGICAL="AWADDR" PHYSICAL="M02_AXI_awaddr"/> - <PORTMAP LOGICAL="AWPROT" PHYSICAL="M02_AXI_awprot"/> - <PORTMAP LOGICAL="AWVALID" PHYSICAL="M02_AXI_awvalid"/> - <PORTMAP LOGICAL="AWREADY" PHYSICAL="M02_AXI_awready"/> - <PORTMAP LOGICAL="WDATA" PHYSICAL="M02_AXI_wdata"/> - <PORTMAP LOGICAL="WSTRB" PHYSICAL="M02_AXI_wstrb"/> - <PORTMAP LOGICAL="WVALID" PHYSICAL="M02_AXI_wvalid"/> - <PORTMAP LOGICAL="WREADY" PHYSICAL="M02_AXI_wready"/> - <PORTMAP LOGICAL="BRESP" PHYSICAL="M02_AXI_bresp"/> + <PORTMAP LOGICAL="RREADY" PHYSICAL="M02_AXI_rready"/> <PORTMAP LOGICAL="BVALID" PHYSICAL="M02_AXI_bvalid"/> <PORTMAP LOGICAL="BREADY" PHYSICAL="M02_AXI_bready"/> - <PORTMAP LOGICAL="ARADDR" PHYSICAL="M02_AXI_araddr"/> + <PORTMAP LOGICAL="AWREADY" PHYSICAL="M02_AXI_awready"/> + <PORTMAP LOGICAL="AWVALID" PHYSICAL="M02_AXI_awvalid"/> + <PORTMAP LOGICAL="AWPROT" PHYSICAL="M02_AXI_awprot"/> + <PORTMAP LOGICAL="WDATA" PHYSICAL="M02_AXI_wdata"/> + <PORTMAP LOGICAL="RRESP" PHYSICAL="M02_AXI_rresp"/> <PORTMAP LOGICAL="ARPROT" PHYSICAL="M02_AXI_arprot"/> - <PORTMAP LOGICAL="ARVALID" PHYSICAL="M02_AXI_arvalid"/> + <PORTMAP LOGICAL="RVALID" PHYSICAL="M02_AXI_rvalid"/> + <PORTMAP LOGICAL="ARADDR" PHYSICAL="M02_AXI_araddr"/> + <PORTMAP LOGICAL="AWADDR" PHYSICAL="M02_AXI_awaddr"/> <PORTMAP LOGICAL="ARREADY" PHYSICAL="M02_AXI_arready"/> + <PORTMAP LOGICAL="WREADY" PHYSICAL="M02_AXI_wready"/> + <PORTMAP LOGICAL="WVALID" PHYSICAL="M02_AXI_wvalid"/> + <PORTMAP LOGICAL="ARVALID" PHYSICAL="M02_AXI_arvalid"/> + <PORTMAP LOGICAL="WSTRB" PHYSICAL="M02_AXI_wstrb"/> + <PORTMAP LOGICAL="BRESP" PHYSICAL="M02_AXI_bresp"/> <PORTMAP LOGICAL="RDATA" PHYSICAL="M02_AXI_rdata"/> - <PORTMAP LOGICAL="RRESP" PHYSICAL="M02_AXI_rresp"/> - <PORTMAP LOGICAL="RVALID" PHYSICAL="M02_AXI_rvalid"/> - <PORTMAP LOGICAL="RREADY" PHYSICAL="M02_AXI_rready"/> </PORTMAPS> </BUSINTERFACE> </BUSINTERFACES> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design_bd.tcl b/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design_bd.tcl index 9e5a27c5..ac14a015 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design_bd.tcl +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/hw_handoff/system_design_bd.tcl @@ -188,7 +188,7 @@ proc create_root_design { parentCell } { set axi_wb_i2c_master_1 [ create_bd_cell -type ip -vlnv user.org:user:axi_wb_i2c_master:2.3 axi_wb_i2c_master_1 ] # Create instance: fasec_hwtest_0, and set properties - set fasec_hwtest_0 [ create_bd_cell -type ip -vlnv user.org:user:fasec_hwtest:2.1 fasec_hwtest_0 ] + set fasec_hwtest_0 [ create_bd_cell -type ip -vlnv user.org:user:fasec_hwtest:2.2.1 fasec_hwtest_0 ] # Create instance: processing_system7_0, and set properties set processing_system7_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0 ] @@ -1459,47 +1459,47 @@ preplace portBus FMC2_LA_N_b -pg 1 -y 70 -defaultsOSRD preplace portBus FMC2_LA_P_b -pg 1 -y 50 -defaultsOSRD preplace portBus led_col_pl_o -pg 1 -y 210 -defaultsOSRD preplace portBus FMC1_LA_N_b -pg 1 -y 110 -defaultsOSRD -preplace inst fasec_hwtest_0 -pg 1 -lvl 3 -y 150 -defaultsOSRD -preplace inst rst_processing_system7_0_100M -pg 1 -lvl 1 -y 630 -defaultsOSRD -preplace inst axi_wb_i2c_master_0 -pg 1 -lvl 3 -y 420 -defaultsOSRD -preplace inst axi_wb_i2c_master_1 -pg 1 -lvl 3 -y 540 -defaultsOSRD -preplace inst processing_system7_0_axi_periph -pg 1 -lvl 2 -y 520 -defaultsOSRD -preplace inst processing_system7_0 -pg 1 -lvl 1 -y 390 -defaultsOSRD -preplace netloc processing_system7_0_DDR 1 1 3 NJ 310 NJ 310 NJ -preplace netloc fasec_hwtest_0_FMC2_CLK0C2M_N_o 1 3 1 NJ -preplace netloc Net4 1 3 1 NJ -preplace netloc fasec_hwtest_0_led_line_pl_o 1 3 1 NJ -preplace netloc osc100_clk_i_1 1 0 3 NJ 80 NJ 80 NJ -preplace netloc FMC1_PRSNTM2C_n_i_1 1 0 3 NJ 160 NJ 160 NJ -preplace netloc Net5 1 3 1 NJ -preplace netloc processing_system7_0_axi_periph_M00_AXI 1 2 1 770 -preplace netloc Net6 1 3 1 NJ -preplace netloc processing_system7_0_M_AXI_GP0 1 1 1 420 -preplace netloc FMC2_PRSNTM2C_n_i_1 1 0 3 NJ 100 NJ 100 NJ -preplace netloc Net7 1 3 1 NJ -preplace netloc FMC2_CLK0M2C_N_i_1 1 0 3 NJ 140 NJ 140 NJ -preplace netloc FMC2_CLK0M2C_P_i_1 1 0 3 NJ 120 NJ 120 NJ -preplace netloc processing_system7_0_FCLK_RESET0_N 1 0 2 30 520 410 -preplace netloc fasec_hwtest_0_led_col_pl_o 1 3 1 NJ -preplace netloc fasec_hwtest_0_FMC2_CLK0C2M_P_o 1 3 1 NJ -preplace netloc processing_system7_0_axi_periph_M02_AXI 1 2 1 760 -preplace netloc fasec_hwtest_0_FMC1_CLK0C2M_P_o 1 3 1 NJ -preplace netloc rst_processing_system7_0_100M_peripheral_aresetn 1 1 2 440 680 790 -preplace netloc processing_system7_0_FIXED_IO 1 1 3 NJ 330 NJ 330 NJ -preplace netloc FMC1_CLK0M2C_P_i_1 1 0 3 NJ 180 NJ 180 NJ -preplace netloc fasec_hwtest_0_FMC1_CLK0C2M_N_o 1 3 1 NJ -preplace netloc FMC1_CLK0M2C_N_i_1 1 0 3 NJ 200 NJ 200 NJ -preplace netloc Net1 1 3 1 NJ -preplace netloc Net 1 3 1 NJ -preplace netloc rst_processing_system7_0_100M_interconnect_aresetn 1 1 1 420 -preplace netloc processing_system7_0_FCLK_CLK0 1 0 3 20 540 430 360 780 -preplace netloc Net2 1 3 1 NJ -preplace netloc processing_system7_0_FCLK_CLK1 1 1 2 NJ 60 N -preplace netloc pb_gp_i_1 1 0 3 NJ 220 NJ 220 NJ -preplace netloc processing_system7_0_axi_periph_M01_AXI 1 2 1 N -preplace netloc Net3 1 3 1 NJ -preplace netloc fasec_hwtest_0_led_line_en_pl_o 1 3 1 NJ -levelinfo -pg 1 -10 220 610 960 1140 -top 0 -bot 720 +preplace inst fasec_hwtest_0 -pg 1 -lvl 4 -y 150 -defaultsOSRD +preplace inst rst_processing_system7_0_100M -pg 1 -lvl 2 -y 630 -defaultsOSRD +preplace inst axi_wb_i2c_master_0 -pg 1 -lvl 4 -y 420 -defaultsOSRD +preplace inst axi_wb_i2c_master_1 -pg 1 -lvl 4 -y 540 -defaultsOSRD +preplace inst processing_system7_0_axi_periph -pg 1 -lvl 3 -y 520 -defaultsOSRD +preplace inst processing_system7_0 -pg 1 -lvl 2 -y 390 -defaultsOSRD +preplace netloc processing_system7_0_DDR 1 2 3 NJ 310 NJ 310 NJ +preplace netloc fasec_hwtest_0_FMC2_CLK0C2M_N_o 1 4 1 NJ +preplace netloc Net4 1 4 1 NJ +preplace netloc fasec_hwtest_0_led_line_pl_o 1 4 1 NJ +preplace netloc osc100_clk_i_1 1 0 4 NJ 80 NJ 80 NJ 80 NJ +preplace netloc FMC1_PRSNTM2C_n_i_1 1 0 4 NJ 160 NJ 160 NJ 160 NJ +preplace netloc Net5 1 4 1 NJ +preplace netloc processing_system7_0_axi_periph_M00_AXI 1 3 1 980 +preplace netloc Net6 1 4 1 NJ +preplace netloc processing_system7_0_M_AXI_GP0 1 2 1 640 +preplace netloc FMC2_PRSNTM2C_n_i_1 1 0 4 NJ 100 NJ 100 NJ 100 NJ +preplace netloc Net7 1 4 1 NJ +preplace netloc FMC2_CLK0M2C_N_i_1 1 0 4 NJ 140 NJ 140 NJ 140 NJ +preplace netloc FMC2_CLK0M2C_P_i_1 1 0 4 NJ 120 NJ 120 NJ 120 NJ +preplace netloc processing_system7_0_FCLK_RESET0_N 1 1 2 150 530 640 +preplace netloc fasec_hwtest_0_led_col_pl_o 1 4 1 NJ +preplace netloc fasec_hwtest_0_FMC2_CLK0C2M_P_o 1 4 1 NJ +preplace netloc processing_system7_0_axi_periph_M02_AXI 1 3 1 970 +preplace netloc fasec_hwtest_0_FMC1_CLK0C2M_P_o 1 4 1 NJ +preplace netloc rst_processing_system7_0_100M_peripheral_aresetn 1 2 2 660 360 1000 +preplace netloc processing_system7_0_FIXED_IO 1 2 3 NJ 330 NJ 330 NJ +preplace netloc FMC1_CLK0M2C_P_i_1 1 0 4 NJ 180 NJ 180 NJ 180 NJ +preplace netloc fasec_hwtest_0_FMC1_CLK0C2M_N_o 1 4 1 NJ +preplace netloc FMC1_CLK0M2C_N_i_1 1 0 4 NJ 200 NJ 200 NJ 200 NJ +preplace netloc Net1 1 4 1 NJ +preplace netloc Net 1 4 1 NJ +preplace netloc rst_processing_system7_0_100M_interconnect_aresetn 1 2 1 670 +preplace netloc processing_system7_0_FCLK_CLK0 1 1 3 140 520 650 350 990 +preplace netloc Net2 1 4 1 NJ +preplace netloc processing_system7_0_FCLK_CLK1 1 2 2 NJ 60 NJ +preplace netloc pb_gp_i_1 1 0 4 NJ 220 NJ 220 NJ 220 NJ +preplace netloc processing_system7_0_axi_periph_M01_AXI 1 3 1 N +preplace netloc Net3 1 4 1 NJ +preplace netloc fasec_hwtest_0_led_line_en_pl_o 1 4 1 NJ +levelinfo -pg 1 -40 120 440 820 1180 1360 -top -70 -bot 760 ", } diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/sim/system_design_auto_pc_0.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/sim/system_design_auto_pc_0.v new file mode 100644 index 00000000..65bb61c0 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/sim/system_design_auto_pc_0.v @@ -0,0 +1,348 @@ +// (c) Copyright 1995-2016 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:ip:axi_protocol_converter:2.1 +// IP Revision: 9 + +`timescale 1ns/1ps + +(* DowngradeIPIdentifiedWarnings = "yes" *) +module system_design_auto_pc_0 ( + aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awqos, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arqos, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready +); + +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLK CLK" *) +input wire aclk; +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RST RST" *) +input wire aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWID" *) +input wire [11 : 0] s_axi_awid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWADDR" *) +input wire [31 : 0] s_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLEN" *) +input wire [3 : 0] s_axi_awlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWSIZE" *) +input wire [2 : 0] s_axi_awsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWBURST" *) +input wire [1 : 0] s_axi_awburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLOCK" *) +input wire [1 : 0] s_axi_awlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWCACHE" *) +input wire [3 : 0] s_axi_awcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWPROT" *) +input wire [2 : 0] s_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWQOS" *) +input wire [3 : 0] s_axi_awqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWVALID" *) +input wire s_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWREADY" *) +output wire s_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WID" *) +input wire [11 : 0] s_axi_wid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WDATA" *) +input wire [31 : 0] s_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WSTRB" *) +input wire [3 : 0] s_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WLAST" *) +input wire s_axi_wlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WVALID" *) +input wire s_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WREADY" *) +output wire s_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BID" *) +output wire [11 : 0] s_axi_bid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BRESP" *) +output wire [1 : 0] s_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BVALID" *) +output wire s_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BREADY" *) +input wire s_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARID" *) +input wire [11 : 0] s_axi_arid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARADDR" *) +input wire [31 : 0] s_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLEN" *) +input wire [3 : 0] s_axi_arlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARSIZE" *) +input wire [2 : 0] s_axi_arsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARBURST" *) +input wire [1 : 0] s_axi_arburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLOCK" *) +input wire [1 : 0] s_axi_arlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARCACHE" *) +input wire [3 : 0] s_axi_arcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARPROT" *) +input wire [2 : 0] s_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARQOS" *) +input wire [3 : 0] s_axi_arqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARVALID" *) +input wire s_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARREADY" *) +output wire s_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RID" *) +output wire [11 : 0] s_axi_rid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RDATA" *) +output wire [31 : 0] s_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RRESP" *) +output wire [1 : 0] s_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RLAST" *) +output wire s_axi_rlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RVALID" *) +output wire s_axi_rvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RREADY" *) +input wire s_axi_rready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWADDR" *) +output wire [31 : 0] m_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWPROT" *) +output wire [2 : 0] m_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWVALID" *) +output wire m_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWREADY" *) +input wire m_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WDATA" *) +output wire [31 : 0] m_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WSTRB" *) +output wire [3 : 0] m_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WVALID" *) +output wire m_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WREADY" *) +input wire m_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BRESP" *) +input wire [1 : 0] m_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BVALID" *) +input wire m_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BREADY" *) +output wire m_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARADDR" *) +output wire [31 : 0] m_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARPROT" *) +output wire [2 : 0] m_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARVALID" *) +output wire m_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARREADY" *) +input wire m_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RDATA" *) +input wire [31 : 0] m_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RRESP" *) +input wire [1 : 0] m_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RVALID" *) +input wire m_axi_rvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RREADY" *) +output wire m_axi_rready; + + axi_protocol_converter_v2_1_9_axi_protocol_converter #( + .C_FAMILY("zynq"), + .C_M_AXI_PROTOCOL(2), + .C_S_AXI_PROTOCOL(1), + .C_IGNORE_ID(0), + .C_AXI_ID_WIDTH(12), + .C_AXI_ADDR_WIDTH(32), + .C_AXI_DATA_WIDTH(32), + .C_AXI_SUPPORTS_WRITE(1), + .C_AXI_SUPPORTS_READ(1), + .C_AXI_SUPPORTS_USER_SIGNALS(0), + .C_AXI_AWUSER_WIDTH(1), + .C_AXI_ARUSER_WIDTH(1), + .C_AXI_WUSER_WIDTH(1), + .C_AXI_RUSER_WIDTH(1), + .C_AXI_BUSER_WIDTH(1), + .C_TRANSLATION_MODE(2) + ) inst ( + .aclk(aclk), + .aresetn(aresetn), + .s_axi_awid(s_axi_awid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awlen(s_axi_awlen), + .s_axi_awsize(s_axi_awsize), + .s_axi_awburst(s_axi_awburst), + .s_axi_awlock(s_axi_awlock), + .s_axi_awcache(s_axi_awcache), + .s_axi_awprot(s_axi_awprot), + .s_axi_awregion(4'H0), + .s_axi_awqos(s_axi_awqos), + .s_axi_awuser(1'H0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_awready(s_axi_awready), + .s_axi_wid(s_axi_wid), + .s_axi_wdata(s_axi_wdata), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wlast(s_axi_wlast), + .s_axi_wuser(1'H0), + .s_axi_wvalid(s_axi_wvalid), + .s_axi_wready(s_axi_wready), + .s_axi_bid(s_axi_bid), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_bready(s_axi_bready), + .s_axi_arid(s_axi_arid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arlen(s_axi_arlen), + .s_axi_arsize(s_axi_arsize), + .s_axi_arburst(s_axi_arburst), + .s_axi_arlock(s_axi_arlock), + .s_axi_arcache(s_axi_arcache), + .s_axi_arprot(s_axi_arprot), + .s_axi_arregion(4'H0), + .s_axi_arqos(s_axi_arqos), + .s_axi_aruser(1'H0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_arready(s_axi_arready), + .s_axi_rid(s_axi_rid), + .s_axi_rdata(s_axi_rdata), + .s_axi_rresp(s_axi_rresp), + .s_axi_rlast(s_axi_rlast), + .s_axi_ruser(), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_rready(s_axi_rready), + .m_axi_awid(), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awlen(), + .m_axi_awsize(), + .m_axi_awburst(), + .m_axi_awlock(), + .m_axi_awcache(), + .m_axi_awprot(m_axi_awprot), + .m_axi_awregion(), + .m_axi_awqos(), + .m_axi_awuser(), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_awready(m_axi_awready), + .m_axi_wid(), + .m_axi_wdata(m_axi_wdata), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wlast(), + .m_axi_wuser(), + .m_axi_wvalid(m_axi_wvalid), + .m_axi_wready(m_axi_wready), + .m_axi_bid(12'H000), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser(1'H0), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bready(m_axi_bready), + .m_axi_arid(), + .m_axi_araddr(m_axi_araddr), + .m_axi_arlen(), + .m_axi_arsize(), + .m_axi_arburst(), + .m_axi_arlock(), + .m_axi_arcache(), + .m_axi_arprot(m_axi_arprot), + .m_axi_arregion(), + .m_axi_arqos(), + .m_axi_aruser(), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_arready(m_axi_arready), + .m_axi_rid(12'H000), + .m_axi_rdata(m_axi_rdata), + .m_axi_rresp(m_axi_rresp), + .m_axi_rlast(1'H1), + .m_axi_ruser(1'H0), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rready(m_axi_rready) + ); +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/synth/system_design_auto_pc_0.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/synth/system_design_auto_pc_0.v new file mode 100644 index 00000000..3b7e19ec --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/synth/system_design_auto_pc_0.v @@ -0,0 +1,350 @@ +// (c) Copyright 1995-2016 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. +// +// DO NOT MODIFY THIS FILE. + + +// IP VLNV: xilinx.com:ip:axi_protocol_converter:2.1 +// IP Revision: 9 + +(* X_CORE_INFO = "axi_protocol_converter_v2_1_9_axi_protocol_converter,Vivado 2016.2" *) +(* CHECK_LICENSE_TYPE = "system_design_auto_pc_0,axi_protocol_converter_v2_1_9_axi_protocol_converter,{}" *) +(* CORE_GENERATION_INFO = "system_design_auto_pc_0,axi_protocol_converter_v2_1_9_axi_protocol_converter,{x_ipProduct=Vivado 2016.2,x_ipVendor=xilinx.com,x_ipLibrary=ip,x_ipName=axi_protocol_converter,x_ipVersion=2.1,x_ipCoreRevision=9,x_ipLanguage=VHDL,x_ipSimLanguage=MIXED,C_FAMILY=zynq,C_M_AXI_PROTOCOL=2,C_S_AXI_PROTOCOL=1,C_IGNORE_ID=0,C_AXI_ID_WIDTH=12,C_AXI_ADDR_WIDTH=32,C_AXI_DATA_WIDTH=32,C_AXI_SUPPORTS_WRITE=1,C_AXI_SUPPORTS_READ=1,C_AXI_SUPPORTS_USER_SIGNALS=0,C_AXI_AWUSER_WIDTH=1,C_AXI_ARUSER_WIDTH=1,C_AXI_WUSER\ +_WIDTH=1,C_AXI_RUSER_WIDTH=1,C_AXI_BUSER_WIDTH=1,C_TRANSLATION_MODE=2}" *) +(* DowngradeIPIdentifiedWarnings = "yes" *) +module system_design_auto_pc_0 ( + aclk, + aresetn, + s_axi_awid, + s_axi_awaddr, + s_axi_awlen, + s_axi_awsize, + s_axi_awburst, + s_axi_awlock, + s_axi_awcache, + s_axi_awprot, + s_axi_awqos, + s_axi_awvalid, + s_axi_awready, + s_axi_wid, + s_axi_wdata, + s_axi_wstrb, + s_axi_wlast, + s_axi_wvalid, + s_axi_wready, + s_axi_bid, + s_axi_bresp, + s_axi_bvalid, + s_axi_bready, + s_axi_arid, + s_axi_araddr, + s_axi_arlen, + s_axi_arsize, + s_axi_arburst, + s_axi_arlock, + s_axi_arcache, + s_axi_arprot, + s_axi_arqos, + s_axi_arvalid, + s_axi_arready, + s_axi_rid, + s_axi_rdata, + s_axi_rresp, + s_axi_rlast, + s_axi_rvalid, + s_axi_rready, + m_axi_awaddr, + m_axi_awprot, + m_axi_awvalid, + m_axi_awready, + m_axi_wdata, + m_axi_wstrb, + m_axi_wvalid, + m_axi_wready, + m_axi_bresp, + m_axi_bvalid, + m_axi_bready, + m_axi_araddr, + m_axi_arprot, + m_axi_arvalid, + m_axi_arready, + m_axi_rdata, + m_axi_rresp, + m_axi_rvalid, + m_axi_rready +); + +(* X_INTERFACE_INFO = "xilinx.com:signal:clock:1.0 CLK CLK" *) +input wire aclk; +(* X_INTERFACE_INFO = "xilinx.com:signal:reset:1.0 RST RST" *) +input wire aresetn; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWID" *) +input wire [11 : 0] s_axi_awid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWADDR" *) +input wire [31 : 0] s_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLEN" *) +input wire [3 : 0] s_axi_awlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWSIZE" *) +input wire [2 : 0] s_axi_awsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWBURST" *) +input wire [1 : 0] s_axi_awburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWLOCK" *) +input wire [1 : 0] s_axi_awlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWCACHE" *) +input wire [3 : 0] s_axi_awcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWPROT" *) +input wire [2 : 0] s_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWQOS" *) +input wire [3 : 0] s_axi_awqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWVALID" *) +input wire s_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI AWREADY" *) +output wire s_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WID" *) +input wire [11 : 0] s_axi_wid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WDATA" *) +input wire [31 : 0] s_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WSTRB" *) +input wire [3 : 0] s_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WLAST" *) +input wire s_axi_wlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WVALID" *) +input wire s_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI WREADY" *) +output wire s_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BID" *) +output wire [11 : 0] s_axi_bid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BRESP" *) +output wire [1 : 0] s_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BVALID" *) +output wire s_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI BREADY" *) +input wire s_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARID" *) +input wire [11 : 0] s_axi_arid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARADDR" *) +input wire [31 : 0] s_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLEN" *) +input wire [3 : 0] s_axi_arlen; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARSIZE" *) +input wire [2 : 0] s_axi_arsize; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARBURST" *) +input wire [1 : 0] s_axi_arburst; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARLOCK" *) +input wire [1 : 0] s_axi_arlock; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARCACHE" *) +input wire [3 : 0] s_axi_arcache; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARPROT" *) +input wire [2 : 0] s_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARQOS" *) +input wire [3 : 0] s_axi_arqos; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARVALID" *) +input wire s_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI ARREADY" *) +output wire s_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RID" *) +output wire [11 : 0] s_axi_rid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RDATA" *) +output wire [31 : 0] s_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RRESP" *) +output wire [1 : 0] s_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RLAST" *) +output wire s_axi_rlast; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RVALID" *) +output wire s_axi_rvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 S_AXI RREADY" *) +input wire s_axi_rready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWADDR" *) +output wire [31 : 0] m_axi_awaddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWPROT" *) +output wire [2 : 0] m_axi_awprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWVALID" *) +output wire m_axi_awvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI AWREADY" *) +input wire m_axi_awready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WDATA" *) +output wire [31 : 0] m_axi_wdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WSTRB" *) +output wire [3 : 0] m_axi_wstrb; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WVALID" *) +output wire m_axi_wvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI WREADY" *) +input wire m_axi_wready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BRESP" *) +input wire [1 : 0] m_axi_bresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BVALID" *) +input wire m_axi_bvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI BREADY" *) +output wire m_axi_bready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARADDR" *) +output wire [31 : 0] m_axi_araddr; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARPROT" *) +output wire [2 : 0] m_axi_arprot; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARVALID" *) +output wire m_axi_arvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI ARREADY" *) +input wire m_axi_arready; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RDATA" *) +input wire [31 : 0] m_axi_rdata; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RRESP" *) +input wire [1 : 0] m_axi_rresp; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RVALID" *) +input wire m_axi_rvalid; +(* X_INTERFACE_INFO = "xilinx.com:interface:aximm:1.0 M_AXI RREADY" *) +output wire m_axi_rready; + + axi_protocol_converter_v2_1_9_axi_protocol_converter #( + .C_FAMILY("zynq"), + .C_M_AXI_PROTOCOL(2), + .C_S_AXI_PROTOCOL(1), + .C_IGNORE_ID(0), + .C_AXI_ID_WIDTH(12), + .C_AXI_ADDR_WIDTH(32), + .C_AXI_DATA_WIDTH(32), + .C_AXI_SUPPORTS_WRITE(1), + .C_AXI_SUPPORTS_READ(1), + .C_AXI_SUPPORTS_USER_SIGNALS(0), + .C_AXI_AWUSER_WIDTH(1), + .C_AXI_ARUSER_WIDTH(1), + .C_AXI_WUSER_WIDTH(1), + .C_AXI_RUSER_WIDTH(1), + .C_AXI_BUSER_WIDTH(1), + .C_TRANSLATION_MODE(2) + ) inst ( + .aclk(aclk), + .aresetn(aresetn), + .s_axi_awid(s_axi_awid), + .s_axi_awaddr(s_axi_awaddr), + .s_axi_awlen(s_axi_awlen), + .s_axi_awsize(s_axi_awsize), + .s_axi_awburst(s_axi_awburst), + .s_axi_awlock(s_axi_awlock), + .s_axi_awcache(s_axi_awcache), + .s_axi_awprot(s_axi_awprot), + .s_axi_awregion(4'H0), + .s_axi_awqos(s_axi_awqos), + .s_axi_awuser(1'H0), + .s_axi_awvalid(s_axi_awvalid), + .s_axi_awready(s_axi_awready), + .s_axi_wid(s_axi_wid), + .s_axi_wdata(s_axi_wdata), + .s_axi_wstrb(s_axi_wstrb), + .s_axi_wlast(s_axi_wlast), + .s_axi_wuser(1'H0), + .s_axi_wvalid(s_axi_wvalid), + .s_axi_wready(s_axi_wready), + .s_axi_bid(s_axi_bid), + .s_axi_bresp(s_axi_bresp), + .s_axi_buser(), + .s_axi_bvalid(s_axi_bvalid), + .s_axi_bready(s_axi_bready), + .s_axi_arid(s_axi_arid), + .s_axi_araddr(s_axi_araddr), + .s_axi_arlen(s_axi_arlen), + .s_axi_arsize(s_axi_arsize), + .s_axi_arburst(s_axi_arburst), + .s_axi_arlock(s_axi_arlock), + .s_axi_arcache(s_axi_arcache), + .s_axi_arprot(s_axi_arprot), + .s_axi_arregion(4'H0), + .s_axi_arqos(s_axi_arqos), + .s_axi_aruser(1'H0), + .s_axi_arvalid(s_axi_arvalid), + .s_axi_arready(s_axi_arready), + .s_axi_rid(s_axi_rid), + .s_axi_rdata(s_axi_rdata), + .s_axi_rresp(s_axi_rresp), + .s_axi_rlast(s_axi_rlast), + .s_axi_ruser(), + .s_axi_rvalid(s_axi_rvalid), + .s_axi_rready(s_axi_rready), + .m_axi_awid(), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_awlen(), + .m_axi_awsize(), + .m_axi_awburst(), + .m_axi_awlock(), + .m_axi_awcache(), + .m_axi_awprot(m_axi_awprot), + .m_axi_awregion(), + .m_axi_awqos(), + .m_axi_awuser(), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_awready(m_axi_awready), + .m_axi_wid(), + .m_axi_wdata(m_axi_wdata), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_wlast(), + .m_axi_wuser(), + .m_axi_wvalid(m_axi_wvalid), + .m_axi_wready(m_axi_wready), + .m_axi_bid(12'H000), + .m_axi_bresp(m_axi_bresp), + .m_axi_buser(1'H0), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bready(m_axi_bready), + .m_axi_arid(), + .m_axi_araddr(m_axi_araddr), + .m_axi_arlen(), + .m_axi_arsize(), + .m_axi_arburst(), + .m_axi_arlock(), + .m_axi_arcache(), + .m_axi_arprot(m_axi_arprot), + .m_axi_arregion(), + .m_axi_arqos(), + .m_axi_aruser(), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_arready(m_axi_arready), + .m_axi_rid(12'H000), + .m_axi_rdata(m_axi_rdata), + .m_axi_rresp(m_axi_rresp), + .m_axi_rlast(1'H1), + .m_axi_ruser(1'H0), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rready(m_axi_rready) + ); +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0.xml b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0.xml index def2e16c..96192d4f 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0.xml +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0.xml @@ -1025,6 +1025,195 @@ </spirit:busInterface> </spirit:busInterfaces> <spirit:model> + <spirit:views> + <spirit:view> + <spirit:name>xilinx_verilogsynthesis</spirit:name> + <spirit:displayName>Verilog Synthesis</spirit:displayName> + <spirit:envIdentifier>verilogSource:vivado.xilinx.com:synthesis</spirit:envIdentifier> + <spirit:language>verilog</spirit:language> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_generic_baseblocks_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_blk_mem_gen_8_3__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_fifo_generator_13_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_axi_data_fifo_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_axi_infrastructure_1_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_xilinx_com_ip_axi_register_slice_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesis_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>5e31c176</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>3af11c64</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>6</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_synthesisconstraints</spirit:name> + <spirit:displayName>Synthesis Constraints</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:synthesis.constraints</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_synthesisconstraints_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>5e31c176</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>3af11c64</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>6</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_verilogsynthesiswrapper</spirit:name> + <spirit:displayName>Verilog Synthesis Wrapper</spirit:displayName> + <spirit:envIdentifier>verilogSource:vivado.xilinx.com:synthesis.wrapper</spirit:envIdentifier> + <spirit:language>verilog</spirit:language> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsynthesiswrapper_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>5e31c176</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>3af11c64</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>6</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_verilogbehavioralsimulation</spirit:name> + <spirit:displayName>Verilog Simulation</spirit:displayName> + <spirit:envIdentifier>verilogSource:vivado.xilinx.com:simulation</spirit:envIdentifier> + <spirit:language>verilog</spirit:language> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_xilinx_com_ip_generic_baseblocks_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_xilinx_com_ip_fifo_generator_13_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_data_fifo_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_infrastructure_1_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_register_slice_2_1__ref_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogbehavioralsimulation_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>5e31c176</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>0d997f0d</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>6</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_verilogsimulationwrapper</spirit:name> + <spirit:displayName>Verilog Simulation Wrapper</spirit:displayName> + <spirit:envIdentifier>verilogSource:vivado.xilinx.com:simulation.wrapper</spirit:envIdentifier> + <spirit:language>verilog</spirit:language> + <spirit:fileSetRef> + <spirit:localName>xilinx_verilogsimulationwrapper_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>5e31c176</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>0d997f0d</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>6</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + </spirit:views> <spirit:ports> <spirit:port> <spirit:name>aclk</spirit:name> @@ -1033,7 +1222,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1045,7 +1235,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1061,7 +1252,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1087,7 +1279,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1113,7 +1306,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1139,7 +1333,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1165,7 +1360,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1191,7 +1387,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1217,7 +1414,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1243,7 +1441,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1269,7 +1468,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1295,7 +1495,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1321,7 +1522,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1343,7 +1545,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1365,7 +1568,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1388,7 +1592,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1414,7 +1619,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1440,7 +1646,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1462,7 +1669,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1488,7 +1696,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1510,7 +1719,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1532,7 +1742,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1555,7 +1766,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1578,7 +1790,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1601,7 +1814,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1620,7 +1834,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1639,7 +1854,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1665,7 +1881,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1691,7 +1908,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1717,7 +1935,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1743,7 +1962,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1769,7 +1989,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1795,7 +2016,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1821,7 +2043,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1847,7 +2070,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1873,7 +2097,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1899,7 +2124,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1925,7 +2151,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1947,7 +2174,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -1969,7 +2197,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -1992,7 +2221,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2015,7 +2245,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2038,7 +2269,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2057,7 +2289,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2080,7 +2313,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2099,7 +2333,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2118,7 +2353,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2144,7 +2380,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2167,7 +2404,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2190,7 +2428,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2213,7 +2452,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2236,7 +2476,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2259,7 +2500,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2282,7 +2524,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2305,7 +2548,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2328,7 +2572,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2351,7 +2596,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2374,7 +2620,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2393,7 +2640,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2412,7 +2660,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2438,7 +2687,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2461,7 +2711,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2484,7 +2735,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2503,7 +2755,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2526,7 +2779,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2545,7 +2799,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2564,7 +2819,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2590,7 +2846,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2616,7 +2873,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2642,7 +2900,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2664,7 +2923,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -2686,7 +2946,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2709,7 +2970,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2732,7 +2994,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2755,7 +3018,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2778,7 +3042,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2801,7 +3066,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2824,7 +3090,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2847,7 +3114,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2870,7 +3138,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2893,7 +3162,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2916,7 +3186,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2939,7 +3210,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2958,7 +3230,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -2977,7 +3250,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3003,7 +3277,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3029,7 +3304,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3055,7 +3331,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3077,7 +3354,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3103,7 +3381,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3125,7 +3404,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> <spirit:driver> @@ -3147,7 +3427,8 @@ <spirit:wireTypeDefs> <spirit:wireTypeDef> <spirit:typeName>wire</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogsynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_verilogbehavioralsimulation</spirit:viewNameRef> </spirit:wireTypeDef> </spirit:wireTypeDefs> </spirit:wire> @@ -3256,6 +3537,726 @@ <spirit:enumeration spirit:text="Unprotected: Master must be well-behaved">0</spirit:enumeration> </spirit:choice> </spirit:choices> + <spirit:fileSets> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_generic_baseblocks_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_and.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_latch_and.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_latch_or.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_or.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_command_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_mask_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_mask.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_mask_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_mask.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_mux_enc.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_mux.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_nto1_mux.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="generic_baseblocks" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="4e94621c"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_blk_mem_gen_8_3__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/blk_mem_gen_v8_3/hdl/blk_mem_gen_v8_3_vhsyn_rfs.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:logicalName>blk_mem_gen_v8_3_3</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/blk_mem_gen_v8_3/hdl/blk_mem_gen_v8_3.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:logicalName>blk_mem_gen_v8_3_3</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="blk_mem_gen" xilinx:version="8.3" xilinx:isGenerated="true" xilinx:checksum="4a61723d"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_fifo_generator_13_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/fifo_generator_v13_1/hdl/fifo_generator_v13_1_vhsyn_rfs.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:logicalName>fifo_generator_v13_1_1</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/fifo_generator_v13_1/hdl/fifo_generator_v13_1.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:logicalName>fifo_generator_v13_1_1</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="fifo_generator" xilinx:version="13.1" xilinx:isGenerated="true" xilinx:checksum="f2c57a43"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_axi_data_fifo_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_fifo_gen.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_reg_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_ndeep_srl.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axi_data_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_data_fifo" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="a5b90438"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_axi_infrastructure_1_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_0_header.vh</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:isIncludeFile>true</spirit:isIncludeFile> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_axi2vector.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_axic_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_vector2axi.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_infrastructure" xilinx:version="1.1" xilinx:isGenerated="true" xilinx:checksum="3d9dbc22"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_xilinx_com_ip_axi_register_slice_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_register_slice_v2_1/hdl/verilog/axi_register_slice_v2_1_axic_register_slice.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_register_slice_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_register_slice_v2_1/hdl/verilog/axi_register_slice_v2_1_axi_register_slice.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_register_slice_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_register_slice" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="da4b185e"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesis_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>system_design_auto_pc_0_ooc.xdc</spirit:name> + <spirit:userFileType>xdc</spirit:userFileType> + <spirit:userFileType>USED_IN_implementation</spirit:userFileType> + <spirit:userFileType>USED_IN_out_of_context</spirit:userFileType> + <spirit:userFileType>USED_IN_synthesis</spirit:userFileType> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_synthesisconstraints_view_fileset</spirit:name> + <spirit:file> + <spirit:name>system_design_auto_pc_0_ooc.xdc</spirit:name> + <spirit:userFileType>xdc</spirit:userFileType> + <spirit:userFileType>USED_IN_implementation</spirit:userFileType> + <spirit:userFileType>USED_IN_out_of_context</spirit:userFileType> + <spirit:userFileType>USED_IN_synthesis</spirit:userFileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsynthesiswrapper_view_fileset</spirit:name> + <spirit:file> + <spirit:name>synth/system_design_auto_pc_0.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_xilinx_com_ip_generic_baseblocks_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_and.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_latch_and.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_latch_or.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry_or.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_carry.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_command_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_mask_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_mask.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_mask_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_mask.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_sel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator_static.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_comparator.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_mux_enc.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_mux.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/generic_baseblocks_v2_1/hdl/verilog/generic_baseblocks_v2_1_nto1_mux.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>generic_baseblocks_v2_1_0</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="generic_baseblocks" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="4e94621c"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_xilinx_com_ip_fifo_generator_13_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/fifo_generator_v13_1/simulation/fifo_generator_vlog_beh.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>fifo_generator_v13_1_1</spirit:logicalName> + <spirit:exportedName>fifo_generator_vlog_beh</spirit:exportedName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/fifo_generator_v13_1/hdl/fifo_generator_v13_1_rfs.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>fifo_generator_v13_1_1</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/fifo_generator_v13_1/hdl/fifo_generator_v13_1_rfs.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>fifo_generator_v13_1_1</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="fifo_generator" xilinx:version="13.1" xilinx:isGenerated="true" xilinx:checksum="2bf3d781"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_data_fifo_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_fifo_gen.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axic_reg_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_ndeep_srl.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_data_fifo_v2_1/hdl/verilog/axi_data_fifo_v2_1_axi_data_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_data_fifo_v2_1_8</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_data_fifo" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="6a3f9594"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_infrastructure_1_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_0_header.vh</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:isIncludeFile>true</spirit:isIncludeFile> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_axi2vector.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_axic_srl_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_infrastructure_v1_1/hdl/verilog/axi_infrastructure_v1_1_vector2axi.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_infrastructure_v1_1_0</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_infrastructure" xilinx:version="1.1" xilinx:isGenerated="true" xilinx:checksum="3d9dbc22"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_xilinx_com_ip_axi_register_slice_2_1__ref_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_register_slice_v2_1/hdl/verilog/axi_register_slice_v2_1_axic_register_slice.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_register_slice_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_register_slice_v2_1/hdl/verilog/axi_register_slice_v2_1_axi_register_slice.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_register_slice_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:vendorExtensions> + <xilinx:subCoreRef> + <xilinx:componentRef xilinx:vendor="xilinx.com" xilinx:library="ip" xilinx:name="axi_register_slice" xilinx:version="2.1" xilinx:isGenerated="true" xilinx:checksum="da4b185e"> + <xilinx:mode xilinx:name="copy_mode"/> + </xilinx:componentRef> + </xilinx:subCoreRef> + </spirit:vendorExtensions> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogbehavioralsimulation_view_fileset</spirit:name> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_ipstatic</spirit:userFileType> + <spirit:logicalName>axi_protocol_converter_v2_1_9</spirit:logicalName> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_verilogsimulationwrapper_view_fileset</spirit:name> + <spirit:file> + <spirit:name>sim/system_design_auto_pc_0.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + </spirit:fileSet> + </spirit:fileSets> <spirit:description>The AXI Protocol Converter IP provides the facility to change the protocol of the connection between an AXI4/AXI3/AXI4-Lite master and slave. It will convert between AXI4->AXI3/AXI4-Lite, AXI3->AXI4/AXI4-Lite, AXI4-Lite->AXI4/AXI3.</spirit:description> <spirit:parameters> <spirit:parameter> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0_ooc.xdc b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0_ooc.xdc new file mode 100644 index 00000000..c12ca12c --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_auto_pc_0/system_design_auto_pc_0_ooc.xdc @@ -0,0 +1,57 @@ +# (c) Copyright 2012-2016 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. +# +# DO NOT MODIFY THIS FILE. +# ######################################################### +# +# This XDC is used only in OOC mode for synthesis, implementation +# +# ######################################################### + + +create_clock -period 10 -name aclk [get_ports aclk] + + diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xci b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xci deleted file mode 100644 index 61bd7085..00000000 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xci +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <spirit:vendor>xilinx.com</spirit:vendor> - <spirit:library>xci</spirit:library> - <spirit:name>unknown</spirit:name> - <spirit:version>1.0</spirit:version> - <spirit:componentInstances> - <spirit:componentInstance> - <spirit:instanceName>system_design_axi_wb_i2c_master_2_0</spirit:instanceName> - <spirit:componentRef spirit:vendor="user.org" spirit:library="user" spirit:name="axi_wb_i2c_master" spirit:version="2.3"/> - <spirit:configurableElementValues> - <spirit:configurableElementValue spirit:referenceId="ADDRBLOCK_BASE_ADDRESS.S00_AXI.S00_AXI_reg">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH">32</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH">32</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_S00_AXI_ADDR_WIDTH">32</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_S00_AXI_BASEADDR">0xFFFFFFFF</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_S00_AXI_DATA_WIDTH">32</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_S00_AXI_HIGHADDR">0x00000000</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">system_design_axi_wb_i2c_master_2_0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">zynq</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7z030</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">ffg676</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VHDL</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Integrator</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">6</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2016.2</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> - </spirit:configurableElementValues> - </spirit:componentInstance> - </spirit:componentInstances> -</spirit:design> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xml b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xml deleted file mode 100644 index a5cc7e56..00000000 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xml +++ /dev/null @@ -1,687 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<spirit:component xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <spirit:vendor>user.org</spirit:vendor> - <spirit:library>customized_ip</spirit:library> - <spirit:name>system_design_axi_wb_i2c_master_2_0</spirit:name> - <spirit:version>1.0</spirit:version> - <spirit:busInterfaces> - <spirit:busInterface> - <spirit:name>S00_AXI</spirit:name> - <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="aximm" spirit:version="1.0"/> - <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="aximm_rtl" spirit:version="1.0"/> - <spirit:slave> - <spirit:memoryMapRef spirit:memoryMapRef="S00_AXI"/> - </spirit:slave> - <spirit:portMaps> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>AWADDR</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_awaddr</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>AWPROT</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_awprot</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>AWVALID</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_awvalid</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>AWREADY</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_awready</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>WDATA</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_wdata</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>WSTRB</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_wstrb</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>WVALID</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_wvalid</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>WREADY</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_wready</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>BRESP</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_bresp</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>BVALID</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_bvalid</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>BREADY</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_bready</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>ARADDR</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_araddr</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>ARPROT</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_arprot</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>ARVALID</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_arvalid</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>ARREADY</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_arready</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>RDATA</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_rdata</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>RRESP</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_rresp</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>RVALID</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_rvalid</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>RREADY</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_rready</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - </spirit:portMaps> - <spirit:parameters> - <spirit:parameter> - <spirit:name>WIZ_DATA_WIDTH</spirit:name> - <spirit:value spirit:format="long" spirit:id="BUSIFPARAM_VALUE.S00_AXI.WIZ_DATA_WIDTH" spirit:choiceRef="choice_list_6fc15197">32</spirit:value> - </spirit:parameter> - <spirit:parameter> - <spirit:name>WIZ_NUM_REG</spirit:name> - <spirit:value spirit:format="long" spirit:id="BUSIFPARAM_VALUE.S00_AXI.WIZ_NUM_REG" spirit:minimum="4" spirit:maximum="512" spirit:rangeType="long">5</spirit:value> - </spirit:parameter> - <spirit:parameter> - <spirit:name>SUPPORTS_NARROW_BURST</spirit:name> - <spirit:value spirit:format="long" spirit:id="BUSIFPARAM_VALUE.S00_AXI.SUPPORTS_NARROW_BURST" spirit:choiceRef="choice_pairs_ce1226b1">0</spirit:value> - </spirit:parameter> - </spirit:parameters> - </spirit:busInterface> - <spirit:busInterface> - <spirit:name>S00_AXI_RST</spirit:name> - <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/> - <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/> - <spirit:slave/> - <spirit:portMaps> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>RST</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_aresetn</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - </spirit:portMaps> - <spirit:parameters> - <spirit:parameter> - <spirit:name>POLARITY</spirit:name> - <spirit:value spirit:id="BUSIFPARAM_VALUE.S00_AXI_RST.POLARITY">ACTIVE_LOW</spirit:value> - </spirit:parameter> - </spirit:parameters> - </spirit:busInterface> - <spirit:busInterface> - <spirit:name>S00_AXI_CLK</spirit:name> - <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> - <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> - <spirit:slave/> - <spirit:portMaps> - <spirit:portMap> - <spirit:logicalPort> - <spirit:name>CLK</spirit:name> - </spirit:logicalPort> - <spirit:physicalPort> - <spirit:name>s00_axi_aclk</spirit:name> - </spirit:physicalPort> - </spirit:portMap> - </spirit:portMaps> - <spirit:parameters> - <spirit:parameter> - <spirit:name>ASSOCIATED_BUSIF</spirit:name> - <spirit:value spirit:id="BUSIFPARAM_VALUE.S00_AXI_CLK.ASSOCIATED_BUSIF">S00_AXI</spirit:value> - </spirit:parameter> - <spirit:parameter> - <spirit:name>ASSOCIATED_RESET</spirit:name> - <spirit:value spirit:id="BUSIFPARAM_VALUE.S00_AXI_CLK.ASSOCIATED_RESET">s00_axi_aresetn</spirit:value> - </spirit:parameter> - </spirit:parameters> - </spirit:busInterface> - </spirit:busInterfaces> - <spirit:memoryMaps> - <spirit:memoryMap> - <spirit:name>S00_AXI</spirit:name> - <spirit:addressBlock> - <spirit:name>S00_AXI_reg</spirit:name> - <spirit:baseAddress spirit:format="long" spirit:resolve="user">0</spirit:baseAddress> - <spirit:range spirit:format="long">4096</spirit:range> - <spirit:width spirit:format="long">32</spirit:width> - <spirit:usage>register</spirit:usage> - <spirit:parameters> - <spirit:parameter> - <spirit:name>OFFSET_BASE_PARAM</spirit:name> - <spirit:value spirit:id="ADDRBLOCKPARAM_VALUE.S00_AXI.S00_AXI_REG.OFFSET_BASE_PARAM">C_S00_AXI_BASEADDR</spirit:value> - </spirit:parameter> - <spirit:parameter> - <spirit:name>OFFSET_HIGH_PARAM</spirit:name> - <spirit:value spirit:id="ADDRBLOCKPARAM_VALUE.S00_AXI.S00_AXI_REG.OFFSET_HIGH_PARAM">C_S00_AXI_HIGHADDR</spirit:value> - </spirit:parameter> - </spirit:parameters> - </spirit:addressBlock> - </spirit:memoryMap> - </spirit:memoryMaps> - <spirit:model> - <spirit:ports> - <spirit:port> - <spirit:name>i2c_scl_io</spirit:name> - <spirit:wire> - <spirit:direction>inout</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>i2c_sda_io</spirit:name> - <spirit:wire> - <spirit:direction>inout</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>axi_int_o</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_awaddr</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH')) - 1)">31</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_awprot</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long">2</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_awvalid</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_awready</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_wdata</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH')) - 1)">31</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_wstrb</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH')) / 8) - 1)">3</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_wvalid</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_wready</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_bresp</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long">1</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_bvalid</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_bready</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_araddr</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH')) - 1)">31</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_arprot</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long">2</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_arvalid</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_arready</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_rdata</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH')) - 1)">31</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_rresp</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:vector> - <spirit:left spirit:format="long">1</spirit:left> - <spirit:right spirit:format="long">0</spirit:right> - </spirit:vector> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic_vector</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_rvalid</spirit:name> - <spirit:wire> - <spirit:direction>out</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_rready</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_aclk</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - <spirit:port> - <spirit:name>s00_axi_aresetn</spirit:name> - <spirit:wire> - <spirit:direction>in</spirit:direction> - <spirit:wireTypeDefs> - <spirit:wireTypeDef> - <spirit:typeName>std_logic</spirit:typeName> - <spirit:viewNameRef>dummy_view</spirit:viewNameRef> - </spirit:wireTypeDef> - </spirit:wireTypeDefs> - </spirit:wire> - </spirit:port> - </spirit:ports> - <spirit:modelParameters> - <spirit:modelParameter xsi:type="spirit:nameValueTypeType" spirit:dataType="integer"> - <spirit:name>C_S00_AXI_DATA_WIDTH</spirit:name> - <spirit:displayName>C S00 AXI DATA WIDTH</spirit:displayName> - <spirit:description>Width of S_AXI data bus</spirit:description> - <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH" spirit:order="3" spirit:rangeType="long">32</spirit:value> - </spirit:modelParameter> - <spirit:modelParameter spirit:dataType="integer"> - <spirit:name>C_S00_AXI_ADDR_WIDTH</spirit:name> - <spirit:displayName>C S00 AXI ADDR WIDTH</spirit:displayName> - <spirit:description>Width of S_AXI address bus</spirit:description> - <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH" spirit:order="4" spirit:rangeType="long">32</spirit:value> - </spirit:modelParameter> - </spirit:modelParameters> - </spirit:model> - <spirit:choices> - <spirit:choice> - <spirit:name>choice_list_6fc15197</spirit:name> - <spirit:enumeration>32</spirit:enumeration> - </spirit:choice> - <spirit:choice> - <spirit:name>choice_pairs_ce1226b1</spirit:name> - <spirit:enumeration spirit:text="true">1</spirit:enumeration> - <spirit:enumeration spirit:text="false">0</spirit:enumeration> - </spirit:choice> - </spirit:choices> - <spirit:description>I2C bus master with an AXI4-Lite slave interface</spirit:description> - <spirit:parameters> - <spirit:parameter> - <spirit:name>C_S00_AXI_DATA_WIDTH</spirit:name> - <spirit:displayName>C S00 AXI DATA WIDTH</spirit:displayName> - <spirit:description>Width of S_AXI data bus</spirit:description> - <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.C_S00_AXI_DATA_WIDTH" spirit:choiceRef="choice_list_6fc15197" spirit:order="3">32</spirit:value> - <spirit:vendorExtensions> - <xilinx:parameterInfo> - <xilinx:enablement> - <xilinx:isEnabled xilinx:id="PARAM_ENABLEMENT.C_S00_AXI_DATA_WIDTH">false</xilinx:isEnabled> - </xilinx:enablement> - </xilinx:parameterInfo> - </spirit:vendorExtensions> - </spirit:parameter> - <spirit:parameter> - <spirit:name>C_S00_AXI_ADDR_WIDTH</spirit:name> - <spirit:displayName>C S00 AXI ADDR WIDTH</spirit:displayName> - <spirit:description>Width of S_AXI address bus</spirit:description> - <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.C_S00_AXI_ADDR_WIDTH" spirit:order="4" spirit:rangeType="long">32</spirit:value> - <spirit:vendorExtensions> - <xilinx:parameterInfo> - <xilinx:enablement> - <xilinx:isEnabled xilinx:id="PARAM_ENABLEMENT.C_S00_AXI_ADDR_WIDTH">false</xilinx:isEnabled> - </xilinx:enablement> - </xilinx:parameterInfo> - </spirit:vendorExtensions> - </spirit:parameter> - <spirit:parameter> - <spirit:name>C_S00_AXI_BASEADDR</spirit:name> - <spirit:displayName>C S00 AXI BASEADDR</spirit:displayName> - <spirit:value spirit:format="bitString" spirit:resolve="user" spirit:id="PARAM_VALUE.C_S00_AXI_BASEADDR" spirit:order="5" spirit:bitStringLength="32">0xFFFFFFFF</spirit:value> - <spirit:vendorExtensions> - <xilinx:parameterInfo> - <xilinx:enablement> - <xilinx:isEnabled xilinx:id="PARAM_ENABLEMENT.C_S00_AXI_BASEADDR">false</xilinx:isEnabled> - </xilinx:enablement> - </xilinx:parameterInfo> - </spirit:vendorExtensions> - </spirit:parameter> - <spirit:parameter> - <spirit:name>C_S00_AXI_HIGHADDR</spirit:name> - <spirit:displayName>C S00 AXI HIGHADDR</spirit:displayName> - <spirit:value spirit:format="bitString" spirit:resolve="user" spirit:id="PARAM_VALUE.C_S00_AXI_HIGHADDR" spirit:order="6" spirit:bitStringLength="32">0x00000000</spirit:value> - <spirit:vendorExtensions> - <xilinx:parameterInfo> - <xilinx:enablement> - <xilinx:isEnabled xilinx:id="PARAM_ENABLEMENT.C_S00_AXI_HIGHADDR">false</xilinx:isEnabled> - </xilinx:enablement> - </xilinx:parameterInfo> - </spirit:vendorExtensions> - </spirit:parameter> - <spirit:parameter> - <spirit:name>Component_Name</spirit:name> - <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">system_design_axi_wb_i2c_master_2_0</spirit:value> - </spirit:parameter> - </spirit:parameters> - <spirit:vendorExtensions> - <xilinx:coreExtensions> - <xilinx:displayName>axi_wb_i2c_master</xilinx:displayName> - <xilinx:coreRevision>6</xilinx:coreRevision> - <xilinx:tags> - <xilinx:tag xilinx:name="user.org:user:axi_wb_i2c_master:1.0_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/ip_repo/axi_wb_i2c_master_1.0</xilinx:tag> - <xilinx:tag xilinx:name="user.org:user:axi_wb_i2c_master:2.0_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/ip_repo/axi_wb_i2c_master_1.0</xilinx:tag> - <xilinx:tag xilinx:name="user.org:user:axi_wb_i2c_master:2.1_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/ip_repo/axi_wb_i2c_master_1.0</xilinx:tag> - <xilinx:tag xilinx:name="user.org:user:axi_wb_i2c_master:2.2_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/ip_repo/axi_wb_i2c_master_1.0</xilinx:tag> - <xilinx:tag xilinx:name="user.org:user:axi_wb_i2c_master:2.3_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/ip_repo/axi_wb_i2c_master_1.0</xilinx:tag> - </xilinx:tags> - </xilinx:coreExtensions> - <xilinx:packagingInfo> - <xilinx:xilinxVersion>2016.2</xilinx:xilinxVersion> - <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="8950a4ed"/> - <xilinx:checksum xilinx:scope="memoryMaps" xilinx:value="493665f4"/> - <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="160bdbcd"/> - <xilinx:checksum xilinx:scope="ports" xilinx:value="153ab480"/> - <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="f8fe2751"/> - <xilinx:checksum xilinx:scope="parameters" xilinx:value="8227b45c"/> - </xilinx:packagingInfo> - </spirit:vendorExtensions> -</spirit:component> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd index 37e69114..238a5f3f 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/sim/system_design_fasec_hwtest_0_0.vhd @@ -46,8 +46,8 @@ -- -- DO NOT MODIFY THIS FILE. --- IP VLNV: user.org:user:fasec_hwtest:2.1 --- IP Revision: 4 +-- IP VLNV: user.org:user:fasec_hwtest:2.2.1 +-- IP Revision: 6 LIBRARY ieee; USE ieee.std_logic_1164.ALL; @@ -105,7 +105,9 @@ ARCHITECTURE system_design_fasec_hwtest_0_0_arch OF system_design_fasec_hwtest_0 COMPONENT fasec_hwtest IS GENERIC ( g_S00_AXI_DATA_WIDTH : INTEGER; - g_S00_AXI_ADDR_WIDTH : INTEGER + g_S00_AXI_ADDR_WIDTH : INTEGER; + g_FMC1 : STRING; + g_FMC2 : STRING ); PORT ( ps_clk_i : IN STD_LOGIC; @@ -177,7 +179,9 @@ BEGIN U0 : fasec_hwtest GENERIC MAP ( g_S00_AXI_DATA_WIDTH => 32, - g_S00_AXI_ADDR_WIDTH => 32 + g_S00_AXI_ADDR_WIDTH => 32, + g_FMC1 => "EDA-0NONE", + g_FMC2 => "EDA-0NONE" ) PORT MAP ( ps_clk_i => ps_clk_i, diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/synth/system_design_fasec_hwtest_0_0.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/synth/system_design_fasec_hwtest_0_0.vhd index 895d605e..191f10c3 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/synth/system_design_fasec_hwtest_0_0.vhd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/synth/system_design_fasec_hwtest_0_0.vhd @@ -46,8 +46,8 @@ -- -- DO NOT MODIFY THIS FILE. --- IP VLNV: user.org:user:fasec_hwtest:2.1 --- IP Revision: 4 +-- IP VLNV: user.org:user:fasec_hwtest:2.2.1 +-- IP Revision: 6 LIBRARY ieee; USE ieee.std_logic_1164.ALL; @@ -105,7 +105,9 @@ ARCHITECTURE system_design_fasec_hwtest_0_0_arch OF system_design_fasec_hwtest_0 COMPONENT fasec_hwtest IS GENERIC ( g_S00_AXI_DATA_WIDTH : INTEGER; - g_S00_AXI_ADDR_WIDTH : INTEGER + g_S00_AXI_ADDR_WIDTH : INTEGER; + g_FMC1 : STRING; + g_FMC2 : STRING ); PORT ( ps_clk_i : IN STD_LOGIC; @@ -181,7 +183,9 @@ BEGIN U0 : fasec_hwtest GENERIC MAP ( g_S00_AXI_DATA_WIDTH => 32, - g_S00_AXI_ADDR_WIDTH => 32 + g_S00_AXI_ADDR_WIDTH => 32, + g_FMC1 => "EDA-0NONE", + g_FMC2 => "EDA-0NONE" ) PORT MAP ( ps_clk_i => ps_clk_i, diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci index fb86e537..1d2ec165 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci @@ -7,7 +7,7 @@ <spirit:componentInstances> <spirit:componentInstance> <spirit:instanceName>system_design_fasec_hwtest_0_0</spirit:instanceName> - <spirit:componentRef spirit:vendor="user.org" spirit:library="user" spirit:name="fasec_hwtest" spirit:version="2.1"/> + <spirit:componentRef spirit:vendor="user.org" spirit:library="user" spirit:name="fasec_hwtest" spirit:version="2.2.1"/> <spirit:configurableElementValues> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S00_AXI.ADDR_WIDTH">32</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S00_AXI.ARUSER_WIDTH">0</spirit:configurableElementValue> @@ -38,9 +38,13 @@ <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S00_AXI_ACLK.CLK_DOMAIN">system_design_processing_system7_0_0_FCLK_CLK0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S00_AXI_ACLK.FREQ_HZ">100000000</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S00_AXI_ACLK.PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.g_FMC1">EDA-0NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.g_FMC2">EDA-0NONE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.g_S00_AXI_ADDR_WIDTH">32</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.g_S00_AXI_DATA_WIDTH">32</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">system_design_fasec_hwtest_0_0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.g_FMC1">EDA-0NONE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.g_FMC2">EDA-0NONE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.g_S00_AXI_ADDR_WIDTH">32</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.g_S00_AXI_DATA_WIDTH">32</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">zynq</spirit:configurableElementValue> @@ -55,7 +59,7 @@ <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Integrator</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">6</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xml b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xml index a3158cab..252f949a 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xml +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xml @@ -358,7 +358,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>GENtimestamp</spirit:name> - <spirit:value>Tue Aug 30 09:30:58 UTC 2016</spirit:value> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>boundaryCRC</spirit:name> @@ -370,7 +370,7 @@ </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRC</spirit:name> - <spirit:value>3ba46d1e</spirit:value> + <spirit:value>fe233d4e</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRCversion</spirit:name> @@ -389,7 +389,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>GENtimestamp</spirit:name> - <spirit:value>Tue Aug 30 09:30:58 UTC 2016</spirit:value> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>boundaryCRC</spirit:name> @@ -401,7 +401,7 @@ </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRC</spirit:name> - <spirit:value>3ba46d1e</spirit:value> + <spirit:value>fe233d4e</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRCversion</spirit:name> @@ -419,7 +419,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>GENtimestamp</spirit:name> - <spirit:value>Tue Aug 30 09:30:58 UTC 2016</spirit:value> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>boundaryCRC</spirit:name> @@ -431,7 +431,7 @@ </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRC</spirit:name> - <spirit:value>6a48e6e8</spirit:value> + <spirit:value>f3f4431d</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRCversion</spirit:name> @@ -450,7 +450,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>GENtimestamp</spirit:name> - <spirit:value>Tue Aug 30 09:30:58 UTC 2016</spirit:value> + <spirit:value>Wed Aug 31 07:59:56 UTC 2016</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>boundaryCRC</spirit:name> @@ -462,7 +462,7 @@ </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRC</spirit:name> - <spirit:value>6a48e6e8</spirit:value> + <spirit:value>f3f4431d</spirit:value> </spirit:parameter> <spirit:parameter> <spirit:name>customizationCRCversion</spirit:name> @@ -1073,6 +1073,16 @@ <spirit:displayName>G S00 Axi Addr Width</spirit:displayName> <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.g_S00_AXI_ADDR_WIDTH">32</spirit:value> </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="String"> + <spirit:name>g_FMC1</spirit:name> + <spirit:displayName>G Fmc1</spirit:displayName> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.g_FMC1">EDA-0NONE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="String"> + <spirit:name>g_FMC2</spirit:name> + <spirit:displayName>G Fmc2</spirit:displayName> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.g_FMC2">EDA-0NONE</spirit:value> + </spirit:modelParameter> </spirit:modelParameters> </spirit:model> <spirit:choices> @@ -1090,6 +1100,12 @@ <spirit:enumeration>ACTIVE_HIGH</spirit:enumeration> <spirit:enumeration>ACTIVE_LOW</spirit:enumeration> </spirit:choice> + <spirit:choice> + <spirit:name>choice_list_b4155c3d</spirit:name> + <spirit:enumeration>EDA-02327</spirit:enumeration> + <spirit:enumeration>EDA-03287</spirit:enumeration> + <spirit:enumeration>EDA-0NONE</spirit:enumeration> + </spirit:choice> </spirit:choices> <spirit:fileSets> <spirit:fileSet> @@ -1105,13 +1121,17 @@ <spirit:fileType>vhdlSource</spirit:fileType> <spirit:logicalName>xil_pvtmisc</spirit:logicalName> </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + </spirit:file> <spirit:file> <spirit:name>../../ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd</spirit:name> <spirit:fileType>vhdlSource</spirit:fileType> <spirit:logicalName>xil_pvtmisc</spirit:logicalName> </spirit:file> <spirit:file> - <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd</spirit:name> + <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd</spirit:name> <spirit:fileType>vhdlSource</spirit:fileType> </spirit:file> </spirit:fileSet> @@ -1130,13 +1150,17 @@ <spirit:fileType>vhdlSource</spirit:fileType> <spirit:logicalName>xil_pvtmisc</spirit:logicalName> </spirit:file> + <spirit:file> + <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + </spirit:file> <spirit:file> <spirit:name>../../ipshared/user.org/libraries/xil_pvtmisc/axi4lite_slave.vhd</spirit:name> <spirit:fileType>vhdlSource</spirit:fileType> <spirit:logicalName>xil_pvtmisc</spirit:logicalName> </spirit:file> <spirit:file> - <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd</spirit:name> + <spirit:name>../../ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd</spirit:name> <spirit:fileType>vhdlSource</spirit:fileType> </spirit:file> </spirit:fileSet> @@ -1165,15 +1189,27 @@ <spirit:displayName>G S00 Axi Addr Width</spirit:displayName> <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.g_S00_AXI_ADDR_WIDTH" spirit:choiceRef="choice_list_6fc15197">32</spirit:value> </spirit:parameter> + <spirit:parameter> + <spirit:name>g_FMC1</spirit:name> + <spirit:displayName>g_FMC1</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.g_FMC1" spirit:choiceRef="choice_list_b4155c3d">EDA-0NONE</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>g_FMC2</spirit:name> + <spirit:displayName>g_FMC2</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.g_FMC2" spirit:choiceRef="choice_list_b4155c3d">EDA-0NONE</spirit:value> + </spirit:parameter> </spirit:parameters> <spirit:vendorExtensions> <xilinx:coreExtensions> <xilinx:displayName>fasec_hwtest</xilinx:displayName> - <xilinx:coreRevision>4</xilinx:coreRevision> + <xilinx:coreRevision>6</xilinx:coreRevision> <xilinx:tags> <xilinx:tag xilinx:name="user.org:user:fasec_hwtest:1.0_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/cores/FASEC_hwtest</xilinx:tag> <xilinx:tag xilinx:name="user.org:user:fasec_hwtest:2.0_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/cores/FASEC_hwtest</xilinx:tag> <xilinx:tag xilinx:name="user.org:user:fasec_hwtest:2.1_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/cores/FASEC_hwtest</xilinx:tag> + <xilinx:tag xilinx:name="user.org:user:fasec_hwtest:2.2_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/cores/FASEC_hwtest</xilinx:tag> + <xilinx:tag xilinx:name="user.org:user:fasec_hwtest:2.2.1_ARCHIVE_LOCATION">/home/pieter/Development/projects/FIDS/cores/FASEC_hwtest</xilinx:tag> </xilinx:tags> <xilinx:configElementInfos> <xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S00_AXI.ADDR_WIDTH" xilinx:valueSource="user"/> @@ -1209,10 +1245,10 @@ <xilinx:xilinxVersion>2016.2</xilinx:xilinxVersion> <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="92ed6682"/> <xilinx:checksum xilinx:scope="memoryMaps" xilinx:value="6bf44be4"/> - <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="d44e889c"/> - <xilinx:checksum xilinx:scope="ports" xilinx:value="693db0ec"/> - <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="f29b16a8"/> - <xilinx:checksum xilinx:scope="parameters" xilinx:value="98a98685"/> + <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="b489c9d8"/> + <xilinx:checksum xilinx:scope="ports" xilinx:value="1b865274"/> + <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="3e4f0bad"/> + <xilinx:checksum xilinx:scope="parameters" xilinx:value="749c78e8"/> </xilinx:packagingInfo> </spirit:vendorExtensions> </spirit:component> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd deleted file mode 100755 index 7bc14c03..00000000 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd +++ /dev/null @@ -1,373 +0,0 @@ ----------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 07/29/2016 07:05:52 PM --- Design Name: --- Module Name: top_mod - rtl --- Project Name: --- Target Devices: --- Tool Versions: --- Description: --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- ----------------------------------------------------------------------------------- - - -library IEEE; -use IEEE.STD_LOGIC_1164.all; -use IEEE.NUMERIC_STD.all; - -library xil_pvtmisc; -use xil_pvtmisc.myPackage.all; - -entity fasec_hwtest is - generic( - -- Parameters of Axi Slave Bus Interface S00_AXI - g_S00_AXI_DATA_WIDTH : integer := 32; - g_S00_AXI_ADDR_WIDTH : integer := 32); - port ( - ps_clk_i : in std_logic; -- clock from Zynq PS (100 MHz) - osc100_clk_i : in std_logic; -- clock from oscillator (100 MHz) - -- FMC 1-2 user IO - FMC2_LA_P_b : inout std_logic_vector(33 downto 0); - FMC2_LA_N_b : inout std_logic_vector(33 downto 0); - FMC1_LA_P_b : inout std_logic_vector(33 downto 0); - FMC1_LA_N_b : inout std_logic_vector(33 downto 0); - -- FMC misc IO - FMC2_PRSNTM2C_n_i : in std_logic; - FMC2_CLK0M2C_P_i : in std_logic; - FMC2_CLK0M2C_N_i : in std_logic; - FMC2_CLK0C2M_P_o : out std_logic; - FMC2_CLK0C2M_N_o : out std_logic; - FMC1_PRSNTM2C_n_i : in std_logic; - FMC1_CLK0M2C_P_i : in std_logic; - FMC1_CLK0M2C_N_i : in std_logic; - FMC1_CLK0C2M_P_o : out std_logic; - FMC1_CLK0C2M_N_o : Out std_logic; - -- FASEC signals - pb_gp_n_i : in std_logic; - led_col_pl_o : out std_logic_vector (3 downto 0); -- anode green / cathode red - led_line_en_pl_o : out std_logic; -- output 1B Hi-Z when asserted - led_line_pl_o : out std_logic; -- output 1B: cathode green / anode red - -- AXI4-LITE slave interface - s00_axi_aclk : in std_logic; - s00_axi_aresetn : in std_logic; - s00_axi_awaddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); - s00_axi_awprot : in std_logic_vector(2 downto 0); - s00_axi_awvalid : in std_logic; - s00_axi_awready : out std_logic; - s00_axi_wdata : in std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - s00_axi_wstrb : in std_logic_vector((g_S00_AXI_DATA_WIDTH/8)-1 downto 0); - s00_axi_wvalid : in std_logic; - s00_axi_wready : out std_logic; - s00_axi_bresp : out std_logic_vector(1 downto 0); - s00_axi_bvalid : out std_logic; - s00_axi_bready : in std_logic; - s00_axi_araddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); - s00_axi_arprot : in std_logic_vector(2 downto 0); - s00_axi_arvalid : in std_logic; - s00_axi_arready : out std_logic; - s00_axi_rdata : out std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - s00_axi_rresp : out std_logic_vector(1 downto 0); - s00_axi_rvalid : out std_logic; - s00_axi_rready : in std_logic); -end fasec_hwtest; - -architecture rtl of fasec_hwtest is - constant c_FLASH : positive := 40000000; -- 400 ms @ 100 MHz - constant c_SLAVE_MAXREAD : positive := 8; - constant c_SLAVE_MAXWRITE : positive := 8; - constant c_SLAVE_MAXMEM : positive := c_SLAVE_MAXREAD + c_SLAVE_MAXWRITE; - -- AXI slave signals - signal s_sAxi_dataR : t_axiMemory(0 to c_SLAVE_MAXREAD-1) := (others => (others => '0')); - signal s_sAxi_dataW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); -- also put to zero in the slave AXI module (cuz buffer) - signal s_sAxi_dataResetW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); - -- FMC1-2 signals - signal s_tick : std_logic; -begin - --============================================================================= - -- FMC1 user lines - clock in for AXI register read by Zynq PS - --============================================================================= - p_reg_fmc1 : process(s00_axi_aclk) - variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - begin - if rising_edge(s00_axi_aclk) then - -- for testing purposes, read-in FMC1 inputs - -- 68 lines, hence doesn't fit into 2x32-bit AXI registers - s_sAxi_dataR(0) <= unsigned(v_fmc_reg0(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(1) <= unsigned(v_fmc_reg1(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(2) <= unsigned(v_fmc_reg2(g_S00_AXI_DATA_WIDTH-1 downto 0)); - -- single user lines, auto-gen from .ods file - -- ** word 1 - v_fmc_reg0(0) := FMC1_LA_N_b(17); - v_fmc_reg0(1) := FMC1_LA_N_b(19); - v_fmc_reg0(2) := FMC1_LA_P_b(19); - v_fmc_reg0(3) := FMC1_LA_P_b(20); - v_fmc_reg0(4) := FMC1_LA_N_b(20); - v_fmc_reg0(5) := FMC1_LA_N_b(14); - v_fmc_reg0(6) := FMC1_LA_P_b(14); - v_fmc_reg0(7) := FMC1_LA_P_b(17); - v_fmc_reg0(8) := FMC1_LA_N_b(13); - v_fmc_reg0(9) := FMC1_LA_P_b(13); - v_fmc_reg0(10) := FMC1_LA_P_b(15); - v_fmc_reg0(11) := FMC1_LA_N_b(15); - v_fmc_reg0(12) := FMC1_LA_P_b(16); - v_fmc_reg0(13) := FMC1_LA_N_b(32); - v_fmc_reg0(14) := FMC1_LA_P_b(33); - v_fmc_reg0(15) := FMC1_LA_N_b(33); - v_fmc_reg0(16) := FMC1_LA_P_b(7); - v_fmc_reg0(17) := FMC1_LA_P_b(5); - v_fmc_reg0(18) := FMC1_LA_N_b(7); - v_fmc_reg0(19) := FMC1_LA_N_b(8); - v_fmc_reg0(20) := FMC1_LA_P_b(8); - v_fmc_reg0(21) := FMC1_LA_N_b(6); - v_fmc_reg0(22) := FMC1_LA_P_b(12); - v_fmc_reg0(23) := FMC1_LA_N_b(9); - v_fmc_reg0(24) := FMC1_LA_N_b(16); - v_fmc_reg0(25) := FMC1_LA_N_b(12); - v_fmc_reg0(26) := FMC1_LA_P_b(11); - v_fmc_reg0(27) := FMC1_LA_N_b(10); - v_fmc_reg0(28) := FMC1_LA_N_b(11); - v_fmc_reg0(29) := FMC1_LA_P_b(10); - v_fmc_reg0(30) := FMC1_LA_P_b(9); - v_fmc_reg0(31) := FMC1_LA_N_b(5); - -- ** word 2 - v_fmc_reg1(0) := FMC1_LA_P_b(27); - v_fmc_reg1(1) := FMC1_LA_N_b(23); - v_fmc_reg1(2) := FMC1_LA_P_b(22); - v_fmc_reg1(3) := FMC1_LA_N_b(22); - v_fmc_reg1(4) := FMC1_LA_N_b(18); - v_fmc_reg1(5) := FMC1_LA_P_b(18); - v_fmc_reg1(6) := FMC1_LA_P_b(23); - v_fmc_reg1(7) := FMC1_LA_P_b(21); - v_fmc_reg1(8) := FMC1_LA_P_b(24); - v_fmc_reg1(9) := FMC1_LA_N_b(25); - -- v_fmc_reg1(10) := TCK (High-Z) - v_fmc_reg1(11) := FMC1_LA_P_b(25); - v_fmc_reg1(12) := FMC1_LA_N_b(27); - v_fmc_reg1(13) := FMC1_LA_P_b(26); - v_fmc_reg1(14) := FMC1_LA_N_b(21); - v_fmc_reg1(15) := FMC1_LA_N_b(26); - v_fmc_reg1(16) := FMC1_LA_P_b(32); - v_fmc_reg1(17) := FMC1_LA_N_b(30); - -- v_fmc_reg1(19) : GA1 (set at High-Z!) - v_fmc_reg1(19) := FMC1_LA_N_b(31); - v_fmc_reg1(20) := FMC1_LA_P_b(30); - -- v_fmc_reg1(21) : GA0 (set at High-Z!) - -- v_fmc_reg1(22) := TRST (pull-up) - -- v_fmc_reg1(23) := TMS (High-Z) - v_fmc_reg1(24) := FMC1_LA_P_b(29); - v_fmc_reg1(25) := FMC1_LA_N_b(29); - -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') - v_fmc_reg1(27) := FMC1_LA_P_b(31); - v_fmc_reg1(28) := FMC1_LA_N_b(28); - v_fmc_reg1(29) := FMC1_LA_P_b(28); - -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') - v_fmc_reg1(31) := FMC1_LA_N_b(24); - -- ** word 3 (if not stated -> don't care X) - v_fmc_reg2(0) := FMC1_CLK0M2C_N_i; - v_fmc_reg2(1) := FMC1_CLK0M2C_P_i; - v_fmc_reg2(2) := FMC1_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! - -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) - v_fmc_reg2(18) := FMC1_LA_P_b(1); - v_fmc_reg2(19) := FMC1_LA_P_b(6); - v_fmc_reg2(20) := FMC1_LA_N_b(1); - v_fmc_reg2(21) := FMC1_LA_N_b(3); - v_fmc_reg2(22) := FMC1_LA_P_b(4); - v_fmc_reg2(23) := FMC1_LA_P_b(3); - -- v_fmc_reg2(24) : VREF_M2C (set at 1!) - v_fmc_reg2(27) := FMC1_LA_P_b(0); - v_fmc_reg2(29) := FMC1_LA_N_b(0); - v_fmc_reg2(31) := FMC1_LA_N_b(4); - end if; - end process p_reg_fmc1; - - --============================================================================= - -- FMC2 user lines - clock in for AXI register read by Zynq PS - --============================================================================= - p_reg_fmc2 : process(s00_axi_aclk) - variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); - begin - if rising_edge(s00_axi_aclk) then - -- for testing purposes, read-in FMC1 inputs - -- 68 lines, hence doesn't fit into 2x32-bit AXI registers - s_sAxi_dataR(4) <= unsigned(v_fmc_reg0(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(5) <= unsigned(v_fmc_reg1(g_S00_AXI_DATA_WIDTH-1 downto 0)); - s_sAxi_dataR(6) <= unsigned(v_fmc_reg2(g_S00_AXI_DATA_WIDTH-1 downto 0)); - -- single user lines, auto-gen from .ods file - -- ** word 1 - v_fmc_reg0(0) := FMC2_LA_N_b(17); - v_fmc_reg0(1) := FMC2_LA_N_b(19); - v_fmc_reg0(2) := FMC2_LA_P_b(19); - v_fmc_reg0(3) := FMC2_LA_P_b(20); - v_fmc_reg0(4) := FMC2_LA_N_b(20); - v_fmc_reg0(5) := FMC2_LA_N_b(14); - v_fmc_reg0(6) := FMC2_LA_P_b(14); - v_fmc_reg0(7) := FMC2_LA_P_b(17); - v_fmc_reg0(8) := FMC2_LA_N_b(13); - v_fmc_reg0(9) := FMC2_LA_P_b(13); - v_fmc_reg0(10) := FMC2_LA_P_b(15); - v_fmc_reg0(11) := FMC2_LA_N_b(15); - v_fmc_reg0(12) := FMC2_LA_P_b(16); - v_fmc_reg0(13) := FMC2_LA_N_b(32); - v_fmc_reg0(14) := FMC2_LA_P_b(33); - v_fmc_reg0(15) := FMC2_LA_N_b(33); - v_fmc_reg0(16) := FMC2_LA_P_b(7); - v_fmc_reg0(17) := FMC2_LA_P_b(5); - v_fmc_reg0(18) := FMC2_LA_N_b(7); - v_fmc_reg0(19) := FMC2_LA_N_b(8); - v_fmc_reg0(20) := FMC2_LA_P_b(8); - v_fmc_reg0(21) := FMC2_LA_N_b(6); - v_fmc_reg0(22) := FMC2_LA_P_b(12); - v_fmc_reg0(23) := FMC2_LA_N_b(9); - v_fmc_reg0(24) := FMC2_LA_N_b(16); - v_fmc_reg0(25) := FMC2_LA_N_b(12); - v_fmc_reg0(26) := FMC2_LA_P_b(11); - v_fmc_reg0(27) := FMC2_LA_N_b(10); - v_fmc_reg0(28) := FMC2_LA_N_b(11); - v_fmc_reg0(29) := FMC2_LA_P_b(10); - v_fmc_reg0(30) := FMC2_LA_P_b(9); - v_fmc_reg0(31) := FMC2_LA_N_b(5); - -- ** word 2 - v_fmc_reg1(0) := FMC2_LA_P_b(27); - v_fmc_reg1(1) := FMC2_LA_N_b(23); - v_fmc_reg1(2) := FMC2_LA_P_b(22); - v_fmc_reg1(3) := FMC2_LA_N_b(22); - v_fmc_reg1(4) := FMC2_LA_N_b(18); - v_fmc_reg1(5) := FMC2_LA_P_b(18); - v_fmc_reg1(6) := FMC2_LA_P_b(23); - v_fmc_reg1(7) := FMC2_LA_P_b(21); - v_fmc_reg1(8) := FMC2_LA_P_b(24); - v_fmc_reg1(9) := FMC2_LA_N_b(25); - -- v_fmc_reg1(10) := TCK (High-Z) - v_fmc_reg1(11) := FMC2_LA_P_b(25); - v_fmc_reg1(12) := FMC2_LA_N_b(27); - v_fmc_reg1(13) := FMC2_LA_P_b(26); - v_fmc_reg1(14) := FMC2_LA_N_b(21); - v_fmc_reg1(15) := FMC2_LA_N_b(26); - v_fmc_reg1(16) := FMC2_LA_P_b(32); - v_fmc_reg1(17) := FMC2_LA_N_b(30); - -- v_fmc_reg1(19) : GA1 (set at High-Z!) - v_fmc_reg1(19) := FMC2_LA_N_b(31); - v_fmc_reg1(20) := FMC2_LA_P_b(30); - -- v_fmc_reg1(21) : GA0 (set at High-Z!) - -- v_fmc_reg1(22) := TRST (pull-up) - -- v_fmc_reg1(23) := TMS (High-Z) - v_fmc_reg1(24) := FMC2_LA_P_b(29); - v_fmc_reg1(25) := FMC2_LA_N_b(29); - -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') - v_fmc_reg1(27) := FMC2_LA_P_b(31); - v_fmc_reg1(28) := FMC2_LA_N_b(28); - v_fmc_reg1(29) := FMC2_LA_P_b(28); - -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') - v_fmc_reg1(31) := FMC2_LA_N_b(24); - -- ** word 3 (if not stated -> don't care X) - v_fmc_reg2(0) := FMC1_CLK0M2C_N_i; - v_fmc_reg2(1) := FMC1_CLK0M2C_P_i; - v_fmc_reg2(2) := FMC1_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! - -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) - v_fmc_reg2(18) := FMC2_LA_P_b(1); - v_fmc_reg2(19) := FMC2_LA_P_b(6); - v_fmc_reg2(20) := FMC2_LA_N_b(1); - v_fmc_reg2(21) := FMC2_LA_N_b(3); - v_fmc_reg2(22) := FMC2_LA_P_b(4); - v_fmc_reg2(23) := FMC2_LA_P_b(3); - -- v_fmc_reg2(24) : VREF_M2C (set at 1!) - v_fmc_reg2(27) := FMC2_LA_P_b(0); - v_fmc_reg2(29) := FMC2_LA_N_b(0); - v_fmc_reg2(31) := FMC2_LA_N_b(4); - end if; - end process p_reg_fmc2; - - --============================================================================= - -- tick generation, depending on constant c_FLASH - --============================================================================= - p_tick : process(ps_clk_i) - variable v_cntr : unsigned(31 downto 0) := (others => '0'); - begin - if rising_edge(ps_clk_i) then - if (to_integer(v_cntr) < c_FLASH) then - v_cntr := v_cntr + 1; - else - v_cntr := to_unsigned(0, v_cntr'length); - s_tick <= not s_tick; - end if; - end if; - end process p_tick; - - --============================================================================= - -- FASEC LEDs output - --============================================================================= - p_leds : process(ps_clk_i) - variable v_pbreg : std_logic_vector(2 downto 0) := (others => '0'); - variable v_shift : std_logic_vector(7 downto 0) := "00000001"; - begin - if rising_edge(ps_clk_i) then - -- clock in pushbutton input - v_pbreg(2 downto 0) := v_pbreg(1 downto 0) & pb_gp_n_i; - -- shift-register - if s_tick = '1' then - v_shift(7 downto 0) := v_shift(6 downto 0) & v_shift(7); - end if; - -- LEDs output selection - if v_pbreg(2) = '1' then - -- button not pressed, light one by one (4x green, 4x red) - if unsigned(v_shift(3 downto 0)) /= 0 then - led_line_en_pl_o <= '0'; - led_line_pl_o <= '0'; - led_col_pl_o(3 downto 0) <= v_shift(3 downto 0); - elsif unsigned(v_shift(7 downto 4)) /= 0 then - led_line_en_pl_o <= '1'; - led_line_pl_o <= '0'; - led_col_pl_o(3 downto 0) <= not(v_shift(7 downto 4)); - end if; - else - -- button pressed, all LEDs red - led_line_en_pl_o <= '1'; - led_line_pl_o <= '1'; - led_col_pl_o(3 downto 0) <= "0000"; - end if; - end if; - end process; - - --============================================================================= - -- AXI4-Lite slave for control from PS - --============================================================================= - axi4lite_slave : entity xil_pvtmisc.axi4lite_slave - generic map ( - C_S_AXI_DATA_WIDTH => g_S00_AXI_DATA_WIDTH, - C_S_AXI_ADDR_WIDTH => g_S00_AXI_ADDR_WIDTH, - g_MAXREAD => c_SLAVE_MAXREAD, - g_MAXWRITE => c_SLAVE_MAXWRITE) - port map ( - s_axi_dataR => s_sAxi_dataR, - s_axi_dataW => s_sAxi_dataW, - s_axi_dataResetW => s_sAxi_dataResetW, - S_AXI_ACLK => s00_axi_aclk, - S_AXI_ARESETN => s00_axi_aresetn, - S_AXI_AWADDR => s00_axi_awaddr, - S_AXI_AWPROT => s00_axi_awprot, - S_AXI_AWVALID => s00_axi_awvalid, - S_AXI_AWREADY => s00_axi_awready, - S_AXI_WDATA => s00_axi_wdata, - S_AXI_WSTRB => s00_axi_wstrb, - S_AXI_WVALID => s00_axi_wvalid, - S_AXI_WREADY => s00_axi_wready, - S_AXI_BRESP => s00_axi_bresp, - S_AXI_BVALID => s00_axi_bvalid, - S_AXI_BREADY => s00_axi_bready, - S_AXI_ARADDR => s00_axi_araddr, - S_AXI_ARPROT => s00_axi_arprot, - S_AXI_ARVALID => s00_axi_arvalid, - S_AXI_ARREADY => s00_axi_arready, - S_AXI_RDATA => s00_axi_rdata, - S_AXI_RRESP => s00_axi_rresp, - S_AXI_RVALID => s00_axi_rvalid, - S_AXI_RREADY => s00_axi_rready); -end rtl; diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd new file mode 100755 index 00000000..91894b4d --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/general_fmc.vhd @@ -0,0 +1,206 @@ +------------------------------------------------------------------------------ +-- Title : Generic FMC module +-- Project : FIDS +------------------------------------------------------------------------------ +-- Author : Pieter Van Trappen +-- Company : CERN TE-ABT-EC +-- Created : 2016-08-19 +-- Last update: 2016-08-31 +-- Platform : FPGA-generic +-- Standard : VHDL'93 +------------------------------------------------------------------------------- +-- Description: A generic FMC module +-- +------------------------------------------------------------------------------- +-- general_fmc.vhd Copyright (c) 2016 CERN +------------------------------------------------------------------------------- +-- GNU LESSER GENERAL PUBLIC LICENSE +------------------------------------------------------------------------------- +-- This source file is free software; you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as published by the +-- Free Software Foundation; either version 2.1 of the License, or (at your +-- option) any later version. This source 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 Lesser General Public License for more details. You should have +-- received a copy of the GNU Lesser General Public License along with this +-- source; if not, download it from http://www.gnu.org/licenses/lgpl-2.1.html +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2016-08-29 1.0 pvantrap Created +------------------------------------------------------------------------------- + + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.NUMERIC_STD.all; + +library UNISIM; +use UNISIM.vcomponents.all; + +library xil_pvtmisc; +use xil_pvtmisc.myPackage.all; + +entity general_fmc is + generic( + g_FMC : string(1 to 9) := "EDA-0NONE"; + g_DMAX : natural := 8); + port ( + clk_i : in std_logic; + rst_i : in std_logic; + -- FMC user IO + FMC_LA_P_b : inout std_logic_vector(33 downto 0); + FMC_LA_N_b : inout std_logic_vector(33 downto 0); + -- FMC misc IO + FMC_PRSNTM2C_n_i : in std_logic; + FMC_CLK0M2C_P_i : in std_logic; + FMC_CLK0M2C_N_i : in std_logic; + FMC_CLK0C2M_P_o : out std_logic; + FMC_CLK0C2M_N_o : out std_logic; + -- generic registers for passing data to top module + data_i : in t_data32(0 to g_DMAX-1); + data_o : out t_data32(0 to g_DMAX-1)); +end general_fmc; + +architecture rtl of general_fmc is + constant c_DWIDTH : positive := 32; +begin +--============================================================================= + -- EDA-02327: FMC user lines - clock in for AXI register read by Zynq PS + --============================================================================= + p_reg_fmc_02327 : process(clk_i) + variable v_fmc_reg0, v_fmc_reg1, v_fmc_reg2 : std_logic_vector(c_DWIDTH-1 downto 0); + begin + if g_FMC = "EDA-02327" and rising_edge(clk_i) then + -- for testing purposes, read-in FMC inputs + -- 68 lines, hence doesn't fit into 2x32-bit AXI registers + data_o(0) <= unsigned(v_fmc_reg0(c_DWIDTH-1 downto 0)); + data_o(1) <= unsigned(v_fmc_reg1(c_DWIDTH-1 downto 0)); + data_o(2) <= unsigned(v_fmc_reg2(c_DWIDTH-1 downto 0)); + -- single user lines, auto-gen from .ods file + -- ** word 1 + v_fmc_reg0(0) := FMC_LA_N_b(17); + v_fmc_reg0(1) := FMC_LA_N_b(19); + v_fmc_reg0(2) := FMC_LA_P_b(19); + v_fmc_reg0(3) := FMC_LA_P_b(20); + v_fmc_reg0(4) := FMC_LA_N_b(20); + v_fmc_reg0(5) := FMC_LA_N_b(14); + v_fmc_reg0(6) := FMC_LA_P_b(14); + v_fmc_reg0(7) := FMC_LA_P_b(17); + v_fmc_reg0(8) := FMC_LA_N_b(13); + v_fmc_reg0(9) := FMC_LA_P_b(13); + v_fmc_reg0(10) := FMC_LA_P_b(15); + v_fmc_reg0(11) := FMC_LA_N_b(15); + v_fmc_reg0(12) := FMC_LA_P_b(16); + v_fmc_reg0(13) := FMC_LA_N_b(32); + v_fmc_reg0(14) := FMC_LA_P_b(33); + v_fmc_reg0(15) := FMC_LA_N_b(33); + v_fmc_reg0(16) := FMC_LA_P_b(7); + v_fmc_reg0(17) := FMC_LA_P_b(5); + v_fmc_reg0(18) := FMC_LA_N_b(7); + v_fmc_reg0(19) := FMC_LA_N_b(8); + v_fmc_reg0(20) := FMC_LA_P_b(8); + v_fmc_reg0(21) := FMC_LA_N_b(6); + v_fmc_reg0(22) := FMC_LA_P_b(12); + v_fmc_reg0(23) := FMC_LA_N_b(9); + v_fmc_reg0(24) := FMC_LA_N_b(16); + v_fmc_reg0(25) := FMC_LA_N_b(12); + v_fmc_reg0(26) := FMC_LA_P_b(11); + v_fmc_reg0(27) := FMC_LA_N_b(10); + v_fmc_reg0(28) := FMC_LA_N_b(11); + v_fmc_reg0(29) := FMC_LA_P_b(10); + v_fmc_reg0(30) := FMC_LA_P_b(9); + v_fmc_reg0(31) := FMC_LA_N_b(5); + -- ** word 2 + v_fmc_reg1(0) := FMC_LA_P_b(27); + v_fmc_reg1(1) := FMC_LA_N_b(23); + v_fmc_reg1(2) := FMC_LA_P_b(22); + v_fmc_reg1(3) := FMC_LA_N_b(22); + v_fmc_reg1(4) := FMC_LA_N_b(18); + v_fmc_reg1(5) := FMC_LA_P_b(18); + v_fmc_reg1(6) := FMC_LA_P_b(23); + v_fmc_reg1(7) := FMC_LA_P_b(21); + v_fmc_reg1(8) := FMC_LA_P_b(24); + v_fmc_reg1(9) := FMC_LA_N_b(25); + -- v_fmc_reg1(10) := TCK (High-Z) + v_fmc_reg1(11) := FMC_LA_P_b(25); + v_fmc_reg1(12) := FMC_LA_N_b(27); + v_fmc_reg1(13) := FMC_LA_P_b(26); + v_fmc_reg1(14) := FMC_LA_N_b(21); + v_fmc_reg1(15) := FMC_LA_N_b(26); + v_fmc_reg1(16) := FMC_LA_P_b(32); + v_fmc_reg1(17) := FMC_LA_N_b(30); + -- v_fmc_reg1(19) : GA1 (set at High-Z!) + v_fmc_reg1(19) := FMC_LA_N_b(31); + v_fmc_reg1(20) := FMC_LA_P_b(30); + -- v_fmc_reg1(21) : GA0 (set at High-Z!) + -- v_fmc_reg1(22) := TRST (pull-up) + -- v_fmc_reg1(23) := TMS (High-Z) + v_fmc_reg1(24) := FMC_LA_P_b(29); + v_fmc_reg1(25) := FMC_LA_N_b(29); + -- v_fmc_reg1(26) := TDO (X when PRSTNn='1') + v_fmc_reg1(27) := FMC_LA_P_b(31); + v_fmc_reg1(28) := FMC_LA_N_b(28); + v_fmc_reg1(29) := FMC_LA_P_b(28); + -- v_fmc_reg1(30) := TDI (X when PRSTNn='1') + v_fmc_reg1(31) := FMC_LA_N_b(24); + -- ** word 3 (if not stated -> don't care X) + v_fmc_reg2(0) := FMC_CLK0M2C_N_i; + v_fmc_reg2(1) := FMC_CLK0M2C_P_i; + v_fmc_reg2(2) := FMC_PRSNTM2C_n_i; -- force at high/high-Z for JTAG! + -- v_fmc_reg2(17) : PG_C2M (set at High-Z!) + v_fmc_reg2(18) := FMC_LA_P_b(1); + v_fmc_reg2(19) := FMC_LA_P_b(6); + v_fmc_reg2(20) := FMC_LA_N_b(1); + v_fmc_reg2(21) := FMC_LA_N_b(3); + v_fmc_reg2(22) := FMC_LA_P_b(4); + v_fmc_reg2(23) := FMC_LA_P_b(3); + -- v_fmc_reg2(24) : VREF_M2C (set at 1!) + v_fmc_reg2(27) := FMC_LA_P_b(0); + v_fmc_reg2(29) := FMC_LA_N_b(0); + v_fmc_reg2(31) := FMC_LA_N_b(4); + end if; + end process p_reg_fmc_02327; + + --============================================================================= + -- EDA-0NONE: FMC user lines high-impedance + --============================================================================= + p_reg_fmc_none : process(clk_i) + begin + if g_FMC = "EDA-0NONE" then + if rising_edge(clk_i) then + data_o(0) <= (others => '0'); + data_o(1) <= (others => '0'); + data_o(2) <= (others => '0'); + end if; + end if; + end process p_reg_fmc_none; + + -- primitives needed, if not synthesis will remote e.g. 'Z' values + fmc_out_highz : for I in 0 to 33 generate + outs : if g_FMC = "EDA-0NONE" generate + IOBUF_P : IOBUF + generic map ( + DRIVE => 12, + --IOSTANDARD => "DEFAULT", + SLEW => "SLOW") + port map ( + O => open, + IO => FMC_LA_P_b(I), + I => '0', + T => '1'); + IOBUF_N : IOBUF + generic map ( + DRIVE => 12, + --IOSTANDARD => "DEFAULT", + SLEW => "SLOW") + port map ( + O => open, + IO => FMC_LA_N_b(I), + I => '0', + T => '1'); + end generate outs; + end generate fmc_out_highz; + +end rtl; diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd new file mode 100755 index 00000000..fb5d4133 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/fasec_hwtest_v2_2_1/FASEC_hwtest.srcs/sources_1/new/top_mod.vhd @@ -0,0 +1,269 @@ +------------------------------------------------------------------------------ +-- Title : FASEC HW-Test +-- Project : FIDS +------------------------------------------------------------------------------ +-- Author : Pieter Van Trappen +-- Company : CERN TE-ABT-EC +-- Created : 2016-08-19 +-- Last update: 2016-08-31 +-- Platform : FPGA-generic +-- Standard : VHDL'93 +------------------------------------------------------------------------------- +-- Description: A generic design for an FMC slot, supporting a different set +-- of FMC card (set by top level gneeric) +------------------------------------------------------------------------------- +-- top_mod.vhd Copyright (c) 2016 CERN +------------------------------------------------------------------------------- +-- GNU LESSER GENERAL PUBLIC LICENSE +------------------------------------------------------------------------------- +-- This source file is free software; you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as published by the +-- Free Software Foundation; either version 2.1 of the License, or (at your +-- option) any later version. This source 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 Lesser General Public License for more details. You should have +-- received a copy of the GNU Lesser General Public License along with this +-- source; if not, download it from http://www.gnu.org/licenses/lgpl-2.1.html +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2016-08-19 1.0 pvantrap Created +-- (see also version_info.txt) +------------------------------------------------------------------------------- + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.NUMERIC_STD.all; + +library xil_pvtmisc; +use xil_pvtmisc.myPackage.all; + +entity fasec_hwtest is + generic( + -- Parameters of Axi Slave Bus Interface S00_AXI + g_S00_AXI_DATA_WIDTH : integer := 32; + g_S00_AXI_ADDR_WIDTH : integer := 32; + g_FMC1 : String := "EDA-0NONE"; -- unconstrained, otherwise Vivado + -- produces errors when integrating in + -- Block Design + g_FMC2 : String := "EDA-0NONE"); + port ( + ps_clk_i : in std_logic; -- clock from Zynq PS (100 MHz) + osc100_clk_i : in std_logic; -- clock from oscillator (100 MHz) + -- FMC 1-2 user IO + FMC2_LA_P_b : inout std_logic_vector(33 downto 0); + FMC2_LA_N_b : inout std_logic_vector(33 downto 0); + FMC1_LA_P_b : inout std_logic_vector(33 downto 0); + FMC1_LA_N_b : inout std_logic_vector(33 downto 0); + -- FMC misc IO + FMC2_PRSNTM2C_n_i : in std_logic; + FMC2_CLK0M2C_P_i : in std_logic; + FMC2_CLK0M2C_N_i : in std_logic; + FMC2_CLK0C2M_P_o : out std_logic; + FMC2_CLK0C2M_N_o : out std_logic; + FMC1_PRSNTM2C_n_i : in std_logic; + FMC1_CLK0M2C_P_i : in std_logic; + FMC1_CLK0M2C_N_i : in std_logic; + FMC1_CLK0C2M_P_o : out std_logic; + FMC1_CLK0C2M_N_o : out std_logic; + -- FASEC signals + pb_gp_n_i : in std_logic; + led_col_pl_o : out std_logic_vector (3 downto 0); -- anode green / cathode red + led_line_en_pl_o : out std_logic; -- output 1B Hi-Z when asserted + led_line_pl_o : out std_logic; -- output 1B: cathode green / anode red + -- AXI4-LITE slave interface + s00_axi_aclk : in std_logic; + s00_axi_aresetn : in std_logic; + s00_axi_awaddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); + s00_axi_awprot : in std_logic_vector(2 downto 0); + s00_axi_awvalid : in std_logic; + s00_axi_awready : out std_logic; + s00_axi_wdata : in std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); + s00_axi_wstrb : in std_logic_vector((g_S00_AXI_DATA_WIDTH/8)-1 downto 0); + s00_axi_wvalid : in std_logic; + s00_axi_wready : out std_logic; + s00_axi_bresp : out std_logic_vector(1 downto 0); + s00_axi_bvalid : out std_logic; + s00_axi_bready : in std_logic; + s00_axi_araddr : in std_logic_vector(g_S00_AXI_ADDR_WIDTH-1 downto 0); + s00_axi_arprot : in std_logic_vector(2 downto 0); + s00_axi_arvalid : in std_logic; + s00_axi_arready : out std_logic; + s00_axi_rdata : out std_logic_vector(g_S00_AXI_DATA_WIDTH-1 downto 0); + s00_axi_rresp : out std_logic_vector(1 downto 0); + s00_axi_rvalid : out std_logic; + s00_axi_rready : in std_logic); +end fasec_hwtest; + +architecture rtl of fasec_hwtest is + -- components + component general_fmc is + generic ( + g_FMC : string(1 to 9); + g_DMAX : natural); + port ( + clk_i : in std_logic; + rst_i : in std_logic; + FMC_LA_P_b : inout std_logic_vector(33 downto 0); + FMC_LA_N_b : inout std_logic_vector(33 downto 0); + FMC_PRSNTM2C_n_i : in std_logic; + FMC_CLK0M2C_P_i : in std_logic; + FMC_CLK0M2C_N_i : in std_logic; + FMC_CLK0C2M_P_o : out std_logic; + FMC_CLK0C2M_N_o : out std_logic; + data_i : in t_data32(0 to g_DMAX-1); + data_o : out t_data32(0 to g_DMAX-1)); + end component general_fmc; + + -- constants and signals + constant c_FLASH : positive := 40000000; -- 400 ms @ 100 MHz + constant c_SLAVE_MAXREAD : positive := 8; + constant c_SLAVE_MAXWRITE : positive := 8; + constant c_SLAVE_MAXMEM : positive := c_SLAVE_MAXREAD + c_SLAVE_MAXWRITE; + -- AXI slave signals + signal s_sAxi_dataR : t_axiMemory(0 to c_SLAVE_MAXREAD-1) := (others => (others => '0')); + signal s_sAxi_dataW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); -- also put to zero in the slave AXI module (cuz buffer) + signal s_sAxi_dataResetW : t_axiMemory(c_SLAVE_MAXREAD to c_SLAVE_MAXMEM-1) := (others => (others => '0')); + -- FMC1-2 signals + constant c_FMC_DMAX : natural := 8; + signal s_tick : std_logic; + signal s_fmc1_datai, s_fmc1_datao : t_data32(0 to c_FMC_DMAX-1); + signal s_fmc2_datai, s_fmc2_datao : t_data32(0 to c_FMC_DMAX-1); +begin + --============================================================================= + -- FMC1 component + --============================================================================= + general_fmc1: general_fmc + generic map ( + g_FMC => g_FMC1, + g_DMAX => c_FMC_DMAX) + port map ( + clk_i => s00_axi_aclk, + rst_i => not(s00_axi_aresetn), + FMC_LA_P_b => FMC1_LA_P_b(33 downto 0), + FMC_LA_N_b => FMC1_LA_N_b(33 downto 0), + FMC_PRSNTM2C_n_i => FMC1_PRSNTM2C_n_i, + FMC_CLK0M2C_P_i => FMC1_CLK0M2C_P_i, + FMC_CLK0M2C_N_i => FMC1_CLK0M2C_N_i, + FMC_CLK0C2M_P_o => FMC1_CLK0C2M_P_o, + FMC_CLK0C2M_N_o => FMC1_CLK0C2M_N_o, + data_i => s_fmc1_datai(0 to c_FMC_DMAX-1), + data_o => s_fmc1_datao(0 to c_FMC_DMAX-1)); + + s_sAxi_dataR(0) <= (others=>'0'); -- TODO: generic FMC string + s_sAxi_dataR(1) <= s_fmc1_datao(0); + s_sAxi_dataR(2) <= s_fmc1_datao(1); + s_sAxi_dataR(3) <= s_fmc1_datao(2); + + --============================================================================= + -- FMC2 component + --============================================================================= + general_fmc2: general_fmc + generic map ( + g_FMC => g_FMC2, + g_DMAX => c_FMC_DMAX) + port map ( + clk_i => s00_axi_aclk, + rst_i => not(s00_axi_aresetn), + FMC_LA_P_b => FMC2_LA_P_b(33 downto 0), + FMC_LA_N_b => FMC2_LA_N_b(33 downto 0), + FMC_PRSNTM2C_n_i => FMC2_PRSNTM2C_n_i, + FMC_CLK0M2C_P_i => FMC2_CLK0M2C_P_i, + FMC_CLK0M2C_N_i => FMC2_CLK0M2C_N_i, + FMC_CLK0C2M_P_o => FMC2_CLK0C2M_P_o, + FMC_CLK0C2M_N_o => FMC2_CLK0C2M_N_o, + data_i => s_fmc2_datai(0 to c_FMC_DMAX-1), + data_o => s_fmc2_datao(0 to c_FMC_DMAX-1)); + + s_sAxi_dataR(4) <= (others=>'0'); -- TODO: generic FMC string + s_sAxi_dataR(5) <= s_fmc2_datao(0); + s_sAxi_dataR(6) <= s_fmc2_datao(1); + s_sAxi_dataR(7) <= s_fmc2_datao(2); + + --============================================================================= + -- tick generation, depending on constant c_FLASH + --============================================================================= + p_tick : process(ps_clk_i) + variable v_cntr : unsigned(31 downto 0) := (others => '0'); + begin + if rising_edge(ps_clk_i) then + if (to_integer(v_cntr) < c_FLASH) then + v_cntr := v_cntr + 1; + else + v_cntr := to_unsigned(0, v_cntr'length); + s_tick <= not s_tick; + end if; + end if; + end process p_tick; + + --============================================================================= + -- FASEC LEDs output + --============================================================================= + p_leds : process(ps_clk_i) + variable v_pbreg : std_logic_vector(2 downto 0) := (others => '0'); + variable v_shift : std_logic_vector(7 downto 0) := "00000001"; + begin + if rising_edge(ps_clk_i) then + -- clock in pushbutton input + v_pbreg(2 downto 0) := v_pbreg(1 downto 0) & pb_gp_n_i; + -- shift-register + if s_tick = '1' then + v_shift(7 downto 0) := v_shift(6 downto 0) & v_shift(7); + end if; + -- LEDs output selection + if v_pbreg(2) = '1' then + -- button not pressed, light one by one (4x green, 4x red) + if unsigned(v_shift(3 downto 0)) /= 0 then + led_line_en_pl_o <= '0'; + led_line_pl_o <= '0'; + led_col_pl_o(3 downto 0) <= v_shift(3 downto 0); + elsif unsigned(v_shift(7 downto 4)) /= 0 then + led_line_en_pl_o <= '1'; + led_line_pl_o <= '0'; + led_col_pl_o(3 downto 0) <= not(v_shift(7 downto 4)); + end if; + else + -- button pressed, all LEDs red + led_line_en_pl_o <= '1'; + led_line_pl_o <= '1'; + led_col_pl_o(3 downto 0) <= "0000"; + end if; + end if; + end process; + + --============================================================================= + -- AXI4-Lite slave for control from PS + --============================================================================= + axi4lite_slave : entity xil_pvtmisc.axi4lite_slave + generic map ( + C_S_AXI_DATA_WIDTH => g_S00_AXI_DATA_WIDTH, + C_S_AXI_ADDR_WIDTH => g_S00_AXI_ADDR_WIDTH, + g_MAXREAD => c_SLAVE_MAXREAD, + g_MAXWRITE => c_SLAVE_MAXWRITE) + port map ( + s_axi_dataR => s_sAxi_dataR, + s_axi_dataW => s_sAxi_dataW, + s_axi_dataResetW => s_sAxi_dataResetW, + S_AXI_ACLK => s00_axi_aclk, + S_AXI_ARESETN => s00_axi_aresetn, + S_AXI_AWADDR => s00_axi_awaddr, + S_AXI_AWPROT => s00_axi_awprot, + S_AXI_AWVALID => s00_axi_awvalid, + S_AXI_AWREADY => s00_axi_awready, + S_AXI_WDATA => s00_axi_wdata, + S_AXI_WSTRB => s00_axi_wstrb, + S_AXI_WVALID => s00_axi_wvalid, + S_AXI_WREADY => s00_axi_wready, + S_AXI_BRESP => s00_axi_bresp, + S_AXI_BVALID => s00_axi_bvalid, + S_AXI_BREADY => s00_axi_bready, + S_AXI_ARADDR => s00_axi_araddr, + S_AXI_ARPROT => s00_axi_arprot, + S_AXI_ARVALID => s00_axi_arvalid, + S_AXI_ARREADY => s00_axi_arready, + S_AXI_RDATA => s00_axi_rdata, + S_AXI_RRESP => s00_axi_rresp, + S_AXI_RVALID => s00_axi_rvalid, + S_AXI_RREADY => s00_axi_rready); +end rtl; diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd index ca2d8892..aabdfee7 100755 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/user.org/libraries/xil_pvtmisc/myPackage.vhd @@ -25,6 +25,8 @@ use IEEE.NUMERIC_STD.all; package myPackage is -- types type t_adc_array is array (integer range <>) of unsigned(11 downto 0); + type t_data32 is array (integer range <>) of unsigned(31 downto 0); + -- when using VHDL2008, unsigned can be non-constrained type t_axiMemory is array (integer range <>) of unsigned(31 downto 0); diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v new file mode 100755 index 00000000..f05db4ac --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_a_axi3_conv.v @@ -0,0 +1,883 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: Address AXI3 Slave Converter +// +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// a_axi3_conv +// axic_fifo +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_a_axi3_conv # + ( + parameter C_FAMILY = "none", + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + parameter integer C_AXI_AUSER_WIDTH = 1, + parameter integer C_AXI_CHANNEL = 0, + // 0 = AXI AW Channel. + // 1 = AXI AR Channel. + parameter integer C_SUPPORT_SPLITTING = 1, + // Implement transaction splitting logic. + // Disabled whan all connected masters are AXI3 and have same or narrower data width. + parameter integer C_SUPPORT_BURSTS = 1, + // Disabled when all connected masters are AxiLite, + // allowing logic to be simplified. + parameter integer C_SINGLE_THREAD = 1 + // 0 = Ignore ID when propagating transactions (assume all responses are in order). + // 1 = Enforce single-threading (one ID at a time) when any outstanding or + // requested transaction requires splitting. + // While no split is ongoing any new non-split transaction will pass immediately regardless + // off ID. + // A split transaction will stall if there are multiple ID (non-split) transactions + // ongoing, once it has been forwarded only transactions with the same ID is allowed + // (split or not) until all ongoing split transactios has been completed. + ) + ( + // System Signals + input wire ACLK, + input wire ARESET, + + // Command Interface (W/R) + output wire cmd_valid, + output wire cmd_split, + output wire [C_AXI_ID_WIDTH-1:0] cmd_id, + output wire [4-1:0] cmd_length, + input wire cmd_ready, + + // Command Interface (B) + output wire cmd_b_valid, + output wire cmd_b_split, + output wire [4-1:0] cmd_b_repeat, + input wire cmd_b_ready, + + // Slave Interface Write Address Ports + input wire [C_AXI_ID_WIDTH-1:0] S_AXI_AID, + input wire [C_AXI_ADDR_WIDTH-1:0] S_AXI_AADDR, + input wire [8-1:0] S_AXI_ALEN, + input wire [3-1:0] S_AXI_ASIZE, + input wire [2-1:0] S_AXI_ABURST, + input wire [1-1:0] S_AXI_ALOCK, + input wire [4-1:0] S_AXI_ACACHE, + input wire [3-1:0] S_AXI_APROT, + input wire [4-1:0] S_AXI_AQOS, + input wire [C_AXI_AUSER_WIDTH-1:0] S_AXI_AUSER, + input wire S_AXI_AVALID, + output wire S_AXI_AREADY, + + // Master Interface Write Address Port + output wire [C_AXI_ID_WIDTH-1:0] M_AXI_AID, + output wire [C_AXI_ADDR_WIDTH-1:0] M_AXI_AADDR, + output wire [4-1:0] M_AXI_ALEN, + output wire [3-1:0] M_AXI_ASIZE, + output wire [2-1:0] M_AXI_ABURST, + output wire [2-1:0] M_AXI_ALOCK, + output wire [4-1:0] M_AXI_ACACHE, + output wire [3-1:0] M_AXI_APROT, + output wire [4-1:0] M_AXI_AQOS, + output wire [C_AXI_AUSER_WIDTH-1:0] M_AXI_AUSER, + output wire M_AXI_AVALID, + input wire M_AXI_AREADY + ); + + + ///////////////////////////////////////////////////////////////////////////// + // Variables for generating parameter controlled instances. + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Local params + ///////////////////////////////////////////////////////////////////////////// + + // Constants for burst types. + localparam [2-1:0] C_FIX_BURST = 2'b00; + localparam [2-1:0] C_INCR_BURST = 2'b01; + localparam [2-1:0] C_WRAP_BURST = 2'b10; + + // Depth for command FIFO. + localparam integer C_FIFO_DEPTH_LOG = 5; + + // Constants used to generate size mask. + localparam [C_AXI_ADDR_WIDTH+8-1:0] C_SIZE_MASK = {{C_AXI_ADDR_WIDTH{1'b1}}, 8'b0000_0000}; + + + ///////////////////////////////////////////////////////////////////////////// + // Functions + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Internal signals + ///////////////////////////////////////////////////////////////////////////// + + // Access decoding related signals. + wire access_is_incr; + wire [4-1:0] num_transactions; + wire incr_need_to_split; + reg [C_AXI_ADDR_WIDTH-1:0] next_mi_addr; + reg split_ongoing; + reg [4-1:0] pushed_commands; + reg [16-1:0] addr_step; + reg [16-1:0] first_step; + wire [8-1:0] first_beats; + reg [C_AXI_ADDR_WIDTH-1:0] size_mask; + + // Access decoding related signals for internal pipestage. + reg access_is_incr_q; + reg incr_need_to_split_q; + wire need_to_split_q; + reg [4-1:0] num_transactions_q; + reg [16-1:0] addr_step_q; + reg [16-1:0] first_step_q; + reg [C_AXI_ADDR_WIDTH-1:0] size_mask_q; + + // Command buffer help signals. + reg [C_FIFO_DEPTH_LOG:0] cmd_depth; + reg cmd_empty; + reg [C_AXI_ID_WIDTH-1:0] queue_id; + wire id_match; + wire cmd_id_check; + wire s_ready; + wire cmd_full; + wire allow_this_cmd; + wire allow_new_cmd; + wire cmd_push; + reg cmd_push_block; + reg [C_FIFO_DEPTH_LOG:0] cmd_b_depth; + reg cmd_b_empty; + wire cmd_b_full; + wire cmd_b_push; + reg cmd_b_push_block; + wire pushed_new_cmd; + wire last_incr_split; + wire last_split; + wire first_split; + wire no_cmd; + wire allow_split_cmd; + wire almost_empty; + wire no_b_cmd; + wire allow_non_split_cmd; + wire almost_b_empty; + reg multiple_id_non_split; + reg split_in_progress; + + // Internal Command Interface signals (W/R). + wire cmd_split_i; + wire [C_AXI_ID_WIDTH-1:0] cmd_id_i; + reg [4-1:0] cmd_length_i; + + // Internal Command Interface signals (B). + wire cmd_b_split_i; + wire [4-1:0] cmd_b_repeat_i; + + // Throttling help signals. + wire mi_stalling; + reg command_ongoing; + + // Internal SI-side signals. + reg [C_AXI_ID_WIDTH-1:0] S_AXI_AID_Q; + reg [C_AXI_ADDR_WIDTH-1:0] S_AXI_AADDR_Q; + reg [8-1:0] S_AXI_ALEN_Q; + reg [3-1:0] S_AXI_ASIZE_Q; + reg [2-1:0] S_AXI_ABURST_Q; + reg [2-1:0] S_AXI_ALOCK_Q; + reg [4-1:0] S_AXI_ACACHE_Q; + reg [3-1:0] S_AXI_APROT_Q; + reg [4-1:0] S_AXI_AQOS_Q; + reg [C_AXI_AUSER_WIDTH-1:0] S_AXI_AUSER_Q; + reg S_AXI_AREADY_I; + + // Internal MI-side signals. + wire [C_AXI_ID_WIDTH-1:0] M_AXI_AID_I; + reg [C_AXI_ADDR_WIDTH-1:0] M_AXI_AADDR_I; + reg [8-1:0] M_AXI_ALEN_I; + wire [3-1:0] M_AXI_ASIZE_I; + wire [2-1:0] M_AXI_ABURST_I; + reg [2-1:0] M_AXI_ALOCK_I; + wire [4-1:0] M_AXI_ACACHE_I; + wire [3-1:0] M_AXI_APROT_I; + wire [4-1:0] M_AXI_AQOS_I; + wire [C_AXI_AUSER_WIDTH-1:0] M_AXI_AUSER_I; + wire M_AXI_AVALID_I; + wire M_AXI_AREADY_I; + + reg [1:0] areset_d; // Reset delay register + always @(posedge ACLK) begin + areset_d <= {areset_d[0], ARESET}; + end + + + ///////////////////////////////////////////////////////////////////////////// + // Capture SI-Side signals. + // + ///////////////////////////////////////////////////////////////////////////// + + // Register SI-Side signals. + always @ (posedge ACLK) begin + if ( ARESET ) begin + S_AXI_AID_Q <= {C_AXI_ID_WIDTH{1'b0}}; + S_AXI_AADDR_Q <= {C_AXI_ADDR_WIDTH{1'b0}}; + S_AXI_ALEN_Q <= 8'b0; + S_AXI_ASIZE_Q <= 3'b0; + S_AXI_ABURST_Q <= 2'b0; + S_AXI_ALOCK_Q <= 2'b0; + S_AXI_ACACHE_Q <= 4'b0; + S_AXI_APROT_Q <= 3'b0; + S_AXI_AQOS_Q <= 4'b0; + S_AXI_AUSER_Q <= {C_AXI_AUSER_WIDTH{1'b0}}; + end else begin + if ( S_AXI_AREADY_I ) begin + S_AXI_AID_Q <= S_AXI_AID; + S_AXI_AADDR_Q <= S_AXI_AADDR; + S_AXI_ALEN_Q <= S_AXI_ALEN; + S_AXI_ASIZE_Q <= S_AXI_ASIZE; + S_AXI_ABURST_Q <= S_AXI_ABURST; + S_AXI_ALOCK_Q <= S_AXI_ALOCK; + S_AXI_ACACHE_Q <= S_AXI_ACACHE; + S_AXI_APROT_Q <= S_AXI_APROT; + S_AXI_AQOS_Q <= S_AXI_AQOS; + S_AXI_AUSER_Q <= S_AXI_AUSER; + end + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // Decode the Incoming Transaction. + // + // Extract transaction type and the number of splits that may be needed. + // + // Calculate the step size so that the address for each part of a split can + // can be calculated. + // + ///////////////////////////////////////////////////////////////////////////// + + // Transaction burst type. + assign access_is_incr = ( S_AXI_ABURST == C_INCR_BURST ); + + // Get number of transactions for split INCR. + assign num_transactions = S_AXI_ALEN[4 +: 4]; + assign first_beats = {3'b0, S_AXI_ALEN[0 +: 4]} + 7'b01; + + // Generate address increment of first split transaction. + always @ * + begin + case (S_AXI_ASIZE) + 3'b000: first_step = first_beats << 0; + 3'b001: first_step = first_beats << 1; + 3'b010: first_step = first_beats << 2; + 3'b011: first_step = first_beats << 3; + 3'b100: first_step = first_beats << 4; + 3'b101: first_step = first_beats << 5; + 3'b110: first_step = first_beats << 6; + 3'b111: first_step = first_beats << 7; + endcase + end + + // Generate address increment for remaining split transactions. + always @ * + begin + case (S_AXI_ASIZE) + 3'b000: addr_step = 16'h0010; + 3'b001: addr_step = 16'h0020; + 3'b010: addr_step = 16'h0040; + 3'b011: addr_step = 16'h0080; + 3'b100: addr_step = 16'h0100; + 3'b101: addr_step = 16'h0200; + 3'b110: addr_step = 16'h0400; + 3'b111: addr_step = 16'h0800; + endcase + end + + // Generate address mask bits to remove split transaction unalignment. + always @ * + begin + case (S_AXI_ASIZE) + 3'b000: size_mask = C_SIZE_MASK[8 +: C_AXI_ADDR_WIDTH]; + 3'b001: size_mask = C_SIZE_MASK[7 +: C_AXI_ADDR_WIDTH]; + 3'b010: size_mask = C_SIZE_MASK[6 +: C_AXI_ADDR_WIDTH]; + 3'b011: size_mask = C_SIZE_MASK[5 +: C_AXI_ADDR_WIDTH]; + 3'b100: size_mask = C_SIZE_MASK[4 +: C_AXI_ADDR_WIDTH]; + 3'b101: size_mask = C_SIZE_MASK[3 +: C_AXI_ADDR_WIDTH]; + 3'b110: size_mask = C_SIZE_MASK[2 +: C_AXI_ADDR_WIDTH]; + 3'b111: size_mask = C_SIZE_MASK[1 +: C_AXI_ADDR_WIDTH]; + endcase + end + + + ///////////////////////////////////////////////////////////////////////////// + // Transfer SI-Side signals to internal Pipeline Stage. + // + ///////////////////////////////////////////////////////////////////////////// + + always @ (posedge ACLK) begin + if ( ARESET ) begin + access_is_incr_q <= 1'b0; + incr_need_to_split_q <= 1'b0; + num_transactions_q <= 4'b0; + addr_step_q <= 16'b0; + first_step_q <= 16'b0; + size_mask_q <= {C_AXI_ADDR_WIDTH{1'b0}}; + end else begin + if ( S_AXI_AREADY_I ) begin + access_is_incr_q <= access_is_incr; + incr_need_to_split_q <= incr_need_to_split; + num_transactions_q <= num_transactions; + addr_step_q <= addr_step; + first_step_q <= first_step; + size_mask_q <= size_mask; + end + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // Generate Command Information. + // + // Detect if current transation needs to be split, and keep track of all + // the generated split transactions. + // + // + ///////////////////////////////////////////////////////////////////////////// + + // Detect when INCR must be split. + assign incr_need_to_split = access_is_incr & ( num_transactions != 0 ) & + ( C_SUPPORT_SPLITTING == 1 ) & + ( C_SUPPORT_BURSTS == 1 ); + + // Detect when a command has to be split. + assign need_to_split_q = incr_need_to_split_q; + + // Handle progress of split transactions. + always @ (posedge ACLK) begin + if ( ARESET ) begin + split_ongoing <= 1'b0; + end else begin + if ( pushed_new_cmd ) begin + split_ongoing <= need_to_split_q & ~last_split; + end + end + end + + // Keep track of number of transactions generated. + always @ (posedge ACLK) begin + if ( ARESET ) begin + pushed_commands <= 4'b0; + end else begin + if ( S_AXI_AREADY_I ) begin + pushed_commands <= 4'b0; + end else if ( pushed_new_cmd ) begin + pushed_commands <= pushed_commands + 4'b1; + end + end + end + + // Detect last part of a command, split or not. + assign last_incr_split = access_is_incr_q & ( num_transactions_q == pushed_commands ); + assign last_split = last_incr_split | ~access_is_incr_q | + ( C_SUPPORT_SPLITTING == 0 ) | + ( C_SUPPORT_BURSTS == 0 ); + assign first_split = (pushed_commands == 4'b0); + + // Calculate base for next address. + always @ (posedge ACLK) begin + if ( ARESET ) begin + next_mi_addr = {C_AXI_ADDR_WIDTH{1'b0}}; + end else if ( pushed_new_cmd ) begin + next_mi_addr = M_AXI_AADDR_I + (first_split ? first_step_q : addr_step_q); + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // Translating Transaction. + // + // Set Split transaction information on all part except last for a transaction + // that needs splitting. + // The B Channel will only get one command for a Split transaction and in + // the Split bflag will be set in that case. + // + // The AWID is extracted and applied to all commands generated for the current + // incomming SI-Side transaction. + // + // The address is increased for each part of a Split transaction, the amount + // depends on the siSIZE for the transaction. + // + // The length has to be changed for Split transactions. All part except tha + // last one will have 0xF, the last one uses the 4 lsb bits from the SI-side + // transaction as length. + // + // Non-Split has untouched address and length information. + // + // Exclusive access are diasabled for a Split transaction because it is not + // possible to guarantee concistency between all the parts. + // + ///////////////////////////////////////////////////////////////////////////// + + // Assign Split signals. + assign cmd_split_i = need_to_split_q & ~last_split; + assign cmd_b_split_i = need_to_split_q & ~last_split; + + // Copy AW ID to W. + assign cmd_id_i = S_AXI_AID_Q; + + // Set B Responses to merge. + assign cmd_b_repeat_i = num_transactions_q; + + // Select new size or remaining size. + always @ * + begin + if ( split_ongoing & access_is_incr_q ) begin + M_AXI_AADDR_I = next_mi_addr & size_mask_q; + end else begin + M_AXI_AADDR_I = S_AXI_AADDR_Q; + end + end + + // Generate the base length for each transaction. + always @ * + begin + if ( first_split | ~need_to_split_q ) begin + M_AXI_ALEN_I = S_AXI_ALEN_Q[0 +: 4]; + cmd_length_i = S_AXI_ALEN_Q[0 +: 4]; + end else begin + M_AXI_ALEN_I = 4'hF; + cmd_length_i = 4'hF; + end + end + + // Kill Exclusive for Split transactions. + always @ * + begin + if ( need_to_split_q ) begin + M_AXI_ALOCK_I = 2'b00; + end else begin + M_AXI_ALOCK_I = {1'b0, S_AXI_ALOCK_Q}; + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // Forward the command to the MI-side interface. + // + // It is determined that this is an allowed command/access when there is + // room in the command queue (and it passes ID and Split checks as required). + // + ///////////////////////////////////////////////////////////////////////////// + + // Move SI-side transaction to internal pipe stage. + always @ (posedge ACLK) begin + if (ARESET) begin + command_ongoing <= 1'b0; + S_AXI_AREADY_I <= 1'b0; + end else begin + if (areset_d == 2'b10) begin + S_AXI_AREADY_I <= 1'b1; + end else begin + if ( S_AXI_AVALID & S_AXI_AREADY_I ) begin + command_ongoing <= 1'b1; + S_AXI_AREADY_I <= 1'b0; + end else if ( pushed_new_cmd & last_split ) begin + command_ongoing <= 1'b0; + S_AXI_AREADY_I <= 1'b1; + end + end + end + end + + // Generate ready signal. + assign S_AXI_AREADY = S_AXI_AREADY_I; + + // Only allowed to forward translated command when command queue is ok with it. + assign M_AXI_AVALID_I = allow_new_cmd & command_ongoing; + + // Detect when MI-side is stalling. + assign mi_stalling = M_AXI_AVALID_I & ~M_AXI_AREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Simple transfer of paramters that doesn't need to be adjusted. + // + // ID - Transaction still recognized with the same ID. + // CACHE - No need to change the chache features. Even if the modyfiable + // bit is overridden (forcefully) there is no need to let downstream + // component beleive it is ok to modify it further. + // PROT - Security level of access is not changed when upsizing. + // QOS - Quality of Service is static 0. + // USER - User bits remains the same. + // + ///////////////////////////////////////////////////////////////////////////// + + assign M_AXI_AID_I = S_AXI_AID_Q; + assign M_AXI_ASIZE_I = S_AXI_ASIZE_Q; + assign M_AXI_ABURST_I = S_AXI_ABURST_Q; + assign M_AXI_ACACHE_I = S_AXI_ACACHE_Q; + assign M_AXI_APROT_I = S_AXI_APROT_Q; + assign M_AXI_AQOS_I = S_AXI_AQOS_Q; + assign M_AXI_AUSER_I = ( C_AXI_SUPPORTS_USER_SIGNALS ) ? S_AXI_AUSER_Q : {C_AXI_AUSER_WIDTH{1'b0}}; + + + ///////////////////////////////////////////////////////////////////////////// + // Control command queue to W/R channel. + // + // Commands can be pushed into the Cmd FIFO even if MI-side is stalling. + // A flag is set if MI-side is stalling when Command is pushed to the + // Cmd FIFO. This will prevent multiple push of the same Command as well as + // keeping the MI-side Valid signal if the Allow Cmd requirement has been + // updated to disable furter Commands (I.e. it is made sure that the SI-side + // Command has been forwarded to both Cmd FIFO and MI-side). + // + // It is allowed to continue pushing new commands as long as + // * There is room in the queue(s) + // * The ID is the same as previously queued. Since data is not reordered + // for the same ID it is always OK to let them proceed. + // Or, if no split transaction is ongoing any ID can be allowed. + // + ///////////////////////////////////////////////////////////////////////////// + + // Keep track of current ID in queue. + always @ (posedge ACLK) begin + if (ARESET) begin + queue_id <= {C_AXI_ID_WIDTH{1'b0}}; + multiple_id_non_split <= 1'b0; + split_in_progress <= 1'b0; + end else begin + if ( cmd_push ) begin + // Store ID (it will be matching ID or a "new beginning"). + queue_id <= S_AXI_AID_Q; + end + + if ( no_cmd & no_b_cmd ) begin + multiple_id_non_split <= 1'b0; + end else if ( cmd_push & allow_non_split_cmd & ~id_match ) begin + multiple_id_non_split <= 1'b1; + end + + if ( no_cmd & no_b_cmd ) begin + split_in_progress <= 1'b0; + end else if ( cmd_push & allow_split_cmd ) begin + split_in_progress <= 1'b1; + end + end + end + + // Determine if the command FIFOs are empty. + assign no_cmd = almost_empty & cmd_ready | cmd_empty; + assign no_b_cmd = almost_b_empty & cmd_b_ready | cmd_b_empty; + + // Check ID to make sure this command is allowed. + assign id_match = ( C_SINGLE_THREAD == 0 ) | ( queue_id == S_AXI_AID_Q); + assign cmd_id_check = (cmd_empty & cmd_b_empty) | ( id_match & (~cmd_empty | ~cmd_b_empty) ); + + // Command type affects possibility to push immediately or wait. + assign allow_split_cmd = need_to_split_q & cmd_id_check & ~multiple_id_non_split; + assign allow_non_split_cmd = ~need_to_split_q & (cmd_id_check | ~split_in_progress); + assign allow_this_cmd = allow_split_cmd | allow_non_split_cmd | ( C_SINGLE_THREAD == 0 ); + + // Check if it is allowed to push more commands. + assign allow_new_cmd = (~cmd_full & ~cmd_b_full & allow_this_cmd) | + cmd_push_block; + + // Push new command when allowed and MI-side is able to receive the command. + assign cmd_push = M_AXI_AVALID_I & ~cmd_push_block; + assign cmd_b_push = M_AXI_AVALID_I & ~cmd_b_push_block & (C_AXI_CHANNEL == 0); + + // Block furter push until command has been forwarded to MI-side. + always @ (posedge ACLK) begin + if (ARESET) begin + cmd_push_block <= 1'b0; + end else begin + if ( pushed_new_cmd ) begin + cmd_push_block <= 1'b0; + end else if ( cmd_push & mi_stalling ) begin + cmd_push_block <= 1'b1; + end + end + end + + // Block furter push until command has been forwarded to MI-side. + always @ (posedge ACLK) begin + if (ARESET) begin + cmd_b_push_block <= 1'b0; + end else begin + if ( S_AXI_AREADY_I ) begin + cmd_b_push_block <= 1'b0; + end else if ( cmd_b_push ) begin + cmd_b_push_block <= 1'b1; + end + end + end + + // Acknowledge command when we can push it into queue (and forward it). + assign pushed_new_cmd = M_AXI_AVALID_I & M_AXI_AREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Command Queue (W/R): + // + // Instantiate a FIFO as the queue and adjust the control signals. + // + // The features from Command FIFO can be reduced depending on configuration: + // Read Channel only need the split information. + // Write Channel always require ID information. When bursts are supported + // Split and Length information is also used. + // + ///////////////////////////////////////////////////////////////////////////// + + // Instantiated queue. + generate + if ( C_AXI_CHANNEL == 1 && C_SUPPORT_SPLITTING == 1 && C_SUPPORT_BURSTS == 1 ) begin : USE_R_CHANNEL + axi_data_fifo_v2_1_8_axic_fifo # + ( + .C_FAMILY(C_FAMILY), + .C_FIFO_DEPTH_LOG(C_FIFO_DEPTH_LOG), + .C_FIFO_WIDTH(1), + .C_FIFO_TYPE("lut") + ) + cmd_queue + ( + .ACLK(ACLK), + .ARESET(ARESET), + .S_MESG({cmd_split_i}), + .S_VALID(cmd_push), + .S_READY(s_ready), + .M_MESG({cmd_split}), + .M_VALID(cmd_valid), + .M_READY(cmd_ready) + ); + + assign cmd_id = {C_AXI_ID_WIDTH{1'b0}}; + assign cmd_length = 4'b0; + + end else if (C_SUPPORT_BURSTS == 1) begin : USE_BURSTS + axi_data_fifo_v2_1_8_axic_fifo # + ( + .C_FAMILY(C_FAMILY), + .C_FIFO_DEPTH_LOG(C_FIFO_DEPTH_LOG), + .C_FIFO_WIDTH(C_AXI_ID_WIDTH+4), + .C_FIFO_TYPE("lut") + ) + cmd_queue + ( + .ACLK(ACLK), + .ARESET(ARESET), + .S_MESG({cmd_id_i, cmd_length_i}), + .S_VALID(cmd_push), + .S_READY(s_ready), + .M_MESG({cmd_id, cmd_length}), + .M_VALID(cmd_valid), + .M_READY(cmd_ready) + ); + + assign cmd_split = 1'b0; + + end else begin : NO_BURSTS + axi_data_fifo_v2_1_8_axic_fifo # + ( + .C_FAMILY(C_FAMILY), + .C_FIFO_DEPTH_LOG(C_FIFO_DEPTH_LOG), + .C_FIFO_WIDTH(C_AXI_ID_WIDTH), + .C_FIFO_TYPE("lut") + ) + cmd_queue + ( + .ACLK(ACLK), + .ARESET(ARESET), + .S_MESG({cmd_id_i}), + .S_VALID(cmd_push), + .S_READY(s_ready), + .M_MESG({cmd_id}), + .M_VALID(cmd_valid), + .M_READY(cmd_ready) + ); + + assign cmd_split = 1'b0; + assign cmd_length = 4'b0; + + end + endgenerate + + // Queue is concidered full when not ready. + assign cmd_full = ~s_ready; + + // Queue is empty when no data at output port. + always @ (posedge ACLK) begin + if (ARESET) begin + cmd_empty <= 1'b1; + cmd_depth <= {C_FIFO_DEPTH_LOG+1{1'b0}}; + end else begin + if ( cmd_push & ~cmd_ready ) begin + // Push only => Increase depth. + cmd_depth <= cmd_depth + 1'b1; + cmd_empty <= 1'b0; + end else if ( ~cmd_push & cmd_ready ) begin + // Pop only => Decrease depth. + cmd_depth <= cmd_depth - 1'b1; + cmd_empty <= almost_empty; + end + end + end + + assign almost_empty = ( cmd_depth == 1 ); + + + ///////////////////////////////////////////////////////////////////////////// + // Command Queue (B): + // + // Add command queue for B channel only when it is AW channel and both burst + // and splitting is supported. + // + // When turned off the command appears always empty. + // + ///////////////////////////////////////////////////////////////////////////// + + // Instantiated queue. + generate + if ( C_AXI_CHANNEL == 0 && C_SUPPORT_SPLITTING == 1 && C_SUPPORT_BURSTS == 1 ) begin : USE_B_CHANNEL + + wire cmd_b_valid_i; + wire s_b_ready; + + axi_data_fifo_v2_1_8_axic_fifo # + ( + .C_FAMILY(C_FAMILY), + .C_FIFO_DEPTH_LOG(C_FIFO_DEPTH_LOG), + .C_FIFO_WIDTH(1+4), + .C_FIFO_TYPE("lut") + ) + cmd_b_queue + ( + .ACLK(ACLK), + .ARESET(ARESET), + .S_MESG({cmd_b_split_i, cmd_b_repeat_i}), + .S_VALID(cmd_b_push), + .S_READY(s_b_ready), + .M_MESG({cmd_b_split, cmd_b_repeat}), + .M_VALID(cmd_b_valid_i), + .M_READY(cmd_b_ready) + ); + + // Queue is concidered full when not ready. + assign cmd_b_full = ~s_b_ready; + + // Queue is empty when no data at output port. + always @ (posedge ACLK) begin + if (ARESET) begin + cmd_b_empty <= 1'b1; + cmd_b_depth <= {C_FIFO_DEPTH_LOG+1{1'b0}}; + end else begin + if ( cmd_b_push & ~cmd_b_ready ) begin + // Push only => Increase depth. + cmd_b_depth <= cmd_b_depth + 1'b1; + cmd_b_empty <= 1'b0; + end else if ( ~cmd_b_push & cmd_b_ready ) begin + // Pop only => Decrease depth. + cmd_b_depth <= cmd_b_depth - 1'b1; + cmd_b_empty <= ( cmd_b_depth == 1 ); + end + end + end + + assign almost_b_empty = ( cmd_b_depth == 1 ); + + // Assign external signal. + assign cmd_b_valid = cmd_b_valid_i; + + end else begin : NO_B_CHANNEL + + // Assign external command signals. + assign cmd_b_valid = 1'b0; + assign cmd_b_split = 1'b0; + assign cmd_b_repeat = 4'b0; + + // Assign internal command FIFO signals. + assign cmd_b_full = 1'b0; + assign almost_b_empty = 1'b0; + always @ (posedge ACLK) begin + if (ARESET) begin + cmd_b_empty <= 1'b1; + cmd_b_depth <= {C_FIFO_DEPTH_LOG+1{1'b0}}; + end else begin + // Constant FF due to ModelSim behavior. + cmd_b_empty <= 1'b1; + cmd_b_depth <= {C_FIFO_DEPTH_LOG+1{1'b0}}; + end + end + + end + endgenerate + + + ///////////////////////////////////////////////////////////////////////////// + // MI-side output handling + // + ///////////////////////////////////////////////////////////////////////////// + assign M_AXI_AID = M_AXI_AID_I; + assign M_AXI_AADDR = M_AXI_AADDR_I; + assign M_AXI_ALEN = M_AXI_ALEN_I; + assign M_AXI_ASIZE = M_AXI_ASIZE_I; + assign M_AXI_ABURST = M_AXI_ABURST_I; + assign M_AXI_ALOCK = M_AXI_ALOCK_I; + assign M_AXI_ACACHE = M_AXI_ACACHE_I; + assign M_AXI_APROT = M_AXI_APROT_I; + assign M_AXI_AQOS = M_AXI_AQOS_I; + assign M_AXI_AUSER = M_AXI_AUSER_I; + assign M_AXI_AVALID = M_AXI_AVALID_I; + assign M_AXI_AREADY_I = M_AXI_AREADY; + + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v new file mode 100755 index 00000000..2f593139 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi3_conv.v @@ -0,0 +1,606 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: AXI3 Slave Converter +// This module instantiates Address, Write Data and Read Data AXI3 Converter +// modules, each one taking care of the channel specific tasks. +// The Address AXI3 converter can handle both AR and AW channels. +// The Write Respons Channel is reused from the Down-Sizer. +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// axi3_conv +// a_axi3_conv +// axic_fifo +// w_axi3_conv +// b_downsizer +// r_axi3_conv +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_axi3_conv # + ( + parameter C_FAMILY = "none", + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + parameter integer C_AXI_AWUSER_WIDTH = 1, + parameter integer C_AXI_ARUSER_WIDTH = 1, + parameter integer C_AXI_WUSER_WIDTH = 1, + parameter integer C_AXI_RUSER_WIDTH = 1, + parameter integer C_AXI_BUSER_WIDTH = 1, + parameter integer C_AXI_SUPPORTS_WRITE = 1, + parameter integer C_AXI_SUPPORTS_READ = 1, + parameter integer C_SUPPORT_SPLITTING = 1, + // Implement transaction splitting logic. + // Disabled whan all connected masters are AXI3 and have same or narrower data width. + parameter integer C_SUPPORT_BURSTS = 1, + // Disabled when all connected masters are AxiLite, + // allowing logic to be simplified. + parameter integer C_SINGLE_THREAD = 1 + // 0 = Ignore ID when propagating transactions (assume all responses are in order). + // 1 = Enforce single-threading (one ID at a time) when any outstanding or + // requested transaction requires splitting. + // While no split is ongoing any new non-split transaction will pass immediately regardless + // off ID. + // A split transaction will stall if there are multiple ID (non-split) transactions + // ongoing, once it has been forwarded only transactions with the same ID is allowed + // (split or not) until all ongoing split transactios has been completed. + ) + ( + // System Signals + input wire ACLK, + input wire ARESETN, + + // Slave Interface Write Address Ports + input wire [C_AXI_ID_WIDTH-1:0] S_AXI_AWID, + input wire [C_AXI_ADDR_WIDTH-1:0] S_AXI_AWADDR, + input wire [8-1:0] S_AXI_AWLEN, + input wire [3-1:0] S_AXI_AWSIZE, + input wire [2-1:0] S_AXI_AWBURST, + input wire [1-1:0] S_AXI_AWLOCK, + input wire [4-1:0] S_AXI_AWCACHE, + input wire [3-1:0] S_AXI_AWPROT, + input wire [4-1:0] S_AXI_AWQOS, + input wire [C_AXI_AWUSER_WIDTH-1:0] S_AXI_AWUSER, + input wire S_AXI_AWVALID, + output wire S_AXI_AWREADY, + + // Slave Interface Write Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] S_AXI_WDATA, + input wire [C_AXI_DATA_WIDTH/8-1:0] S_AXI_WSTRB, + input wire S_AXI_WLAST, + input wire [C_AXI_WUSER_WIDTH-1:0] S_AXI_WUSER, + input wire S_AXI_WVALID, + output wire S_AXI_WREADY, + + // Slave Interface Write Response Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_BID, + output wire [2-1:0] S_AXI_BRESP, + output wire [C_AXI_BUSER_WIDTH-1:0] S_AXI_BUSER, + output wire S_AXI_BVALID, + input wire S_AXI_BREADY, + + // Slave Interface Read Address Ports + input wire [C_AXI_ID_WIDTH-1:0] S_AXI_ARID, + input wire [C_AXI_ADDR_WIDTH-1:0] S_AXI_ARADDR, + input wire [8-1:0] S_AXI_ARLEN, + input wire [3-1:0] S_AXI_ARSIZE, + input wire [2-1:0] S_AXI_ARBURST, + input wire [1-1:0] S_AXI_ARLOCK, + input wire [4-1:0] S_AXI_ARCACHE, + input wire [3-1:0] S_AXI_ARPROT, + input wire [4-1:0] S_AXI_ARQOS, + input wire [C_AXI_ARUSER_WIDTH-1:0] S_AXI_ARUSER, + input wire S_AXI_ARVALID, + output wire S_AXI_ARREADY, + + // Slave Interface Read Data Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_RID, + output wire [C_AXI_DATA_WIDTH-1:0] S_AXI_RDATA, + output wire [2-1:0] S_AXI_RRESP, + output wire S_AXI_RLAST, + output wire [C_AXI_RUSER_WIDTH-1:0] S_AXI_RUSER, + output wire S_AXI_RVALID, + input wire S_AXI_RREADY, + + // Master Interface Write Address Port + output wire [C_AXI_ID_WIDTH-1:0] M_AXI_AWID, + output wire [C_AXI_ADDR_WIDTH-1:0] M_AXI_AWADDR, + output wire [4-1:0] M_AXI_AWLEN, + output wire [3-1:0] M_AXI_AWSIZE, + output wire [2-1:0] M_AXI_AWBURST, + output wire [2-1:0] M_AXI_AWLOCK, + output wire [4-1:0] M_AXI_AWCACHE, + output wire [3-1:0] M_AXI_AWPROT, + output wire [4-1:0] M_AXI_AWQOS, + output wire [C_AXI_AWUSER_WIDTH-1:0] M_AXI_AWUSER, + output wire M_AXI_AWVALID, + input wire M_AXI_AWREADY, + + // Master Interface Write Data Ports + output wire [C_AXI_ID_WIDTH-1:0] M_AXI_WID, + output wire [C_AXI_DATA_WIDTH-1:0] M_AXI_WDATA, + output wire [C_AXI_DATA_WIDTH/8-1:0] M_AXI_WSTRB, + output wire M_AXI_WLAST, + output wire [C_AXI_WUSER_WIDTH-1:0] M_AXI_WUSER, + output wire M_AXI_WVALID, + input wire M_AXI_WREADY, + + // Master Interface Write Response Ports + input wire [C_AXI_ID_WIDTH-1:0] M_AXI_BID, + input wire [2-1:0] M_AXI_BRESP, + input wire [C_AXI_BUSER_WIDTH-1:0] M_AXI_BUSER, + input wire M_AXI_BVALID, + output wire M_AXI_BREADY, + + // Master Interface Read Address Port + output wire [C_AXI_ID_WIDTH-1:0] M_AXI_ARID, + output wire [C_AXI_ADDR_WIDTH-1:0] M_AXI_ARADDR, + output wire [4-1:0] M_AXI_ARLEN, + output wire [3-1:0] M_AXI_ARSIZE, + output wire [2-1:0] M_AXI_ARBURST, + output wire [2-1:0] M_AXI_ARLOCK, + output wire [4-1:0] M_AXI_ARCACHE, + output wire [3-1:0] M_AXI_ARPROT, + output wire [4-1:0] M_AXI_ARQOS, + output wire [C_AXI_ARUSER_WIDTH-1:0] M_AXI_ARUSER, + output wire M_AXI_ARVALID, + input wire M_AXI_ARREADY, + + // Master Interface Read Data Ports + input wire [C_AXI_ID_WIDTH-1:0] M_AXI_RID, + input wire [C_AXI_DATA_WIDTH-1:0] M_AXI_RDATA, + input wire [2-1:0] M_AXI_RRESP, + input wire M_AXI_RLAST, + input wire [C_AXI_RUSER_WIDTH-1:0] M_AXI_RUSER, + input wire M_AXI_RVALID, + output wire M_AXI_RREADY + ); + + + ///////////////////////////////////////////////////////////////////////////// + // Functions + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Local params + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Variables for generating parameter controlled instances. + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Internal signals + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Handle Write Channels (AW/W/B) + ///////////////////////////////////////////////////////////////////////////// + generate + if (C_AXI_SUPPORTS_WRITE == 1) begin : USE_WRITE + + // Write Channel Signals for Commands Queue Interface. + wire wr_cmd_valid; + wire [C_AXI_ID_WIDTH-1:0] wr_cmd_id; + wire [4-1:0] wr_cmd_length; + wire wr_cmd_ready; + + wire wr_cmd_b_valid; + wire wr_cmd_b_split; + wire [4-1:0] wr_cmd_b_repeat; + wire wr_cmd_b_ready; + + // Write Address Channel. + axi_protocol_converter_v2_1_9_a_axi3_conv # + ( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_AUSER_WIDTH (C_AXI_AWUSER_WIDTH), + .C_AXI_CHANNEL (0), + .C_SUPPORT_SPLITTING (C_SUPPORT_SPLITTING), + .C_SUPPORT_BURSTS (C_SUPPORT_BURSTS), + .C_SINGLE_THREAD (C_SINGLE_THREAD) + ) write_addr_inst + ( + // Global Signals + .ARESET (~ARESETN), + .ACLK (ACLK), + + // Command Interface (W) + .cmd_valid (wr_cmd_valid), + .cmd_split (), + .cmd_id (wr_cmd_id), + .cmd_length (wr_cmd_length), + .cmd_ready (wr_cmd_ready), + + // Command Interface (B) + .cmd_b_valid (wr_cmd_b_valid), + .cmd_b_split (wr_cmd_b_split), + .cmd_b_repeat (wr_cmd_b_repeat), + .cmd_b_ready (wr_cmd_b_ready), + + // Slave Interface Write Address Ports + .S_AXI_AID (S_AXI_AWID), + .S_AXI_AADDR (S_AXI_AWADDR), + .S_AXI_ALEN (S_AXI_AWLEN), + .S_AXI_ASIZE (S_AXI_AWSIZE), + .S_AXI_ABURST (S_AXI_AWBURST), + .S_AXI_ALOCK (S_AXI_AWLOCK), + .S_AXI_ACACHE (S_AXI_AWCACHE), + .S_AXI_APROT (S_AXI_AWPROT), + .S_AXI_AQOS (S_AXI_AWQOS), + .S_AXI_AUSER (S_AXI_AWUSER), + .S_AXI_AVALID (S_AXI_AWVALID), + .S_AXI_AREADY (S_AXI_AWREADY), + + // Master Interface Write Address Port + .M_AXI_AID (M_AXI_AWID), + .M_AXI_AADDR (M_AXI_AWADDR), + .M_AXI_ALEN (M_AXI_AWLEN), + .M_AXI_ASIZE (M_AXI_AWSIZE), + .M_AXI_ABURST (M_AXI_AWBURST), + .M_AXI_ALOCK (M_AXI_AWLOCK), + .M_AXI_ACACHE (M_AXI_AWCACHE), + .M_AXI_APROT (M_AXI_AWPROT), + .M_AXI_AQOS (M_AXI_AWQOS), + .M_AXI_AUSER (M_AXI_AWUSER), + .M_AXI_AVALID (M_AXI_AWVALID), + .M_AXI_AREADY (M_AXI_AWREADY) + ); + + // Write Data Channel. + axi_protocol_converter_v2_1_9_w_axi3_conv # + ( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_WUSER_WIDTH (C_AXI_WUSER_WIDTH), + .C_SUPPORT_SPLITTING (C_SUPPORT_SPLITTING), + .C_SUPPORT_BURSTS (C_SUPPORT_BURSTS) + ) write_data_inst + ( + // Global Signals + .ARESET (~ARESETN), + .ACLK (ACLK), + + // Command Interface + .cmd_valid (wr_cmd_valid), + .cmd_id (wr_cmd_id), + .cmd_length (wr_cmd_length), + .cmd_ready (wr_cmd_ready), + + // Slave Interface Write Data Ports + .S_AXI_WDATA (S_AXI_WDATA), + .S_AXI_WSTRB (S_AXI_WSTRB), + .S_AXI_WLAST (S_AXI_WLAST), + .S_AXI_WUSER (S_AXI_WUSER), + .S_AXI_WVALID (S_AXI_WVALID), + .S_AXI_WREADY (S_AXI_WREADY), + + // Master Interface Write Data Ports + .M_AXI_WID (M_AXI_WID), + .M_AXI_WDATA (M_AXI_WDATA), + .M_AXI_WSTRB (M_AXI_WSTRB), + .M_AXI_WLAST (M_AXI_WLAST), + .M_AXI_WUSER (M_AXI_WUSER), + .M_AXI_WVALID (M_AXI_WVALID), + .M_AXI_WREADY (M_AXI_WREADY) + ); + + if ( C_SUPPORT_SPLITTING == 1 && C_SUPPORT_BURSTS == 1 ) begin : USE_SPLIT_W + + // Write Data Response Channel. + axi_protocol_converter_v2_1_9_b_downsizer # + ( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_BUSER_WIDTH (C_AXI_BUSER_WIDTH) + ) write_resp_inst + ( + // Global Signals + .ARESET (~ARESETN), + .ACLK (ACLK), + + // Command Interface + .cmd_valid (wr_cmd_b_valid), + .cmd_split (wr_cmd_b_split), + .cmd_repeat (wr_cmd_b_repeat), + .cmd_ready (wr_cmd_b_ready), + + // Slave Interface Write Response Ports + .S_AXI_BID (S_AXI_BID), + .S_AXI_BRESP (S_AXI_BRESP), + .S_AXI_BUSER (S_AXI_BUSER), + .S_AXI_BVALID (S_AXI_BVALID), + .S_AXI_BREADY (S_AXI_BREADY), + + // Master Interface Write Response Ports + .M_AXI_BID (M_AXI_BID), + .M_AXI_BRESP (M_AXI_BRESP), + .M_AXI_BUSER (M_AXI_BUSER), + .M_AXI_BVALID (M_AXI_BVALID), + .M_AXI_BREADY (M_AXI_BREADY) + ); + + end else begin : NO_SPLIT_W + + // MI -> SI Interface Write Response Ports + assign S_AXI_BID = M_AXI_BID; + assign S_AXI_BRESP = M_AXI_BRESP; + assign S_AXI_BUSER = M_AXI_BUSER; + assign S_AXI_BVALID = M_AXI_BVALID; + assign M_AXI_BREADY = S_AXI_BREADY; + + end + + end else begin : NO_WRITE + + // Slave Interface Write Address Ports + assign S_AXI_AWREADY = 1'b0; + // Slave Interface Write Data Ports + assign S_AXI_WREADY = 1'b0; + // Slave Interface Write Response Ports + assign S_AXI_BID = {C_AXI_ID_WIDTH{1'b0}}; + assign S_AXI_BRESP = 2'b0; + assign S_AXI_BUSER = {C_AXI_BUSER_WIDTH{1'b0}}; + assign S_AXI_BVALID = 1'b0; + + // Master Interface Write Address Port + assign M_AXI_AWID = {C_AXI_ID_WIDTH{1'b0}}; + assign M_AXI_AWADDR = {C_AXI_ADDR_WIDTH{1'b0}}; + assign M_AXI_AWLEN = 4'b0; + assign M_AXI_AWSIZE = 3'b0; + assign M_AXI_AWBURST = 2'b0; + assign M_AXI_AWLOCK = 2'b0; + assign M_AXI_AWCACHE = 4'b0; + assign M_AXI_AWPROT = 3'b0; + assign M_AXI_AWQOS = 4'b0; + assign M_AXI_AWUSER = {C_AXI_AWUSER_WIDTH{1'b0}}; + assign M_AXI_AWVALID = 1'b0; + // Master Interface Write Data Ports + assign M_AXI_WDATA = {C_AXI_DATA_WIDTH{1'b0}}; + assign M_AXI_WSTRB = {C_AXI_DATA_WIDTH/8{1'b0}}; + assign M_AXI_WLAST = 1'b0; + assign M_AXI_WUSER = {C_AXI_WUSER_WIDTH{1'b0}}; + assign M_AXI_WVALID = 1'b0; + // Master Interface Write Response Ports + assign M_AXI_BREADY = 1'b0; + + end + endgenerate + + + ///////////////////////////////////////////////////////////////////////////// + // Handle Read Channels (AR/R) + ///////////////////////////////////////////////////////////////////////////// + generate + if (C_AXI_SUPPORTS_READ == 1) begin : USE_READ + + // Write Response channel. + if ( C_SUPPORT_SPLITTING == 1 && C_SUPPORT_BURSTS == 1 ) begin : USE_SPLIT_R + + // Read Channel Signals for Commands Queue Interface. + wire rd_cmd_valid; + wire rd_cmd_split; + wire rd_cmd_ready; + + // Write Address Channel. + axi_protocol_converter_v2_1_9_a_axi3_conv # + ( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_AUSER_WIDTH (C_AXI_ARUSER_WIDTH), + .C_AXI_CHANNEL (1), + .C_SUPPORT_SPLITTING (C_SUPPORT_SPLITTING), + .C_SUPPORT_BURSTS (C_SUPPORT_BURSTS), + .C_SINGLE_THREAD (C_SINGLE_THREAD) + ) read_addr_inst + ( + // Global Signals + .ARESET (~ARESETN), + .ACLK (ACLK), + + // Command Interface (R) + .cmd_valid (rd_cmd_valid), + .cmd_split (rd_cmd_split), + .cmd_id (), + .cmd_length (), + .cmd_ready (rd_cmd_ready), + + // Command Interface (B) + .cmd_b_valid (), + .cmd_b_split (), + .cmd_b_repeat (), + .cmd_b_ready (1'b0), + + // Slave Interface Write Address Ports + .S_AXI_AID (S_AXI_ARID), + .S_AXI_AADDR (S_AXI_ARADDR), + .S_AXI_ALEN (S_AXI_ARLEN), + .S_AXI_ASIZE (S_AXI_ARSIZE), + .S_AXI_ABURST (S_AXI_ARBURST), + .S_AXI_ALOCK (S_AXI_ARLOCK), + .S_AXI_ACACHE (S_AXI_ARCACHE), + .S_AXI_APROT (S_AXI_ARPROT), + .S_AXI_AQOS (S_AXI_ARQOS), + .S_AXI_AUSER (S_AXI_ARUSER), + .S_AXI_AVALID (S_AXI_ARVALID), + .S_AXI_AREADY (S_AXI_ARREADY), + + // Master Interface Write Address Port + .M_AXI_AID (M_AXI_ARID), + .M_AXI_AADDR (M_AXI_ARADDR), + .M_AXI_ALEN (M_AXI_ARLEN), + .M_AXI_ASIZE (M_AXI_ARSIZE), + .M_AXI_ABURST (M_AXI_ARBURST), + .M_AXI_ALOCK (M_AXI_ARLOCK), + .M_AXI_ACACHE (M_AXI_ARCACHE), + .M_AXI_APROT (M_AXI_ARPROT), + .M_AXI_AQOS (M_AXI_ARQOS), + .M_AXI_AUSER (M_AXI_ARUSER), + .M_AXI_AVALID (M_AXI_ARVALID), + .M_AXI_AREADY (M_AXI_ARREADY) + ); + + // Read Data Channel. + axi_protocol_converter_v2_1_9_r_axi3_conv # + ( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_RUSER_WIDTH (C_AXI_RUSER_WIDTH), + .C_SUPPORT_SPLITTING (C_SUPPORT_SPLITTING), + .C_SUPPORT_BURSTS (C_SUPPORT_BURSTS) + ) read_data_inst + ( + // Global Signals + .ARESET (~ARESETN), + .ACLK (ACLK), + + // Command Interface + .cmd_valid (rd_cmd_valid), + .cmd_split (rd_cmd_split), + .cmd_ready (rd_cmd_ready), + + // Slave Interface Read Data Ports + .S_AXI_RID (S_AXI_RID), + .S_AXI_RDATA (S_AXI_RDATA), + .S_AXI_RRESP (S_AXI_RRESP), + .S_AXI_RLAST (S_AXI_RLAST), + .S_AXI_RUSER (S_AXI_RUSER), + .S_AXI_RVALID (S_AXI_RVALID), + .S_AXI_RREADY (S_AXI_RREADY), + + // Master Interface Read Data Ports + .M_AXI_RID (M_AXI_RID), + .M_AXI_RDATA (M_AXI_RDATA), + .M_AXI_RRESP (M_AXI_RRESP), + .M_AXI_RLAST (M_AXI_RLAST), + .M_AXI_RUSER (M_AXI_RUSER), + .M_AXI_RVALID (M_AXI_RVALID), + .M_AXI_RREADY (M_AXI_RREADY) + ); + + end else begin : NO_SPLIT_R + + // SI -> MI Interface Write Address Port + assign M_AXI_ARID = S_AXI_ARID; + assign M_AXI_ARADDR = S_AXI_ARADDR; + assign M_AXI_ARLEN = S_AXI_ARLEN; + assign M_AXI_ARSIZE = S_AXI_ARSIZE; + assign M_AXI_ARBURST = S_AXI_ARBURST; + assign M_AXI_ARLOCK = S_AXI_ARLOCK; + assign M_AXI_ARCACHE = S_AXI_ARCACHE; + assign M_AXI_ARPROT = S_AXI_ARPROT; + assign M_AXI_ARQOS = S_AXI_ARQOS; + assign M_AXI_ARUSER = S_AXI_ARUSER; + assign M_AXI_ARVALID = S_AXI_ARVALID; + assign S_AXI_ARREADY = M_AXI_ARREADY; + + // MI -> SI Interface Read Data Ports + assign S_AXI_RID = M_AXI_RID; + assign S_AXI_RDATA = M_AXI_RDATA; + assign S_AXI_RRESP = M_AXI_RRESP; + assign S_AXI_RLAST = M_AXI_RLAST; + assign S_AXI_RUSER = M_AXI_RUSER; + assign S_AXI_RVALID = M_AXI_RVALID; + assign M_AXI_RREADY = S_AXI_RREADY; + + end + + end else begin : NO_READ + + // Slave Interface Read Address Ports + assign S_AXI_ARREADY = 1'b0; + // Slave Interface Read Data Ports + assign S_AXI_RID = {C_AXI_ID_WIDTH{1'b0}}; + assign S_AXI_RDATA = {C_AXI_DATA_WIDTH{1'b0}}; + assign S_AXI_RRESP = 2'b0; + assign S_AXI_RLAST = 1'b0; + assign S_AXI_RUSER = {C_AXI_RUSER_WIDTH{1'b0}}; + assign S_AXI_RVALID = 1'b0; + + // Master Interface Read Address Port + assign M_AXI_ARID = {C_AXI_ID_WIDTH{1'b0}}; + assign M_AXI_ARADDR = {C_AXI_ADDR_WIDTH{1'b0}}; + assign M_AXI_ARLEN = 4'b0; + assign M_AXI_ARSIZE = 3'b0; + assign M_AXI_ARBURST = 2'b0; + assign M_AXI_ARLOCK = 2'b0; + assign M_AXI_ARCACHE = 4'b0; + assign M_AXI_ARPROT = 3'b0; + assign M_AXI_ARQOS = 4'b0; + assign M_AXI_ARUSER = {C_AXI_ARUSER_WIDTH{1'b0}}; + assign M_AXI_ARVALID = 1'b0; + // Master Interface Read Data Ports + assign M_AXI_RREADY = 1'b0; + + end + endgenerate + + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v new file mode 100755 index 00000000..cd614cea --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axi_protocol_converter.v @@ -0,0 +1,840 @@ +// -- (c) Copyright 2012 -2013 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. +//----------------------------------------------------------------------------- +// +// File name: axi_protocol_converter.v +// +// Description: +// This module is a bank of AXI4-Lite and AXI3 protocol converters for a vectored AXI interface. +// The interface of this module consists of a vectored slave and master interface +// which are each concatenations of upper-level AXI pathways, +// plus various vectored parameters. +// This module instantiates a set of individual protocol converter modules. +// +//----------------------------------------------------------------------------- +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_axi_protocol_converter #( + parameter C_FAMILY = "virtex6", + parameter integer C_M_AXI_PROTOCOL = 0, + parameter integer C_S_AXI_PROTOCOL = 0, + parameter integer C_IGNORE_ID = 0, + // 0 = RID/BID are stored by axilite_conv. + // 1 = RID/BID have already been stored in an upstream device, like SASD crossbar. + parameter integer C_AXI_ID_WIDTH = 4, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_WRITE = 1, + parameter integer C_AXI_SUPPORTS_READ = 1, + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + // 1 = Propagate all USER signals, 0 = Don’t propagate. + parameter integer C_AXI_AWUSER_WIDTH = 1, + parameter integer C_AXI_ARUSER_WIDTH = 1, + parameter integer C_AXI_WUSER_WIDTH = 1, + parameter integer C_AXI_RUSER_WIDTH = 1, + parameter integer C_AXI_BUSER_WIDTH = 1, + parameter integer C_TRANSLATION_MODE = 1 + // 0 (Unprotected) = Disable all error checking; master is well-behaved. + // 1 (Protection) = Detect SI transaction violations, but perform no splitting. + // AXI4 -> AXI3 must be <= 16 beats; AXI4/3 -> AXI4LITE must be single. + // 2 (Conversion) = Include transaction splitting logic +) ( + // Global Signals + input wire aclk, + input wire aresetn, + + // Slave Interface Write Address Ports + input wire [C_AXI_ID_WIDTH-1:0] s_axi_awid, + input wire [C_AXI_ADDR_WIDTH-1:0] s_axi_awaddr, + input wire [((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] s_axi_awlen, + input wire [3-1:0] s_axi_awsize, + input wire [2-1:0] s_axi_awburst, + input wire [((C_S_AXI_PROTOCOL == 1) ? 2 : 1)-1:0] s_axi_awlock, + input wire [4-1:0] s_axi_awcache, + input wire [3-1:0] s_axi_awprot, + input wire [4-1:0] s_axi_awregion, + input wire [4-1:0] s_axi_awqos, + input wire [C_AXI_AWUSER_WIDTH-1:0] s_axi_awuser, + input wire s_axi_awvalid, + output wire s_axi_awready, + + // Slave Interface Write Data Ports + input wire [C_AXI_ID_WIDTH-1:0] s_axi_wid, + input wire [C_AXI_DATA_WIDTH-1:0] s_axi_wdata, + input wire [C_AXI_DATA_WIDTH/8-1:0] s_axi_wstrb, + input wire s_axi_wlast, + input wire [C_AXI_WUSER_WIDTH-1:0] s_axi_wuser, + input wire s_axi_wvalid, + output wire s_axi_wready, + + // Slave Interface Write Response Ports + output wire [C_AXI_ID_WIDTH-1:0] s_axi_bid, + output wire [2-1:0] s_axi_bresp, + output wire [C_AXI_BUSER_WIDTH-1:0] s_axi_buser, + output wire s_axi_bvalid, + input wire s_axi_bready, + + // Slave Interface Read Address Ports + input wire [C_AXI_ID_WIDTH-1:0] s_axi_arid, + input wire [C_AXI_ADDR_WIDTH-1:0] s_axi_araddr, + input wire [((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] s_axi_arlen, + input wire [3-1:0] s_axi_arsize, + input wire [2-1:0] s_axi_arburst, + input wire [((C_S_AXI_PROTOCOL == 1) ? 2 : 1)-1:0] s_axi_arlock, + input wire [4-1:0] s_axi_arcache, + input wire [3-1:0] s_axi_arprot, + input wire [4-1:0] s_axi_arregion, + input wire [4-1:0] s_axi_arqos, + input wire [C_AXI_ARUSER_WIDTH-1:0] s_axi_aruser, + input wire s_axi_arvalid, + output wire s_axi_arready, + + // Slave Interface Read Data Ports + output wire [C_AXI_ID_WIDTH-1:0] s_axi_rid, + output wire [C_AXI_DATA_WIDTH-1:0] s_axi_rdata, + output wire [2-1:0] s_axi_rresp, + output wire s_axi_rlast, + output wire [C_AXI_RUSER_WIDTH-1:0] s_axi_ruser, + output wire s_axi_rvalid, + input wire s_axi_rready, + + // Master Interface Write Address Port + output wire [C_AXI_ID_WIDTH-1:0] m_axi_awid, + output wire [C_AXI_ADDR_WIDTH-1:0] m_axi_awaddr, + output wire [((C_M_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] m_axi_awlen, + output wire [3-1:0] m_axi_awsize, + output wire [2-1:0] m_axi_awburst, + output wire [((C_M_AXI_PROTOCOL == 1) ? 2 : 1)-1:0] m_axi_awlock, + output wire [4-1:0] m_axi_awcache, + output wire [3-1:0] m_axi_awprot, + output wire [4-1:0] m_axi_awregion, + output wire [4-1:0] m_axi_awqos, + output wire [C_AXI_AWUSER_WIDTH-1:0] m_axi_awuser, + output wire m_axi_awvalid, + input wire m_axi_awready, + + // Master Interface Write Data Ports + output wire [C_AXI_ID_WIDTH-1:0] m_axi_wid, + output wire [C_AXI_DATA_WIDTH-1:0] m_axi_wdata, + output wire [C_AXI_DATA_WIDTH/8-1:0] m_axi_wstrb, + output wire m_axi_wlast, + output wire [C_AXI_WUSER_WIDTH-1:0] m_axi_wuser, + output wire m_axi_wvalid, + input wire m_axi_wready, + + // Master Interface Write Response Ports + input wire [C_AXI_ID_WIDTH-1:0] m_axi_bid, + input wire [2-1:0] m_axi_bresp, + input wire [C_AXI_BUSER_WIDTH-1:0] m_axi_buser, + input wire m_axi_bvalid, + output wire m_axi_bready, + + // Master Interface Read Address Port + output wire [C_AXI_ID_WIDTH-1:0] m_axi_arid, + output wire [C_AXI_ADDR_WIDTH-1:0] m_axi_araddr, + output wire [((C_M_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] m_axi_arlen, + output wire [3-1:0] m_axi_arsize, + output wire [2-1:0] m_axi_arburst, + output wire [((C_M_AXI_PROTOCOL == 1) ? 2 : 1)-1:0] m_axi_arlock, + output wire [4-1:0] m_axi_arcache, + output wire [3-1:0] m_axi_arprot, + output wire [4-1:0] m_axi_arregion, + output wire [4-1:0] m_axi_arqos, + output wire [C_AXI_ARUSER_WIDTH-1:0] m_axi_aruser, + output wire m_axi_arvalid, + input wire m_axi_arready, + + // Master Interface Read Data Ports + input wire [C_AXI_ID_WIDTH-1:0] m_axi_rid, + input wire [C_AXI_DATA_WIDTH-1:0] m_axi_rdata, + input wire [2-1:0] m_axi_rresp, + input wire m_axi_rlast, + input wire [C_AXI_RUSER_WIDTH-1:0] m_axi_ruser, + input wire m_axi_rvalid, + output wire m_axi_rready +); + +localparam P_AXI4 = 32'h0; +localparam P_AXI3 = 32'h1; +localparam P_AXILITE = 32'h2; +localparam P_AXILITE_SIZE = (C_AXI_DATA_WIDTH == 32) ? 3'b010 : 3'b011; +localparam P_INCR = 2'b01; +localparam P_DECERR = 2'b11; +localparam P_SLVERR = 2'b10; +localparam integer P_PROTECTION = 1; +localparam integer P_CONVERSION = 2; + +wire s_awvalid_i; +wire s_arvalid_i; +wire s_wvalid_i ; +wire s_bready_i ; +wire s_rready_i ; +wire s_awready_i; +wire s_wready_i; +wire s_bvalid_i; +wire [C_AXI_ID_WIDTH-1:0] s_bid_i; +wire [1:0] s_bresp_i; +wire [C_AXI_BUSER_WIDTH-1:0] s_buser_i; +wire s_arready_i; +wire s_rvalid_i; +wire [C_AXI_ID_WIDTH-1:0] s_rid_i; +wire [1:0] s_rresp_i; +wire [C_AXI_RUSER_WIDTH-1:0] s_ruser_i; +wire [C_AXI_DATA_WIDTH-1:0] s_rdata_i; +wire s_rlast_i; + +generate + if ((C_M_AXI_PROTOCOL == P_AXILITE) || (C_S_AXI_PROTOCOL == P_AXILITE)) begin : gen_axilite + assign m_axi_awid = 0; + assign m_axi_awlen = 0; + assign m_axi_awsize = P_AXILITE_SIZE; + assign m_axi_awburst = P_INCR; + assign m_axi_awlock = 0; + assign m_axi_awcache = 0; + assign m_axi_awregion = 0; + assign m_axi_awqos = 0; + assign m_axi_awuser = 0; + assign m_axi_wid = 0; + assign m_axi_wlast = 1'b1; + assign m_axi_wuser = 0; + assign m_axi_arid = 0; + assign m_axi_arlen = 0; + assign m_axi_arsize = P_AXILITE_SIZE; + assign m_axi_arburst = P_INCR; + assign m_axi_arlock = 0; + assign m_axi_arcache = 0; + assign m_axi_arregion = 0; + assign m_axi_arqos = 0; + assign m_axi_aruser = 0; + + if (((C_IGNORE_ID == 1) && (C_TRANSLATION_MODE != P_CONVERSION)) || (C_S_AXI_PROTOCOL == P_AXILITE)) begin : gen_axilite_passthru + assign m_axi_awaddr = s_axi_awaddr; + assign m_axi_awprot = s_axi_awprot; + assign m_axi_awvalid = s_awvalid_i; + assign s_awready_i = m_axi_awready; + assign m_axi_wdata = s_axi_wdata; + assign m_axi_wstrb = s_axi_wstrb; + assign m_axi_wvalid = s_wvalid_i; + assign s_wready_i = m_axi_wready; + assign s_bid_i = 0; + assign s_bresp_i = m_axi_bresp; + assign s_buser_i = 0; + assign s_bvalid_i = m_axi_bvalid; + assign m_axi_bready = s_bready_i; + assign m_axi_araddr = s_axi_araddr; + assign m_axi_arprot = s_axi_arprot; + assign m_axi_arvalid = s_arvalid_i; + assign s_arready_i = m_axi_arready; + assign s_rid_i = 0; + assign s_rdata_i = m_axi_rdata; + assign s_rresp_i = m_axi_rresp; + assign s_rlast_i = 1'b1; + assign s_ruser_i = 0; + assign s_rvalid_i = m_axi_rvalid; + assign m_axi_rready = s_rready_i; + + end else if (C_TRANSLATION_MODE == P_CONVERSION) begin : gen_b2s_conv + assign s_buser_i = {C_AXI_BUSER_WIDTH{1'b0}}; + assign s_ruser_i = {C_AXI_RUSER_WIDTH{1'b0}}; + + axi_protocol_converter_v2_1_9_b2s #( + .C_S_AXI_PROTOCOL (C_S_AXI_PROTOCOL), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_WRITE (C_AXI_SUPPORTS_WRITE), + .C_AXI_SUPPORTS_READ (C_AXI_SUPPORTS_READ) + ) axilite_b2s ( + .aresetn (aresetn), + .aclk (aclk), + .s_axi_awid (s_axi_awid), + .s_axi_awaddr (s_axi_awaddr), + .s_axi_awlen (s_axi_awlen), + .s_axi_awsize (s_axi_awsize), + .s_axi_awburst (s_axi_awburst), + .s_axi_awprot (s_axi_awprot), + .s_axi_awvalid (s_awvalid_i), + .s_axi_awready (s_awready_i), + .s_axi_wdata (s_axi_wdata), + .s_axi_wstrb (s_axi_wstrb), + .s_axi_wlast (s_axi_wlast), + .s_axi_wvalid (s_wvalid_i), + .s_axi_wready (s_wready_i), + .s_axi_bid (s_bid_i), + .s_axi_bresp (s_bresp_i), + .s_axi_bvalid (s_bvalid_i), + .s_axi_bready (s_bready_i), + .s_axi_arid (s_axi_arid), + .s_axi_araddr (s_axi_araddr), + .s_axi_arlen (s_axi_arlen), + .s_axi_arsize (s_axi_arsize), + .s_axi_arburst (s_axi_arburst), + .s_axi_arprot (s_axi_arprot), + .s_axi_arvalid (s_arvalid_i), + .s_axi_arready (s_arready_i), + .s_axi_rid (s_rid_i), + .s_axi_rdata (s_rdata_i), + .s_axi_rresp (s_rresp_i), + .s_axi_rlast (s_rlast_i), + .s_axi_rvalid (s_rvalid_i), + .s_axi_rready (s_rready_i), + .m_axi_awaddr (m_axi_awaddr), + .m_axi_awprot (m_axi_awprot), + .m_axi_awvalid (m_axi_awvalid), + .m_axi_awready (m_axi_awready), + .m_axi_wdata (m_axi_wdata), + .m_axi_wstrb (m_axi_wstrb), + .m_axi_wvalid (m_axi_wvalid), + .m_axi_wready (m_axi_wready), + .m_axi_bresp (m_axi_bresp), + .m_axi_bvalid (m_axi_bvalid), + .m_axi_bready (m_axi_bready), + .m_axi_araddr (m_axi_araddr), + .m_axi_arprot (m_axi_arprot), + .m_axi_arvalid (m_axi_arvalid), + .m_axi_arready (m_axi_arready), + .m_axi_rdata (m_axi_rdata), + .m_axi_rresp (m_axi_rresp), + .m_axi_rvalid (m_axi_rvalid), + .m_axi_rready (m_axi_rready) + ); + end else begin : gen_axilite_conv + axi_protocol_converter_v2_1_9_axilite_conv #( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_WRITE (C_AXI_SUPPORTS_WRITE), + .C_AXI_SUPPORTS_READ (C_AXI_SUPPORTS_READ), + .C_AXI_RUSER_WIDTH (C_AXI_RUSER_WIDTH), + .C_AXI_BUSER_WIDTH (C_AXI_BUSER_WIDTH) + ) axilite_conv_inst ( + .ARESETN (aresetn), + .ACLK (aclk), + .S_AXI_AWID (s_axi_awid), + .S_AXI_AWADDR (s_axi_awaddr), + .S_AXI_AWPROT (s_axi_awprot), + .S_AXI_AWVALID (s_awvalid_i), + .S_AXI_AWREADY (s_awready_i), + .S_AXI_WDATA (s_axi_wdata), + .S_AXI_WSTRB (s_axi_wstrb), + .S_AXI_WVALID (s_wvalid_i), + .S_AXI_WREADY (s_wready_i), + .S_AXI_BID (s_bid_i), + .S_AXI_BRESP (s_bresp_i), + .S_AXI_BUSER (s_buser_i), + .S_AXI_BVALID (s_bvalid_i), + .S_AXI_BREADY (s_bready_i), + .S_AXI_ARID (s_axi_arid), + .S_AXI_ARADDR (s_axi_araddr), + .S_AXI_ARPROT (s_axi_arprot), + .S_AXI_ARVALID (s_arvalid_i), + .S_AXI_ARREADY (s_arready_i), + .S_AXI_RID (s_rid_i), + .S_AXI_RDATA (s_rdata_i), + .S_AXI_RRESP (s_rresp_i), + .S_AXI_RLAST (s_rlast_i), + .S_AXI_RUSER (s_ruser_i), + .S_AXI_RVALID (s_rvalid_i), + .S_AXI_RREADY (s_rready_i), + .M_AXI_AWADDR (m_axi_awaddr), + .M_AXI_AWPROT (m_axi_awprot), + .M_AXI_AWVALID (m_axi_awvalid), + .M_AXI_AWREADY (m_axi_awready), + .M_AXI_WDATA (m_axi_wdata), + .M_AXI_WSTRB (m_axi_wstrb), + .M_AXI_WVALID (m_axi_wvalid), + .M_AXI_WREADY (m_axi_wready), + .M_AXI_BRESP (m_axi_bresp), + .M_AXI_BVALID (m_axi_bvalid), + .M_AXI_BREADY (m_axi_bready), + .M_AXI_ARADDR (m_axi_araddr), + .M_AXI_ARPROT (m_axi_arprot), + .M_AXI_ARVALID (m_axi_arvalid), + .M_AXI_ARREADY (m_axi_arready), + .M_AXI_RDATA (m_axi_rdata), + .M_AXI_RRESP (m_axi_rresp), + .M_AXI_RVALID (m_axi_rvalid), + .M_AXI_RREADY (m_axi_rready) + ); + end + end else if ((C_M_AXI_PROTOCOL == P_AXI3) && (C_S_AXI_PROTOCOL == P_AXI4)) begin : gen_axi4_axi3 + axi_protocol_converter_v2_1_9_axi3_conv #( + .C_FAMILY (C_FAMILY), + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_SUPPORTS_USER_SIGNALS (C_AXI_SUPPORTS_USER_SIGNALS), + .C_AXI_AWUSER_WIDTH (C_AXI_AWUSER_WIDTH), + .C_AXI_ARUSER_WIDTH (C_AXI_ARUSER_WIDTH), + .C_AXI_WUSER_WIDTH (C_AXI_WUSER_WIDTH), + .C_AXI_RUSER_WIDTH (C_AXI_RUSER_WIDTH), + .C_AXI_BUSER_WIDTH (C_AXI_BUSER_WIDTH), + .C_AXI_SUPPORTS_WRITE (C_AXI_SUPPORTS_WRITE), + .C_AXI_SUPPORTS_READ (C_AXI_SUPPORTS_READ), + .C_SUPPORT_SPLITTING ((C_TRANSLATION_MODE == P_CONVERSION) ? 1 : 0) + ) axi3_conv_inst ( + .ARESETN (aresetn), + .ACLK (aclk), + .S_AXI_AWID (s_axi_awid), + .S_AXI_AWADDR (s_axi_awaddr), + .S_AXI_AWLEN (s_axi_awlen), + .S_AXI_AWSIZE (s_axi_awsize), + .S_AXI_AWBURST (s_axi_awburst), + .S_AXI_AWLOCK (s_axi_awlock), + .S_AXI_AWCACHE (s_axi_awcache), + .S_AXI_AWPROT (s_axi_awprot), + .S_AXI_AWQOS (s_axi_awqos), + .S_AXI_AWUSER (s_axi_awuser), + .S_AXI_AWVALID (s_awvalid_i), + .S_AXI_AWREADY (s_awready_i), + .S_AXI_WDATA (s_axi_wdata), + .S_AXI_WSTRB (s_axi_wstrb), + .S_AXI_WLAST (s_axi_wlast), + .S_AXI_WUSER (s_axi_wuser), + .S_AXI_WVALID (s_wvalid_i), + .S_AXI_WREADY (s_wready_i), + .S_AXI_BID (s_bid_i), + .S_AXI_BRESP (s_bresp_i), + .S_AXI_BUSER (s_buser_i), + .S_AXI_BVALID (s_bvalid_i), + .S_AXI_BREADY (s_bready_i), + .S_AXI_ARID (s_axi_arid), + .S_AXI_ARADDR (s_axi_araddr), + .S_AXI_ARLEN (s_axi_arlen), + .S_AXI_ARSIZE (s_axi_arsize), + .S_AXI_ARBURST (s_axi_arburst), + .S_AXI_ARLOCK (s_axi_arlock), + .S_AXI_ARCACHE (s_axi_arcache), + .S_AXI_ARPROT (s_axi_arprot), + .S_AXI_ARQOS (s_axi_arqos), + .S_AXI_ARUSER (s_axi_aruser), + .S_AXI_ARVALID (s_arvalid_i), + .S_AXI_ARREADY (s_arready_i), + .S_AXI_RID (s_rid_i), + .S_AXI_RDATA (s_rdata_i), + .S_AXI_RRESP (s_rresp_i), + .S_AXI_RLAST (s_rlast_i), + .S_AXI_RUSER (s_ruser_i), + .S_AXI_RVALID (s_rvalid_i), + .S_AXI_RREADY (s_rready_i), + .M_AXI_AWID (m_axi_awid), + .M_AXI_AWADDR (m_axi_awaddr), + .M_AXI_AWLEN (m_axi_awlen), + .M_AXI_AWSIZE (m_axi_awsize), + .M_AXI_AWBURST (m_axi_awburst), + .M_AXI_AWLOCK (m_axi_awlock), + .M_AXI_AWCACHE (m_axi_awcache), + .M_AXI_AWPROT (m_axi_awprot), + .M_AXI_AWQOS (m_axi_awqos), + .M_AXI_AWUSER (m_axi_awuser), + .M_AXI_AWVALID (m_axi_awvalid), + .M_AXI_AWREADY (m_axi_awready), + .M_AXI_WID (m_axi_wid), + .M_AXI_WDATA (m_axi_wdata), + .M_AXI_WSTRB (m_axi_wstrb), + .M_AXI_WLAST (m_axi_wlast), + .M_AXI_WUSER (m_axi_wuser), + .M_AXI_WVALID (m_axi_wvalid), + .M_AXI_WREADY (m_axi_wready), + .M_AXI_BID (m_axi_bid), + .M_AXI_BRESP (m_axi_bresp), + .M_AXI_BUSER (m_axi_buser), + .M_AXI_BVALID (m_axi_bvalid), + .M_AXI_BREADY (m_axi_bready), + .M_AXI_ARID (m_axi_arid), + .M_AXI_ARADDR (m_axi_araddr), + .M_AXI_ARLEN (m_axi_arlen), + .M_AXI_ARSIZE (m_axi_arsize), + .M_AXI_ARBURST (m_axi_arburst), + .M_AXI_ARLOCK (m_axi_arlock), + .M_AXI_ARCACHE (m_axi_arcache), + .M_AXI_ARPROT (m_axi_arprot), + .M_AXI_ARQOS (m_axi_arqos), + .M_AXI_ARUSER (m_axi_aruser), + .M_AXI_ARVALID (m_axi_arvalid), + .M_AXI_ARREADY (m_axi_arready), + .M_AXI_RID (m_axi_rid), + .M_AXI_RDATA (m_axi_rdata), + .M_AXI_RRESP (m_axi_rresp), + .M_AXI_RLAST (m_axi_rlast), + .M_AXI_RUSER (m_axi_ruser), + .M_AXI_RVALID (m_axi_rvalid), + .M_AXI_RREADY (m_axi_rready) + ); + assign m_axi_awregion = 0; + assign m_axi_arregion = 0; + + end else if ((C_S_AXI_PROTOCOL == P_AXI3) && (C_M_AXI_PROTOCOL == P_AXI4)) begin : gen_axi3_axi4 + assign m_axi_awid = s_axi_awid; + assign m_axi_awaddr = s_axi_awaddr; + assign m_axi_awlen = {4'h0, s_axi_awlen[3:0]}; + assign m_axi_awsize = s_axi_awsize; + assign m_axi_awburst = s_axi_awburst; + assign m_axi_awlock = s_axi_awlock[0]; + assign m_axi_awcache = s_axi_awcache; + assign m_axi_awprot = s_axi_awprot; + assign m_axi_awregion = 4'h0; + assign m_axi_awqos = s_axi_awqos; + assign m_axi_awuser = s_axi_awuser; + assign m_axi_awvalid = s_awvalid_i; + assign s_awready_i = m_axi_awready; + assign m_axi_wid = {C_AXI_ID_WIDTH{1'b0}} ; + assign m_axi_wdata = s_axi_wdata; + assign m_axi_wstrb = s_axi_wstrb; + assign m_axi_wlast = s_axi_wlast; + assign m_axi_wuser = s_axi_wuser; + assign m_axi_wvalid = s_wvalid_i; + assign s_wready_i = m_axi_wready; + assign s_bid_i = m_axi_bid; + assign s_bresp_i = m_axi_bresp; + assign s_buser_i = m_axi_buser; + assign s_bvalid_i = m_axi_bvalid; + assign m_axi_bready = s_bready_i; + assign m_axi_arid = s_axi_arid; + assign m_axi_araddr = s_axi_araddr; + assign m_axi_arlen = {4'h0, s_axi_arlen[3:0]}; + assign m_axi_arsize = s_axi_arsize; + assign m_axi_arburst = s_axi_arburst; + assign m_axi_arlock = s_axi_arlock[0]; + assign m_axi_arcache = s_axi_arcache; + assign m_axi_arprot = s_axi_arprot; + assign m_axi_arregion = 4'h0; + assign m_axi_arqos = s_axi_arqos; + assign m_axi_aruser = s_axi_aruser; + assign m_axi_arvalid = s_arvalid_i; + assign s_arready_i = m_axi_arready; + assign s_rid_i = m_axi_rid; + assign s_rdata_i = m_axi_rdata; + assign s_rresp_i = m_axi_rresp; + assign s_rlast_i = m_axi_rlast; + assign s_ruser_i = m_axi_ruser; + assign s_rvalid_i = m_axi_rvalid; + assign m_axi_rready = s_rready_i; + + end else begin :gen_no_conv + assign m_axi_awid = s_axi_awid; + assign m_axi_awaddr = s_axi_awaddr; + assign m_axi_awlen = s_axi_awlen; + assign m_axi_awsize = s_axi_awsize; + assign m_axi_awburst = s_axi_awburst; + assign m_axi_awlock = s_axi_awlock; + assign m_axi_awcache = s_axi_awcache; + assign m_axi_awprot = s_axi_awprot; + assign m_axi_awregion = s_axi_awregion; + assign m_axi_awqos = s_axi_awqos; + assign m_axi_awuser = s_axi_awuser; + assign m_axi_awvalid = s_awvalid_i; + assign s_awready_i = m_axi_awready; + assign m_axi_wid = s_axi_wid; + assign m_axi_wdata = s_axi_wdata; + assign m_axi_wstrb = s_axi_wstrb; + assign m_axi_wlast = s_axi_wlast; + assign m_axi_wuser = s_axi_wuser; + assign m_axi_wvalid = s_wvalid_i; + assign s_wready_i = m_axi_wready; + assign s_bid_i = m_axi_bid; + assign s_bresp_i = m_axi_bresp; + assign s_buser_i = m_axi_buser; + assign s_bvalid_i = m_axi_bvalid; + assign m_axi_bready = s_bready_i; + assign m_axi_arid = s_axi_arid; + assign m_axi_araddr = s_axi_araddr; + assign m_axi_arlen = s_axi_arlen; + assign m_axi_arsize = s_axi_arsize; + assign m_axi_arburst = s_axi_arburst; + assign m_axi_arlock = s_axi_arlock; + assign m_axi_arcache = s_axi_arcache; + assign m_axi_arprot = s_axi_arprot; + assign m_axi_arregion = s_axi_arregion; + assign m_axi_arqos = s_axi_arqos; + assign m_axi_aruser = s_axi_aruser; + assign m_axi_arvalid = s_arvalid_i; + assign s_arready_i = m_axi_arready; + assign s_rid_i = m_axi_rid; + assign s_rdata_i = m_axi_rdata; + assign s_rresp_i = m_axi_rresp; + assign s_rlast_i = m_axi_rlast; + assign s_ruser_i = m_axi_ruser; + assign s_rvalid_i = m_axi_rvalid; + assign m_axi_rready = s_rready_i; + end + + if ((C_TRANSLATION_MODE == P_PROTECTION) && + (((C_S_AXI_PROTOCOL != P_AXILITE) && (C_M_AXI_PROTOCOL == P_AXILITE)) || + ((C_S_AXI_PROTOCOL == P_AXI4) && (C_M_AXI_PROTOCOL == P_AXI3)))) begin : gen_err_detect + + wire e_awvalid; + reg e_awvalid_r; + wire e_arvalid; + reg e_arvalid_r; + wire e_wvalid; + wire e_bvalid; + wire e_rvalid; + reg e_awready; + reg e_arready; + wire e_wready; + reg [C_AXI_ID_WIDTH-1:0] e_awid; + reg [C_AXI_ID_WIDTH-1:0] e_arid; + reg [8-1:0] e_arlen; + wire [C_AXI_ID_WIDTH-1:0] e_bid; + wire [C_AXI_ID_WIDTH-1:0] e_rid; + wire e_rlast; + wire w_err; + wire r_err; + wire busy_aw; + wire busy_w; + wire busy_ar; + wire aw_push; + wire aw_pop; + wire w_pop; + wire ar_push; + wire ar_pop; + reg s_awvalid_pending; + reg s_awvalid_en; + reg s_arvalid_en; + reg s_awready_en; + reg s_arready_en; + reg [4:0] aw_cnt; + reg [4:0] ar_cnt; + reg [4:0] w_cnt; + reg w_borrow; + reg err_busy_w; + reg err_busy_r; + + assign w_err = (C_M_AXI_PROTOCOL == P_AXILITE) ? (s_axi_awlen != 0) : ((s_axi_awlen>>4) != 0); + assign r_err = (C_M_AXI_PROTOCOL == P_AXILITE) ? (s_axi_arlen != 0) : ((s_axi_arlen>>4) != 0); + assign s_awvalid_i = s_axi_awvalid & s_awvalid_en & ~w_err; + assign e_awvalid = e_awvalid_r & ~busy_aw & ~busy_w; + assign s_arvalid_i = s_axi_arvalid & s_arvalid_en & ~r_err; + assign e_arvalid = e_arvalid_r & ~busy_ar ; + assign s_wvalid_i = s_axi_wvalid & (busy_w | (s_awvalid_pending & ~w_borrow)); + assign e_wvalid = s_axi_wvalid & err_busy_w; + assign s_bready_i = s_axi_bready & busy_aw; + assign s_rready_i = s_axi_rready & busy_ar; + assign s_axi_awready = (s_awready_i & s_awready_en) | e_awready; + assign s_axi_wready = (s_wready_i & (busy_w | (s_awvalid_pending & ~w_borrow))) | e_wready; + assign s_axi_bvalid = (s_bvalid_i & busy_aw) | e_bvalid; + assign s_axi_bid = err_busy_w ? e_bid : s_bid_i; + assign s_axi_bresp = err_busy_w ? P_SLVERR : s_bresp_i; + assign s_axi_buser = err_busy_w ? {C_AXI_BUSER_WIDTH{1'b0}} : s_buser_i; + assign s_axi_arready = (s_arready_i & s_arready_en) | e_arready; + assign s_axi_rvalid = (s_rvalid_i & busy_ar) | e_rvalid; + assign s_axi_rid = err_busy_r ? e_rid : s_rid_i; + assign s_axi_rresp = err_busy_r ? P_SLVERR : s_rresp_i; + assign s_axi_ruser = err_busy_r ? {C_AXI_RUSER_WIDTH{1'b0}} : s_ruser_i; + assign s_axi_rdata = err_busy_r ? {C_AXI_DATA_WIDTH{1'b0}} : s_rdata_i; + assign s_axi_rlast = err_busy_r ? e_rlast : s_rlast_i; + assign busy_aw = (aw_cnt != 0); + assign busy_w = (w_cnt != 0); + assign busy_ar = (ar_cnt != 0); + assign aw_push = s_awvalid_i & s_awready_i & s_awready_en; + assign aw_pop = s_bvalid_i & s_bready_i; + assign w_pop = s_wvalid_i & s_wready_i & s_axi_wlast; + assign ar_push = s_arvalid_i & s_arready_i & s_arready_en; + assign ar_pop = s_rvalid_i & s_rready_i & s_rlast_i; + + always @(posedge aclk) begin + if (~aresetn) begin + s_awvalid_en <= 1'b0; + s_arvalid_en <= 1'b0; + s_awready_en <= 1'b0; + s_arready_en <= 1'b0; + e_awvalid_r <= 1'b0; + e_arvalid_r <= 1'b0; + e_awready <= 1'b0; + e_arready <= 1'b0; + aw_cnt <= 0; + w_cnt <= 0; + ar_cnt <= 0; + err_busy_w <= 1'b0; + err_busy_r <= 1'b0; + w_borrow <= 1'b0; + s_awvalid_pending <= 1'b0; + end else begin + e_awready <= 1'b0; // One-cycle pulse + if (e_bvalid & s_axi_bready) begin + s_awvalid_en <= 1'b1; + s_awready_en <= 1'b1; + err_busy_w <= 1'b0; + end else if (e_awvalid) begin + e_awvalid_r <= 1'b0; + err_busy_w <= 1'b1; + end else if (s_axi_awvalid & w_err & ~e_awvalid_r & ~err_busy_w) begin + e_awvalid_r <= 1'b1; + e_awready <= ~(s_awready_i & s_awvalid_en); // 1-cycle pulse if awready not already asserted + s_awvalid_en <= 1'b0; + s_awready_en <= 1'b0; + end else if ((&aw_cnt) | (&w_cnt) | aw_push) begin + s_awvalid_en <= 1'b0; + s_awready_en <= 1'b0; + end else if (~err_busy_w & ~e_awvalid_r & ~(s_axi_awvalid & w_err)) begin + s_awvalid_en <= 1'b1; + s_awready_en <= 1'b1; + end + + if (aw_push & ~aw_pop) begin + aw_cnt <= aw_cnt + 1; + end else if (~aw_push & aw_pop & (|aw_cnt)) begin + aw_cnt <= aw_cnt - 1; + end + if (aw_push) begin + if (~w_pop & ~w_borrow) begin + w_cnt <= w_cnt + 1; + end + w_borrow <= 1'b0; + end else if (~aw_push & w_pop) begin + if (|w_cnt) begin + w_cnt <= w_cnt - 1; + end else begin + w_borrow <= 1'b1; + end + end + s_awvalid_pending <= s_awvalid_i & ~s_awready_i; + + e_arready <= 1'b0; // One-cycle pulse + if (e_rvalid & s_axi_rready & e_rlast) begin + s_arvalid_en <= 1'b1; + s_arready_en <= 1'b1; + err_busy_r <= 1'b0; + end else if (e_arvalid) begin + e_arvalid_r <= 1'b0; + err_busy_r <= 1'b1; + end else if (s_axi_arvalid & r_err & ~e_arvalid_r & ~err_busy_r) begin + e_arvalid_r <= 1'b1; + e_arready <= ~(s_arready_i & s_arvalid_en); // 1-cycle pulse if arready not already asserted + s_arvalid_en <= 1'b0; + s_arready_en <= 1'b0; + end else if ((&ar_cnt) | ar_push) begin + s_arvalid_en <= 1'b0; + s_arready_en <= 1'b0; + end else if (~err_busy_r & ~e_arvalid_r & ~(s_axi_arvalid & r_err)) begin + s_arvalid_en <= 1'b1; + s_arready_en <= 1'b1; + end + + if (ar_push & ~ar_pop) begin + ar_cnt <= ar_cnt + 1; + end else if (~ar_push & ar_pop & (|ar_cnt)) begin + ar_cnt <= ar_cnt - 1; + end + end + end + + always @(posedge aclk) begin + if (s_axi_awvalid & ~err_busy_w & ~e_awvalid_r ) begin + e_awid <= s_axi_awid; + end + if (s_axi_arvalid & ~err_busy_r & ~e_arvalid_r ) begin + e_arid <= s_axi_arid; + e_arlen <= s_axi_arlen; + end + end + + axi_protocol_converter_v2_1_9_decerr_slave # + ( + .C_AXI_ID_WIDTH (C_AXI_ID_WIDTH), + .C_AXI_DATA_WIDTH (C_AXI_DATA_WIDTH), + .C_AXI_RUSER_WIDTH (C_AXI_RUSER_WIDTH), + .C_AXI_BUSER_WIDTH (C_AXI_BUSER_WIDTH), + .C_AXI_PROTOCOL (C_S_AXI_PROTOCOL), + .C_RESP (P_SLVERR), + .C_IGNORE_ID (C_IGNORE_ID) + ) + decerr_slave_inst + ( + .ACLK (aclk), + .ARESETN (aresetn), + .S_AXI_AWID (e_awid), + .S_AXI_AWVALID (e_awvalid), + .S_AXI_AWREADY (), + .S_AXI_WLAST (s_axi_wlast), + .S_AXI_WVALID (e_wvalid), + .S_AXI_WREADY (e_wready), + .S_AXI_BID (e_bid), + .S_AXI_BRESP (), + .S_AXI_BUSER (), + .S_AXI_BVALID (e_bvalid), + .S_AXI_BREADY (s_axi_bready), + .S_AXI_ARID (e_arid), + .S_AXI_ARLEN (e_arlen), + .S_AXI_ARVALID (e_arvalid), + .S_AXI_ARREADY (), + .S_AXI_RID (e_rid), + .S_AXI_RDATA (), + .S_AXI_RRESP (), + .S_AXI_RUSER (), + .S_AXI_RLAST (e_rlast), + .S_AXI_RVALID (e_rvalid), + .S_AXI_RREADY (s_axi_rready) + ); + end else begin : gen_no_err_detect + assign s_awvalid_i = s_axi_awvalid; + assign s_arvalid_i = s_axi_arvalid; + assign s_wvalid_i = s_axi_wvalid; + assign s_bready_i = s_axi_bready; + assign s_rready_i = s_axi_rready; + assign s_axi_awready = s_awready_i; + assign s_axi_wready = s_wready_i; + assign s_axi_bvalid = s_bvalid_i; + assign s_axi_bid = s_bid_i; + assign s_axi_bresp = s_bresp_i; + assign s_axi_buser = s_buser_i; + assign s_axi_arready = s_arready_i; + assign s_axi_rvalid = s_rvalid_i; + assign s_axi_rid = s_rid_i; + assign s_axi_rresp = s_rresp_i; + assign s_axi_ruser = s_ruser_i; + assign s_axi_rdata = s_rdata_i; + assign s_axi_rlast = s_rlast_i; + end // gen_err_detect +endgenerate + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v new file mode 100755 index 00000000..8874e002 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_axilite_conv.v @@ -0,0 +1,233 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: AxiLite Slave Conversion +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// axilite_conv +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_axilite_conv # + ( + parameter C_FAMILY = "virtex6", + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_WRITE = 1, + parameter integer C_AXI_SUPPORTS_READ = 1, + parameter integer C_AXI_RUSER_WIDTH = 1, + parameter integer C_AXI_BUSER_WIDTH = 1 + ) + ( + // System Signals + input wire ACLK, + input wire ARESETN, + // Slave Interface Write Address Ports + input wire [C_AXI_ID_WIDTH-1:0] S_AXI_AWID, + input wire [C_AXI_ADDR_WIDTH-1:0] S_AXI_AWADDR, + input wire [3-1:0] S_AXI_AWPROT, + input wire S_AXI_AWVALID, + output wire S_AXI_AWREADY, + // Slave Interface Write Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] S_AXI_WDATA, + input wire [C_AXI_DATA_WIDTH/8-1:0] S_AXI_WSTRB, + input wire S_AXI_WVALID, + output wire S_AXI_WREADY, + // Slave Interface Write Response Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_BID, + output wire [2-1:0] S_AXI_BRESP, + output wire [C_AXI_BUSER_WIDTH-1:0] S_AXI_BUSER, // Constant =0 + output wire S_AXI_BVALID, + input wire S_AXI_BREADY, + // Slave Interface Read Address Ports + input wire [C_AXI_ID_WIDTH-1:0] S_AXI_ARID, + input wire [C_AXI_ADDR_WIDTH-1:0] S_AXI_ARADDR, + input wire [3-1:0] S_AXI_ARPROT, + input wire S_AXI_ARVALID, + output wire S_AXI_ARREADY, + // Slave Interface Read Data Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_RID, + output wire [C_AXI_DATA_WIDTH-1:0] S_AXI_RDATA, + output wire [2-1:0] S_AXI_RRESP, + output wire S_AXI_RLAST, // Constant =1 + output wire [C_AXI_RUSER_WIDTH-1:0] S_AXI_RUSER, // Constant =0 + output wire S_AXI_RVALID, + input wire S_AXI_RREADY, + + // Master Interface Write Address Port + output wire [C_AXI_ADDR_WIDTH-1:0] M_AXI_AWADDR, + output wire [3-1:0] M_AXI_AWPROT, + output wire M_AXI_AWVALID, + input wire M_AXI_AWREADY, + // Master Interface Write Data Ports + output wire [C_AXI_DATA_WIDTH-1:0] M_AXI_WDATA, + output wire [C_AXI_DATA_WIDTH/8-1:0] M_AXI_WSTRB, + output wire M_AXI_WVALID, + input wire M_AXI_WREADY, + // Master Interface Write Response Ports + input wire [2-1:0] M_AXI_BRESP, + input wire M_AXI_BVALID, + output wire M_AXI_BREADY, + // Master Interface Read Address Port + output wire [C_AXI_ADDR_WIDTH-1:0] M_AXI_ARADDR, + output wire [3-1:0] M_AXI_ARPROT, + output wire M_AXI_ARVALID, + input wire M_AXI_ARREADY, + // Master Interface Read Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] M_AXI_RDATA, + input wire [2-1:0] M_AXI_RRESP, + input wire M_AXI_RVALID, + output wire M_AXI_RREADY + ); + + wire s_awvalid_i; + wire s_arvalid_i; + wire [C_AXI_ADDR_WIDTH-1:0] m_axaddr; + + // Arbiter + reg read_active; + reg write_active; + reg busy; + + wire read_req; + wire write_req; + wire read_complete; + wire write_complete; + + reg [1:0] areset_d; // Reset delay register + always @(posedge ACLK) begin + areset_d <= {areset_d[0], ~ARESETN}; + end + + assign s_awvalid_i = S_AXI_AWVALID & (C_AXI_SUPPORTS_WRITE != 0); + assign s_arvalid_i = S_AXI_ARVALID & (C_AXI_SUPPORTS_READ != 0); + + assign read_req = s_arvalid_i & ~busy & ~|areset_d & ~write_active; + assign write_req = s_awvalid_i & ~busy & ~|areset_d & ((~read_active & ~s_arvalid_i) | write_active); + + assign read_complete = M_AXI_RVALID & S_AXI_RREADY; + assign write_complete = M_AXI_BVALID & S_AXI_BREADY; + + always @(posedge ACLK) begin : arbiter_read_ff + if (|areset_d) + read_active <= 1'b0; + else if (read_complete) + read_active <= 1'b0; + else if (read_req) + read_active <= 1'b1; + end + + always @(posedge ACLK) begin : arbiter_write_ff + if (|areset_d) + write_active <= 1'b0; + else if (write_complete) + write_active <= 1'b0; + else if (write_req) + write_active <= 1'b1; + end + + always @(posedge ACLK) begin : arbiter_busy_ff + if (|areset_d) + busy <= 1'b0; + else if (read_complete | write_complete) + busy <= 1'b0; + else if ((write_req & M_AXI_AWREADY) | (read_req & M_AXI_ARREADY)) + busy <= 1'b1; + end + + assign M_AXI_ARVALID = read_req; + assign S_AXI_ARREADY = M_AXI_ARREADY & read_req; + + assign M_AXI_AWVALID = write_req; + assign S_AXI_AWREADY = M_AXI_AWREADY & write_req; + + assign M_AXI_RREADY = S_AXI_RREADY & read_active; + assign S_AXI_RVALID = M_AXI_RVALID & read_active; + + assign M_AXI_BREADY = S_AXI_BREADY & write_active; + assign S_AXI_BVALID = M_AXI_BVALID & write_active; + + // Address multiplexer + assign m_axaddr = (read_req | (C_AXI_SUPPORTS_WRITE == 0)) ? S_AXI_ARADDR : S_AXI_AWADDR; + + // Id multiplexer and flip-flop + reg [C_AXI_ID_WIDTH-1:0] s_axid; + + always @(posedge ACLK) begin : axid + if (read_req) s_axid <= S_AXI_ARID; + else if (write_req) s_axid <= S_AXI_AWID; + end + + assign S_AXI_BID = s_axid; + assign S_AXI_RID = s_axid; + + assign M_AXI_AWADDR = m_axaddr; + assign M_AXI_ARADDR = m_axaddr; + + + // Feed-through signals + assign S_AXI_WREADY = M_AXI_WREADY & ~|areset_d; + assign S_AXI_BRESP = M_AXI_BRESP; + assign S_AXI_RDATA = M_AXI_RDATA; + assign S_AXI_RRESP = M_AXI_RRESP; + assign S_AXI_RLAST = 1'b1; + assign S_AXI_BUSER = {C_AXI_BUSER_WIDTH{1'b0}}; + assign S_AXI_RUSER = {C_AXI_RUSER_WIDTH{1'b0}}; + + assign M_AXI_AWPROT = S_AXI_AWPROT; + assign M_AXI_WVALID = S_AXI_WVALID & ~|areset_d; + assign M_AXI_WDATA = S_AXI_WDATA; + assign M_AXI_WSTRB = S_AXI_WSTRB; + assign M_AXI_ARPROT = S_AXI_ARPROT; + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v new file mode 100755 index 00000000..18d806d0 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s.v @@ -0,0 +1,557 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s.v +// +// Description: +// To handle AXI4 transactions to external memory on Virtex-6 architectures +// requires a bridge to convert the AXI4 transactions to the memory +// controller(MC) user interface. The MC user interface has bidirectional +// data path and supports data width of 256/128/64/32 bits. +// The bridge is designed to allow AXI4 IP masters to communicate with +// the MC user interface. +// +// +// Specifications: +// AXI4 Slave Side: +// Configurable data width of 32, 64, 128, 256 +// Read acceptance depth is: +// Write acceptance depth is: +// +// Structure: +// axi_protocol_converter_v2_1_9_b2s +// WRITE_BUNDLE +// aw_channel_0 +// cmd_translator_0 +// rd_cmd_fsm_0 +// w_channel_0 +// b_channel_0 +// READ_BUNDLE +// ar_channel_0 +// cmd_translator_0 +// rd_cmd_fsm_0 +// r_channel_0 +// +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s #( + parameter C_S_AXI_PROTOCOL = 0, + // Width of all master and slave ID signals. + // Range: >= 1. + parameter integer C_AXI_ID_WIDTH = 4, + parameter integer C_AXI_ADDR_WIDTH = 30, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_WRITE = 1, + parameter integer C_AXI_SUPPORTS_READ = 1 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + // AXI Slave Interface + // Slave Interface System Signals + input wire aclk , + input wire aresetn , + // Slave Interface Write Address Ports + input wire [C_AXI_ID_WIDTH-1:0] s_axi_awid , + input wire [C_AXI_ADDR_WIDTH-1:0] s_axi_awaddr , + input wire [((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] s_axi_awlen, + input wire [2:0] s_axi_awsize , + input wire [1:0] s_axi_awburst , + input wire [2:0] s_axi_awprot , + input wire s_axi_awvalid , + output wire s_axi_awready , + // Slave Interface Write Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] s_axi_wdata , + input wire [C_AXI_DATA_WIDTH/8-1:0] s_axi_wstrb , + input wire s_axi_wlast , + input wire s_axi_wvalid , + output wire s_axi_wready , + // Slave Interface Write Response Ports + output wire [C_AXI_ID_WIDTH-1:0] s_axi_bid , + output wire [1:0] s_axi_bresp , + output wire s_axi_bvalid , + input wire s_axi_bready , + // Slave Interface Read Address Ports + input wire [C_AXI_ID_WIDTH-1:0] s_axi_arid , + input wire [C_AXI_ADDR_WIDTH-1:0] s_axi_araddr , + input wire [((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] s_axi_arlen, + input wire [2:0] s_axi_arsize , + input wire [1:0] s_axi_arburst , + input wire [2:0] s_axi_arprot , + input wire s_axi_arvalid , + output wire s_axi_arready , + // Slave Interface Read Data Ports + output wire [C_AXI_ID_WIDTH-1:0] s_axi_rid , + output wire [C_AXI_DATA_WIDTH-1:0] s_axi_rdata , + output wire [1:0] s_axi_rresp , + output wire s_axi_rlast , + output wire s_axi_rvalid , + input wire s_axi_rready , + + // Slave Interface Write Address Ports + output wire [C_AXI_ADDR_WIDTH-1:0] m_axi_awaddr , + output wire [2:0] m_axi_awprot , + output wire m_axi_awvalid , + input wire m_axi_awready , + // Slave Interface Write Data Ports + output wire [C_AXI_DATA_WIDTH-1:0] m_axi_wdata , + output wire [C_AXI_DATA_WIDTH/8-1:0] m_axi_wstrb , + output wire m_axi_wvalid , + input wire m_axi_wready , + // Slave Interface Write Response Ports + input wire [1:0] m_axi_bresp , + input wire m_axi_bvalid , + output wire m_axi_bready , + // Slave Interface Read Address Ports + output wire [C_AXI_ADDR_WIDTH-1:0] m_axi_araddr , + output wire [2:0] m_axi_arprot , + output wire m_axi_arvalid , + input wire m_axi_arready , + // Slave Interface Read Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] m_axi_rdata , + input wire [1:0] m_axi_rresp , + input wire m_axi_rvalid , + output wire m_axi_rready +); + +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +reg areset_d1; + +always @(posedge aclk) + areset_d1 <= ~aresetn; + + +// AW/W/B channel internal communication +wire b_push; +wire [C_AXI_ID_WIDTH-1:0] b_awid; +wire [7:0] b_awlen; +wire b_full; + +wire [C_AXI_ID_WIDTH-1:0] si_rs_awid; +wire [C_AXI_ADDR_WIDTH-1:0] si_rs_awaddr; +wire [8-1:0] si_rs_awlen; +wire [3-1:0] si_rs_awsize; +wire [2-1:0] si_rs_awburst; +wire [3-1:0] si_rs_awprot; +wire si_rs_awvalid; +wire si_rs_awready; +wire [C_AXI_DATA_WIDTH-1:0] si_rs_wdata; +wire [C_AXI_DATA_WIDTH/8-1:0] si_rs_wstrb; +wire si_rs_wlast; +wire si_rs_wvalid; +wire si_rs_wready; +wire [C_AXI_ID_WIDTH-1:0] si_rs_bid; +wire [2-1:0] si_rs_bresp; +wire si_rs_bvalid; +wire si_rs_bready; +wire [C_AXI_ID_WIDTH-1:0] si_rs_arid; +wire [C_AXI_ADDR_WIDTH-1:0] si_rs_araddr; +wire [8-1:0] si_rs_arlen; +wire [3-1:0] si_rs_arsize; +wire [2-1:0] si_rs_arburst; +wire [3-1:0] si_rs_arprot; +wire si_rs_arvalid; +wire si_rs_arready; +wire [C_AXI_ID_WIDTH-1:0] si_rs_rid; +wire [C_AXI_DATA_WIDTH-1:0] si_rs_rdata; +wire [2-1:0] si_rs_rresp; +wire si_rs_rlast; +wire si_rs_rvalid; +wire si_rs_rready; + +wire [C_AXI_ADDR_WIDTH-1:0] rs_mi_awaddr; +wire rs_mi_awvalid; +wire rs_mi_awready; +wire [C_AXI_DATA_WIDTH-1:0] rs_mi_wdata; +wire [C_AXI_DATA_WIDTH/8-1:0] rs_mi_wstrb; +wire rs_mi_wvalid; +wire rs_mi_wready; +wire [2-1:0] rs_mi_bresp; +wire rs_mi_bvalid; +wire rs_mi_bready; +wire [C_AXI_ADDR_WIDTH-1:0] rs_mi_araddr; +wire rs_mi_arvalid; +wire rs_mi_arready; +wire [C_AXI_DATA_WIDTH-1:0] rs_mi_rdata; +wire [2-1:0] rs_mi_rresp; +wire rs_mi_rvalid; +wire rs_mi_rready; + + +axi_register_slice_v2_1_9_axi_register_slice #( + .C_AXI_PROTOCOL ( C_S_AXI_PROTOCOL ) , + .C_AXI_ID_WIDTH ( C_AXI_ID_WIDTH ) , + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) , + .C_AXI_DATA_WIDTH ( C_AXI_DATA_WIDTH ) , + .C_AXI_SUPPORTS_USER_SIGNALS ( 0 ) , + .C_AXI_AWUSER_WIDTH ( 1 ) , + .C_AXI_ARUSER_WIDTH ( 1 ) , + .C_AXI_WUSER_WIDTH ( 1 ) , + .C_AXI_RUSER_WIDTH ( 1 ) , + .C_AXI_BUSER_WIDTH ( 1 ) , + .C_REG_CONFIG_AW ( 1 ) , + .C_REG_CONFIG_AR ( 1 ) , + .C_REG_CONFIG_W ( 0 ) , + .C_REG_CONFIG_R ( 1 ) , + .C_REG_CONFIG_B ( 1 ) +) SI_REG ( + .aresetn ( aresetn ) , + .aclk ( aclk ) , + .s_axi_awid ( s_axi_awid ) , + .s_axi_awaddr ( s_axi_awaddr ) , + .s_axi_awlen ( s_axi_awlen ) , + .s_axi_awsize ( s_axi_awsize ) , + .s_axi_awburst ( s_axi_awburst ) , + .s_axi_awlock ( {((C_S_AXI_PROTOCOL == 1) ? 2 : 1){1'b0}} ) , + .s_axi_awcache ( 4'h0 ) , + .s_axi_awprot ( s_axi_awprot ) , + .s_axi_awqos ( 4'h0 ) , + .s_axi_awuser ( 1'b0 ) , + .s_axi_awvalid ( s_axi_awvalid ) , + .s_axi_awready ( s_axi_awready ) , + .s_axi_awregion ( 4'h0 ) , + .s_axi_wid ( {C_AXI_ID_WIDTH{1'b0}} ) , + .s_axi_wdata ( s_axi_wdata ) , + .s_axi_wstrb ( s_axi_wstrb ) , + .s_axi_wlast ( s_axi_wlast ) , + .s_axi_wuser ( 1'b0 ) , + .s_axi_wvalid ( s_axi_wvalid ) , + .s_axi_wready ( s_axi_wready ) , + .s_axi_bid ( s_axi_bid ) , + .s_axi_bresp ( s_axi_bresp ) , + .s_axi_buser ( ) , + .s_axi_bvalid ( s_axi_bvalid ) , + .s_axi_bready ( s_axi_bready ) , + .s_axi_arid ( s_axi_arid ) , + .s_axi_araddr ( s_axi_araddr ) , + .s_axi_arlen ( s_axi_arlen ) , + .s_axi_arsize ( s_axi_arsize ) , + .s_axi_arburst ( s_axi_arburst ) , + .s_axi_arlock ( {((C_S_AXI_PROTOCOL == 1) ? 2 : 1){1'b0}} ) , + .s_axi_arcache ( 4'h0 ) , + .s_axi_arprot ( s_axi_arprot ) , + .s_axi_arqos ( 4'h0 ) , + .s_axi_aruser ( 1'b0 ) , + .s_axi_arvalid ( s_axi_arvalid ) , + .s_axi_arready ( s_axi_arready ) , + .s_axi_arregion ( 4'h0 ) , + .s_axi_rid ( s_axi_rid ) , + .s_axi_rdata ( s_axi_rdata ) , + .s_axi_rresp ( s_axi_rresp ) , + .s_axi_rlast ( s_axi_rlast ) , + .s_axi_ruser ( ) , + .s_axi_rvalid ( s_axi_rvalid ) , + .s_axi_rready ( s_axi_rready ) , + .m_axi_awid ( si_rs_awid ) , + .m_axi_awaddr ( si_rs_awaddr ) , + .m_axi_awlen ( si_rs_awlen[((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] ) , + .m_axi_awsize ( si_rs_awsize ) , + .m_axi_awburst ( si_rs_awburst ) , + .m_axi_awlock ( ) , + .m_axi_awcache ( ) , + .m_axi_awprot ( si_rs_awprot ) , + .m_axi_awqos ( ) , + .m_axi_awuser ( ) , + .m_axi_awvalid ( si_rs_awvalid ) , + .m_axi_awready ( si_rs_awready ) , + .m_axi_awregion ( ) , + .m_axi_wid ( ) , + .m_axi_wdata ( si_rs_wdata ) , + .m_axi_wstrb ( si_rs_wstrb ) , + .m_axi_wlast ( si_rs_wlast ) , + .m_axi_wuser ( ) , + .m_axi_wvalid ( si_rs_wvalid ) , + .m_axi_wready ( si_rs_wready ) , + .m_axi_bid ( si_rs_bid ) , + .m_axi_bresp ( si_rs_bresp ) , + .m_axi_buser ( 1'b0 ) , + .m_axi_bvalid ( si_rs_bvalid ) , + .m_axi_bready ( si_rs_bready ) , + .m_axi_arid ( si_rs_arid ) , + .m_axi_araddr ( si_rs_araddr ) , + .m_axi_arlen ( si_rs_arlen[((C_S_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] ) , + .m_axi_arsize ( si_rs_arsize ) , + .m_axi_arburst ( si_rs_arburst ) , + .m_axi_arlock ( ) , + .m_axi_arcache ( ) , + .m_axi_arprot ( si_rs_arprot ) , + .m_axi_arqos ( ) , + .m_axi_aruser ( ) , + .m_axi_arvalid ( si_rs_arvalid ) , + .m_axi_arready ( si_rs_arready ) , + .m_axi_arregion ( ) , + .m_axi_rid ( si_rs_rid ) , + .m_axi_rdata ( si_rs_rdata ) , + .m_axi_rresp ( si_rs_rresp ) , + .m_axi_rlast ( si_rs_rlast ) , + .m_axi_ruser ( 1'b0 ) , + .m_axi_rvalid ( si_rs_rvalid ) , + .m_axi_rready ( si_rs_rready ) +); + +generate + if (C_AXI_SUPPORTS_WRITE == 1) begin : WR + axi_protocol_converter_v2_1_9_b2s_aw_channel # + ( + .C_ID_WIDTH ( C_AXI_ID_WIDTH ), + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) + ) + aw_channel_0 + ( + .clk ( aclk ) , + .reset ( areset_d1 ) , + .s_awid ( si_rs_awid ) , + .s_awaddr ( si_rs_awaddr ) , + .s_awlen ( (C_S_AXI_PROTOCOL == 1) ? {4'h0,si_rs_awlen[3:0]} : si_rs_awlen), + .s_awsize ( si_rs_awsize ) , + .s_awburst ( si_rs_awburst ) , + .s_awvalid ( si_rs_awvalid ) , + .s_awready ( si_rs_awready ) , + .m_awvalid ( rs_mi_awvalid ) , + .m_awaddr ( rs_mi_awaddr ) , + .m_awready ( rs_mi_awready ) , + .b_push ( b_push ) , + .b_awid ( b_awid ) , + .b_awlen ( b_awlen ) , + .b_full ( b_full ) + ); + + axi_protocol_converter_v2_1_9_b2s_b_channel # + ( + .C_ID_WIDTH ( C_AXI_ID_WIDTH ) + ) + b_channel_0 + ( + .clk ( aclk ) , + .reset ( areset_d1 ) , + .s_bid ( si_rs_bid ) , + .s_bresp ( si_rs_bresp ) , + .s_bvalid ( si_rs_bvalid ) , + .s_bready ( si_rs_bready ) , + .m_bready ( rs_mi_bready ) , + .m_bvalid ( rs_mi_bvalid ) , + .m_bresp ( rs_mi_bresp ) , + .b_push ( b_push ) , + .b_awid ( b_awid ) , + .b_awlen ( b_awlen ) , + .b_full ( b_full ) , + .b_resp_rdy ( si_rs_awready ) + ); + + assign rs_mi_wdata = si_rs_wdata; + assign rs_mi_wstrb = si_rs_wstrb; + assign rs_mi_wvalid = si_rs_wvalid; + assign si_rs_wready = rs_mi_wready; + + end else begin : NO_WR + assign rs_mi_awaddr = {C_AXI_ADDR_WIDTH{1'b0}}; + assign rs_mi_awvalid = 1'b0; + assign si_rs_awready = 1'b0; + + assign rs_mi_wdata = {C_AXI_DATA_WIDTH{1'b0}}; + assign rs_mi_wstrb = {C_AXI_DATA_WIDTH/8{1'b0}}; + assign rs_mi_wvalid = 1'b0; + assign si_rs_wready = 1'b0; + + assign rs_mi_bready = 1'b0; + assign si_rs_bvalid = 1'b0; + assign si_rs_bresp = 2'b00; + assign si_rs_bid = {C_AXI_ID_WIDTH{1'b0}}; + end +endgenerate + + +// AR/R channel communication +wire r_push ; +wire [C_AXI_ID_WIDTH-1:0] r_arid ; +wire r_rlast ; +wire r_full ; + +generate + if (C_AXI_SUPPORTS_READ == 1) begin : RD + axi_protocol_converter_v2_1_9_b2s_ar_channel # + ( + .C_ID_WIDTH ( C_AXI_ID_WIDTH ), + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) + + ) + ar_channel_0 + ( + .clk ( aclk ) , + .reset ( areset_d1 ) , + .s_arid ( si_rs_arid ) , + .s_araddr ( si_rs_araddr ) , + .s_arlen ( (C_S_AXI_PROTOCOL == 1) ? {4'h0,si_rs_arlen[3:0]} : si_rs_arlen), + .s_arsize ( si_rs_arsize ) , + .s_arburst ( si_rs_arburst ) , + .s_arvalid ( si_rs_arvalid ) , + .s_arready ( si_rs_arready ) , + .m_arvalid ( rs_mi_arvalid ) , + .m_araddr ( rs_mi_araddr ) , + .m_arready ( rs_mi_arready ) , + .r_push ( r_push ) , + .r_arid ( r_arid ) , + .r_rlast ( r_rlast ) , + .r_full ( r_full ) + ); + + axi_protocol_converter_v2_1_9_b2s_r_channel # + ( + .C_ID_WIDTH ( C_AXI_ID_WIDTH ), + .C_DATA_WIDTH ( C_AXI_DATA_WIDTH ) + ) + r_channel_0 + ( + .clk ( aclk ) , + .reset ( areset_d1 ) , + .s_rid ( si_rs_rid ) , + .s_rdata ( si_rs_rdata ) , + .s_rresp ( si_rs_rresp ) , + .s_rlast ( si_rs_rlast ) , + .s_rvalid ( si_rs_rvalid ) , + .s_rready ( si_rs_rready ) , + .m_rvalid ( rs_mi_rvalid ) , + .m_rready ( rs_mi_rready ) , + .m_rdata ( rs_mi_rdata ) , + .m_rresp ( rs_mi_rresp ) , + .r_push ( r_push ) , + .r_full ( r_full ) , + .r_arid ( r_arid ) , + .r_rlast ( r_rlast ) + ); + end else begin : NO_RD + assign rs_mi_araddr = {C_AXI_ADDR_WIDTH{1'b0}}; + assign rs_mi_arvalid = 1'b0; + assign si_rs_arready = 1'b0; + assign si_rs_rlast = 1'b1; + + assign si_rs_rdata = {C_AXI_DATA_WIDTH{1'b0}}; + assign si_rs_rvalid = 1'b0; + assign si_rs_rresp = 2'b00; + assign si_rs_rid = {C_AXI_ID_WIDTH{1'b0}}; + assign rs_mi_rready = 1'b0; + end +endgenerate + +axi_register_slice_v2_1_9_axi_register_slice #( + .C_AXI_PROTOCOL ( 2 ) , + .C_AXI_ID_WIDTH ( 1 ) , + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) , + .C_AXI_DATA_WIDTH ( C_AXI_DATA_WIDTH ) , + .C_AXI_SUPPORTS_USER_SIGNALS ( 0 ) , + .C_AXI_AWUSER_WIDTH ( 1 ) , + .C_AXI_ARUSER_WIDTH ( 1 ) , + .C_AXI_WUSER_WIDTH ( 1 ) , + .C_AXI_RUSER_WIDTH ( 1 ) , + .C_AXI_BUSER_WIDTH ( 1 ) , + .C_REG_CONFIG_AW ( 0 ) , + .C_REG_CONFIG_AR ( 0 ) , + .C_REG_CONFIG_W ( 0 ) , + .C_REG_CONFIG_R ( 0 ) , + .C_REG_CONFIG_B ( 0 ) +) MI_REG ( + .aresetn ( aresetn ) , + .aclk ( aclk ) , + .s_axi_awid ( 1'b0 ) , + .s_axi_awaddr ( rs_mi_awaddr ) , + .s_axi_awlen ( 8'h00 ) , + .s_axi_awsize ( 3'b000 ) , + .s_axi_awburst ( 2'b01 ) , + .s_axi_awlock ( 1'b0 ) , + .s_axi_awcache ( 4'h0 ) , + .s_axi_awprot ( si_rs_awprot ) , + .s_axi_awqos ( 4'h0 ) , + .s_axi_awuser ( 1'b0 ) , + .s_axi_awvalid ( rs_mi_awvalid ) , + .s_axi_awready ( rs_mi_awready ) , + .s_axi_awregion ( 4'h0 ) , + .s_axi_wid ( 1'b0 ) , + .s_axi_wdata ( rs_mi_wdata ) , + .s_axi_wstrb ( rs_mi_wstrb ) , + .s_axi_wlast ( 1'b1 ) , + .s_axi_wuser ( 1'b0 ) , + .s_axi_wvalid ( rs_mi_wvalid ) , + .s_axi_wready ( rs_mi_wready ) , + .s_axi_bid ( ) , + .s_axi_bresp ( rs_mi_bresp ) , + .s_axi_buser ( ) , + .s_axi_bvalid ( rs_mi_bvalid ) , + .s_axi_bready ( rs_mi_bready ) , + .s_axi_arid ( 1'b0 ) , + .s_axi_araddr ( rs_mi_araddr ) , + .s_axi_arlen ( 8'h00 ) , + .s_axi_arsize ( 3'b000 ) , + .s_axi_arburst ( 2'b01 ) , + .s_axi_arlock ( 1'b0 ) , + .s_axi_arcache ( 4'h0 ) , + .s_axi_arprot ( si_rs_arprot ) , + .s_axi_arqos ( 4'h0 ) , + .s_axi_aruser ( 1'b0 ) , + .s_axi_arvalid ( rs_mi_arvalid ) , + .s_axi_arready ( rs_mi_arready ) , + .s_axi_arregion ( 4'h0 ) , + .s_axi_rid ( ) , + .s_axi_rdata ( rs_mi_rdata ) , + .s_axi_rresp ( rs_mi_rresp ) , + .s_axi_rlast ( ) , + .s_axi_ruser ( ) , + .s_axi_rvalid ( rs_mi_rvalid ) , + .s_axi_rready ( rs_mi_rready ) , + .m_axi_awid ( ) , + .m_axi_awaddr ( m_axi_awaddr ) , + .m_axi_awlen ( ) , + .m_axi_awsize ( ) , + .m_axi_awburst ( ) , + .m_axi_awlock ( ) , + .m_axi_awcache ( ) , + .m_axi_awprot ( m_axi_awprot ) , + .m_axi_awqos ( ) , + .m_axi_awuser ( ) , + .m_axi_awvalid ( m_axi_awvalid ) , + .m_axi_awready ( m_axi_awready ) , + .m_axi_awregion ( ) , + .m_axi_wid ( ) , + .m_axi_wdata ( m_axi_wdata ) , + .m_axi_wstrb ( m_axi_wstrb ) , + .m_axi_wlast ( ) , + .m_axi_wuser ( ) , + .m_axi_wvalid ( m_axi_wvalid ) , + .m_axi_wready ( m_axi_wready ) , + .m_axi_bid ( 1'b0 ) , + .m_axi_bresp ( m_axi_bresp ) , + .m_axi_buser ( 1'b0 ) , + .m_axi_bvalid ( m_axi_bvalid ) , + .m_axi_bready ( m_axi_bready ) , + .m_axi_arid ( ) , + .m_axi_araddr ( m_axi_araddr ) , + .m_axi_arlen ( ) , + .m_axi_arsize ( ) , + .m_axi_arburst ( ) , + .m_axi_arlock ( ) , + .m_axi_arcache ( ) , + .m_axi_arprot ( m_axi_arprot ) , + .m_axi_arqos ( ) , + .m_axi_aruser ( ) , + .m_axi_arvalid ( m_axi_arvalid ) , + .m_axi_arready ( m_axi_arready ) , + .m_axi_arregion ( ) , + .m_axi_rid ( 1'b0 ) , + .m_axi_rdata ( m_axi_rdata ) , + .m_axi_rresp ( m_axi_rresp ) , + .m_axi_rlast ( 1'b1 ) , + .m_axi_ruser ( 1'b0 ) , + .m_axi_rvalid ( m_axi_rvalid ) , + .m_axi_rready ( m_axi_rready ) +); + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v new file mode 100755 index 00000000..ddf7c3f8 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_ar_channel.v @@ -0,0 +1,108 @@ +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_ar_channel # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of ID signals. + // Range: >= 1. + parameter integer C_ID_WIDTH = 4, + // Width of AxADDR + // Range: 32. + parameter integer C_AXI_ADDR_WIDTH = 32 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + // AXI Slave Interface + // Slave Interface System Signals + input wire clk , + input wire reset , + + // Slave Interface Read Address Ports + input wire [C_ID_WIDTH-1:0] s_arid , + input wire [C_AXI_ADDR_WIDTH-1:0] s_araddr , + input wire [7:0] s_arlen , + input wire [2:0] s_arsize , + input wire [1:0] s_arburst , + input wire s_arvalid , + output wire s_arready , + + output wire m_arvalid , + output wire [C_AXI_ADDR_WIDTH-1:0] m_araddr , + input wire m_arready , + + // Connections to/from axi_protocol_converter_v2_1_9_b2s_r_channel module + output wire [C_ID_WIDTH-1:0] r_arid , + output wire r_push , + output wire r_rlast , + input wire r_full + +); + +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// +wire next ; +wire next_pending ; +wire a_push; +wire incr_burst; +reg [C_ID_WIDTH-1:0] s_arid_r; + + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + + +// Translate the AXI transaction to the MC transaction(s) +axi_protocol_converter_v2_1_9_b2s_cmd_translator # +( + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) +) +cmd_translator_0 +( + .clk ( clk ) , + .reset ( reset ) , + .s_axaddr ( s_araddr ) , + .s_axlen ( s_arlen ) , + .s_axsize ( s_arsize ) , + .s_axburst ( s_arburst ) , + .s_axhandshake ( s_arvalid & a_push ) , + .incr_burst ( incr_burst ) , + .m_axaddr ( m_araddr ) , + .next ( next ) , + .next_pending ( next_pending ) +); + +axi_protocol_converter_v2_1_9_b2s_rd_cmd_fsm ar_cmd_fsm_0 +( + .clk ( clk ) , + .reset ( reset ) , + .s_arready ( s_arready ) , + .s_arvalid ( s_arvalid ) , + .s_arlen ( s_arlen ) , + .m_arvalid ( m_arvalid ) , + .m_arready ( m_arready ) , + .next ( next ) , + .next_pending ( next_pending ) , + .data_ready ( ~r_full ) , + .a_push ( a_push ) , + .r_push ( r_push ) +); + +// these signals can be moved out of this block to the top level. +assign r_arid = s_arid_r; +assign r_rlast = ~next_pending; + +always @(posedge clk) begin + s_arid_r <= s_arid ; +end + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v new file mode 100755 index 00000000..3f2de008 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_aw_channel.v @@ -0,0 +1,109 @@ +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_aw_channel # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of ID signals. + // Range: >= 1. + parameter integer C_ID_WIDTH = 4, + // Width of AxADDR + // Range: 32. + parameter integer C_AXI_ADDR_WIDTH = 32 + +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + // AXI Slave Interface + // Slave Interface System Signals + input wire clk , + input wire reset , + + // Slave Interface Write Address Ports + input wire [C_ID_WIDTH-1:0] s_awid , + input wire [C_AXI_ADDR_WIDTH-1:0] s_awaddr , + input wire [7:0] s_awlen , + input wire [2:0] s_awsize , + input wire [1:0] s_awburst , + input wire s_awvalid , + output wire s_awready , + + output wire m_awvalid , + output wire [C_AXI_ADDR_WIDTH-1:0] m_awaddr , + input wire m_awready , + + // Connections to/from axi_protocol_converter_v2_1_9_b2s_b_channel module + output wire b_push , + output wire [C_ID_WIDTH-1:0] b_awid , + output wire [7:0] b_awlen , + input wire b_full + +); + +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// + +wire next ; +wire next_pending ; +wire a_push; +wire incr_burst; +reg [C_ID_WIDTH-1:0] s_awid_r; +reg [7:0] s_awlen_r; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + +// Translate the AXI transaction to the MC transaction(s) +axi_protocol_converter_v2_1_9_b2s_cmd_translator # +( + .C_AXI_ADDR_WIDTH ( C_AXI_ADDR_WIDTH ) +) +cmd_translator_0 +( + .clk ( clk ) , + .reset ( reset ) , + .s_axaddr ( s_awaddr ) , + .s_axlen ( s_awlen ) , + .s_axsize ( s_awsize ) , + .s_axburst ( s_awburst ) , + .s_axhandshake ( s_awvalid & a_push ) , + .m_axaddr ( m_awaddr ) , + .incr_burst ( incr_burst ) , + .next ( next ) , + .next_pending ( next_pending ) +); + + +axi_protocol_converter_v2_1_9_b2s_wr_cmd_fsm aw_cmd_fsm_0 +( + .clk ( clk ) , + .reset ( reset ) , + .s_awready ( s_awready ) , + .s_awvalid ( s_awvalid ) , + .m_awvalid ( m_awvalid ) , + .m_awready ( m_awready ) , + .next ( next ) , + .next_pending ( next_pending ) , + .b_push ( b_push ) , + .b_full ( b_full ) , + .a_push ( a_push ) +); + +assign b_awid = s_awid_r; +assign b_awlen = s_awlen_r; + +always @(posedge clk) begin + s_awid_r <= s_awid ; + s_awlen_r <= s_awlen ; +end + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v new file mode 100755 index 00000000..8c047d16 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_b_channel.v @@ -0,0 +1,187 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_b_channel.v +// +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_b_channel # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of ID signals. + // Range: >= 1. + parameter integer C_ID_WIDTH = 4 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk, + input wire reset, + + // AXI signals + output wire [C_ID_WIDTH-1:0] s_bid, + output wire [1:0] s_bresp, + output wire s_bvalid, + input wire s_bready, + + input wire [1:0] m_bresp, + input wire m_bvalid, + output wire m_bready, + + + // Signals to/from the axi_protocol_converter_v2_1_9_b2s_aw_channel modules + input wire b_push, + input wire [C_ID_WIDTH-1:0] b_awid, + input wire [7:0] b_awlen, + input wire b_resp_rdy, + output wire b_full + +); + +//////////////////////////////////////////////////////////////////////////////// +// Local parameters +//////////////////////////////////////////////////////////////////////////////// +// AXI protocol responses: +localparam [1:0] LP_RESP_OKAY = 2'b00; +localparam [1:0] LP_RESP_EXOKAY = 2'b01; +localparam [1:0] LP_RESP_SLVERROR = 2'b10; +localparam [1:0] LP_RESP_DECERR = 2'b11; + +// FIFO settings +localparam P_WIDTH = C_ID_WIDTH + 8; +localparam P_DEPTH = 4; +localparam P_AWIDTH = 2; + +localparam P_RWIDTH = 2; +localparam P_RDEPTH = 4; +localparam P_RAWIDTH = 2; + +//////////////////////////////////////////////////////////////////////////////// +// Wire and register declarations +//////////////////////////////////////////////////////////////////////////////// +reg bvalid_i; +wire [C_ID_WIDTH-1:0] bid_i; +wire shandshake; +reg shandshake_r; +wire mhandshake; +reg mhandshake_r; + +wire b_empty; +wire bresp_full; +wire bresp_empty; +wire [7:0] b_awlen_i; +reg [7:0] bresp_cnt; + +reg [1:0] s_bresp_acc; +wire [1:0] s_bresp_acc_r; +reg [1:0] s_bresp_i; +wire need_to_update_bresp; +wire bresp_push; + + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + +// assign AXI outputs +assign s_bid = bid_i; +assign s_bresp = s_bresp_acc_r; +assign s_bvalid = bvalid_i; +assign shandshake = s_bvalid & s_bready; +assign mhandshake = m_bvalid & m_bready; + +always @(posedge clk) begin + if (reset | shandshake) begin + bvalid_i <= 1'b0; + end else if (~b_empty & ~shandshake_r & ~bresp_empty) begin + bvalid_i <= 1'b1; + end +end + +always @(posedge clk) begin + shandshake_r <= shandshake; + mhandshake_r <= mhandshake; +end + +axi_protocol_converter_v2_1_9_b2s_simple_fifo #( + .C_WIDTH (P_WIDTH), + .C_AWIDTH (P_AWIDTH), + .C_DEPTH (P_DEPTH) +) +bid_fifo_0 +( + .clk ( clk ) , + .rst ( reset ) , + .wr_en ( b_push ) , + .rd_en ( shandshake_r ) , + .din ( {b_awid, b_awlen} ) , + .dout ( {bid_i, b_awlen_i}) , + .a_full ( ) , + .full ( b_full ) , + .a_empty ( ) , + .empty ( b_empty ) +); + +assign m_bready = ~mhandshake_r & bresp_empty; + +///////////////////////////////////////////////////////////////////////////// +// Update if more critical. +assign need_to_update_bresp = ( m_bresp > s_bresp_acc ); + +// Select accumultated or direct depending on setting. +always @( * ) begin + if ( need_to_update_bresp ) begin + s_bresp_i = m_bresp; + end else begin + s_bresp_i = s_bresp_acc; + end +end + +///////////////////////////////////////////////////////////////////////////// +// Accumulate MI-side BRESP. +always @ (posedge clk) begin + if (reset | bresp_push ) begin + s_bresp_acc <= LP_RESP_OKAY; + end else if ( mhandshake ) begin + s_bresp_acc <= s_bresp_i; + end +end + +assign bresp_push = ( mhandshake_r ) & (bresp_cnt == b_awlen_i) & ~b_empty; + +always @ (posedge clk) begin + if (reset | bresp_push ) begin + bresp_cnt <= 8'h00; + end else if ( mhandshake_r ) begin + bresp_cnt <= bresp_cnt + 1'b1; + end +end + +axi_protocol_converter_v2_1_9_b2s_simple_fifo #( + .C_WIDTH (P_RWIDTH), + .C_AWIDTH (P_RAWIDTH), + .C_DEPTH (P_RDEPTH) +) +bresp_fifo_0 +( + .clk ( clk ) , + .rst ( reset ) , + .wr_en ( bresp_push ) , + .rd_en ( shandshake_r ) , + .din ( s_bresp_acc ) , + .dout ( s_bresp_acc_r) , + .a_full ( ) , + .full ( bresp_full ) , + .a_empty ( ) , + .empty ( bresp_empty ) +); + + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v new file mode 100755 index 00000000..63a90fea --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_cmd_translator.v @@ -0,0 +1,147 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_cmd_translator.v +// +// Description: +// INCR and WRAP burst modes are decoded in parallel and then the output is +// chosen based on the AxBURST value. FIXED burst mode is not supported and +// is mapped to the INCR command instead. +// +// Specifications: +// +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_cmd_translator # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of AxADDR + // Range: 32. + parameter integer C_AXI_ADDR_WIDTH = 32 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + input wire [C_AXI_ADDR_WIDTH-1:0] s_axaddr , + input wire [7:0] s_axlen , + input wire [2:0] s_axsize , + input wire [1:0] s_axburst , + input wire s_axhandshake , + output wire [C_AXI_ADDR_WIDTH-1:0] m_axaddr , + output wire incr_burst , + + // Connections to/from fsm module + // signal to increment to the next mc transaction + input wire next , + // signal to the fsm there is another transaction required + output wire next_pending +); + +//////////////////////////////////////////////////////////////////////////////// +// Local parameters +//////////////////////////////////////////////////////////////////////////////// +// AXBURST decodes +localparam P_AXBURST_FIXED = 2'b00; +localparam P_AXBURST_INCR = 2'b01; +localparam P_AXBURST_WRAP = 2'b10; +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// +wire [C_AXI_ADDR_WIDTH-1:0] incr_cmd_byte_addr; +wire incr_next_pending; +wire [C_AXI_ADDR_WIDTH-1:0] wrap_cmd_byte_addr; +wire wrap_next_pending; +reg sel_first; +reg s_axburst_eq1; +reg s_axburst_eq0; +reg sel_first_i; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + +// INCR and WRAP translations are calcuated in independently, select the one +// for our transactions +// right shift by the UI width to the DRAM width ratio + +assign m_axaddr = (s_axburst == P_AXBURST_FIXED) ? s_axaddr : + (s_axburst == P_AXBURST_INCR) ? incr_cmd_byte_addr : + wrap_cmd_byte_addr; +assign incr_burst = (s_axburst[1]) ? 1'b0 : 1'b1; + +// Indicates if we are on the first transaction of a mc translation with more +// than 1 transaction. +always @(posedge clk) begin + if (reset | s_axhandshake) begin + sel_first <= 1'b1; + end else if (next) begin + sel_first <= 1'b0; + end +end + +always @( * ) begin + if (reset | s_axhandshake) begin + sel_first_i = 1'b1; + end else if (next) begin + sel_first_i = 1'b0; + end else begin + sel_first_i = sel_first; + end +end + +assign next_pending = s_axburst[1] ? s_axburst_eq1 : s_axburst_eq0; + +always @(posedge clk) begin + if (sel_first_i || s_axburst[1]) begin + s_axburst_eq1 <= wrap_next_pending; + end else begin + s_axburst_eq1 <= incr_next_pending; + end + if (sel_first_i || !s_axburst[1]) begin + s_axburst_eq0 <= incr_next_pending; + end else begin + s_axburst_eq0 <= wrap_next_pending; + end +end + +axi_protocol_converter_v2_1_9_b2s_incr_cmd #( + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH) +) +incr_cmd_0 +( + .clk ( clk ) , + .reset ( reset ) , + .axaddr ( s_axaddr ) , + .axlen ( s_axlen ) , + .axsize ( s_axsize ) , + .axhandshake ( s_axhandshake ) , + .cmd_byte_addr ( incr_cmd_byte_addr ) , + .next ( next ) , + .next_pending ( incr_next_pending ) +); + +axi_protocol_converter_v2_1_9_b2s_wrap_cmd #( + .C_AXI_ADDR_WIDTH (C_AXI_ADDR_WIDTH) +) +wrap_cmd_0 +( + .clk ( clk ) , + .reset ( reset ) , + .axaddr ( s_axaddr ) , + .axlen ( s_axlen ) , + .axsize ( s_axsize ) , + .axhandshake ( s_axhandshake ) , + .cmd_byte_addr ( wrap_cmd_byte_addr ) , + .next ( next ) , + .next_pending ( wrap_next_pending ) +); + +endmodule +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v new file mode 100755 index 00000000..8a50f22f --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_incr_cmd.v @@ -0,0 +1,131 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_incr_cmd.v +// +/////////////////////////////////////////////////////////////////////////////// + +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_incr_cmd # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of AxADDR + // Range: 32. + parameter integer C_AXI_ADDR_WIDTH = 32 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + input wire [C_AXI_ADDR_WIDTH-1:0] axaddr , + input wire [7:0] axlen , + input wire [2:0] axsize , + // axhandshake = axvalid & axready + input wire axhandshake , + output wire [C_AXI_ADDR_WIDTH-1:0] cmd_byte_addr , + // Connections to/from fsm module + // signal to increment to the next mc transaction + input wire next , + // signal to the fsm there is another transaction required + output reg next_pending + +); +//////////////////////////////////////////////////////////////////////////////// +// Wire and register declarations +//////////////////////////////////////////////////////////////////////////////// +reg sel_first; +reg [11:0] axaddr_incr; +reg [8:0] axlen_cnt; +reg next_pending_r; +wire [3:0] axsize_shift; +wire [11:0] axsize_mask; + +localparam L_AXI_ADDR_LOW_BIT = (C_AXI_ADDR_WIDTH >= 12) ? 12 : 11; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + +// calculate cmd_byte_addr +generate + if (C_AXI_ADDR_WIDTH > 12) begin : ADDR_GT_4K + assign cmd_byte_addr = (sel_first) ? axaddr : {axaddr[C_AXI_ADDR_WIDTH-1:L_AXI_ADDR_LOW_BIT],axaddr_incr[11:0]}; + end else begin : ADDR_4K + assign cmd_byte_addr = (sel_first) ? axaddr : axaddr_incr[11:0]; + end +endgenerate + +assign axsize_shift = (1 << axsize[1:0]); +assign axsize_mask = ~(axsize_shift - 1'b1); + +// Incremented version of axaddr +always @(posedge clk) begin + if (sel_first) begin + if(~next) begin + axaddr_incr <= axaddr[11:0] & axsize_mask; + end else begin + axaddr_incr <= (axaddr[11:0] & axsize_mask) + axsize_shift; + end + end else if (next) begin + axaddr_incr <= axaddr_incr + axsize_shift; + end +end + +always @(posedge clk) begin + if (axhandshake)begin + axlen_cnt <= axlen; + next_pending_r <= (axlen >= 1); + end else if (next) begin + if (axlen_cnt > 1) begin + axlen_cnt <= axlen_cnt - 1; + next_pending_r <= ((axlen_cnt - 1) >= 1); + end else begin + axlen_cnt <= 9'd0; + next_pending_r <= 1'b0; + end + end +end + +always @( * ) begin + if (axhandshake)begin + next_pending = (axlen >= 1); + end else if (next) begin + if (axlen_cnt > 1) begin + next_pending = ((axlen_cnt - 1) >= 1); + end else begin + next_pending = 1'b0; + end + end else begin + next_pending = next_pending_r; + end +end + +// last and ignore signals to data channel. These signals are used for +// BL8 to ignore and insert data for even len transactions with offset +// and odd len transactions +// For odd len transactions with no offset the last read is ignored and +// last write is masked +// For odd len transactions with offset the first read is ignored and +// first write is masked +// For even len transactions with offset the last & first read is ignored and +// last& first write is masked +// For even len transactions no ingnores or masks. + +// Indicates if we are on the first transaction of a mc translation with more +// than 1 transaction. +always @(posedge clk) begin + if (reset | axhandshake) begin + sel_first <= 1'b1; + end else if (next) begin + sel_first <= 1'b0; + end +end + +endmodule +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v new file mode 100755 index 00000000..4eacdf38 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_r_channel.v @@ -0,0 +1,174 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_r_channel.v +// +// Description: +// Read data channel module to buffer read data from MC, ignore +// extra data in case of BL8 and send the data to AXI. +// The MC will send out the read data as it is ready and it has to be +// accepted. The read data FIFO in the axi_protocol_converter_v2_1_9_b2s_r_channel module will buffer +// the data before being sent to AXI. The address channel module will +// send the transaction information for every command that is sent to the +// MC. The transaction information will be buffered in a transaction FIFO. +// Based on the transaction FIFO information data will be ignored in +// BL8 mode and the last signal to the AXI will be asserted. + +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_r_channel # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of ID signals. + // Range: >= 1. + parameter integer C_ID_WIDTH = 4, + // Width of AXI xDATA and MCB xx_data + // Range: 32, 64, 128. + parameter integer C_DATA_WIDTH = 32 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + + output wire [C_ID_WIDTH-1:0] s_rid , + output wire [C_DATA_WIDTH-1:0] s_rdata , + output wire [1:0] s_rresp , + output wire s_rlast , + output wire s_rvalid , + input wire s_rready , + + input wire [C_DATA_WIDTH-1:0] m_rdata , + input wire [1:0] m_rresp , + input wire m_rvalid , + output wire m_rready , + + // Connections to/from axi_protocol_converter_v2_1_9_b2s_ar_channel module + input wire r_push , + output wire r_full , + // length not needed. Can be removed. + input wire [C_ID_WIDTH-1:0] r_arid , + input wire r_rlast + +); + +//////////////////////////////////////////////////////////////////////////////// +// Local parameters +//////////////////////////////////////////////////////////////////////////////// +localparam P_WIDTH = 1+C_ID_WIDTH; +localparam P_DEPTH = 32; +localparam P_AWIDTH = 5; +localparam P_D_WIDTH = C_DATA_WIDTH + 2; +// rd data FIFO depth varies based on burst length. +// For Bl8 it is two times the size of transaction FIFO. +// Only in 2:1 mode BL8 transactions will happen which results in +// two beats of read data per read transaction. +localparam P_D_DEPTH = 32; +localparam P_D_AWIDTH = 5; + +//////////////////////////////////////////////////////////////////////////////// +// Wire and register declarations +//////////////////////////////////////////////////////////////////////////////// + +wire [C_ID_WIDTH+1-1:0] trans_in; +wire [C_ID_WIDTH+1-1:0] trans_out; +wire tr_empty; + +wire rhandshake; +wire r_valid_i; +wire [P_D_WIDTH-1:0] rd_data_fifo_in; +wire [P_D_WIDTH-1:0] rd_data_fifo_out; +wire rd_en; +wire rd_full; +wire rd_empty; +wire rd_a_full; +wire fifo_a_full; + +reg [C_ID_WIDTH-1:0] r_arid_r; +reg r_rlast_r; +reg r_push_r; + +wire fifo_full; + + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// + +assign s_rresp = rd_data_fifo_out[P_D_WIDTH-1:C_DATA_WIDTH]; +assign s_rid = trans_out[1+:C_ID_WIDTH]; +assign s_rdata = rd_data_fifo_out[C_DATA_WIDTH-1:0]; +assign s_rlast = trans_out[0]; +assign s_rvalid = ~rd_empty & ~tr_empty; + + +// assign MCB outputs +assign rd_en = rhandshake & (~rd_empty); + +assign rhandshake =(s_rvalid & s_rready); + +// register for timing + +always @(posedge clk) begin + r_arid_r <= r_arid; + r_rlast_r <= r_rlast; + r_push_r <= r_push; +end + +assign trans_in[0] = r_rlast_r; +assign trans_in[1+:C_ID_WIDTH] = r_arid_r; + + +// rd data fifo +axi_protocol_converter_v2_1_9_b2s_simple_fifo #( + .C_WIDTH (P_D_WIDTH), + .C_AWIDTH (P_D_AWIDTH), + .C_DEPTH (P_D_DEPTH) +) +rd_data_fifo_0 +( + .clk ( clk ) , + .rst ( reset ) , + .wr_en ( m_rvalid & m_rready ) , + .rd_en ( rd_en ) , + .din ( rd_data_fifo_in ) , + .dout ( rd_data_fifo_out ) , + .a_full ( rd_a_full ) , + .full ( rd_full ) , + .a_empty ( ) , + .empty ( rd_empty ) +); + +assign rd_data_fifo_in = {m_rresp, m_rdata}; + +axi_protocol_converter_v2_1_9_b2s_simple_fifo #( + .C_WIDTH (P_WIDTH), + .C_AWIDTH (P_AWIDTH), + .C_DEPTH (P_DEPTH) +) +transaction_fifo_0 +( + .clk ( clk ) , + .rst ( reset ) , + .wr_en ( r_push_r ) , + .rd_en ( rd_en ) , + .din ( trans_in ) , + .dout ( trans_out ) , + .a_full ( fifo_a_full ) , + .full ( ) , + .a_empty ( ) , + .empty ( tr_empty ) +); + +assign fifo_full = fifo_a_full | rd_a_full ; +assign r_full = fifo_full ; +assign m_rready = ~rd_a_full; + +endmodule +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v new file mode 100755 index 00000000..3c89a844 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_rd_cmd_fsm.v @@ -0,0 +1,122 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_rd_cmd_fsm.v +// +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_rd_cmd_fsm ( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + output wire s_arready , + input wire s_arvalid , + input wire [7:0] s_arlen , + output wire m_arvalid , + input wire m_arready , + // signal to increment to the next mc transaction + output wire next , + // signal to the fsm there is another transaction required + input wire next_pending , + // Write Data portion has completed or Read FIFO has a slot available (not + // full) + input wire data_ready , + // status signal for w_channel when command is written. + output wire a_push , + output wire r_push +); + +//////////////////////////////////////////////////////////////////////////////// +// Local parameters +//////////////////////////////////////////////////////////////////////////////// +// States +localparam SM_IDLE = 2'b00; +localparam SM_CMD_EN = 2'b01; +localparam SM_CMD_ACCEPTED = 2'b10; +localparam SM_DONE = 2'b11; + +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// +reg [1:0] state; +// synthesis attribute MAX_FANOUT of state is 20; +reg [1:0] state_r1; +reg [1:0] next_state; +reg [7:0] s_arlen_r; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +/////////////////////////////////////////////////////////////////////////////// + + +// register for timing +always @(posedge clk) begin + if (reset) begin + state <= SM_IDLE; + state_r1 <= SM_IDLE; + s_arlen_r <= 0; + end else begin + state <= next_state; + state_r1 <= state; + s_arlen_r <= s_arlen; + end +end + +// Next state transitions. +always @( * ) begin + next_state = state; + case (state) + SM_IDLE: + if (s_arvalid & data_ready) begin + next_state = SM_CMD_EN; + end else begin + next_state = state; + end + SM_CMD_EN: + /////////////////////////////////////////////////////////////////// + // Drive m_arvalid downstream in this state + /////////////////////////////////////////////////////////////////// + //If there is no fifo space + if (~data_ready & m_arready & next_pending) begin + /////////////////////////////////////////////////////////////////// + //There is more to do, wait until data space is available drop valid + next_state = SM_CMD_ACCEPTED; + end else if (m_arready & ~next_pending)begin + next_state = SM_DONE; + end else if (m_arready & next_pending) begin + next_state = SM_CMD_EN; + end else begin + next_state = state; + end + + SM_CMD_ACCEPTED: + if (data_ready) begin + next_state = SM_CMD_EN; + end else begin + next_state = state; + end + + SM_DONE: + next_state = SM_IDLE; + + default: + next_state = SM_IDLE; + endcase +end + +// Assign outputs based on current state. + +assign m_arvalid = (state == SM_CMD_EN); +assign next = m_arready && (state == SM_CMD_EN); +assign r_push = next; +assign a_push = (state == SM_IDLE); +assign s_arready = ((state == SM_CMD_EN) || (state == SM_DONE)) && (next_state == SM_IDLE); + +endmodule +`default_nettype wire + + diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v new file mode 100755 index 00000000..60fdc78c --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_simple_fifo.v @@ -0,0 +1,83 @@ +//----------------------------------------------- +// This is the simplest form of inferring the +// simple/SRL(16/32)CE in a Xilinx FPGA. +//----------------------------------------------- +`timescale 1ns / 100ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_simple_fifo # +( + parameter C_WIDTH = 8, + parameter C_AWIDTH = 4, + parameter C_DEPTH = 16 +) +( + input wire clk, // Main System Clock (Sync FIFO) + input wire rst, // FIFO Counter Reset (Clk + input wire wr_en, // FIFO Write Enable (Clk) + input wire rd_en, // FIFO Read Enable (Clk) + input wire [C_WIDTH-1:0] din, // FIFO Data Input (Clk) + output wire [C_WIDTH-1:0] dout, // FIFO Data Output (Clk) + output wire a_full, + output wire full, // FIFO FULL Status (Clk) + output wire a_empty, + output wire empty // FIFO EMPTY Status (Clk) +); + +/////////////////////////////////////// +// FIFO Local Parameters +/////////////////////////////////////// +localparam [C_AWIDTH-1:0] C_EMPTY = ~(0); +localparam [C_AWIDTH-1:0] C_EMPTY_PRE = (0); +localparam [C_AWIDTH-1:0] C_FULL = C_EMPTY-1; +localparam [C_AWIDTH-1:0] C_FULL_PRE = (C_DEPTH < 8) ? C_FULL-1 : C_FULL-(C_DEPTH/8); + +/////////////////////////////////////// +// FIFO Internal Signals +/////////////////////////////////////// +reg [C_WIDTH-1:0] memory [C_DEPTH-1:0]; +reg [C_AWIDTH-1:0] cnt_read; + // synthesis attribute MAX_FANOUT of cnt_read is 10; + +/////////////////////////////////////// +// Main simple FIFO Array +/////////////////////////////////////// +always @(posedge clk) begin : BLKSRL +integer i; + if (wr_en) begin + for (i = 0; i < C_DEPTH-1; i = i + 1) begin + memory[i+1] <= memory[i]; + end + memory[0] <= din; + end +end + +/////////////////////////////////////// +// Read Index Counter +// Up/Down Counter +// *** Notice that there is no *** +// *** OVERRUN protection. *** +/////////////////////////////////////// +always @(posedge clk) begin + if (rst) cnt_read <= C_EMPTY; + else if ( wr_en & !rd_en) cnt_read <= cnt_read + 1'b1; + else if (!wr_en & rd_en) cnt_read <= cnt_read - 1'b1; +end + +/////////////////////////////////////// +// Status Flags / Outputs +// These could be registered, but would +// increase logic in order to pre-decode +// FULL/EMPTY status. +/////////////////////////////////////// +assign full = (cnt_read == C_FULL); +assign empty = (cnt_read == C_EMPTY); +assign a_full = ((cnt_read >= C_FULL_PRE) && (cnt_read != C_EMPTY)); +assign a_empty = (cnt_read == C_EMPTY_PRE); + +assign dout = (C_DEPTH == 1) ? memory[0] : memory[cnt_read]; + +endmodule // axi_protocol_converter_v2_1_9_b2s_simple_fifo + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v new file mode 100755 index 00000000..26073c61 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wr_cmd_fsm.v @@ -0,0 +1,109 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_wr_cmd_fsm.v +// +/////////////////////////////////////////////////////////////////////////////// +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_wr_cmd_fsm ( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + output wire s_awready , + input wire s_awvalid , + output wire m_awvalid , + input wire m_awready , + // signal to increment to the next mc transaction + output wire next , + // signal to the fsm there is another transaction required + input wire next_pending , + // Write Data portion has completed or Read FIFO has a slot available (not + // full) + output wire b_push , + input wire b_full , + output wire a_push +); + +//////////////////////////////////////////////////////////////////////////////// +// Local parameters +//////////////////////////////////////////////////////////////////////////////// +// States +localparam SM_IDLE = 2'b00; +localparam SM_CMD_EN = 2'b01; +localparam SM_CMD_ACCEPTED = 2'b10; +localparam SM_DONE_WAIT = 2'b11; + +//////////////////////////////////////////////////////////////////////////////// +// Wires/Reg declarations +//////////////////////////////////////////////////////////////////////////////// +reg [1:0] state; +// synthesis attribute MAX_FANOUT of state is 20; +reg [1:0] next_state; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +/////////////////////////////////////////////////////////////////////////////// + + +always @(posedge clk) begin + if (reset) begin + state <= SM_IDLE; + end else begin + state <= next_state; + end +end + +// Next state transitions. +always @( * ) +begin + next_state = state; + case (state) + SM_IDLE: + if (s_awvalid) begin + next_state = SM_CMD_EN; + end else + next_state = state; + + SM_CMD_EN: + if (m_awready & next_pending) + next_state = SM_CMD_ACCEPTED; + else if (m_awready & ~next_pending & b_full) + next_state = SM_DONE_WAIT; + else if (m_awready & ~next_pending & ~b_full) + next_state = SM_IDLE; + else + next_state = state; + + SM_CMD_ACCEPTED: + next_state = SM_CMD_EN; + + SM_DONE_WAIT: + if (!b_full) + next_state = SM_IDLE; + else + next_state = state; + + default: + next_state = SM_IDLE; + endcase +end + +// Assign outputs based on current state. + +assign m_awvalid = (state == SM_CMD_EN); + +assign next = ((state == SM_CMD_ACCEPTED) + | (((state == SM_CMD_EN) | (state == SM_DONE_WAIT)) & (next_state == SM_IDLE))) ; + +assign a_push = (state == SM_IDLE); +assign s_awready = ((state == SM_CMD_EN) | (state == SM_DONE_WAIT)) & (next_state == SM_IDLE); +assign b_push = ((state == SM_CMD_EN) | (state == SM_DONE_WAIT)) & (next_state == SM_IDLE); + +endmodule +`default_nettype wire + + diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v new file mode 100755 index 00000000..7fde4a8c --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b2s_wrap_cmd.v @@ -0,0 +1,188 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// File name: axi_protocol_converter_v2_1_9_b2s_wrap_cmd.v +// +/////////////////////////////////////////////////////////////////////////////// + +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b2s_wrap_cmd # +( +/////////////////////////////////////////////////////////////////////////////// +// Parameter Definitions +/////////////////////////////////////////////////////////////////////////////// + // Width of AxADDR + // Range: 32. + parameter integer C_AXI_ADDR_WIDTH = 32 +) +( +/////////////////////////////////////////////////////////////////////////////// +// Port Declarations +/////////////////////////////////////////////////////////////////////////////// + input wire clk , + input wire reset , + input wire [C_AXI_ADDR_WIDTH-1:0] axaddr , + input wire [7:0] axlen , + input wire [2:0] axsize , + // axhandshake = axvalid & axready + input wire axhandshake , + output wire [C_AXI_ADDR_WIDTH-1:0] cmd_byte_addr , + + // Connections to/from fsm module + // signal to increment to the next mc transaction + input wire next , + // signal to the fsm there is another transaction required + output reg next_pending + +); +//////////////////////////////////////////////////////////////////////////////// +// Wire and register declarations +//////////////////////////////////////////////////////////////////////////////// +reg sel_first; +wire [11:0] axaddr_i; +wire [3:0] axlen_i; +reg [11:0] wrap_boundary_axaddr; +reg [3:0] axaddr_offset; +reg [3:0] wrap_second_len; +reg [11:0] wrap_boundary_axaddr_r; +reg [3:0] axaddr_offset_r; +reg [3:0] wrap_second_len_r; +reg [4:0] axlen_cnt; +reg [4:0] wrap_cnt_r; +wire [4:0] wrap_cnt; +reg [11:0] axaddr_wrap; +reg next_pending_r; + +localparam L_AXI_ADDR_LOW_BIT = (C_AXI_ADDR_WIDTH >= 12) ? 12 : 11; + +//////////////////////////////////////////////////////////////////////////////// +// BEGIN RTL +//////////////////////////////////////////////////////////////////////////////// +generate + if (C_AXI_ADDR_WIDTH > 12) begin : ADDR_GT_4K + assign cmd_byte_addr = (sel_first) ? axaddr : {axaddr[C_AXI_ADDR_WIDTH-1:L_AXI_ADDR_LOW_BIT],axaddr_wrap[11:0]}; + end else begin : ADDR_4K + assign cmd_byte_addr = (sel_first) ? axaddr : axaddr_wrap[11:0]; + end +endgenerate + +assign axaddr_i = axaddr[11:0]; +assign axlen_i = axlen[3:0]; + +// Mask bits based on transaction length to get wrap boundary low address +// Offset used to calculate the length of each transaction +always @( * ) begin + if(axhandshake) begin + wrap_boundary_axaddr = axaddr_i & ~(axlen_i << axsize[1:0]); + axaddr_offset = axaddr_i[axsize[1:0] +: 4] & axlen_i; + end else begin + wrap_boundary_axaddr = wrap_boundary_axaddr_r; + axaddr_offset = axaddr_offset_r; + end +end + +// case (axsize[1:0]) +// 2'b00 : axaddr_offset = axaddr_i[4:0] & axlen_i; +// 2'b01 : axaddr_offset = axaddr_i[5:1] & axlen_i; +// 2'b10 : axaddr_offset = axaddr_i[6:2] & axlen_i; +// 2'b11 : axaddr_offset = axaddr_i[7:3] & axlen_i; +// default : axaddr_offset = axaddr_i[7:3] & axlen_i; +// endcase + +// The first and the second command from the wrap transaction could +// be of odd length or even length with address offset. This will be +// an issue with BL8, extra transactions have to be issued. +// Rounding up the length to account for extra transactions. +always @( * ) begin + if(axhandshake) begin + wrap_second_len = (axaddr_offset >0) ? axaddr_offset - 1 : 0; + end else begin + wrap_second_len = wrap_second_len_r; + end +end + +// registering to be used in the combo logic. +always @(posedge clk) begin + wrap_boundary_axaddr_r <= wrap_boundary_axaddr; + axaddr_offset_r <= axaddr_offset; + wrap_second_len_r <= wrap_second_len; +end + +// determining if extra data is required for even offsets + +// wrap_cnt used to switch the address for first and second transaction. +assign wrap_cnt = {1'b0, wrap_second_len + {3'b000, (|axaddr_offset)}}; + +always @(posedge clk) + wrap_cnt_r <= wrap_cnt; + +always @(posedge clk) begin + if (axhandshake) begin + axaddr_wrap <= axaddr[11:0]; + end if(next)begin + if(axlen_cnt == wrap_cnt_r) begin + axaddr_wrap <= wrap_boundary_axaddr_r; + end else begin + axaddr_wrap <= axaddr_wrap + (1 << axsize[1:0]); + end + end +end + + + +// Even numbber of transactions with offset, inc len by 2 for BL8 +always @(posedge clk) begin + if (axhandshake)begin + axlen_cnt <= axlen_i; + next_pending_r <= axlen_i >= 1; + end else if (next) begin + if (axlen_cnt > 1) begin + axlen_cnt <= axlen_cnt - 1; + next_pending_r <= (axlen_cnt - 1) >= 1; + end else begin + axlen_cnt <= 5'd0; + next_pending_r <= 1'b0; + end + end +end + +always @( * ) begin + if (axhandshake)begin + next_pending = axlen_i >= 1; + end else if (next) begin + if (axlen_cnt > 1) begin + next_pending = (axlen_cnt - 1) >= 1; + end else begin + next_pending = 1'b0; + end + end else begin + next_pending = next_pending_r; + end +end + +// last and ignore signals to data channel. These signals are used for +// BL8 to ignore and insert data for even len transactions with offset +// and odd len transactions +// For odd len transactions with no offset the last read is ignored and +// last write is masked +// For odd len transactions with offset the first read is ignored and +// first write is masked +// For even len transactions with offset the last & first read is ignored and +// last& first write is masked +// For even len transactions no ingnores or masks. + + +// Indicates if we are on the first transaction of a mc translation with more +// than 1 transaction. +always @(posedge clk) begin + if (reset | axhandshake) begin + sel_first <= 1'b1; + end else if (next) begin + sel_first <= 1'b0; + end +end + +endmodule +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v new file mode 100755 index 00000000..613fdc84 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_b_downsizer.v @@ -0,0 +1,305 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: Write Data Response Down-Sizer +// Collect MI-side responses and set the SI-side response to the most critical +// level (in descending order): +// DECERR, SLVERROR and OKAY. +// EXOKAY cannot occur for split transactions. +// +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// wr_upsizer +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_b_downsizer # + ( + parameter C_FAMILY = "none", + // FPGA Family. Current version: virtex6 or spartan6. + parameter integer C_AXI_ID_WIDTH = 4, + // Width of all ID signals on SI and MI side of converter. + // Range: >= 1. + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + // 1 = Propagate all USER signals, 0 = Don�t propagate. + parameter integer C_AXI_BUSER_WIDTH = 1 + // Width of BUSER signals. + // Range: >= 1. + ) + ( + // Global Signals + input wire ARESET, + input wire ACLK, + + // Command Interface + input wire cmd_valid, + input wire cmd_split, + input wire [4-1:0] cmd_repeat, + output wire cmd_ready, + + // Slave Interface Write Response Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_BID, + output wire [2-1:0] S_AXI_BRESP, + output wire [C_AXI_BUSER_WIDTH-1:0] S_AXI_BUSER, + output wire S_AXI_BVALID, + input wire S_AXI_BREADY, + + // Master Interface Write Response Ports + input wire [C_AXI_ID_WIDTH-1:0] M_AXI_BID, + input wire [2-1:0] M_AXI_BRESP, + input wire [C_AXI_BUSER_WIDTH-1:0] M_AXI_BUSER, + input wire M_AXI_BVALID, + output wire M_AXI_BREADY + ); + + + ///////////////////////////////////////////////////////////////////////////// + // Variables for generating parameter controlled instances. + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Local params + ///////////////////////////////////////////////////////////////////////////// + + // Constants for packing levels. + localparam [2-1:0] C_RESP_OKAY = 2'b00; + localparam [2-1:0] C_RESP_EXOKAY = 2'b01; + localparam [2-1:0] C_RESP_SLVERROR = 2'b10; + localparam [2-1:0] C_RESP_DECERR = 2'b11; + + + ///////////////////////////////////////////////////////////////////////////// + // Functions + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Internal signals + ///////////////////////////////////////////////////////////////////////////// + + // Throttling help signals. + wire cmd_ready_i; + wire pop_mi_data; + wire mi_stalling; + + // Repeat handling related. + reg [4-1:0] repeat_cnt_pre; + reg [4-1:0] repeat_cnt; + wire [4-1:0] next_repeat_cnt; + reg first_mi_word; + wire last_word; + + // Ongoing split transaction. + wire load_bresp; + wire need_to_update_bresp; + reg [2-1:0] S_AXI_BRESP_ACC; + + // Internal signals for MI-side. + wire M_AXI_BREADY_I; + + // Internal signals for SI-side. + wire [C_AXI_ID_WIDTH-1:0] S_AXI_BID_I; + reg [2-1:0] S_AXI_BRESP_I; + wire [C_AXI_BUSER_WIDTH-1:0] S_AXI_BUSER_I; + wire S_AXI_BVALID_I; + wire S_AXI_BREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Handle interface handshaking: + // + // The MI-side BRESP is popped when at once for split transactions, except + // for the last cycle that behaves like a "normal" transaction. + // A "normal" BRESP is popped once the SI-side is able to use it, + // + // + ///////////////////////////////////////////////////////////////////////////// + + // Pop word from MI-side. + assign M_AXI_BREADY_I = M_AXI_BVALID & ~mi_stalling; + assign M_AXI_BREADY = M_AXI_BREADY_I; + + // Indicate when there is a BRESP available @ SI-side. + assign S_AXI_BVALID_I = M_AXI_BVALID & last_word; + + // Get MI-side data. + assign pop_mi_data = M_AXI_BVALID & M_AXI_BREADY_I; + + // Signal that the command is done (so that it can be poped from command queue). + assign cmd_ready_i = cmd_valid & pop_mi_data & last_word; + assign cmd_ready = cmd_ready_i; + + // Detect when MI-side is stalling. + assign mi_stalling = (~S_AXI_BREADY_I & last_word); + + + ///////////////////////////////////////////////////////////////////////////// + // Handle the accumulation of BRESP. + // + // Forward the accumulated or MI-side BRESP value depending on state: + // * MI-side BRESP is forwarded untouched when it is a non split cycle. + // (MI-side BRESP value is also used when updating the accumulated for + // the last access during a split access). + // * The accumulated BRESP is for a split transaction. + // + // The accumulated BRESP register is updated for each MI-side response that + // is used. + // + ///////////////////////////////////////////////////////////////////////////// + + // Force load accumulated BRESPs to first value + assign load_bresp = (cmd_split & first_mi_word); + + // Update if more critical. + assign need_to_update_bresp = ( M_AXI_BRESP > S_AXI_BRESP_ACC ); + + // Select accumultated or direct depending on setting. + always @ * + begin + if ( cmd_split ) begin + if ( load_bresp || need_to_update_bresp ) begin + S_AXI_BRESP_I = M_AXI_BRESP; + end else begin + S_AXI_BRESP_I = S_AXI_BRESP_ACC; + end + end else begin + S_AXI_BRESP_I = M_AXI_BRESP; + end + end + + // Accumulate MI-side BRESP. + always @ (posedge ACLK) begin + if (ARESET) begin + S_AXI_BRESP_ACC <= C_RESP_OKAY; + end else begin + if ( pop_mi_data ) begin + S_AXI_BRESP_ACC <= S_AXI_BRESP_I; + end + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // Keep track of BRESP repeat counter. + // + // Last BRESP word is either: + // * The first and only word when not merging. + // * The last value when merging. + // + // The internal counter is taken from the external command interface during + // the first response when merging. The counter is updated each time a + // BRESP is popped from the MI-side interface. + // + ///////////////////////////////////////////////////////////////////////////// + + // Determine last BRESP cycle. + assign last_word = ( ( repeat_cnt == 4'b0 ) & ~first_mi_word ) | + ~cmd_split; + + // Select command reapeat or counted repeat value. + always @ * + begin + if ( first_mi_word ) begin + repeat_cnt_pre = cmd_repeat; + end else begin + repeat_cnt_pre = repeat_cnt; + end + end + + // Calculate next repeat counter value. + assign next_repeat_cnt = repeat_cnt_pre - 1'b1; + + // Keep track of the repeat count. + always @ (posedge ACLK) begin + if (ARESET) begin + repeat_cnt <= 4'b0; + first_mi_word <= 1'b1; + end else begin + if ( pop_mi_data ) begin + repeat_cnt <= next_repeat_cnt; + first_mi_word <= last_word; + end + end + end + + + ///////////////////////////////////////////////////////////////////////////// + // BID Handling + ///////////////////////////////////////////////////////////////////////////// + + assign S_AXI_BID_I = M_AXI_BID; + + + ///////////////////////////////////////////////////////////////////////////// + // USER Data bits + // + // The last USER bits are simply taken from the last BRESP that is merged. + // Ground USER bits when unused. + ///////////////////////////////////////////////////////////////////////////// + + // Select USER bits. + assign S_AXI_BUSER_I = {C_AXI_BUSER_WIDTH{1'b0}}; + + + ///////////////////////////////////////////////////////////////////////////// + // SI-side output handling + ///////////////////////////////////////////////////////////////////////////// +// TODO: registered? + assign S_AXI_BID = S_AXI_BID_I; + assign S_AXI_BRESP = S_AXI_BRESP_I; + assign S_AXI_BUSER = S_AXI_BUSER_I; + assign S_AXI_BVALID = S_AXI_BVALID_I; + assign S_AXI_BREADY_I = S_AXI_BREADY; + + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v new file mode 100755 index 00000000..a37f21de --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_decerr_slave.v @@ -0,0 +1,287 @@ +// -- (c) Copyright 2009 - 2011 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. +//----------------------------------------------------------------------------- +// +// File name: decerr_slave.v +// +// Description: +// Phantom slave interface used to complete W, R and B channel transfers when an +// erroneous transaction is trapped in the crossbar. +//-------------------------------------------------------------------------- +// +// Structure: +// decerr_slave +// +//----------------------------------------------------------------------------- + +`timescale 1ps/1ps +`default_nettype none + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_decerr_slave # + ( + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_BUSER_WIDTH = 1, + parameter integer C_AXI_RUSER_WIDTH = 1, + parameter integer C_AXI_PROTOCOL = 0, + parameter integer C_RESP = 2'b11, + parameter integer C_IGNORE_ID = 0 + ) + ( + input wire ACLK, + input wire ARESETN, + input wire [(C_AXI_ID_WIDTH-1):0] S_AXI_AWID, + input wire S_AXI_AWVALID, + output wire S_AXI_AWREADY, + input wire S_AXI_WLAST, + input wire S_AXI_WVALID, + output wire S_AXI_WREADY, + output wire [(C_AXI_ID_WIDTH-1):0] S_AXI_BID, + output wire [1:0] S_AXI_BRESP, + output wire [C_AXI_BUSER_WIDTH-1:0] S_AXI_BUSER, + output wire S_AXI_BVALID, + input wire S_AXI_BREADY, + input wire [(C_AXI_ID_WIDTH-1):0] S_AXI_ARID, + input wire [((C_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] S_AXI_ARLEN, + input wire S_AXI_ARVALID, + output wire S_AXI_ARREADY, + output wire [(C_AXI_ID_WIDTH-1):0] S_AXI_RID, + output wire [(C_AXI_DATA_WIDTH-1):0] S_AXI_RDATA, + output wire [1:0] S_AXI_RRESP, + output wire [C_AXI_RUSER_WIDTH-1:0] S_AXI_RUSER, + output wire S_AXI_RLAST, + output wire S_AXI_RVALID, + input wire S_AXI_RREADY + ); + + reg s_axi_awready_i; + reg s_axi_wready_i; + reg s_axi_bvalid_i; + reg s_axi_arready_i; + reg s_axi_rvalid_i; + + localparam P_WRITE_IDLE = 2'b00; + localparam P_WRITE_DATA = 2'b01; + localparam P_WRITE_RESP = 2'b10; + localparam P_READ_IDLE = 2'b00; + localparam P_READ_START = 2'b01; + localparam P_READ_DATA = 2'b10; + localparam integer P_AXI4 = 0; + localparam integer P_AXI3 = 1; + localparam integer P_AXILITE = 2; + + assign S_AXI_BRESP = C_RESP; + assign S_AXI_RRESP = C_RESP; + assign S_AXI_RDATA = {C_AXI_DATA_WIDTH{1'b0}}; + assign S_AXI_BUSER = {C_AXI_BUSER_WIDTH{1'b0}}; + assign S_AXI_RUSER = {C_AXI_RUSER_WIDTH{1'b0}}; + assign S_AXI_AWREADY = s_axi_awready_i; + assign S_AXI_WREADY = s_axi_wready_i; + assign S_AXI_BVALID = s_axi_bvalid_i; + assign S_AXI_ARREADY = s_axi_arready_i; + assign S_AXI_RVALID = s_axi_rvalid_i; + + generate + if (C_AXI_PROTOCOL == P_AXILITE) begin : gen_axilite + + reg s_axi_rvalid_en; + assign S_AXI_RLAST = 1'b1; + assign S_AXI_BID = 0; + assign S_AXI_RID = 0; + + always @(posedge ACLK) begin + if (~ARESETN) begin + s_axi_awready_i <= 1'b0; + s_axi_wready_i <= 1'b0; + s_axi_bvalid_i <= 1'b0; + end else begin + if (s_axi_bvalid_i) begin + if (S_AXI_BREADY) begin + s_axi_bvalid_i <= 1'b0; + s_axi_awready_i <= 1'b1; + end + end else if (S_AXI_WVALID & s_axi_wready_i) begin + s_axi_wready_i <= 1'b0; + s_axi_bvalid_i <= 1'b1; + end else if (S_AXI_AWVALID & s_axi_awready_i) begin + s_axi_awready_i <= 1'b0; + s_axi_wready_i <= 1'b1; + end else begin + s_axi_awready_i <= 1'b1; + end + end + end + + always @(posedge ACLK) begin + if (~ARESETN) begin + s_axi_arready_i <= 1'b0; + s_axi_rvalid_i <= 1'b0; + s_axi_rvalid_en <= 1'b0; + end else begin + if (s_axi_rvalid_i) begin + if (S_AXI_RREADY) begin + s_axi_rvalid_i <= 1'b0; + s_axi_arready_i <= 1'b1; + end + end else if (s_axi_rvalid_en) begin + s_axi_rvalid_en <= 1'b0; + s_axi_rvalid_i <= 1'b1; + end else if (S_AXI_ARVALID & s_axi_arready_i) begin + s_axi_arready_i <= 1'b0; + s_axi_rvalid_en <= 1'b1; + end else begin + s_axi_arready_i <= 1'b1; + end + end + end + + end else begin : gen_axi + + reg s_axi_rlast_i; + reg [(C_AXI_ID_WIDTH-1):0] s_axi_bid_i; + reg [(C_AXI_ID_WIDTH-1):0] s_axi_rid_i; + reg [((C_AXI_PROTOCOL == 1) ? 4 : 8)-1:0] read_cnt; + reg [1:0] write_cs; + reg [1:0] read_cs; + + assign S_AXI_RLAST = s_axi_rlast_i; + assign S_AXI_BID = C_IGNORE_ID ? 0 : s_axi_bid_i; + assign S_AXI_RID = C_IGNORE_ID ? 0 : s_axi_rid_i; + + always @(posedge ACLK) begin + if (~ARESETN) begin + write_cs <= P_WRITE_IDLE; + s_axi_awready_i <= 1'b0; + s_axi_wready_i <= 1'b0; + s_axi_bvalid_i <= 1'b0; + s_axi_bid_i <= 0; + end else begin + case (write_cs) + P_WRITE_IDLE: + begin + if (S_AXI_AWVALID & s_axi_awready_i) begin + s_axi_awready_i <= 1'b0; + if (C_IGNORE_ID == 0) s_axi_bid_i <= S_AXI_AWID; + s_axi_wready_i <= 1'b1; + write_cs <= P_WRITE_DATA; + end else begin + s_axi_awready_i <= 1'b1; + end + end + P_WRITE_DATA: + begin + if (S_AXI_WVALID & S_AXI_WLAST) begin + s_axi_wready_i <= 1'b0; + s_axi_bvalid_i <= 1'b1; + write_cs <= P_WRITE_RESP; + end + end + P_WRITE_RESP: + begin + if (S_AXI_BREADY) begin + s_axi_bvalid_i <= 1'b0; + s_axi_awready_i <= 1'b1; + write_cs <= P_WRITE_IDLE; + end + end + endcase + end + end + + always @(posedge ACLK) begin + if (~ARESETN) begin + read_cs <= P_READ_IDLE; + s_axi_arready_i <= 1'b0; + s_axi_rvalid_i <= 1'b0; + s_axi_rlast_i <= 1'b0; + s_axi_rid_i <= 0; + read_cnt <= 0; + end else begin + case (read_cs) + P_READ_IDLE: + begin + if (S_AXI_ARVALID & s_axi_arready_i) begin + s_axi_arready_i <= 1'b0; + if (C_IGNORE_ID == 0) s_axi_rid_i <= S_AXI_ARID; + read_cnt <= S_AXI_ARLEN; + s_axi_rlast_i <= (S_AXI_ARLEN == 0); + read_cs <= P_READ_START; + end else begin + s_axi_arready_i <= 1'b1; + end + end + P_READ_START: + begin + s_axi_rvalid_i <= 1'b1; + read_cs <= P_READ_DATA; + end + P_READ_DATA: + begin + if (S_AXI_RREADY) begin + if (read_cnt == 0) begin + s_axi_rvalid_i <= 1'b0; + s_axi_rlast_i <= 1'b0; + s_axi_arready_i <= 1'b1; + read_cs <= P_READ_IDLE; + end else begin + if (read_cnt == 1) begin + s_axi_rlast_i <= 1'b1; + end + read_cnt <= read_cnt - 1; + end + end + end + endcase + end + end + + end + endgenerate + +endmodule + +`default_nettype wire diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v new file mode 100755 index 00000000..67ba7f9f --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_r_axi3_conv.v @@ -0,0 +1,213 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: Read Data Response AXI3 Slave Converter +// Forwards and re-assembles split transactions. +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// r_axi3_conv +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_r_axi3_conv # + ( + parameter C_FAMILY = "none", + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + parameter integer C_AXI_RUSER_WIDTH = 1, + parameter integer C_SUPPORT_SPLITTING = 1, + // Implement transaction splitting logic. + // Disabled whan all connected masters are AXI3 and have same or narrower data width. + parameter integer C_SUPPORT_BURSTS = 1 + // Disabled when all connected masters are AxiLite, + // allowing logic to be simplified. + ) + ( + // System Signals + input wire ACLK, + input wire ARESET, + + // Command Interface + input wire cmd_valid, + input wire cmd_split, + output wire cmd_ready, + + // Slave Interface Read Data Ports + output wire [C_AXI_ID_WIDTH-1:0] S_AXI_RID, + output wire [C_AXI_DATA_WIDTH-1:0] S_AXI_RDATA, + output wire [2-1:0] S_AXI_RRESP, + output wire S_AXI_RLAST, + output wire [C_AXI_RUSER_WIDTH-1:0] S_AXI_RUSER, + output wire S_AXI_RVALID, + input wire S_AXI_RREADY, + + // Master Interface Read Data Ports + input wire [C_AXI_ID_WIDTH-1:0] M_AXI_RID, + input wire [C_AXI_DATA_WIDTH-1:0] M_AXI_RDATA, + input wire [2-1:0] M_AXI_RRESP, + input wire M_AXI_RLAST, + input wire [C_AXI_RUSER_WIDTH-1:0] M_AXI_RUSER, + input wire M_AXI_RVALID, + output wire M_AXI_RREADY + ); + + + ///////////////////////////////////////////////////////////////////////////// + // Variables for generating parameter controlled instances. + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Local params + ///////////////////////////////////////////////////////////////////////////// + + // Constants for packing levels. + localparam [2-1:0] C_RESP_OKAY = 2'b00; + localparam [2-1:0] C_RESP_EXOKAY = 2'b01; + localparam [2-1:0] C_RESP_SLVERROR = 2'b10; + localparam [2-1:0] C_RESP_DECERR = 2'b11; + + + ///////////////////////////////////////////////////////////////////////////// + // Functions + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Internal signals + ///////////////////////////////////////////////////////////////////////////// + + // Throttling help signals. + wire cmd_ready_i; + wire pop_si_data; + wire si_stalling; + + // Internal MI-side control signals. + wire M_AXI_RREADY_I; + + // Internal signals for SI-side. + wire [C_AXI_ID_WIDTH-1:0] S_AXI_RID_I; + wire [C_AXI_DATA_WIDTH-1:0] S_AXI_RDATA_I; + wire [2-1:0] S_AXI_RRESP_I; + wire S_AXI_RLAST_I; + wire [C_AXI_RUSER_WIDTH-1:0] S_AXI_RUSER_I; + wire S_AXI_RVALID_I; + wire S_AXI_RREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Handle interface handshaking: + // + // Forward data from MI-Side to SI-Side while a command is available. When + // the transaction has completed the command is popped from the Command FIFO. + // + // + ///////////////////////////////////////////////////////////////////////////// + + // Pop word from SI-side. + assign M_AXI_RREADY_I = ~si_stalling & cmd_valid; + assign M_AXI_RREADY = M_AXI_RREADY_I; + + // Indicate when there is data available @ SI-side. + assign S_AXI_RVALID_I = M_AXI_RVALID & cmd_valid; + + // Get SI-side data. + assign pop_si_data = S_AXI_RVALID_I & S_AXI_RREADY_I; + + // Signal that the command is done (so that it can be poped from command queue). + assign cmd_ready_i = cmd_valid & pop_si_data & M_AXI_RLAST; + assign cmd_ready = cmd_ready_i; + + // Detect when MI-side is stalling. + assign si_stalling = S_AXI_RVALID_I & ~S_AXI_RREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Simple AXI signal forwarding: + // + // USER, ID, DATA and RRESP passes through untouched. + // + // LAST has to be filtered to remove any intermediate LAST (due to split + // trasactions). LAST is only removed for the first parts of a split + // transaction. When splitting is unsupported is the LAST filtering completely + // completely removed. + // + ///////////////////////////////////////////////////////////////////////////// + + // Calculate last, i.e. mask from split transactions. + assign S_AXI_RLAST_I = M_AXI_RLAST & + ( ~cmd_split | ( C_SUPPORT_SPLITTING == 0 ) ); + + // Data is passed through. + assign S_AXI_RID_I = M_AXI_RID; + assign S_AXI_RUSER_I = M_AXI_RUSER; + assign S_AXI_RDATA_I = M_AXI_RDATA; + assign S_AXI_RRESP_I = M_AXI_RRESP; + + + ///////////////////////////////////////////////////////////////////////////// + // SI-side output handling + // + ///////////////////////////////////////////////////////////////////////////// +// TODO: registered? + assign S_AXI_RREADY_I = S_AXI_RREADY; + assign S_AXI_RVALID = S_AXI_RVALID_I; + assign S_AXI_RID = S_AXI_RID_I; + assign S_AXI_RDATA = S_AXI_RDATA_I; + assign S_AXI_RRESP = S_AXI_RRESP_I; + assign S_AXI_RLAST = S_AXI_RLAST_I; + assign S_AXI_RUSER = S_AXI_RUSER_I; + + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v new file mode 100755 index 00000000..8b588874 --- /dev/null +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/ipshared/xilinx.com/axi_protocol_converter_v2_1/hdl/verilog/axi_protocol_converter_v2_1_w_axi3_conv.v @@ -0,0 +1,266 @@ +// -- (c) Copyright 2010 - 2011 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. +//----------------------------------------------------------------------------- +// +// Description: Write Data AXI3 Slave Converter +// Forward and split transactions as required. +// +// Verilog-standard: Verilog 2001 +//-------------------------------------------------------------------------- +// +// Structure: +// w_axi3_conv +// +//-------------------------------------------------------------------------- +`timescale 1ps/1ps + +(* DowngradeIPIdentifiedWarnings="yes" *) +module axi_protocol_converter_v2_1_9_w_axi3_conv # + ( + parameter C_FAMILY = "none", + parameter integer C_AXI_ID_WIDTH = 1, + parameter integer C_AXI_ADDR_WIDTH = 32, + parameter integer C_AXI_DATA_WIDTH = 32, + parameter integer C_AXI_SUPPORTS_USER_SIGNALS = 0, + parameter integer C_AXI_WUSER_WIDTH = 1, + parameter integer C_SUPPORT_SPLITTING = 1, + // Implement transaction splitting logic. + // Disabled whan all connected masters are AXI3 and have same or narrower data width. + parameter integer C_SUPPORT_BURSTS = 1 + // Disabled when all connected masters are AxiLite, + // allowing logic to be simplified. + ) + ( + // System Signals + input wire ACLK, + input wire ARESET, + + // Command Interface + input wire cmd_valid, + input wire [C_AXI_ID_WIDTH-1:0] cmd_id, + input wire [4-1:0] cmd_length, + output wire cmd_ready, + + // Slave Interface Write Data Ports + input wire [C_AXI_DATA_WIDTH-1:0] S_AXI_WDATA, + input wire [C_AXI_DATA_WIDTH/8-1:0] S_AXI_WSTRB, + input wire S_AXI_WLAST, + input wire [C_AXI_WUSER_WIDTH-1:0] S_AXI_WUSER, + input wire S_AXI_WVALID, + output wire S_AXI_WREADY, + + // Master Interface Write Data Ports + output wire [C_AXI_ID_WIDTH-1:0] M_AXI_WID, + output wire [C_AXI_DATA_WIDTH-1:0] M_AXI_WDATA, + output wire [C_AXI_DATA_WIDTH/8-1:0] M_AXI_WSTRB, + output wire M_AXI_WLAST, + output wire [C_AXI_WUSER_WIDTH-1:0] M_AXI_WUSER, + output wire M_AXI_WVALID, + input wire M_AXI_WREADY + ); + + + ///////////////////////////////////////////////////////////////////////////// + // Variables for generating parameter controlled instances. + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Local params + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Functions + ///////////////////////////////////////////////////////////////////////////// + + + ///////////////////////////////////////////////////////////////////////////// + // Internal signals + ///////////////////////////////////////////////////////////////////////////// + + // Burst length handling. + reg first_mi_word; + reg [8-1:0] length_counter_1; + reg [8-1:0] length_counter; + wire [8-1:0] next_length_counter; + wire last_beat; + wire last_word; + + // Throttling help signals. + wire cmd_ready_i; + wire pop_mi_data; + wire mi_stalling; + + // Internal SI side control signals. + wire S_AXI_WREADY_I; + + // Internal signals for MI-side. + wire [C_AXI_ID_WIDTH-1:0] M_AXI_WID_I; + wire [C_AXI_DATA_WIDTH-1:0] M_AXI_WDATA_I; + wire [C_AXI_DATA_WIDTH/8-1:0] M_AXI_WSTRB_I; + wire M_AXI_WLAST_I; + wire [C_AXI_WUSER_WIDTH-1:0] M_AXI_WUSER_I; + wire M_AXI_WVALID_I; + wire M_AXI_WREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Handle interface handshaking: + // + // Forward data from SI-Side to MI-Side while a command is available. When + // the transaction has completed the command is popped from the Command FIFO. + // + ///////////////////////////////////////////////////////////////////////////// + + // Pop word from SI-side. + assign S_AXI_WREADY_I = S_AXI_WVALID & cmd_valid & ~mi_stalling; + assign S_AXI_WREADY = S_AXI_WREADY_I; + + // Indicate when there is data available @ MI-side. + assign M_AXI_WVALID_I = S_AXI_WVALID & cmd_valid; + + // Get MI-side data. + assign pop_mi_data = M_AXI_WVALID_I & M_AXI_WREADY_I; + + // Signal that the command is done (so that it can be poped from command queue). + assign cmd_ready_i = cmd_valid & pop_mi_data & last_word; + assign cmd_ready = cmd_ready_i; + + // Detect when MI-side is stalling. + assign mi_stalling = M_AXI_WVALID_I & ~M_AXI_WREADY_I; + + + ///////////////////////////////////////////////////////////////////////////// + // Keep track of data forwarding: + // + // On the first cycle of the transaction is the length taken from the Command + // FIFO. The length is decreased until 0 is reached which indicates last data + // word. + // + // If bursts are unsupported will all data words be the last word, each one + // from a separate transaction. + // + ///////////////////////////////////////////////////////////////////////////// + + // Select command length or counted length. + always @ * + begin + if ( first_mi_word ) + length_counter = cmd_length; + else + length_counter = length_counter_1; + end + + // Calculate next length counter value. + assign next_length_counter = length_counter - 1'b1; + + // Keep track of burst length. + always @ (posedge ACLK) begin + if (ARESET) begin + first_mi_word <= 1'b1; + length_counter_1 <= 4'b0; + end else begin + if ( pop_mi_data ) begin + if ( M_AXI_WLAST_I ) begin + first_mi_word <= 1'b1; + end else begin + first_mi_word <= 1'b0; + end + + length_counter_1 <= next_length_counter; + end + end + end + + // Detect last beat in a burst. + assign last_beat = ( length_counter == 4'b0 ); + + // Determine if this last word that shall be extracted from this SI-side word. + assign last_word = ( last_beat ) | + ( C_SUPPORT_BURSTS == 0 ); + + + ///////////////////////////////////////////////////////////////////////////// + // Select the SI-side word to write. + // + // Most information can be reused directly (DATA, STRB, ID and USER). + // ID is taken from the Command FIFO. + // + // Split transactions needs to insert new LAST transactions. So to simplify + // is the LAST signal always generated. + // + ///////////////////////////////////////////////////////////////////////////// + + // ID and USER is copied from the SI word to all MI word transactions. + assign M_AXI_WUSER_I = ( C_AXI_SUPPORTS_USER_SIGNALS ) ? S_AXI_WUSER : {C_AXI_WUSER_WIDTH{1'b0}}; + + // Data has to be multiplexed. + assign M_AXI_WDATA_I = S_AXI_WDATA; + assign M_AXI_WSTRB_I = S_AXI_WSTRB; + + // ID is taken directly from the command queue. + assign M_AXI_WID_I = cmd_id; + + // Handle last flag, i.e. set for MI-side last word. + assign M_AXI_WLAST_I = last_word; + + + ///////////////////////////////////////////////////////////////////////////// + // MI-side output handling + // + ///////////////////////////////////////////////////////////////////////////// +// TODO: registered? + assign M_AXI_WID = M_AXI_WID_I; + assign M_AXI_WDATA = M_AXI_WDATA_I; + assign M_AXI_WSTRB = M_AXI_WSTRB_I; + assign M_AXI_WLAST = M_AXI_WLAST_I; + assign M_AXI_WUSER = M_AXI_WUSER_I; + assign M_AXI_WVALID = M_AXI_WVALID_I; + assign M_AXI_WREADY_I = M_AXI_WREADY; + + +endmodule diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bd b/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bd index fd7b747c..cc1a94ef 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bd +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bd @@ -433,7 +433,7 @@ </spirit:componentInstance> <spirit:componentInstance> <spirit:instanceName>fasec_hwtest_0</spirit:instanceName> - <spirit:componentRef spirit:library="user" spirit:name="fasec_hwtest" spirit:vendor="user.org" spirit:version="2.1"/> + <spirit:componentRef spirit:library="user" spirit:name="fasec_hwtest" spirit:vendor="user.org" spirit:version="2.2.1"/> <spirit:configurableElementValues> <spirit:configurableElementValue spirit:referenceId="bd:xciName">system_design_fasec_hwtest_0_0</spirit:configurableElementValue> </spirit:configurableElementValues> diff --git a/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bxml b/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bxml index 2c992dae..b6020f1c 100644 --- a/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bxml +++ b/FASEC_prototype.srcs/sources_1/bd/system_design/system_design.bxml @@ -2,9 +2,9 @@ <Root MajorVersion="0" MinorVersion="33"> <CompositeFile CompositeFileTopName="system_design" CanBeSetAsTop="true" CanDisplayChildGraph="true"> <Description>Composite Fileset</Description> - <Generation Name="SYNTHESIS" State="STALE" Timestamp="1472552894"/> - <Generation Name="IMPLEMENTATION" State="STALE" Timestamp="1472552894"/> - <Generation Name="SIMULATION" State="STALE" Timestamp="1472552894"/> + <Generation Name="SYNTHESIS" State="GENERATED" Timestamp="1472630399"/> + <Generation Name="IMPLEMENTATION" State="GENERATED" Timestamp="1472630399"/> + <Generation Name="SIMULATION" State="GENERATED" Timestamp="1472630399"/> <FileCollection Name="SOURCES" Type="SOURCES"> <File Name="ip/system_design_processing_system7_0_0/system_design_processing_system7_0_0.xci" Type="IP"> <Instance HierarchyPath="processing_system7_0"/> @@ -68,6 +68,14 @@ <UsedIn Val="IMPLEMENTATION"/> <UsedIn Val="SIMULATION"/> </File> + <File Name="ip/system_design_auto_pc_0/system_design_auto_pc_0.xci" Type="IP"> + <Instance HierarchyPath="processing_system7_0_axi_periph/s00_couplers/auto_pc"/> + <Properties IsEditable="false" IsVisible="true" Timestamp="0" IsTrackable="true" IsStatusTracked="true"/> + <Library Name="xil_defaultlib"/> + <UsedIn Val="SYNTHESIS"/> + <UsedIn Val="IMPLEMENTATION"/> + <UsedIn Val="SIMULATION"/> + </File> <File Name="system_design_ooc.xdc" Type="XDC"> <Properties IsEditable="false" IsVisible="true" Timestamp="0" IsTrackable="false" IsStatusTracked="false"/> <Library Name="xil_defaultlib"/> @@ -90,21 +98,6 @@ <Library Name="xil_defaultlib"/> <UsedIn Val="HW_HANDOFF"/> </File> - <File Name="ip/system_design_axi_wb_i2c_master_2_0/system_design_axi_wb_i2c_master_2_0.xci" Type="IP"> - <Properties IsEditable="false" IsVisible="false" Timestamp="0" IsTrackable="true" IsStatusTracked="true"/> - <Library Name="xil_defaultlib"/> - <UsedIn Val="SYNTHESIS"/> - <UsedIn Val="IMPLEMENTATION"/> - <UsedIn Val="SIMULATION"/> - </File> - <File Name="ip/system_design_auto_pc_0/system_design_auto_pc_0.xci" Type="IP"> - <Instance HierarchyPath="processing_system7_0_axi_periph/s00_couplers/auto_pc"/> - <Properties IsEditable="false" IsVisible="true" Timestamp="0" IsTrackable="true" IsStatusTracked="true"/> - <Library Name="xil_defaultlib"/> - <UsedIn Val="SYNTHESIS"/> - <UsedIn Val="IMPLEMENTATION"/> - <UsedIn Val="SIMULATION"/> - </File> </FileCollection> </CompositeFile> </Root> diff --git a/FASEC_prototype.xpr b/FASEC_prototype.xpr index b5c4d982..7b82f044 100644 --- a/FASEC_prototype.xpr +++ b/FASEC_prototype.xpr @@ -10,12 +10,12 @@ <Option Name="Part" Val="xc7z030ffg676-2"/> <Option Name="CompiledLibDir" Val="$PPRDIR/../../../../../../local/EDA/xilinx_simlib"/> <Option Name="CompiledLibDirXSim" Val=""/> - <Option Name="CompiledLibDirModelSim" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/modelsim"/> - <Option Name="CompiledLibDirQuesta" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/questa"/> - <Option Name="CompiledLibDirIES" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/ies"/> - <Option Name="CompiledLibDirVCS" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/vcs"/> - <Option Name="CompiledLibDirRiviera" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/riviera"/> - <Option Name="CompiledLibDirActivehdl" Val="/home/pieter/Development/projects/FIDS/FASEC_prototype/FASEC_prototype.cache/compile_simlib/activehdl"/> + <Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/> + <Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/> + <Option Name="CompiledLibDirIES" Val="$PCACHEDIR/compile_simlib/ies"/> + <Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/> + <Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/> + <Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/> <Option Name="TargetLanguage" Val="VHDL"/> <Option Name="BoardPart" Val=""/> <Option Name="ActiveSimSet" Val="sim_1"/> @@ -34,13 +34,13 @@ <Option Name="WTVcsLaunchSim" Val="0"/> <Option Name="WTRivieraLaunchSim" Val="0"/> <Option Name="WTActivehdlLaunchSim" Val="0"/> - <Option Name="WTXSimExportSim" Val="15"/> - <Option Name="WTModelSimExportSim" Val="15"/> - <Option Name="WTQuestaExportSim" Val="15"/> - <Option Name="WTIesExportSim" Val="15"/> - <Option Name="WTVcsExportSim" Val="15"/> - <Option Name="WTRivieraExportSim" Val="15"/> - <Option Name="WTActivehdlExportSim" Val="15"/> + <Option Name="WTXSimExportSim" Val="16"/> + <Option Name="WTModelSimExportSim" Val="16"/> + <Option Name="WTQuestaExportSim" Val="16"/> + <Option Name="WTIesExportSim" Val="16"/> + <Option Name="WTVcsExportSim" Val="16"/> + <Option Name="WTRivieraExportSim" Val="16"/> + <Option Name="WTActivehdlExportSim" Val="16"/> </Configuration> <FileSets Version="1" Minor="31"> <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1"> @@ -51,19 +51,19 @@ <Attr Name="UsedIn" Val="implementation"/> <Attr Name="UsedIn" Val="simulation"/> </FileInfo> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_axi_wb_i2c_master_1_0/system_design_axi_wb_i2c_master_1_0.xci"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_xbar_0/system_design_xbar_0.xci"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_processing_system7_0_0/system_design_processing_system7_0_0.xci"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hdl/system_design.vhd"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_processing_system7_0_axi_periph_3/system_design_processing_system7_0_axi_periph_3.xci"/> <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_axi_wb_i2c_master_0_0/system_design_axi_wb_i2c_master_0_0.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_processing_system7_0_0/system_design_processing_system7_0_0.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_fasec_hwtest_0_0/system_design_fasec_hwtest_0_0.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_xbar_0/system_design_xbar_0.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_axi_wb_i2c_master_1_0/system_design_axi_wb_i2c_master_1_0.xci"/> <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_rst_processing_system7_0_100M_2/system_design_rst_processing_system7_0_100M_2.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_processing_system7_0_axi_periph_3/system_design_processing_system7_0_axi_periph_3.xci"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hdl/system_design.vhd"/> <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="ip/system_design_auto_pc_0/system_design_auto_pc_0.xci"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hdl/system_design.hwdef"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="system_design_ooc.xdc"/> <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hw_handoff/system_design.hwh"/> + <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hdl/system_design.hwdef"/> <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="hw_handoff/system_design_bd.tcl"/> - <CompFileExtendedInfo CompFileName="system_design.bd" FileRelPathName="system_design_ooc.xdc"/> </File> <File Path="$PSRCDIR/sources_1/bd/system_design/hdl/system_design_wrapper.vhd"> <FileInfo> diff --git a/ip_upgrade.log b/ip_upgrade.log index bf51a45a..7df82207 100644 --- a/ip_upgrade.log +++ b/ip_upgrade.log @@ -1,3 +1,24 @@ +Copyright 1986-2016 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2016.2 (lin64) Build 1577090 Thu Jun 2 16:32:35 MDT 2016 +| Date : Wed Aug 31 09:59:17 2016 +| Host : lapte24154 running 64-bit openSUSE Leap 42.1 (x86_64) +| Command : upgrade_ip +| Device : xc7z030ffg676-2 +------------------------------------------------------------------------------------ + +Upgrade Log for IP 'system_design_fasec_hwtest_0_0' + +1. Summary +---------- + +SUCCESS in the upgrade of system_design_fasec_hwtest_0_0 from user.org:user:fasec_hwtest:2.1 (Rev. 4) to user.org:user:fasec_hwtest:2.2.1 (Rev. 6) + + + + + + Copyright 1986-2016 Xilinx, Inc. All Rights Reserved. ------------------------------------------------------------------------------------ | Tool Version : Vivado v.2016.2 (lin64) Build 1577090 Thu Jun 2 16:32:35 MDT 2016 -- GitLab