OpenCores
URL https://opencores.org/ocsvn/pci/pci/trunk

Subversion Repositories pci

[/] [pci/] [tags/] [rel_3/] [doc/] [pci_design_document.doc] - Diff between revs 74 and 154

Only display areas with differences | Details | Blame | View Log

Rev 74 Rev 154
ࡱ>  
ࡱ>  
7        lbjbjUU   7|7|el!!!!."&T"`"4"~~~h
7        lbjbjUU   7|7|el!!!!."&T"`"4"~~~h
ހ"<
pRRb^\l """"""$ >F"VZ.:F!!bb[HB!Rb"b  ]-
!""b0}p"\~P4H""!!!!



PCI IP Core
Design document


Authors: Miha Dolenc & Tadej Markovic
mihad@opencores.org
tadej@opencores.org


Rev. 0.1
 TIME \@ "MMMM d, yyyy" January 28, 2002












This Page is Intentionally Blank

Revision History
Rev.DateAuthorDescription0.013/11/01Miha Dolenc
Tadej MarkovicFirst Draft0.124/01/02Miha Dolenc
Tadej MarkovicTestbench description added

Contents
 TOC \o "2-4" \h \z \t "Headeing 1 Name;1"  HYPERLINK \l "_Toc536594626" Introduction    PAGEREF _Toc536594626 \h 1
 HYPERLINK \l "_Toc536594627" 1.1   PCI IP Core Introduction         PAGEREF _Toc536594627 \h 1
 HYPERLINK \l "_Toc536594628" 1.2   PCI IP Core Features     PAGEREF _Toc536594628 \h 1
 HYPERLINK \l "_Toc536594629" 1.3   PCI IP Core Directory Structure  PAGEREF _Toc536594629 \h 2
 HYPERLINK \l "_Toc536594630" PCI Bridge Core        PAGEREF _Toc536594630 \h 6
 HYPERLINK \l "_Toc536594631" 2.1   Overview         PAGEREF _Toc536594631 \h 6
 HYPERLINK \l "_Toc536594632" 2.2   Core File Hierarchy      PAGEREF _Toc536594632 \h 7
 HYPERLINK \l "_Toc536594633" 2.2.1 Core Module Hierarchy    PAGEREF _Toc536594633 \h 9
 HYPERLINK \l "_Toc536594634" 2.3   Description of Core Modules      PAGEREF _Toc536594634 \h 13
 HYPERLINK \l "_Toc536594635" 2.3.1        Description of general core submodules   PAGEREF _Toc536594635 \h 13
 HYPERLINK \l "_Toc536594636" 2.3.2        Description of PCI I/O submodules        PAGEREF _Toc536594636 \h 13
 HYPERLINK \l "_Toc536594637" 2.3.2.1      pci_io_mux submodule     PAGEREF _Toc536594637 \h 13
 HYPERLINK \l "_Toc536594638" 2.3.2.2      cur_out_reg submodule    PAGEREF _Toc536594638 \h 14
 HYPERLINK \l "_Toc536594639" 2.3.2.3      pci_in_reg submodule     PAGEREF _Toc536594639 \h 14
 HYPERLINK \l "_Toc536594640" 2.3.2.4      pci_rst_int submodule    PAGEREF _Toc536594640 \h 14
 HYPERLINK \l "_Toc536594641" 2.3.2.5      pci_parity_check submodule       PAGEREF _Toc536594641 \h 16
 HYPERLINK \l "_Toc536594642" 2.3.3        Description of WB slave Unit submodules  PAGEREF _Toc536594642 \h 18
 HYPERLINK \l "_Toc536594643" 2.3.3.1      wb_slave.v       PAGEREF _Toc536594643 \h 18
 HYPERLINK \l "_Toc536594644" 2.3.3.2      wb_addr_mux.v    PAGEREF _Toc536594644 \h 22
 HYPERLINK \l "_Toc536594645" 2.3.3.3      wbw_wbr_fifos.v  PAGEREF _Toc536594645 \h 22
 HYPERLINK \l "_Toc536594646" 2.3.3.4      delayed_write_reg.v      PAGEREF _Toc536594646 \h 24
 HYPERLINK \l "_Toc536594647" 2.3.3.5      conf_cyc_addr_dec.v      PAGEREF _Toc536594647 \h 24
 HYPERLINK \l "_Toc536594648" 2.3.3.6      pci_master32_sm_if.v     PAGEREF _Toc536594648 \h 24
 HYPERLINK \l "_Toc536594649" 2.3.3.7      pci_master32_sm.v        PAGEREF _Toc536594649 \h 26
 HYPERLINK \l "_Toc536594650" 2.3.4        Description of PCI target Unit submodules        PAGEREF _Toc536594650 \h 29
 HYPERLINK \l "_Toc536594651" 2.3.4.1      pci_target32_sm.v & pci_target32_interface.v	 PAGEREF _Toc536594651 \h 29
 HYPERLINK \l "_Toc536594652" 2.3.4.2	pciw_pcir_fifos.v	 PAGEREF _Toc536594652 \h 35
 HYPERLINK \l "_Toc536594653" 2.3.4.3	wb_master.v	 PAGEREF _Toc536594653 \h 36
 HYPERLINK \l "_Toc536594654" 2.3.5	Description of Configuration space submodules	 PAGEREF _Toc536594654 \h 37
 HYPERLINK \l "_Toc536594655" 2.4	Changeable Core Constants	 PAGEREF _Toc536594655 \h 44
 HYPERLINK \l "_Toc536594656" 2.4.1	Fifo size constants	 PAGEREF _Toc536594656 \h 44
 HYPERLINK \l "_Toc536594657" 2.4.2	Fifo RAM instantiation Constants	 PAGEREF _Toc536594657 \h 45
 HYPERLINK \l "_Toc536594658" 2.4.3	PCI I/O Pads constants	 PAGEREF _Toc536594658 \h 46
 HYPERLINK \l "_Toc536594659" 2.4.4	HOST / GUEST implementation selection	 PAGEREF _Toc536594659 \h 46
 HYPERLINK \l "_Toc536594660" 2.4.5	Image implementation constants	 PAGEREF _Toc536594660 \h 46
 HYPERLINK \l "_Toc536594661" 2.4.6	Optional Read-Only Configuration image implementation	 PAGEREF _Toc536594661 \h 46
 HYPERLINK \l "_Toc536594662" 2.4.7	PCI images implementation constants	 PAGEREF _Toc536594662 \h 47
 HYPERLINK \l "_Toc536594663" 2.4.8	WISHBONE images implementation constants	 PAGEREF _Toc536594663 \h 48
 HYPERLINK \l "_Toc536594664" 2.4.9	WISHBONE Slave specific constants	 PAGEREF _Toc536594664 \h 49
 HYPERLINK \l "_Toc536594665" 2.4.10	PCI specific constants	 PAGEREF _Toc536594665 \h 49
 HYPERLINK \l "_Toc536594666" 2.4.11	WISHBONE Master specific constants	 PAGEREF _Toc536594666 \h 50
 HYPERLINK \l "_Toc536594667" 2.5	Changeable constants dependencies	 PAGEREF _Toc536594667 \h 50
 HYPERLINK \l "_Toc536594668" 2.6	Unchangeable Core Constants	 PAGEREF _Toc536594668 \h 52
 HYPERLINK \l "_Toc536594669" 2.6.1	Fifo constants	 PAGEREF _Toc536594669 \h 52
 HYPERLINK \l "_Toc536594670" 2.6.2	WISHBONE Slave constants	 PAGEREF _Toc536594670 \h 52
 HYPERLINK \l "_Toc536594671" 2.6.3	Configuration registers address constants	 PAGEREF _Toc536594671 \h 52
 HYPERLINK \l "_Toc536594672" 2.6.4	66Mhz Capable bit constant	 PAGEREF _Toc536594672 \h 53
 HYPERLINK \l "_Toc536594673" PCI Bridge Testbench	 PAGEREF _Toc536594673 \h 54
 HYPERLINK \l "_Toc536594674" 3.1	Overview	 PAGEREF _Toc536594674 \h 54
 HYPERLINK \l "_Toc536594675" 3.2	Testbench File Hierarchy	 PAGEREF _Toc536594675 \h 54
 HYPERLINK \l "_Toc536594676" 3.2.1	Testbench Module Hierarchy	 PAGEREF _Toc536594676 \h 55
 HYPERLINK \l "_Toc536594677" 3.3	Description of Testbench Modules	 PAGEREF _Toc536594677 \h 56
 HYPERLINK \l "_Toc536594678" 3.3.1	Description of PCI submodules	 PAGEREF _Toc536594678 \h 56
 HYPERLINK \l "_Toc536594679" 3.3.1.1	pci_bus_monitor submodule	 PAGEREF _Toc536594679 \h 56
 HYPERLINK \l "_Toc536594680" 3.3.1.2	pci_blue_arbiter submodule	 PAGEREF _Toc536594680 \h 56
 HYPERLINK \l "_Toc536594681" 3.3.1.3	pci_behavioral_device submodule	 PAGEREF _Toc536594681 \h 56
 HYPERLINK \l "_Toc536594682" 3.3.1.4	pci_behavioral_iack_target submodule	 PAGEREF _Toc536594682 \h 57
 HYPERLINK \l "_Toc536594683" 3.3.1.5	pci_unsupported_commands_master submodule	 PAGEREF _Toc536594683 \h 57
 HYPERLINK \l "_Toc536594684" 3.3.2	Description of WB submodules	 PAGEREF _Toc536594684 \h 57
 HYPERLINK \l "_Toc536594685" 3.3.2.1	wb_bus_monitor submodule	 PAGEREF _Toc536594685 \h 57
 HYPERLINK \l "_Toc536594686" 3.3.2.2	wb_master_behavioral submodule	 PAGEREF _Toc536594686 \h 57
 HYPERLINK \l "_Toc536594687" 3.3.2.3	wb_slave_behavioral submodule	 PAGEREF _Toc536594687 \h 58
 HYPERLINK \l "_Toc536594688" 3.4	Description of Testcases	 PAGEREF _Toc536594688 \h 58
 HYPERLINK \l "_Toc536594689" 3.4.1	Description of WBU Testcases	 PAGEREF _Toc536594689 \h 58
 HYPERLINK \l "_Toc536594690" 3.4.1.1	Testcases for Configuration	 PAGEREF _Toc536594690 \h 59
 HYPERLINK \l "_Toc536594691" 3.4.1.2	Testcases for IMAGEs Tests	 PAGEREF _Toc536594691 \h 60
 HYPERLINK \l "_Toc536594692" 3.4.1.3	Testcases for Verification	 PAGEREF _Toc536594692 \h 64
 HYPERLINK \l "_Toc536594693" 3.4.2	Description of PCIU Testcases	 PAGEREF _Toc536594693 \h 68
 HYPERLINK \l "_Toc536594694" 3.4.2.1	Testcases for Configuration	 PAGEREF _Toc536594694 \h 68
 HYPERLINK \l "_Toc536594695" 3.4.2.2	Testcases for IMAGEs Tests	 PAGEREF _Toc536594695 \h 70
 HYPERLINK \l "_Toc536594696" 3.4.2.3	Testcases for Verification	 PAGEREF _Toc536594696 \h 73
 HYPERLINK \l "_Toc536594697" 3.5	Testbench Constants	 PAGEREF _Toc536594697 \h 74
 HYPERLINK \l "_Toc536594698" 3.5.1	Changeable Testbench Constants	 PAGEREF _Toc536594698 \h 75
 HYPERLINK \l "_Toc536594699" 3.5.2	Unchangeable Testbench Constants	 PAGEREF _Toc536594699 \h 76


Introduction
PCI IP Core Introduction
The PCI IP core (PCI bridge) provides an interface between the WISHBONE SoC bus and the PCI local bus. It consists of two independent units, one handling transactions originating on the PCI bus, the other one handling transactions originating on the WISHBONE bus.  
The core has been designed to offer as much flexibility as possible to all kinds of applications.
The chapter 2 describes file hierarchy, description of modules, core design considerations and constants regarding the PCI IP Core.
The chapter 3 describes file hierarchy, description of modules, testbench design considerations, description of testcases and constants regarding the Testbench.
PCI IP Core Features
The following lists the main features of the PCI IP core:
32-bit PCI interface
Fully PCI 2.2 compliant (with 66 MHz PCI specification)
Separated initiator and target functional blocks 
Supported initiator commands and functions:
Memory Read, Memory Write
Memory Read Multiple (MRM)
Memory Read Line (MRL)
I/O Read, I/O Write
Configuration Read, Configuration Write
Bus Parking
Interrupt Acknowledge
Host Bridging
Supported target commands and functions:
Type 0 Configuration Space Header 
(Type 0 is used to configure agents on the same bus segment)
(Type 1 is used to configure across PCI-to-PCI bridges) Parity Generation (PAR), Parity Error Detection (PERR# and SERR#)
Memory Read, Memory Write
Memory Read Multiple (MRM)
Memory Read Line (MRL)
Memory Write and Invalidate (MWI)
I/O Read, I/O Write
Configuration Read, Configuration Write
Target Abort, Target Retry, Target Disconnect
Fast Back-to-Back Capable response
Full Command/Status registers
WISHBONE SoC Interconnection Rev. B compliant interface on processor side (master with Target PCI and slave with Initiator PCI interface)
Configurable on-chip FIFOs 
PCI IP Core Directory Structure
Following picture shows the structure of directories of the PCI IP Core.

There are three major parts of the Verilog code in the pci directory. First one is the code for the PCI Bridge. The Verilog files are in the pci\rtl\verilog subdirectory. The second one is the code for the PCI Testbench. This files are used together with files for the PCI Bridge. There are also some exceptions, but those will be mentioned later. The Verilog files are in the pci\bench\verilog subdirectory. The third one is the code for the application, which is PCI Crt Controller. This files are used together with files for the PCI Bridge. There are also some exceptions, but those will be mentioned later. The Verilog files are in the pci\apps\crt\rtl\verilog subdirectory.
The documentation is in the subdirectory pci\doc. Documentation consists of PCI Bridge White Paper, PCI Bridge Product Preview, PCI IP Core Specification and PCI IP Core Design document.
Library files of the device specific subelements are in the subdirectory pci\lib. This device specific elements are Memory Blocks, Global Buffers and I/O Buffers. I/O Buffers used in FPGA are written in generic Verilog code and are put into FPGA IOB cells with constraint file. This files must be changed with device specific IOB cells when the design is used in ASIC. Memory Blocks and Global Buffers are device specific in both, FPGA and ASIC.
pci\sim subdirectory is used for running simulation  testbench. The rtl_sim subdirectory is used for RTL ( functional ) simulation of the core. There are a few directories included here:
bin  includes various scripts needed for running Ncsim simulator
run  the directory from which the simulation is ran. It provides a script for starting the simulation and a script for cleaning all the results produced by previous simulation runs
log  Ncvlog, Ncelab and Ncsim log files are stored here for review. There is also a script provided for extracting errors from this logs.
out  simulation output directory  simulation stores all the results into this directory ( dump files for viewing with Signalscan, testbench text output etc. )
The gate_sim directory is used the same way as rtl_sim, except simulation is run with the netlist provided from synthesis tool.
Generated files from synthesis tools, like gate level Verilog and log files, are stored in the pci\syn subdirectory and its subdirectories.
Regarding the application, there are other subdirectories under pci\apps directory. User constraint file for pre-synthesis is in the pci\apps\crt\syn\exc subdirectory. This is used for preserving some of the hierarchy to meet PCI timing constraints in FPGA. User constraint file after synthesis and before implementation is in the pci\apps\crt\syn\ucf subdirectory. This is used for pin locations, pin types and timing constraints. Generated bit file from FPGA synthesis tool is stored in the pci\apps\crt\syn\out\bit subdirectory. This is used for FPGA programming. Generated sdf file from FPGA synthesis tool is stored in the pci\apps\crt\syn\out\sdf subdirectory. This file contains all timing delays. Sdf file back annotated to Verilog is stored in the pci\apps\crt\syn\out\verilog subdirectory. This file is used for timing simulation.


PCI Bridge Core
Overview
The PCI bridge consists of two units: the PCI target unit and the WISHBONE slave unit. Each holds its own set of functions to support bridging operations from WISHBONE to PCI and from PCI to WISHBONE. The WISHBONE slave unit acts as a slave on the WISHBONE side of the bridge and initiates transactions as a master on the PCI bus. The PCI target unit acts as a target on the PCI side of the bridge and as a master on its WISHBONE side. Both units operate independently of each other. 
The PCI interface is PCI Specification 2.2 compliant, whereas the WISHBONE is SoC Interconnection Specification Rev. B compliant. The WISHBONE implementation carries out a 32-bit bus operation and does not support other bus widths.



Core File Hierarchy
The hierarchy of modules in the PCI Bridge core is shown here with file tree. Each file here implements one module in a hierarchy RTL source files of the PCI Bridge core are in the pci\rtl\verilog subdirectory.

top.v
	pci_bridge32.v
	.	wb_slave_unit.v
	.	.	wb_slave.v
	.	.	wbw_wbr_fifos.v
	.	.	.	pci_tpram.v *
	.	.	.	wbw_fifo_control.v
	.	.	.	wbr_fifo_control.v
	.	.	wb_addr_mux.v
	.	.	.	decoder.v **
	.	.	delayed_sync.v *
	.	.	.	synchronizer_flop.v **
	.	.	delayed_write_reg.v
	.	.	conf_cyc_addr_dec.v
	.	.	pci_master32_sm_if.v
	.	.	pci_master32_sm.v
	.	.	.	frame_crit.v
	.	.	.	frame_load_crit.v
	.	.	.	irdy_out_crit.v
	.	.	.	mas_ad_load_crit.v
	.	.	.	mas_ch_state_crit.v
	.	.	.	mas_ad_en_crit.v
	.	.	.	cbe_en_crit
	.	.	.	frame_en_crit.v
	.	pci_target_unit.v
	.	.	wb_master.v
	.	.	pciw_pcir_fifos.v
	.	.	.	pci_tpram.v *
	.	.	.	pciw_fifo_control.v
	.	.	.	fifo_control.v
	.	.	delayed_sync.v *
	.	.	.	synchronizer_flop.v **
	.	.	pci_target32_interface.v
	.	.	.	pci_decoder.v **
	.	.	pci_target32_sm.v
	.	.	.	pci_target32_clk_en.v
	.	.	.	pci_target32_trdy_crit.v
	.	.	.	pci_target32_stop_crit.v
	.	.	.	pci_target32_devs_crit.v
	.	conf_space.v
	.	.	synchronizer_flop.v **
	.	.	sync_module.v**
	.	.	.	synchronizer_flop.v **
	.	pci_io_mux.v
	.	.	pci_io_mux_ad_en_crit.v **
	.	.	pci_io_mux_ad_load_crit.v **
	.	.	out_reg.v **
	.	cur_out_reg.v
	.	pci_in_reg.v
	.	pci_parity_check.v
	.	.	par_crit.v
	.	.	perr_crit.v
	.	.	perr_en_crit.v
	.	.	serr_crti.v
	.	.	serr_en_crit.v
	.	pci_rst_int.v
	bufif0 ***

*	Files are used within more than one module: pci_tpram.v is used within wbw_wbr_fifos.v and pciw_pcir_fifos.v files, delayed_sync.v is used within wb_slave_unit.v and pci_target_unit.v files.
**	Files are used within one module more than once: synchronizer_flop.v is used within delayed_sync.v for 5 times and within conf_space.v for several times as sync_module.v etc., decoder.v is used within wb_addr_mux.v for as much times as there is the number of WB images, pci_decoder.v is used within pci_target32_interface.v for as much times as there is the number of PCI images, pci_io_mux_ad_en_crit.v and pci_io_mux_ad_load_crit.v are used within pci_io_mux.v for 4 times each, out_reg.v is used within pci_io_mux.v for 47 times (for AD, CBE and Control signals). 
***	Instantiation bufif0 is a generic tri-state buffer with active low output enable and is used within top.v for 47 times (for AD, CBE and Control signals). This is Verilog generic primitive and it works fine in FPGA implementation ( I/O pads are defined in constraint files ). For an ASIC implementation, user must edit top.v file to instantiate PCI I/O pads before synthesys.
Core Module Hierarchy
Module hierarchy is shown in detail in the following four pictures. First picture explains how the following three pictures should be viewed as a whole. Dashed line means a boundary between two pictures. Fourth picture shows connections between modules in the PCI target Unit (PCIU). Third picture shows connections between modules in the WB slave Unit (WBU) and the Configuration space connections. Second picture shows connections between modules in the PCI Input/Output interface (I/O).
The name of each module is upper-case name of the respective file. Description of modules and their connections is in the chapter  REF _Ref531365462 \h Description of Core Modules.


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 1: First picture - Distribution of modules hierarchy into three pictures

Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 2: Second picture - Module hierarchy of PCI I/O interconnection


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 3: Third picture - Module hierarchy of WB slave Unit and Configuration space


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 4: Fourth picture - Module hierarchy of PCI target Unit

Description of Core Modules
Description of general core submodules
The module top.v consists only of module pci_bridge32.v and Verilog instances bufif0 for PCI Input and Output buffers. 
The module pci_bridge32.v consists of all major submodules and is, like the module top.v, without any logic. It includes some Verilog pre-compiler directives for connections with Configuration space, depending on the HOST or GUEST implementation of the core. If PCI bridge is implemented as HOST, then read/write connection is provided for WB slave Unit (accesses from WB bus) and read-only connection is provided for PCI target Unit (accesses from PCI bus). If PCI bridge is implemented as GUEST bridge, then read/write connection is provided for PCI target Unit and read-only connection for WB slave Unit. 
Description of PCI I/O submodules
PCI I/O modules are shown on the  REF _Ref531366460 \h Figure 22: Second picture - Module hierarchy of PCI I/O interconnection. 
There are two sets of signals connected to PCI bus through I/O modules. One set of signals is from WB slave Unit and the other set of signals is from PCI target Unit. All output signals, connected to PCI bus, from WB slave and PCI target Unit, also have output enable signals. 
pci_io_mux submodule
The module pci_io_mux.v is used for multiplexing output signals from WB slave and PCI target Unit before registering them in corresponding output Flip-Flops. The signal used as a select multiplexer signal is registered AD output enable from PCI target Unit, tar_ad_en_reg_in (from cur_out_reg.v). This way the PCI master in the WB slave Unit can use the PCI output signals when Target is not operating. This is done to implement bus parking capability.
All output signals and their appropriate output enable signals are registered. Each output Flip-Flop and corresponding output enable Flip-Flop are implemented in out_reg.v file. In addition to data input, each of these Flip-Flops has an asynchronous reset and clock enable ports. AD output Flip-Flops are shared between Master and Target state machines, other outputs are controlled exclusively. Outputs from this Flip-Flops are driven into bufif0 instances (for PCI I/O pins) in the top level module.
Loading ( clock enable ) of AD output Flip-Flops is in part calculated in pci_io_mux.v, while timing critical calculation is done in a pci_io_mux_ad_load_crit.v. There are four of these sub-modules instantiated, one for each byte, to reduce fan-out. Preserve hierarchy constraint can be selected on these modules, to prevent logic optimization in them and thus satisfy PCI input timing constraints.
Somewhat similar module and functionality is provided for AD output enable Flip-Flops driving. It is implemented in pci_io_mux_ad_en_crit.v.
cur_out_reg submodule
The opeartion of cur_out_reg.v submodule is the same as pci_io_mux.v, so it consists of multiplexer and flip-flops and the same input signals. It is used for back-up information of signals driven on the PCI bus for WB slave and PCI target Units. This had to be done for FPGA implementation where IOB Flip-Flops are used  they can only have a fanout of 1, so register replication has to be done in order to use this information. This is also OK for ASIC implementation, since providing low fanout on output flip-flops reduces delay on output ports and maybe prevents buffer insertions.
pci_in_reg submodule
The module pci_in_reg.v is used for registering the input PCI bus signals. Registered inputs are used wherever and as much as possible, since stringent PCI bus input timing constraints don't allow free usage of unregistered inputs. Newertheless, PCI bus control signals must be used unregistered in some cases because of PCI bus protocol ( eg: Master must deassert FRAME# on the same clock it detects STOP# asserted or Target must deassert DEVSEL#, STOP# and TRDY# on the same clock it detects FRAME# deasserted and IRDY# asserted ). 
pci_rst_int submodule
The module pci_rst_int.v is used for basic logic for reset and interrupt pins.  
If PCI bridge is implemented as HOST bridge,  then RST_I input from WB bus is recognized as a main asynchronous reset source. The module connects it to PCI core's internal reset signal and PCI bus RST signal. Soft Reset bit in configuration space also causes a reset on PCI bus, but does not have any effect on PCI Core's internal logic. Reset signal RST_O to WB bus is always inactive in this case. Some special design considerations must be taken into account when using Software Reset  PCI Core doesn't take care of Device Initialization time as specified in PCI Local Bus Specification v. 2.2. Software must take care of  this by waiting the ammount of time required by the PCI Specification before starting any transactions on the PCI bus. This wouldn't influence PCI Core's logic, but could cause errors to occur or make PCI subsystem unstable. Refer to PCI Local Bus Specification v. 2.2., chapter 4.3.2. Special design considerations are also in order for power up reset which comes from RST_I signal on WB bus. This reset must be implemented in compliance with PCI Local Bus Specification!
If PCI Core is implemented as GUEST bridge, then RST input from PCI bus is recognized as a main asynchronous reset source. The module connects it to PCI core's internal reset signal and WB bus RST_O signal. Soft Reset bit in configuration space also causes a reset on WB bus, but does not have any effect on PCI Core's internal logic. When using Soft Reset bit, designer must take into consideration its application's reset implementation, to provide valid reset sequnce. For PCI bus reset operation, which is propagated to WB bus, refer to PCI Local Bus Specification v. 2.2., chapter 4.3.2.
If PCI Core is implemented as HOST bridge, then its INTA# PCI pin is configured as an input pin ( output is always tri-stated ). Its negated, synchronized to WB clock domain and passed to WB bus through INT_O pin, if interrupt propagation is enabled. (interrupt propagation enable bit of interrupt control register in conf_space.v). Some software considerations come into account here  since interrupt is synchronized, it induces a certain latency to pass through the bridge. When software clears an interrupt request at its source, it should not immediately start accepting new interrupts. There are two possibilities:
Interrupt is cleared with a write to the source of interrupt:Writes through the bridge are posted, therefore software cannot know and must not assume a time when this write will finish on PCI bus. A common thing a software would do would be to perform a write transaction to the source and immediately after that perform a read transaction. This would cause a write transaction to finish on PCI bus before read transaction can. When read transaction is finished on WB bus, software knows for sure, that all writes posted before a read are finished ( except in case of an error ). This should mean the source of interrupt was cleared, and WB agent can start accepting new interrupt requests.
Interrupt is cleared with a read from the source of interrupt:When this read is finished, interrupt request should already be cleared  except in case of  a source that also induces latency to clearing the interrupt. Software should take that into the account and wait appropriate number of cycles before accepting new requests. 
If PCI Core is implemented as GUEST bridge, then its INTA# PCI pin is configured as an output pin. INT_I from WB bus is negated, synchronized to PCI clock domain and passed to PCI bus through INTA# pin, if interrupt propagation is enabled. (interrupt propagation enable bit of interrupt control register in conf_space.v). Some software considerations come into account here  since interrupt is synchronized, it induces a certain latency to pass through the bridge. When software clears an interrupt request at its source, it should not immediately start accepting new interrupts. There are two possibilities:
Interrupt is cleared with a write to the source of interrupt:Writes through the bridge are posted, therefore software cannot know and must not assume a time when this write will finish on WB bus. A common thing a software would do would be to perform a write transaction to the source and immediately after that perform a read transaction. This would cause a write transaction to finish on WB bus before read transaction can. When read transaction is finished on PCI bus, software knows for sure, that all writes posted before a read are finished ( except in case of an error ). This should mean the source of interrupt was cleared, and PCI agent can start accepting new interrupt requests.
Interrupt is cleared with a read from the source of interrupt:When this read is finished, interrupt request should already be cleared  except in case of a source that also induces latency to clearing the interrupt. Software should take that into the account and wait appropriate number of cycles before accepting new requests. 
Since PCI Core can also cause interrupt requests, pci_rst_int.v module handles passing those to appropriate output pins too. For HOST bridge implementation interrupts will be passed to INT_O pin on WB bus, for GUEST bridge implementation they will be passed to INTA# pin on PCI bus. Some internal synchronization is possible ( depending on the source of interrupt ), so software should make sure not to accept new interrupt requsts from the bridge for at least five cycles after interrupt status is cleared.
pci_parity_check submodule
The module pci_parity_check.v is used for generating/checking parity on PCI bus during address and data phases.
The module is implemented in such a way, that no special signals are needed from PCI Master or Target state machines. Its operation is based primarily on monitoring Master and Target output enable and PCI input signals. 
When Master state machine is driving AD bus, parity calculation is based on AD and CBE outputs it provides. Appropriate parity value is driven to PCI bus on PAR pin one clock after corresponding AD and CBE values. PERR# signal is sampled on next clock. If it is sampled asserted, Parity Error Detected signal is generated and Master Parity Error is signaled, if Parity Error Response is enabled in configuration space. PCI Master reads are decoded using its FRAME and IRDY output enable signals. If those signals are enabled and AD bus is not, then Master Read is in progress. Operation now switches from generating value on PAR signal and monitoring PERR# signal, to monitoring PAR signal and generating PERR# signal. Valid parity is calculated from CBE signals provided by PCI Master state machine and AD signals provided by external Target. AD signals are monitored only on cycles on which TRDY# is sampled asserted. Value on PAR signal received on next clock cycle is xor ed with parity calculated from CBE and AD signals immediately. Result must be 0, otherwise Detected Parity Error is signalled. If Parity Error Response in Configuration space is enabled also, when this event occurs, then PERR# is asserted for one clock cycle and Master Data Parity Error signal is asserted to set appropriate status bits in Configuration space.
Reads from PCI bus through Target state machine are decoded with Target control signals and AD bus output enables. When Target state machine is driving control signals and AD bus, this means a read through Target is in progress. Appropriate parity value is calculated from Target  provided AD value and external Master-provided CBE value. It is then driven to PCI bus on PAR pin one clock after corresponding AD values. PERR# signal is sampled on next clock. If it is sampled asserted, Parity Error Detected signal is asserted to set appropriate bit in Configuration space. PCI Target writes are decoded using Target's TRDY output enable signal. If this signal is enabled and AD bus is not, then Target Write is in progress. Operation now switches from generating value on PAR signal and monitoring PERR# signal, to monitoring PAR signal and generating PERR# signal. Valid parity is calculated from external Master-provided CBE and AD signals. AD signals are monitored only on cycles on which IRDY# is sampled asserted. Value on PAR signal received on next clock cycle is xor ed with parity calculated from CBE and AD signals. Result must be 0, otherwise Detected Parity Error is signalled. If Parity Error Response in Configuration space is enabled also, when this event occurs, then PERR# is asserted for one clock cycle.
Parity is also calculated on every Master initiated address phase  value is driven on PAR pin one clock cycle after the address phase. 
Parity is also checked on any external Master's address phase. If invalid parity is detected, Parity Error Response and System Error Enable bits are set in configuration space, then SERR# is asserted for one clock cycle and Signaled System Error is signaled to Configuration space to set appropriate status bit. Detected Parity Error is also signaled to Configuration space in such an event, regardles of the state of Parity Error Response and System Error Enable bits. Parity error checking during external Masters' address phases is done same way as in writes through Target state machine, except in place of Target control signals, FRAME# input is monitored to decode address phase.
A few small submodules are included into pci_parity_check.v. They are provided only because PCI timing constraints are hard to meet in FPGA implementation. Preserve hierarchy option can be selected over these modules in FPGA synthesis tool to prevent optimization of paths that include timing critical inputs. This kind of practice reduced logic levels on those inputs. Modules provided because of timing issues are:
par_crit.v  provides output to PAR output Flip-Flop. Signal is generated directly from some timing critical PCI input signals during target operation.
perr_crit.v  module feeding PERR output Flip-Flop.
perr_en_crit.v  module feeding PERR output enable Flip-Flop.
serr_en_crit.v  module feeding SERR output enable Flip-Flop
serr_crit.v  module feeding SERR output Flip-Flop
Description of WB slave Unit submodules
wb_slave_unit.v is used for connecting lower level modules that implement units functionality. It also provides all connections needed between Configuration space and lower level modules (see  REF _Ref532098758 \h Figure 23: Third picture - Module hierarchy of WB slave Unit and Configuration space).
wb_slave.v
Module implements WISHBONE slave state machine, which monitors and responds to cycles generated by external WB masters. It includes all logic needed for passing requests from WB bus to PCI bus or Configuration space. During WB write requests, logic checks whether or not all conditions for a write are satisfied. There are a few different ways writes are processed:
WB state machine starts processing a write, when CYC_I, STB_I and WE_I WB signals are all active ( 1 ). WB address ( ADR_I ) passes through decoders implemented in wb_addr_mux.v. Decoders compare input address with addresses stored in Configuration space and generate hit signals. WB slave state machine samples those signals at the rising edge of CLK_I while leaving IDLE or one of DECODE states. Hit signals are used in START state to decide where to go or what to do next. If not hit signal is sampled active, state machine doesnt respond and returns to IDLE state.
Configuration Writes  configuration write starts, when decoder hit0 is active and lower twelve addresses dont match with Configuration Cycle data register offset. Configuration writes are accepted only as single writes to DWORD aligned addresses. If any of addresses [1:0] are non-zero or CAB_I signal is active during configuration write, WB slave state machine responds with an error and returns to idle state. WB slave state machine signals to Configuration space when write to register is to be done also ( write enable signal to configuration space ). In case of GUEST implementation of the bridge, configuration writes have no effect on Configuration space registers. A special case applies here  when bridge is defined as a GUEST and configuration image is not implemented, WB slave state machine does not respond to configuration writes at all, because decoder for Configuration space accesses is not implemented. 
Configuration Cycle Writes  this kind of writes is possible only in HOST bridge implementation. It is initiated when decoder hit0 is active and lower twelve addresses match with Configuration Cycle data register offset. State machine handles these as Delayed Writes, so some additional restrictions apply. New Configuration Cycle Write Request can be accepted only if bridge has no other pending Delayed Transaction to be processed. That means no other Delayed Read/Write Request/Completion is pending. Pending Requests/Completions are signaled to WB slave from delayed_sync.v included in wb_slave_unit.v. All of this conditions are sampled at the same time hits from decoders are sampled. If there is no Configuration Cycle Write Delayed Completion pending ( signaled from delayed_sync.v ), then WB slave state machine responds with retry on WB bus and returns to idle state. If Completion is pending, WB slave state machine will end a cycle with error or acknowledge, depending on a kind of termination received on PCI bus and return to IDLE state. If neither Request or Completion is pending, then state machine signals Delayed Write Request to delayed_sync.v, providing appropriate PCI bus command ( Configuration Write ) and address decoded by module in conf_cyc_addr_dec.v.
Image Writes  Image write is initiated when following conditions are satisfied:
WB Write Fifo ( in wbw_wbr_fifos.v ) is not almost full nor full
Delayed Read or Write Requests are not pending
One of hits from decoders is active, except hit0
Image Write has two possible forms  I/O write or Memory Write. WB slave state machine decodes a form of Image Write by sampling map bits coming from Configuration space the same way hits from decoders are sampled. Each hit has its corresponding map bit. If map bit is 1, then I/O write is assumed, otherwise memory write is assumed. In case of I/O write, CAB_I signal is not allowed to be asserted ( only single I/O writes possible ) and SEL_I, ADR_I[1:0] combination must be valid ( PCI IP Core Specification, Chapter 3.2.3 ). If CAB_I is asserted or invalid address/select combination is detected, WB slave state machine will not accept a write, respond with error and return to IDLE state. In case of memory write, ADR_I[1:0] must be zero, otherwise state machine doesnt accept a write, responds with an error and returns to IDLE state. When Image Write is accepted, state machine enables first write to WBW Fifo. During this write, address from wb_addr_mux.v is driven on WBW Fifo address/data output, PCI bus command is driven on command/byte enable output ( PCI bus command is based on whether this is memory ( Memory Write command ) or I/O write ( I/O Write command ). Corresponding control bus value is also written to WBW Fifo during this write to mark an entry as an address/bus command entry. At this same time, state machine acknowledges the transfer and stores values from SDAT_I and SEL_I buses into intermediate register. State machine now switches WBW Fifo output to intermediate register data and negated selects sampled on previous clock edge. In case of I/O write, it asserts Fifo write enable, drives a value on Fifo control bus to mark an entry as last in a transaction and returns to IDLE state. In case of single memory write ( CAB_I de-asserted ) or when WBW Fifo status is ALMOST FULL, the action taken is the same as for I/O writes. Otherwise, state machine continues to WRITE state used for burst writes. In this state, it keeps sampling data and selects on every clock cycle STB_I is sampled asserted, responds with acknowledge, and writes previously sampled data to Fifo, until it signals ALMOST FULL status or WB Master stops transferring ( de-asserts CYC_I or CAB_I ). When this happens, data sampled into intermediate register is written to Fifo and marked as last in a transaction by providing right value on Fifo control bus. State machine then returns to IDLE state.
During WB read requests, logic checks whether or not all conditions for a read are satisfied. There are a few different ways reads are processed:
Reads are decoded in a same manner as writes, the only difference is that WE_I WB signal must be inactive ( 0 ) .
Configuration Reads - configuration read starts, when decoder hit0 is active and lower twelve addresses dont match with Configuration Cycle data register or Interrupt Acknowledge Cycle register offset. Configuration reads are accepted only as single reads to DWORD aligned addresses. If any of addresses [1:0] are non-zero or CAB_I signal is active during configuration read, WB slave state machine responds with an error and returns to IDLE state. A special case applies when bridge is defined as a GUEST  if configuration image is not implemented, WB slave state machine does not respond to configuration reads at all, because decoder for Configuration space accesses is not implemented.
Interrupt Acknowledge Read  can only be done when PCI Core is configured as HOST. It starts when decoder hit0 is active and lower twelve addresses match with Interrupt Acknowledge Cycle register offset. Since Interrupt Acknowledge cycle is generated as a Delayed Read Transaction, some additional rules to Configuration Reads rules apply: There must be no other outstanding Delayed Request or Completion present in WB unit of the bridge. When this is true, Delayed Read Request with Interrupt Acknowledge PCI bus command is accepted, WB slave state machine responds with retry and returns to IDLE state. When Interrupt Acknowledge cycle is finished on PCI, status is transfered through delayed_sync.v and data through WB Read Fifo ( in wbw_wbr_fifos.v ). When cycle is repeated by external WB Master, Delayed Completion pending is signaled from delayed_sync.v and PCI Write Fifo ( pciw_pcir_fifos.v in pci_target_unit.v ) is empty, data and appropriate status are signaled to requesting WB Master and state machine returns to IDLE state.
Configuration Cycle Read - can only be done when PCI Core is configured as HOST. It starts when decoder hit0 is active and lower twelve addresses match with Configuration Cycle Data register offset. Since Configuration Read cycle is generated as a Delayed Read Transaction, some additional rules to Configuration Reads rules apply: There must be no other outstanding Delayed Request or Completion present in WB unit of the bridge. When this is true, Delayed Read Request with Configuration Read PCI bus command and decoded address from conf_cyc_addr_dec.v is accepted. WB slave state machine responds with retry and returns to IDLE state. When Configuration Cycle is finished on PCI, status is transfered through delayed_sync.v and data through WB Read Fifo ( in wbw_wbr_fifos.v ). When cycle is repeated by external WB Master, Delayed Completion pending is signaled from delayed_sync.v and PCI Write Fifo ( pciw_pcir_fifos.v in pci_target_unit.v ) is empty, data and appropriate status are signaled to requesting WB Master and state machine returns to IDLE state.
Image Read  starts when one of hit signals is set, except for hit0 ( configuration hit ). All image reads are processed as Delayed Transactions, so following rules apply: If no other outstanding Delayed Request or Completion is pending in WB slave unit, then new request can be accepted. In case of Memory Read, reads to DWORD aligned addresses are accepted only. In case of I/O Read, only single reads ( CAB_I signal 0 ) with appropriate address/select line combinations are accepted ( PCI IP Core specification, Chapter 3.2.3 ). I/O and Memory reads are differentiated by map bit that corresponds to current image hit. If map bit is 1, that means I/O Read, otherwise it is processed as Memory Read. When new Delayed Read Request is accepted, WB slave state machine responds with retry, stores address, select and bus command information and returns to IDLE state. I/O Reads are always processed the same way: as single reads with IO Read PCI bus command used. Memory reads however can be processed in a few different ways, depending on Cores configuration. Memory Read Line and Pre-fetch enable bits from an Image Control register that corresponds to current active hit input are sampled when state machine leaves IDLE or one of DECODE states. Invalid Cache Line Size register value masks these bits, so special commands cant be used and read bursts cannot be performed on PCI. Refer to PCI IP Core Specification, Chapter 3.2.4 to see how Delayed Memory Reads depend on the state of these bits. When new request can be accepted, WB slave state machine stores the address provided by wb_addr_mux.v, SEL_I lines provided from external WB Master and decoded PCI bus command by signaling new request to delayed_sync.v included in wb_slave_unit.v. When requested read transaction finishes on PCI bus, this status is signaled to WB slave state machine through delayed_sync.v. The data fetched is stored in WB Read Fifo ( wbw_wbr_fifo.v ) and is stored there until external WB Master repeats the same request. On any occasion external WB Master starts a read cycle, address and select lines provided are compared with stored values and result of this operation sampled into registers, when WB slave state machine leaves IDLE or one of DECODE states. If decoded address and select lines are the same and PCI Write Fifo is empty, then WB slave state machine starts providing data from WB Read Fifo on SDAT_O lines on WB bus. It keeps sending out data and acknowledging transfers until Fifo is empty, data marked as last or error is fetched out from WB Read Fifo, or external WB master stops a transfer. If external WB master stops a transfer before Read Fifo is empty, state machine generates a flush signal, to get rid of stale data.
wb_addr_mux.v
Module provides address decoding functionality for WB Slave Unit. ADR_I bus from WISHBONE is connected directly to this module. Configuration space is connected to this module with all WISHBONE Base Addresses ( WB_BAx ), Translation Addresses ( WB_TAx ) and Address Masks ( WB_AMx ). Each triplet of those values is connected to its own decoder ( in decoder.v ), while ADR_I bus is connected to all of them. Each implemented decoder generates independent address and hit signal output. Addresses from implemented decoders are multiplexed to one output address bus based on value of hit signals. Output address is connected to WB Slave state machine, where it is used in various functions. Each defined decoder instantiated in wb_addr_mux.v is implemented in decoder.v. This module is responsible for comparing decoded number of address lines between provided base address and WISHBONE input address. If bus values are the same, decoder sets hit signal to 1. Address Translation Enable input provided from Configuration space is also checked. If it has a value of 1 and address translation is implemented, then translation is performed by changing decoded number of WISHBONE address bus input bits with decoded number of Translation Address inputs. Result is provided on address output bus.
wbw_wbr_fifos.v
Module is the main storage unit for data passing through WISHBONE Slave Unit. It instantiates synchronous dual port RAMs for each Fifo or one two port RAM used for both Fifos. It also inferes two counters  one for incoming transactions and one for outgoing transactions through WB Write Fifo. This is done to signal  pci_master32_sm_if.v interface when at least one complete Write Transaction is in the Write Fifo and can be started on PCI bus. WB Read Fifo does not need such a counter, because complete transaction is signalled through delayed_sync.v. The module is also responsible for multiplexing read and write addresses in PCI and WB clock domain when only one RAM is instantiated for both Fifos. 
Data for WB Write Fifo is received from WB Slave state machine on multiplexed address/data bus. It's written to WB Write Fifo on rising WB clock edge, when Fifo is not full and WB Slave state machine asserts write enable signal. It's stored at write address provided by wbw_fifo_control.v. If data witten to Fifo is marked as last on WB Write Fifo control bus ( also provided by WB Slave state machine ), then incoming transaction counter is incremented. When incoming and outgoing transaction counters are not equal, Transaction Ready signal is generated on next rising PCI clock edge. Comparison is done between Grey coded values, to provide glitch free comparator output. pci_master32_sm_if.v signals a read from WB Write Fifo. If on rising PCI clock edge WB Write Fifo read enable is active, read address from wbw_fifo_control.v is applied to RAM interface, to provide next data at its data outputs. Address/data output from WB Write Fifo is connected to pci_master32_sm_if.v. When data marked as last ( determined by monitoring control bus output ) is read from Fifo, outgoing transaction counter is incremented and Transaction Ready output is cleared. If there is another transaction ready in the Fifo, Transaction Ready output will be set on next rising PCI clock edge. wbw_fifo_control.v provides a module for generating synchronous RAM addresses for WB Write Fifo. It provides write side RAM address ( in WB clock domain ) and read side RAM address ( in PCI clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  WB clock domain always writes to WB Write Fifo, so it is only interested in Fifo fullness. So Fifo's Almost Full and Full statuses are synchronized to WB clock domain. On the other hand, PCI clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore statuses Two Left, Almost Empty and Empty are syncronized to PCI clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.  
Data for WB Read Fifo is received from PCI Master state machine Interface. It is written to RAM address provided by wbr_fifo_control.v on rising PCI clock edge when WB Read Fifo Write Enable is asserted ( received from PCI Master state machine Interface) and Fifo is not Full. WB Slave state machine performs a read on rising edge of WB clock, during which it holds WB Read Fifo Read Enable asserted. Read address provided from wbr_fifo_control.v is applied to RAM address inputs on a port clocked by WB clock, to provide next data and control signals to WB Slave state machine on Fifo's data and control outputs. wbr_fifo_control.v provides a module for generating synchronous RAM addresses for WB Read Fifo. It provides write side RAM address ( in PCI clock domain ) and read side RAM address ( in WB clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  PCI clock domain always writes to WB Read Fifo, so it is only interested in Fifo fullness. So Fifo's Full status is synchronized to PCI clock domain. On the other hand, WB clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore status Empty is syncronized to WB clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.
delayed_write_reg.v
Module is provided as additional storage for Delayed Write Transactions. Only Configuration Write Transactions are processed as Delayed Writes currently, so this register is only relevant in HOST bridge implementation. When WB Slave state machine signals a Delayed Write Request, this register stores provided data for transfer on PCI bus. 
conf_cyc_addr_dec.v
Module provides address bus value for generation of Configuration Cycles. It is included only in HOST bridge implementation, since GUEST implementation cannot generate them. It receives value written in Configuration Cycle Address register in Configuration space. If value in this register marks Configuration Cycle as Type1 cycle, then address from register passes through the module unchanged. If a value in a register marks Configuration Cycle as Type0, then lower 11 bits pass through module unchanged. Next 5 bits in register value are decoded to provide 21 upper address bits. Refer to PCI IP Core Specification.
pci_master32_sm_if.v
Module is provided for passing requests from delayed_sync.v and wbw_wbr_fifos.v to pci_master32_sm.v. When no transaction is in progress currently, which is determined by three request Flip-Flops, the interface monitors its inputs from WB Write Fifo ( in wbw_wbr_fifos.v ) and delayed_sync.v. 
When Posted Write is prepared in WB Write Fifo, the interface starts preparing all necesary data for PCI Master state machine. It fetches the address into address counter and PCI bus command to its register first. These two registers are connected directly to address and bus command output buses, which go to pci_master32_sm.v. Then it fetches two data entries with byte enables ( if Posted Write is long enough ) to additional registers provided. One register is needed to store the last data in a Write Transaction that was not transfered to PCI bus. This has to be done if Disconnect is signaled in the middle of transaction. The second register is used to provide next data and byte enable information to PCI Master state machine. When address and bus command are prepared and data registers are loaded, the interface signals a request to PCI Master state machine. It receives statuses from the state machine, to know when to provide next write data. Statuses received are:
Wait  means state machine is not transfering yet  when wait is set to 1, all other statuses are ignored
Registered Transfer  status means data was transfered on previous rising PCI clock edge.
Wire Transfer  status signals transfer is going to happen on next rising PCI clock edge. Generation of this status uses unregistered PCI bus control inputs which are timing critical. Usage of this signal should be reduced to minimum to minimize fan-out and logic levels on timing critical PCI control inputs.
Registered Retry  status signals that retry or dissconnect was signaled on previous rising PCI clock edge.
Registered Error  status signals that Target Abort Termination was detected on previous rising PCI clock edge.
Master Abort - status signals that Master Abort Termination was initiated on previous rising PCI clock edge. Master Abort Termination status is treated the same way as Target Abort, except during Configuration Cycles.
The interface is also responsible for signaling to PCI Master state machine if current data phase is also the last or if current data phase is one before last ( state machine needs this information because of PCI bus protocol and registered PCI outputs ). Posted Write Transaction will be repeated and retried, until all data in the transaction is transfered or error status is signalled. Write Transaction can be interrupted by an external Target in the middle of transfer, so address counter is implemented to always provide the right address from which transaction must continue. If error is detected in the middle of Posted Write Transaction ( either Master or Target Abort ), error status is signaled to Configuration space, with erroneous address, bus command, data, byte enable and error source information. Refer to PCI IP Core Specification. The interface also recovers from a Posted Write error, by pulling data out of WB Write Fifo, until last data of current transaction is detected ( data marked as last on WB Write Fifo control bus input ). 
When no transaction is in progress, WB Write Fifo signals an Empty status and Delayed Request is signaled from delayed_sync.v, the interface starts preparing everything data for PCI Master state machine. It fetches address and bus command provided from delayed_sync.v into address counter and bus command register. If this is a Delayed Write Request, then it also fetches data from delayed_write_reg.v. If this is burst Delayed Read Request, a read counter is provided, to stop the reading when enough data is read. Single reads are stopped after single data is transfered from PCI bus. Refer to PCI IP Core Specification, regarding length of burst reads. 
Delayed Writes are always single transactions. When Delayed Write is finished on PCI bus  PCI Master state machine signaling Registered Transfer or Error with Wait status zero, appropriate status is returned to delayed_sync.v ( Delayed Request Complete and Error, if detected ). 
Delayed Reads can be done as burst or single transactions  Refer to PCI IP Core Specification. If delayed Read Request is decoded as a single read, then the interface will stop the request immediately after single data is stored in WB Read Fifo. Data can be marked as normal or error, depending on status returned by PCI Master state machine. Burst Read Request will be signaled to PCI Master state machine until all data required is stored in WB Read Fifo ( determined by a state of read counter ), external Target Disconnects or Master Abort or Target Abort is signaled. In later two cases, data entry will still be written to WB Read Fifo marked as error on WB Read Fifo control bus output ( except on Master Abort during execution of Configuration Read command ). Disconnects are determined with FIRST status Flip-Flop. If Registered Retry is received from PCI Master state machine and FIRST status is active, this means a normal Retry and transaction must be requested again. If FIRST status is inactive when Registered Retry is received, this means a Disconnect, which does not have to be repeated on PCI bus. The interface is responsible for signaling appropriate statuses to PCI Master state machine during Burst Delayed Reads also ( last data phase, one before last data phase ). This statuses are determined from a state of read counter. The interface also uses Cache Line Size register value from Configuration space for Burst Delayed Read Transactions in some cases. 
pci_master32_sm.v
Module implements PCI Master state machine and control logic. State machine only signals current state, Wait status and data source to the outside world. Control logic calculates appropriate value for each PCI bus signal, controls loading of output and output enable Flip-Flops and supplies appropriate value for them. It also disables clock on PCI Master state machine, when it is not allowed to change the state it is in.
When state machine is in IDLE state, control logic monitors PCI control input signals. If PCI bus is idle ( FRAME# and IRDY# both de-asserted ) and GNT# is asserted, it just loads output enable Flip-Flops for AD and CBE# busses with active value ( 1 ). This implements bus parking functionality. Value of those buses is not important at this time. When Request and Ready signals from pci_master32_sm_if.v are both 1, control logic loads REQ# output Flip-Flop with active value ( 0 ). It also monitors state of PCI bus and GNT# input signal. If PCI bus is idle and GNT# is asserted ( 0 ), control logic enables load of new values to AD and CBE output buses, loads output enable Flip-Flops to active state for FRAME# signal and AD and CBE buses. It also enables clock for PCI Master State machine, which will proceede to ADDRESS state on next rising PCI clock edge. While state machine is in address phase ( always for one cycle only ), control logic keeps state machine clock enabled. It determines next value of FRAME# output signal  if data is marked as last from pci_master32_sm_if.v this would be 1, otherwise FRAME# output Flip-Flop is loaded with active value ( 0 ). It determines next value for AD output enable Flip-Flops. If this is a read transaction ( determined from LS bit of PCI bus command ), AD output enable Flip-Flops are loaded with inactive value, to disable driving of AD bus when state machine leaves an ADDRESS state. IRDY# output and output enable Flip-Flops are loaded with an active value. State machine is now in TRANSFER state. It is allowed to go out from this state only when FRAME# output is de-asserted. Control logic now calculates next values for output enables, loads and values for control signals by monitoring external Target response signals, statuses received from pci_master32_sm_if.v and internal counters. It also signals its own statuses and the ones received from external PCI target to the interface. Two counters are implemented to satisfy PCI bus protocol: Decode Timeout and Latency Timeout. Decode Timeout occurs when state machine is in TRANSFER state and no external target has responded to transaction address by asserting DEVSEL# signal. This happens four PCI clock cycles after state machine leaves ADDRESS state. If DEVSEL# is not sampled asserted after these four clocks, Master Abort procedure is initiated. Latency Timer counter value is received from Configuration space. Timer counts all the time when state machine is in ADDRESS or TRANSFER state. When it is zero and GNT# is sampled de-asserted, Latency Timeout occurs. When this occurs, PCI Master state machine finishes the transfer and signals to the interface as if Disconnect was received. For Burst Posted Write Transaction this means it will continue next time PCI Master state machine is granted a bus, while Burst Read transaction is finished when this happens ( since the interface stops requesting ). When Latency Timeout, Master Abort, Target Abort, Retry, Disconnect or transfer of last data is decoded, state machine goes to TURN_AROUND state. At this time, AD and CBE buses and FRAME# output enable Flip-Flops are loaded with inactive value, IRDY# output is loaded with de-asserted value ( 1 ). When state machine leaves TURN_AROUND state, IRDY# output enable Flip-Flop is loaded with inactive value also. 
Submodules instantiated in pci_master32_sm.v are used to resolve timing issues on PCI control signals used unregistered. Logic optimization was turned off for these modules during FPGA synthesis to reduce a number of logic levels on timing critical PCI input paths.
frame_crit.v  module feeds FRAME PCI signal output Flip  Flop. FRAME# signal must be de-asserted on any clock cycle STOP# input is sampled asserted. Normal FRAME output calculation is performed in the wb_master32_sm.v and fed to this module in parallel with STOP# input. When this one is sampled asserted, module immediately blocks out FRAME# assertion regardless of the result of normal FRAME# calculation.
frame_load_crit.v  module feeds FRAME output Flip-Flops clock enable. Value of FRAME# output signal changes when state machine starts operation, when external PCI target is responding or when Master Abort termination is initiated. Master Abort termination and start of transaction are not critical to detect, since they are generated internally. The calculation of those is fed to this module in parallel with TRDY# and STOP# PCI inputs. New value of FRAME# output is loaded when internal logic forces it or, in the middle of transaction, when external target responds with TRDY# or #STOP asserted. 
irdy_out_crit.v  this module is provided for basically the same operation as previous one, except it feeds IRDY# output Flip  Flop. External logic signals when IRDY# must be asserted no matter what and state of current FRAME# output. When FRAME# output signal is de-asserted, module waits for TRDY# or STOP# signals to be asserted and de-asserts IRDY# output on that same rising PCI clock edge.
mas_ad_load_crit.v  module signals to pci_io_mux.v in pci_bridge32.v when to load next data to AD[31:0] output Flip-Flops. It receives a signal which forces output registers to be loaded, and signal that allows outputs to be loaded and GNT# input from PCI bus. Load is forced, when state machine is changing state from IDLE to ADDRESS, to provide the address received from pci_master32_sm_if.v on AD outputs, and when state machine is changing state from ADDRESS to TRANSFER, if current transaction is a write. When state machine is in TRANSFER state during a write, loading is allowed on every cycle transfer is signaled, which is decoded in pci_io_mux.v 
mas_ch_state_crit.v  module provides an internal signal for clock enable on state machine. State transition is controlled by requests received from pci_master32_sm_if.v, state that state machine is currently in and PCI control input signals. For example  when state machine is in IDLE state, it can change state to ADDRESS state only when PCI bus is in idle state, pci_master32_sm_if.v request and ready signals are set and GNT# input is asserted. Or, when state machine is in TRANSFER state, state is allowed to change only when FRAME# output is de-asserted, Master Abort is in progress or external target is responding with TRDY# or STOP# asserted.
mas_ad_en_crit.v  module is provided to feed AD bus output enable Flip-Flops. It is provided, because Master state machine must enable output buffers when PCI bus is IDLE and GNT# is asserted. GNT# is constrained PCI input, so calculation is done in separate module. Other internal, non-critical calculations are done outside this module.
cbe_en_crit.v  module is provided for CBE output enable calculations that include timing critical PCI inputs. Since only PCI Master state machine can drive CBE outputs, this module resides in Master state machine and not in pci_io_mux.v as opposed to AD enable sub-modules, which are used in Master and Target operation.
frame_en_crit.v  module feeds FRAME# output enable Flip-Flop. FRAME# output must remain enabled, until last data phase is complete or Master Abort termination occurs. Signals for the module provide information on when FRAME# must remain enabled, when it must be disabled and when it is allowed to be disabled. When disabling of FRAME# is allowed, module waits for STOP# or TRDY# to be asserted and disables FRAME# output immediately on that clock edge. 
Description of PCI target Unit submodules
The module pci_target_unit.v is used for connecting lower level modules that implement units functionality which is accessing WB bus from PCI bus (see  REF _Ref532098719 \h Figure 24: Fourth picture - Module hierarchy of PCI target Unit). It has three communication ports; one from PCI bus, one to access Configuration space and one to access WB bus. Ports from PCI bus and to access Configuration space operate on PCI clock, while port for accessing WB bus operates on WB clock.
pci_target32_sm.v & pci_target32_interface.v
Module pci_target32_sm.v implements PCI Target state machine and control logic. State machine only signals current state and decides a next state regarding the signals from control logic. Control logic calculates appropriate value for each PCI bus signal, controls loading of output and output enable Flip-Flops and supplies appropriate value for them. It also disables clock on PCI Target state machine, when it is not allowed to change the state it is in, and it signals to pci_target32_interface.v where to data must be loaded (FIFO or Configuration space) or where from data must be fetched. Module pci_target32_interface.v additionally checks when stored address from requested read is the same as currently translated address from PCI bus and other checking that influence, what kind of termination will be.
The control logic monitors PCI control input signals and control signals from pci_target32_interface.v, since all storing registers, multiplexers and address decoders (pci_decoder.v) are implemented there. Internal control signals and ones from pci_target32_interface.v module, that influence on initial PCI Target response, are registered in pci_target32_sm.v module due to timing constraints in FPGA. This incorporates initial wait cycle for PCI Target response. Control signals from pci_target32_interface.v module are: 
addr_claim_in  ORed hits from PCI decoders (not registered before used)
same_read_in  If PCI bus read command and translated address are the same as stored ones (registered due to critical timings)
pci_cbe_reg_in[0]  Registered R/W signal from PCI bus command (registered due to  large fanout) 
read_completed_in  If there is a delayed read request finished on a WB bus and all data are ready in PCI read FIFO  pciw_pcir_fifos.v (used in equation and registered due to critical timings)
read_processing_in  If there is a delayed read request pending on a WB bus (used in equation and registered due to critical timings)
norm_access_to_config_in  If there is a memory access to Configuration space (used in equation and registered due to critical timings)
disconect_wo_data_out  If no data can be transferred any more. Signaled during data phases and used for disconnect without data (not registered before used).
disconect_w_data_out  If no data can be transferred any more. Signaled during data phases and used for disconnect with data (not registered before used).
target_abort_out  If a transaction must be aborted after address phase. Signaled at address phase only (not registered before used).
wbw_fifo_empty_in  If WB write FIFO is empty  just connected through pci_target32_interface.v module (used in equation and registered due to critical timings)
pciw_fifo_full_out  If PCI write FIFO has not enough space left (less then 3 locations, first one is for address)  ORed signals from FIFO pciw_fifo_full_in, pciw_fifo_almost_full_in and pciw_fifo_two_left_in (not registered before used).
pcir_fifo_data_err_out  If corresponding control bit value, of the data read out of PCI read FIFO, signals that an data entry is erroneous, therefore read must be aborted. This is signaled when FIFO is selected and not Configuration space (not registered before used).
All transactions are initiated from PCI bus (from other PCI master). How PCI reads and writes are processed is discussed separately. There are a few different ways writes are processed:
PCI Target state machine starts processing a write with address and one of write commands on AD and CBE# busses respectively, when FRAME# signal is active ( 0 ). Registered PCI address passes through PCI decoders (pci_decoder.v)  implemented in pci_target32_interface.v (it is also stored in a register there). PCI decoders compare input address with addresses stored in Configuration space. Regarding the space (MEMORY or I/O) to which an image is assigned to (bit 0 in P_BA register),  there must also be enabled MEMORY or I/O space (PCI Header - Command register, see PCI IP Core Specification, chapter 4.1.2) to allow PCI decoders to generate hit signals. Write can progress when there is address hit and: if there is no read request  pending on a WB bus and PCI write FIFO is not full (full, almost full and two left), if there is read request completed on a WB bus and PCI write FIFO is not full (full, almost full and two left) or if there is single word write command to Configuration space.
Configuration Writes  configuration write is meant as a write to Configuration space and they proceeds regardless of uncompleted read requests. It can be performed with MEM WRITE or CONF WRITE commands. 
Memory write to Configuration space starts, when decoder hit0 is active. Writes are accepted only as single writes (all MEM WRITE commands are DWORD aligned). If burst MEM WRITE is attempting, then control logic responds Disconnect With Data when data is transferred or Disconnect Without Data after data is transferred (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). 
Configuration write to Configuration space starts, when PCI signal IDSEL is active and CONF WRITE command is performed (all CONF WRITE commands are single writes and DWORD aligned). 
Logic in PCI target state machine signals to Configuration space when write to register is to be done (load_to_pciw_fifo_out - write enable signal to configuration space). In case of HOST implementation of the bridge, writes have no effect on Configuration space registers. A special case applies here  when bridge is defined as a HOST and configuration image is not implemented or is changed into normal PCI-WB image, PCI target state machine does not respond to configuration writes at all, because decoder for Configuration space accesses is not implemented. 
Image Writes  Image write is initiated when following conditions are satisfied:
PCI Write Fifo (in pciw_pcir_fifos.v) is not full nor almost full nor two left (pciw_fifo_full_in signal from pci_target32_interface.v)
Delayed Read Request is not pending (read_processing_in signal from pci_target32_interface.v), but can be completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
Image write has two possible forms  I/O write or Memory write with IO WRITE or MEM WRITE commands respectively. As mentioned, the appropriate space of an image must be enabled (MEMORY or I/O) for each kind of commands and also image must be assigned to appropriate space (MEMORY or I/O in a base address register  bit 0), otherwise PCI target state machine will not response at all. PCI decoders (pci_decoder.v)  take care of this for each image. 
Memory write can be single or burst (all MEM WRITE commands are DWORD aligned). The two LSBits of address (AD[1:0]) tell what kind of burst ordering is initiated. Two kinds are possible; linear incrementing and cacheline wrap, but only the first one is supported. If PCI master initiates the cacheline wrap burst ordering, the PCI target logic terminates the transaction with Disconnect With or Without Data and only single data phase transfers data (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v) as it reacts when there remains only two spare locations in PCI write FIFO during linear incrementing burst. The byte enables indicate the affected bytes within the DWORD for each data written.
I/O write is only single write. All 32 address bits are used to provide a full byte address. The PCI master is required to ensure that AD[1:0] indicate the least significant valid byte for the transaction. The byte enables indicate the size of the transfer and the affected bytes within the DWORD and must be consistent with AD[1:0] (see PCI IP Core Specification, chapter 3.3.3), otherwise PCI target logic terminates the transaction with Target-Abort (target_abort_in signal from pci_target32_interface.v) and no data is transferred.
When Image Write is accepted, control logic in pci_target32_interface.v enables first write to PCIW Fifo. During this write, address stored in a register (address is stored from multiplexer, to which PCI decoders are connected) is driven on PCIW Fifo address/data output, PCI bus command stored in a register is driven on command/byte enable output. Corresponding control bus value is also written to PCIW Fifo during this write to mark an entry as an address/bus command entry. Control logic now switches registered data from PCI bus to PCIW Fifo. In case of I/O write, it asserts Fifo write enable, drives a value on Fifo control bus to mark an entry as last. In case of single memory write (FRAME# de-asserted before first data phase), the action taken is the same as for I/O writes. When there is a burst memory write, data are normally written, with corresponding control bus value written to mark an entry as a burst, until there remains only two spare locations in PCIW Fifo or PCI master stops writing. When this happens, registered data written to Fifo are marked as last with corresponding control bus value.
During PCI read requests, logic checks whether or not all conditions for a read are satisfied. There are a few different ways reads are processed:
Reads are decoded in a same manner as writes, the only differences are READ commands instead of WRITE commands and that Read is requested on WB bus when there is address hit and there is no read request  pending on a WB bus and no read request completed and it is not a read from Configuration space. Read from PCI bridge can progress when there is address hit and: if there is read request completed on WB bus and the same address as an address of completed read and WBW Fifo is empty (due to transaction ordering) or if there is single word read command from Configuration space.
Configuration Reads  configuration read is meant as a read from Configuration space and they proceeds regardless of uncompleted or completed read requests. It can be performed with MEM READ or CONF READ commands. 
Memory read from Configuration space starts, when decoder hit0 is active. Reads are accepted only as single reads (all MEM READ commands are DWORD aligned). If burst MEM READ is attempting, then control logic responds Disconnect With Data when data is transferred or Disconnect Without Data after data is transferred (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). 
Configuration read from Configuration space starts, when PCI signal IDSEL is active and CONF READ command is performed (all CONF READ commands are single reads and DWORD aligned). 
Logic in PCI target state machine just set the current address to Configuration space when read from register is to be done and set select signal on multiplexer for fetching the data from Configuration space (sel_conf_fifo_out). In case of HOST implementation of the bridge, just reads have effect on Configuration space registers. A special case applies here  when bridge is defined as a HOST and configuration image is not implemented or is changed into normal PCI-WB image, PCI target state machine does not respond to configuration reads at all, because decoder for Configuration space accesses is not implemented. 
Image Reads  Image read is accepted when following conditions are satisfied:
Delayed Read Request is not pending (read_processing_in signal from pci_target32_interface.v) and Delayed Read Request is not completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
 Image read is initiated when following conditions are satisfied:
Delayed Read Request is completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
Initiated address is the same as the starting address of completed Delayed Read Request (same_read_in signal from pci_target32_interface.v)
WB Write Fifo (in wbw_wbr_fifos.v) is empty (wbw_fifo_empty_in signal from wb_slave_unit.v) due to transaction ordering
As mentioned, Delayed Read must first be accepted and requested to complete on WB bus. When new Delayed Read Request is accepted, PCI target state machine responds with retry and stores the translated address with its bus command. Image read has two possible forms  I/O read or Memory read with IO READ or MEM READ commands respectively. As mentioned, the appropriate space of an image must be enabled (MEMORY or I/O) for each kind of commands and also image must be assigned to appropriate space (MEMORY or I/O in a base address register  bit 0), otherwise PCI target state machine will not response at all. PCI decoders (pci_decoder.v)  take care of this for each image. I/O Reads are always processed the same way: as single reads with IO Read PCI bus command used. The PCI master is required to ensure that AD[1:0] indicate the least significant valid byte for the transaction. The byte enables indicate the size of the transfer and the affected bytes within the DWORD and must be consistent with AD[1:0] (see PCI IP Core Specification, chapter 3.3.3), otherwise PCI target logic terminates the transaction with Target-Abort (target_abort_in signal from pci_target32_interface.v) and no data is transferred. Memory reads however can be processed in a few different ways, depending on Cores configuration. Pre-fetch enable bits from an Image Control register that corresponds to current active hit input together with one of MEM READ commands and Cache Line Size register value influence to a number of data read on a WB bus (see PCI IP Core Specification, Chapter 3.2.4). When new request can be accepted, PCI target state machine stores the translated address and PCI bus command by signaling new request to delayed_sync.v included in pci_target_unit.v. When requested read transaction finishes on WB bus, this status is signaled to PCI target state machine through delayed_sync.v and pci_target32_interface.v. The data fetched is stored in PCI Read Fifo ( pciw_pcir_fifo.v ) and is stored there until external PCI Master repeats the same request. On any occasion external PCI Master starts a read cycle, translated address and PCI bus command provided are compared with stored values. If decoded address and bus command are the same and WB Write Fifo is empty, then PCI target state machine set select signal on multiplexer for fetching the data from Fifo and starts providing data from PCI Read Fifo to PCI bus. There is also one storing register between Fifo and output register, in order to have only one initial wait cycle and no subsequent wait cycles. PCI target state machine keeps sending out data and acknowledging transfers until Fifo is empty, data marked as last or error is fetched out from PCI Read Fifo, or external PCI master stops a transfer. If PCI master initiates the cacheline wrap burst ordering for MEM READ commands, the PCI target logic terminates the transaction with Disconnect With or Without Data and only single data phase transfers data (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). If a transfer is stopped before Read Fifo is empty, state machine generates a flush signal, to get rid of stale data. The byte enables indicate the affected bytes within the DWORD for each single data read, while for burst data reads byte enables have no meaning.
Submodules instantiated in pci_target32_sm.v are used to resolve timing issues on PCI control signals used unregistered. Logic optimization was turned off for these modules during FPGA synthesis to reduce a number of logic levels on timing critical PCI input paths.
pci_target32_clk_en.v  module feeds clock enable signal for state machine with inputs FRAME# and IRDY#.
pci_target32_trdy_crit.v  module feeds output value for TRDY# signal.
pci_target32_stop_crit.v  module feeds output value for STOP# signal.
pci_target32_devs_crit.v  module feeds output value for DEVSEL# signal.

pciw_pcir_fifos.v
Module is the main storage unit for data passing through PCI Target Unit. It instantiates synchronous dual port RAMs for each Fifo or one two port RAM used for both Fifos. It also inferes two counters  one for incoming transactions and one for outgoing transactions through PCI Write Fifo. This is done to signal  wb_master.v state machine when at least one complete Write Transaction is in the Write Fifo and can be started on WB bus. PCI Read Fifo does not need such a counter, because complete transaction is signalled through delayed_sync.v. The module is also responsible for multiplexing read and write addresses in PCI and WB clock domain when only one RAM is instantiated for both Fifos. 
Data for PCI Write Fifo is received from PCI Target state machine on multiplexed address/data bus. It's written to PCI Write Fifo on rising PCI clock edge, when Fifo is not full and PCI Target state machine asserts write enable signal. It's stored at write address provided by pciw_fifo_control.v. If data witten to Fifo is marked as last on PCI Write Fifo control bus ( also provided by PCI Target state machine ), then incoming transaction counter is incremented. When incoming and outgoing transaction counters are not equal, Transaction Ready signal is generated on next rising WB clock edge. Comparison is done between Grey coded values, to provide glitch free comparator output. wb_master.v signals a read from PCI Write Fifo. If on rising WB clock edge PCI Write Fifo read enable is active, read address from pciw_fifo_control.v is applied to RAM interface, to provide next data at its data outputs. Address/data output from PCI Write Fifo is connected to wb_master.v. When data marked as last ( determined by monitoring control bus output ) is read from Fifo, outgoing transaction counter is incremented and Transaction Ready output is cleared. If there is another transaction ready in the Fifo, Transaction Ready output will be set on next rising WB clock edge. pciw_fifo_control.v provides a module for generating synchronous RAM addresses for PCI Write Fifo. It provides write side RAM address ( in PCI clock domain ) and read side RAM address ( in WB clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  PCI clock domain always writes to PCI Write Fifo, so it is only interested in Fifo fullness. So Fifo's Almost Full and Full statuses are synchronized to PCI clock domain. On the other hand, WB clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore statuses Two Left, Almost Empty and Empty are syncronized to WB clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.  
Data for PCI Read Fifo is received from WB Master state machine. It is written to RAM address provided by fifo_control.v on rising WB clock edge when PCI Read Fifo Write Enable is asserted ( received from WB Master state machine) and Fifo is not Full. PCI Target state machine performs a read on rising edge of PCI clock, during which it holds PCI Read Fifo Read Enable asserted. Read address provided from fifo_control.v is applied to RAM address inputs on a port clocked by PCI clock, to provide next data and control signals to PCI Target state machine on Fifo's data and control outputs. fifo_control.v provides a module for generating synchronous RAM addresses for PCI Read Fifo. It provides write side RAM address ( in WB clock domain ) and read side RAM address ( in PCI clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  WB clock domain always writes to PCI Read Fifo, so it is only interested in Fifo fullness. So Fifo's Full status is synchronized to WB clock domain. On the other hand, PCI clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore status Empty is syncronized to PCI clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.
wb_master.v
Module implements WISHBONE master state machine and is provided for passing requests from delayed_sync.v and pciw_pcir_fifos.v to external WB slaves. 
When Posted Write is prepared in PCI Write Fifo, the state machine fetches the address into address counter. These register is connected directly to address output bus. Then it fetches each data with byte enables (if Posted Write) and put it on WB bus until last data is fetched from PCIW Fifo, while address counter is incremented for each data phase, when data are terminated with ACK_I. If write is terminated with RTY_I signal, the last data transfer is repeated for the value of define WB_RTY_CNT_MAX. If there is no response on WB bus, internal signal (set_retry) is active after 8 WB clock periods, and is used as there would be a termination with RTY_I signal. If retry counter reaches maximum value, address, data, bus command and control signals (cause of the error, error_source_out and write_rty_cnt_exp_out) are written into ERR registers if this is enabled. The rest of posted write is emptied from PCIW Fifo until last data (more Posted Writes can be in PCIW Fifo). If write is terminated with ERR_I signal, then action is the same as when retry counter reaches maximum value. 
When there is a delayed read request, it can not be processed until PCIW Fifo is empty (due to transaction ordering). Logic first determine how long a read should be performed. This is calculated from PCI bus command, pre-fetch enable bit of image control register and cache line size register (must be aligned to 4 DWORDs  2 LSBits are zero). Then state machine fetches the address into address counter and starts the transaction. Address counter is incremented for each data phase, when data are terminated with ACK_I. If read is terminated with RTY_I signal, the last data transfer is repeated for the value of define WB_RTY_CNT_MAX. If there is no response on WB bus, internal signal (set_retry) is active after 8 WB clock periods, and is used as there would be a termination with RTY_I signal. If retry counter reaches maximum value because of RTY_I termination, then state machine stop reading, otherwise if retry counter reaches maximum value because of no response, then state machine write last data into PCIR Fifo with error control bit, the same as it would be terminated with ERR_I.
Description of Configuration space submodules
The module conf_space.v is also referenced as Configuration space (see  REF _Ref532098758 \h Figure 23: Third picture - Module hierarchy of WB slave Unit and Configuration space). It consists of PCI Configuration Header and Device specific registers for WB slave and PCI target Units. It has some sub-modules used for synchronization, sync_module.v and synchronizer_flop.v.
It has two ports for access registers by their address. One port is Read-Only, the other is Read/Write. Both ports have theirs own address and read data busses, but only Read/Write port has write data bus. Each port has its own address decoder for accessing appointed registers. Reading is asynchronous, while writing is synchronous. To have only one address decoder for Read/Write port, we set address decoded select signals w_reg_select_dec[55:0] in address decoder for reading from Read/Write port and then we use those selects for writing into individual registers.
Some register bits are constant and cannot be changed. Almost all others can be set to desired values. Only exceptions are status bits, which are set to logic 1 when there occurs e.g. error and are deleted with writing 1 into them.
If PCI bridge is implemented as HOST bridge, then Configuration access port from wb_slave.v (in WB slave Unit) is connected to Read/Write port of Configuration space and Configuration access port from pci_target32_interface.v (in PCI Target Unit) is connected to Read-Only port. For GUEST bridge implementation it is vice-versa. 
If PCI bridge is implemented as HOST bridge with all 6 PCI images (PCI_IMAGE6) or if there are less images and disabled Read-Only access (NO_CNF_IMAGE), then there is no Read-Only port connection between Configuration space and PCI Target Unit. If PCI bridge is implemented as GUEST bridge and disabled Read-Only access (NO_CNF_IMAGE), then there is no Read-Only port connection between Configuration space and WB Slave Unit.
Read-Only port consists of inputs: r_conf_address_in and r_re (read enable); and of outputs: r_conf_data_out. Read/Write port consists of inputs: w_conf_address_in, w_conf_data_in, w_byte_en, w_re (read enable) and w_we (write enable); and of outputs: w_conf_data_out. 
Basically all register bit outputs (control, status, address etc.) are connected directly to the modules, which action depends on them. Registers themselves are well described in PCI IP Core Specification.
OUTPUTS form PCI Configuration Header registers:
serr_enable, perr_response (bits 8 and 6 of Command register): connected to pci_parity_check.v of PCI I/O
pci_master_enable (bit 2 of Command register): connected to wb_slave.v of WB slave Unit
memory_space_enable, io_space_enable (bits 1 and 0 of Command register): connected to pci_target32_interface.v of PCI raget Unit
cache_line_size_to_pci (Cache Line Size register): connected to pci_master32_sm_if.v of WB slave Unit
cache_line_size_to_wb (Cache Line Size register): connected to wb_master.v of PCI target Unit
cache_lsize_not_zero_to_wb: connected to wb_slave.v of WB slave Unit and to wb_master.v of PCI target Unit
latency_tim (Latency Timer register): connected to pci_master32_sm.v of WB slave Unit
OUTPUTS from PCI Image registers:
pci_base_addr* (bits 31-12 of P_BA* register): connected to pci_decoder.v of PCI target Unit
pci_memory_io* (bit 0 of P_BA* register): connected to pci_decoder.v of PCI target Unit
pci_addr_mask* (bits 31-12 of P_AM* register): connected to pci_decoder.v of PCI target Unit
pci_tran_addr* (bits 31-12 of P_TA* register): connected to pci_decoder.v of PCI target Unit
pci_img_ctrl* (bits 2-1 of P_IMG_CTRL* register): connected to pci_decoder.v (bit 2) and pci_target32_interface.v of PCI target Unit
* Stands for number from 0 to N (N is a number of implemented PCI images), see PCI IP Core Specification document.
12     This value of P_BA, P_AM and P_TA registers is determined according to PCI_Number_of_Decoded_Address_Lines (20 is maximum  31:12, 1 is minimum  31:31).
OUTPUTS from WB Image registers:
wb_base_addr** (bits 31-12 of W_BA** register): connected to decoder.v of WB slave Unit
wb_memory_io* (bit 0 of W_BA* register): connected to wb_slave.v of WB slave Unit
wb_addr_mask* (bits 31-12 of W_AM* register): connected to decoder.v of WB slave Unit
wb_tran_addr* (bits 31-12 of W_TA* register): connected to decoder.v of WB slave Unit
wb_img_ctrl* (bits 2-0 of W_IMG_CTRL* register): connected to decoder.v (bit 2) and wb_slave.v of WB slave Unit
*      Stands for number from 1 to N (N is a number of implemented WB images).
**      Stands for number from 0 to N (N is a number of implemented WB images), see PCI IP Core Specification document.
12      This value of W_BA, W_AM and W_TA registers is determined according to WB_Number_of_Decoded_Address_Lines (20 is maximum  31:12, 1 is minimum  31:31).
OUTPUTS from device specific control registers:
config_addr (CNF_ADDR register): connected to conf_cyc_addr_dec.v of WB slave Unit if there is a HOST bridge implementation
icr_soft_res (bit 31 of ICR register): connected to pci_rst_int.v of PCI I/O
int_out (ORed bits 4-0 of ISR register):connected to pci_rst_int.v of PCI I/O
INPUTS to PCI Configuration Header register:
perr_in, serr_in and master_data_par_err (bits 15, 14 and 8 of Status register): connected from pci_parity_check.v of PCI I/O
master_abort_recv and target_abort_recv (bits 13 and 12 of Status register): connected from pci_master32_sm_if.v of WB slave Unit
target_abort_set (bit 11 of Status register): connected from pci_target32_sm.v of PCI target Unit
INPUTS to PCI Error registers:
pci_error_be, pci_error_bc, pci_error_rty_exp , pci_error_es and pci_error_sig (bits 31-28, 27-24, 10, 9 and 8 of P_ERR_CS register): connected from wb_master.v of PCI target Unit
pci_error_addr (P_ERR_ADDR register): connected from wb_master.v of PCI target Unit
pci_error_data (P_ERR_DATA register): connected from wb_master.v of PCI target Unit
INPUTS to WB Error registers:
wb_error_be (bits 31-28 of W_ERR_CS register): connected from cur_out_reg.v of PCI I/O
wb_error_bc, wb_error_es and wb_error_sig (bits 27-24, 9 and 8 of W_ERR_CS register): connected from pci_master32_sm_if.v of WB slave Unit
wb_error_addr (W_ERR_ADDR register): connected from pci_master32_sm_if.v of WB slave Unit
wb_error_data (W_ERR_DATA register): connected from cur_out_reg.v of PCI I/O
INPUTS to Interrupt Status register:
isr_sys_err_int and isr_par_err_int (bits 4 and 3 of ISR register): connected from pci_master32_sm_if.v of WB slave Unit
pci_error_sig (bit 2 of ISR register): connected from wb_master.v of PCI target Unit
wb_error_sig (bit 1 of ISR register): connected from pci_master32_sm_if.v of WB slave Unit
isr_int_prop (bit 0 of ISR register): connected from pci_rst_int.v of PCI I/O
Since access and monitoring of Configuration space is from two clock domains, some synchronization need to be done, where necessary (fixed values of course dont need to be synchronized, e.g. WB_CONF_SPC_BAR). Access from Read-Only and Read/Write ports is straight forward, because of system point of view, most of registers dont need to be synchronized. If PCI bridge is implemented as HOST, then WB device must initialize the Configuration space, otherwise (if GUEST) PCI device (the HOST) must initialize the Configuration space. Following registers are set only during initialization phase and therefore dont need to be synchronized:
Interrupt Line register (PCI Header)
P_IMG_CTRL0 - P_IMG_CTRLn (n is a number of implemented PCI images, see also PCI IP Core Specification document)
P_BA0 - P_BAn (n is a number of implemented PCI images)
P_AM0 - P_AMn (n is a number of implemented PCI images)
P_TA0 - P_TAn (n is a number of implemented PCI images)
W_IMG_CTRL1 - W_IMG_CTRLn (n is a number of implemented WB images, see also PCI IP Core Specification document)
W_BA1 - W_BAn (n is a number of implemented WB images)
W_AM1 - W_AMn (n is a number of implemented WB images)
W_TA1 - W_TAn (n is a number of implemented WB images)
If the initialization device needs to change any of this registers when system already normally operate, then it must prevent all devices on the opposite bus to access through bridge and stop the opposite bridge unit.
Following registers are used only when PCI bridge is implemented as HOST and also dont need to be synchronized, because they are used for specific cycles totally by WB slave Unit:
CNF_ADDR (for configuration cycles, see also PCI IP Core Specification document)
CNF_DATA (for configuration cycles)
INT_ACK (for interrupt acknowledge cycles)
Following registers are somehow linked with synchronization (their outputs, their deleting etc.), except specific bits. therefore they are described separately. 
Bits 15-11 and 8 of Status register (PCI Header) are synchronized, when PCI bridge is implemented as HOST. This bits are always set on a PCI CLK, and in a case of HOST bridge, they are read and deleted on WB CLK. The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bits 8, 6, 1 and 0 of Command register (PCI Header) are synchronized, when PCI bridge is implemented as HOST. Their values are always used on PCI CLK (in pci_parity_check.v and pci_decoder.v). This bits are set in a case of HOST bridge on WB CLK. Their values are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Bit 2 of Command register (PCI Header) is synchronized, when PCI bridge is implemented as GUEST. Its value is always used on WB CLK (in wb_slave.v). This bit is set in a case of GUEST bridge on PCI CLK. Its value is therefore synchronized (with two flip-flops on WB CLK) to WB CLK.
Cache Line Size register (PCI Header) is synchronized. 
Outputs cache_line_size_to_pci are always used on PCI CLK (pci_master32_sm_if.v) and are synchronized, when PCI bridge is implemented as HOST. This register is set in a case of HOST bridge on WB CLK. Its outputs are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Outputs cache_line_size_to_wb are always used on WB CLK (wb_master.v) and are synchronized, when PCI bridge is implemented as GUEST. This register is set in a case of GUEST bridge on PCI CLK. Its outputs are therefore synchronized (with two flip-flops on WB CLK) to WB CLK.
Latency Timer register (PCI Header) is synchronized, when PCI bridge is implemented as HOST. Its outputs are always used on PCI CLK (in pci_master32_sm.v). This register is set in a case of HOST bridge on WB CLK. Its outputs are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Bit 0 (ERR_EN) of P_ERR_CS and W_ERR_CS registers is not synchronized, because it is only the enable for error pulse on error signal.
Bit 8 (ERR_SIG) of P_ERR_CS register is synchronized, when PCI bridge is implemented as GUEST. This bit is always set on WB CLK if bit 0 (ERR_EN) of P_ERR_CS register is set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit is also blocked the next PCI CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 8 (ERR_SIG) of W_ERR_CS register is synchronized, when PCI bridge is implemented as HOST. This bit is always set on PCI CLK if bit 0 (ERR_EN) of W_ERR_CS register is set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bits 31-28 (BE), 27-24 (BC), 10 (RTY_EXP only for P_ERR_CS) and 9 (ES) of P_ERR_CS and W_ERR_CS registers are only status information bits and are not synchronized, because they are valid when bit 8 (ERR_SIG) is valid (this bit is synchronized). If software uses error poling, it must respond only to bit 8 (ERR_SIG)!
Bit 31 (SW_RST) of ICR register is not synchronized, since reset is asynchronously propagated. If PCI bridge is implemented as HOST, then value of this bit is propagated to PCI bus, otherwise it is propagated to WB bus.
Bits 4 (SERR_INT_EN) and 3 (PERR_INT_EN) of ICR register are implemented only when bridge is implemented as HOST (GUEST bridges only trigger interrupts to PCI bus; see also PCI IP Core Specification). This bits  are not synchronized because they are only enables for interrupt pulses on interrupt signals.
Bits 2-0 (PCI_EINT_EN, WB_EINT_EN and INT_PROP_EN) of ICR register are not synchronized because they are only enables for interrupt pulses on interrupt signals.
Bits 4 (SERR_INT) and 3 (PERR_INT) of ISR register are synchronized and are implemented only when bridge is implemented as HOST (GUEST bridges only trigger interrupts to PCI bus; see also PCI IP Core Specification). This bits are always set on PCI CLK if bits 4 (SERR_INT_EN) and 3 (PERR_INT_EN) respectively, of ICR register, are set. Theirs values are used on WB CLK (software on other WB device). The values of status bits are also blocked the next WB CLK period, when each delete bit is written, so there is like immediate response of status. The values of status bit them-self are also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 2 (PCI_EINT) of ISR register is synchronized, when PCI bridge is implemented as GUEST. This bit is always set on WB CLK if bit 2 (PCI_EINT_EN) of ICR register and bit 0 (ERR_EN) of P_ERR_CS register are set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit is also blocked the next PCI CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 1 (WB_EINT) of ISR register is synchronized, when PCI bridge is implemented as HOST. This bit is always set on PCI CLK if bit 1 (WB_EINT_EN) of ICR register and bit 0 (ERR_EN) of W_ERR_CS register are set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 0 (INT) of ISR register is synchronized. 
When PCI bridge is implemented as HOST, is this bit set on PCI CLK if bit 0 (INT_PROP_EN) of ICR register is set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK.
When PCI bridge is implemented as GUEST, is this bit set on WB CLK if bit 0 (INT_PROP_EN) of ICR register is set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK.
There is also a synchronization, before interrupts are connected to int_out signal. 
All interrupts are logically ORed and then synchronized. When PCI bridge is implemented as HOST, the synchronization is done (with two flip-flops on WB CLK) to WB CLK, otherwise the synchronization is done (with two flip-flops on PCI CLK) to PCI CLK.
Signal, which sets bit 0 (INT) of ISR register, is connected to OR logic directly, before it is synchronized to status bit in ISR. All other 4 bits (in case of HOST bridge, otherwise there are 2 bits) are connected to OR logic from AND gates after flip-flops, which are set directly from interrupt signals, if they are synchronized, otherwise they are connected from flip-flops.


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 5: SET and DELETE synchronization for status reporting bit

Changeable Core Constants
PCI IP Core user changeable constants are defined in pci_user_constants.v in projects rtl/verilog subdirectory. 
Fifo size constants
Values in following defines indirectly define sizes of implemented PCI IP Core Fifos:
WBW_ADDR_LENGTH  number defined here defines WB Write Fifos size. Size is calculated as 2^^WBW_ADDR_LENGTH. Note that Fifos control logic is such, that one location in RAM is always empty, so usable Fifo size is (2^^WBW_ADDR_LENGTH)  1. Any value equal to or larger than 3 is valid here  the only restriction is the size of RAMs instantiated for Fifo storage.
WBR_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to WB Read Fifo implementation.
PCIW_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to PCI Write Fifo implementation.
PCIR_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to PCI Read Fifo implementation.
Fifo RAM instantiation Constants
RAMs are instantiated in pci_tpram.v and wb_tpram.v, each used in PCI Target Unit and WB Slave Unit respectively.
Following defines in pci_user_constants.v influence RAM  storage implementation for all Fifos in the PCI IP Core:
RAM_DONT_SHARE  if defined, than each Fifo in PCI IP Core has storage space implemented in its own RAM instance. That would mean 12 block RAM instances in XILINX FPGA or 4 RAM instances in ASIC. This instances can be dual port ( write and read port in different clock domains ). If this is not defined, RAM sharing between Fifos is performed. Two Fifos use one RAM instance for their storage. That would mean 6 block RAM instances used in XILINX FPGA or 2 RAM instances in an ASIC. This RAM instances must be two port ( read and write port in different clock domains ). When RAM sharing is implemented, Fifos split the RAM address space in half. One half is used for one Fifo, other half for the other.
FPGA  if FPGA is defined, then some restrictions on RAM instantiating apply. 
XILINX - Currently only Xilinx block and distributed RAM instances are supported, which are included into design by defining XILINX in addition to FPGA. Xilinx Block RAMs used are configured as RAMB4_S16_S16, which is dual 16 bit port RAM. It can store 256 entries, so address for this RAM is 8 bit in length ( no exceptions ). For smaller Fifo sizes ( 8 or 16 ), Xilinx distributed RAM instances can be included into the implementation by defining WB_XILINX_DIST_RAM or PCI_XILINX_DIST_RAM. PCI_FIFO_RAM_ADDR_LENGTHand WB_FIFO_RAM_ADDR_LENGTH must be set to 4 in this case.
FPGA not defined  user must generate appropriate RAM instances with RAM generators provided by various ASIC library vendors. RAM has to be 40 bits wide and a size equal to or larger than 8 for Fifo implementations that do not share RAM instances, and equal to or larger than 16 for implementations that share RAMs between FIFOs. Designer is also responsible for defining appropriate RAM address lengths. 
PCI_FIFO_RAM_ADDR_LENGTH  must be equal to address length of instantiated RAM in pci_tpram.v.
WB_FIFO_RAM_ADDR_LENGTH  must be equal to address length of instantiated RAM in wb_tpram.v.
PCI I/O Pads constants
Depending on PCI I/O buffers used, designer may choose how PCI IP Core generates its PCI bus signals output enables.
ACTIVE_HIGH_OE  selects active high output enables generated by the core
ACTIVE_LOW_OE - selects active low output enables generated by the core
Designer must define only one of these two options for given implementation  never both at the same time!
HOST / GUEST implementation selection
HOST  if defined, core will be implemented or simulated with HOST bridge features enabled
GUEST  if defined, core will be implemented or simulated with GUEST bridge features enabled
These two defines are mutually exclusive. PCI IP Core Specification throughout contains all information regarding different behavior of the Core, if implemented as HOST or GUEST.
Image implementation constants
PCI IP Core can be implemented with various number of images for accessing WISHBONE bus address space from PCI bus and vice  versa. 
Optional Read-Only Configuration image implementation
NO_CNF_IMAGE  constant definition prevents Read-Only configuration image to be implemented. Read-Only Configuration space access can be provided through PCI image 0 for HOST implementation of the Core, and through WB image 0 for GUEST implementation. If NO_CNF_IMAGE is defined, then this image is not implemented. This saves one address decoder and one multiplexer in overall design. It is recommended to define this constant, when the Core is used in such an application that does not need this Read-Only access to Configuration space. PCI Bridge implemented as GUEST with CRT controller connected to WB Slave interface is an example application. Although CRT controller has WB Master interface to fetch its own pixel data from PCI bus, it will never need or use access to Bridges Configuration space. So by defining NO_CNF_IMAGE, some additional space is saved.
ADDR_TRAN_IMPL  if defined, address translation functionality is added to decoders for both, PCI and WISHBONE accesses. Address translation implementation is useful when application uses fixed address map, while PCI address map is configurable. If address translation is not needed, this define can be commented out to allow faster decode timing.
PCI images implementation constants
Constants definitions described in this chapter control the number and minimum address range of PCI Target images. PCI image 1 is always implemented, without any exceptions, so no define is provided for it. Image implementation means that all required registers for each image are implemented in Configuration space and each image needs its own decoder. Image constants definitions have quite an impact on Cores size and speed. 
PCI_NUM_OF_DEC_ADDR_LINES  number defined here is used for controlling implementation of PCI images decoders. It defines how many address lines are used for decoding PCI Target accesses and therefore defines what minimum image size can be. Maximum number allowed is 20 ( 4KB minimum image size ) and minimum is 1 ( 2GB minimum image size  this value implies that more than two images cannot be enabled at the same time ). The number of decoded address lines also influences the speed of the Core.
PCI_IMAGE0  this define only has meaning when HOST and NO_CNF_IMAGE are defined also. This enables usage of all 6 PCI Target images for accessing WISHBONE bus address space from PCI address space. Otherwise, PCI_IMAGE0 does not needs to be defined, since it is always used for accessing Configuration space.
PCI_IMAGE2  if defined, PCI Target image 2 is implemented
PCI_IMAGE3  if defined, PCI Target image 3 is implemented
PCI_IMAGE4  if defined, PCI Target image 4 is implemented
PCI_IMAGE5  if defined, PCI Target image 5 is implemented
PCI_AM0, PCI_AM1, PCI_AM2, PCI_AM3, PCI_AM4, PCI_AM5  values defined with this macros are initial ( reset ) values of PCI address masks registers. These are very important if the Core is implemented as GUEST, since configuration is done via PCI Target state machine. If the designer wants an implemented PCI Target image to be detected by device independent software at system power-up, he has to set initial masks to enabled state  MS bit has to be 1. Other bits can have a value of 1 or zero, depending on what size of an image has to be presented to the software. The masks can be set inactive also, but device independent software wont detect implemented PCI Target images and therefore not configure them. Device specific software will then have to jump in to configure images with inactive initial masks defined, which also means that it will probably have to rebuild PCI address space map.
PCI_BA0_MEM_IO, PCI_BA1_MEM_IO, PCI_BA2_MEM_IO, PCI_BA3_MEM_IO, PCI_BA4_MEM_IO, PCI_BA5_MEM_IO  Those are initial values of PCI Base Address registers bits 0. If the Core is configured as HOST, this initial values can later be changed by writing appropriate value to PCI Base Address register x. If the core is GUEST, than this values are hardwired, because device independent software must know in advance where to map each PCI Base Address. 
WISHBONE images implementation constants
Constants definitions described in this chapter control the number and minimum address range of WISHBONE Slave images. WISHBONE image 1 is always implemented, without any exceptions, so no define is provided for it. Image implementation means that all required registers for each image are implemented in Configuration space and each image needs its own decoder. Image constants definitions have quite an impact on Cores size and speed.
WB_NUM_OF_DEC_ADDR_LINES  number defined here is used for controlling implementation of WISHBONE images decoders. It defines how many address lines are used for decoding WISHBONE Slave accesses and therefore defines what minimum image size can be. Maximum number allowed is 20 ( 4KB minimum image size ) and minimum is 1 ( 2GB minimum image size  this value implies that more than two images cannot be enabled at the same time ). The number of decoded address lines also influences the speed of the Core.
WB_IMAGE2  if defined, WB Slave image 2 is implemented
WB_IMAGE3  if defined, WB Slave image 3 is implemented
WB_IMAGE4  if defined, WB Slave image 4 is implemented
WB_IMAGE5  if defined, WB Slave image 5 is implemented
WISHBONE Slave specific constants
WB_DECODE_FAST, WB_DECODE_MEDIUM, WB_DECODE_SLOW  these are all mutually exclusive definitions. They define how many cycles WISHBONE Slave state machine takes to decode an access. WB Slave state machine samples decode information on same clock edge cycle is started when WB_DECODE_FAST is defined. It samples decode data one clock after cycle is started if WB_DECODE_MEDIUM is defined. If WB_DECODE_SLOW is defined, state machine samples decode data two clocks after cycle is started. This defines can or should be taken into account during synthesis to provide information about multicycle paths.
WB_CONFIGURATION_BASE  defines 20 bit value for WISHBONE configuration image address. Those bits are compared to 20 MS bits of WISHBONE Slave address to decode Configuration accesses from WISHBONE bus. This is constant value and cannot be changed after the Core is implemented, since WISHBONE bus does not provide any special mechanism for device configuration.
REGISTER_WBS_OUTPUTS  this define is used mostly when the Core is included into top level application as precompiled macro, because timings cannot be optimized during top level synthesis. WISHBONE Slave state machine registers all outputs when this macro is defined and introduces one wait cycle after every transfer. It also registers all interfaces with core internals to release a burden on WISHBONE Slave inputs also.
PCI specific constants
PCI33, PCI66  these two mutually exclusive defines are used for simulation purposes ( PCI clock speed ) and to set 66MHz Capable bit in PCI Device Status register, if PCI66 is defined. There are no other features dependent on those defines. 
HEADER_VENDOR_ID  each PCI bus compatible hardware vendor gets its 16 bit hexadecimal ID from PCI SIG organization. It should be specified in this define. This value shows up in Vendor ID register of PCI Type0 Configuration Header.
HEADER_DEVICE_ID  Device ID is vendor specific, 16 bit hexadecimal value. It shows up in Device ID register of PCI Type0 Configuration Header.
HEADER_REVISION_ID  Also vendor specific, 8 bit hexadecimal value, that shows up in Revision ID register of PCI Type0 Configuration Header.
WISHBONE Master specific constants
REGISTER_WBM_OUTPUTS  this define is used mostly when the Core is included into top level application as precompiled macro, because timings cannot be optimized during top level synthesis. WISHBONE Master state machine registers all outputs when this macro is defined and introduces one wait cycle after every transfer. It also registers input data and some interfaces with core internals to release a burden on WISHBONE Master control inputs also.
WB_RTY_CNT_MAX  this define is used to prevent deadlock in WB Master state machine for maximum counting value of RTY terminations on WB bus, before ACK or ERR terminations. The last two terminations reset the counter. This counter is also used, when no WB device responds (e.g. if accessing to unused memory locations). In that case internal set_retry signal is set every 8 WB clock periods and counter counts to maximum value defined. 
Changeable constants dependencies
This chapter describes what the user should be aware of when defining / not defining some of the changeable Core constants.
WBW_ADDR_LENGTH, WBR_ADDR_LENGTH  numbers defined cannot have value less than 3, because of Fifos control logic implementation.  WBW(R)_ADDR_LENGTH constant value also depends on value of WB_FIFO_RAM_ADDR_LENGTH and definition of WB_RAM_DONT_SHARE. If WB_RAM_DONT_SHARE is defined, then WBW(R)_ADDR_LENGTH can be defined as any number between 3 and WB_FIFO_RAM_ADDR_LENGTH. Otherwise, WBW(R)_ADDR_LENGTH can be defined as any number between 3 and (WB_FIFO_RAM_ADDR_LENGTH  1).
PCIW_ADDR_LENGTH, PCIR_ADDR_LENGTH  numbers defined cannot have value less than 3, because of Fifo control logic implementation.  PCIW(R)_ADDR_LENGTH constant value also depends on value of PCI_FIFO_RAM_ADDR_LENGTH and definition of PCI_RAM_DONT_SHARE. If PCI_RAM_DONT_SHARE is defined, then PCIW(R)_ADDR_LENGTH can be defined as any number between 3 and PCI_FIFO_RAM_ADDR_LENGTH. Otherwise, PCIW(R)_ADDR_LENGTH can be defined as any number between 3 and (PCI_FIFO_RAM_ADDR_LENGTH  1).
WB_FIFO_RAM_ADDR_LENGTH, PCI_FIFO_RAM_ADDR_LENGTH  depend on other constants only if FPGA is defined. If XILINX is defined, user can select between two possible RAM instances  Block Select RAM+ or Distributed RAM. If WB(PCI)_XILINX_RAMB4 is defined, this selects Block Select RAM+ for WB (PCI) Read and Write Fifos implementation. WB(PCI)_FIFO_RAM_ADDR_LENGTH can only be defined to 8 in this case. If WB(PCI)_XILINX_DIST_RAM is defined, then WB(PCI)_FIFO_RAM_ADDR_LENGTH constant can only be defined to a value of 4. User can use Distributed and Block Select RAM+ in the same design, by defining Block RAM for PCI(WB) Fifos and Distributed RAM for WB(PCI) Fifos. When the Core is to be implemented in an ASIC, user must include appropriate RAM instances into wb_tpram.v and pci_tpram.v under appropriate define and edit these two constants to reflect proper information about instantiated RAM blocks.
WB(PCI)_XILINX_RAMB4  user must define FPGA and XILINX also, to use Xilinx Block RAMs.
WB(PCI)_XILINX_DIST_RAM  user must define FPGA, XILINX and corresponding (WB)PCI_RAM_DONT_SHARE. Distributed RAM cant be shared between Fifos, because it only has one write port.
PCI_NUM_OF_DEC_ADDR_LINES  maximum value can be 20 and minimum 1, which implements minimum PCI image size of 4KB or 2GB respectively. This number also depends on number of implemented PCI images  bridge cannot decode accesses to 6 different images by decoding only 1 bit of address. If 1 or 2 PCI images are implemented, then minimum number of decoded address lines can be 1, if 3 or 4 are implemented, at least two address lines must be decoded and if 5 or 6 images are implemented, at least 3 address lines must be decoded. PCI images are implemented by defining PCI_IMAGE2 through PCI_IMAGE5 and PCI_IMAGE0 for HOST bridge implementation with NO_CNF_IMAGE defined. Note that PCI image 1 is always implemented. PCI image 0 is implemented when bridge is configured as GUEST or when it is configured as HOST and NO_CNF_IMAGE is not defined or PCI_IMAGE0 is defined. 
WB_NUM_OF_DEC_ADDR_LINES  rules described for PCI number of decoded address lines apply to WISHBONE number of decoded address lines also, except the number depends on WISHBONE Images implemented. WISHBONE Image 1 is always implemented. WISHBONE Image 0 is implemented in HOST implementation of the bridge or in GUEST implementation of the bridge when NO_CNF_IMAGE is not defined. Other WISHBONE Images are selected by defining WB_IMAGE2 through WB_IMAGE5.
WB_DECODE_FAST  fast decoding in WISHBONE Slave state machine is possible only when REGISTER_WBS_OUTPUTS is not defined. If REGISTER_WBS_OUTPUTS is defined, then medium decode is implemented in WISHBONE Slave state machine, unless WB_DECODE_SLOW is defined. 
Unchangeable Core Constants
Constants defined in file pci_constants.v in projects rtl/verilog subdirectory are not to be changed by the end user of the core, so they are just described here briefly for reference.
Fifo constants
WBW_DEPTH  size of WB Write Fifo calculated from user constant WBW_ADDR_LENGTH
WBR_DEPTH  size of WB Read Fifo calculated from user constant WBR_ADDR_LENGTH
PCIW_DEPTH  size of PCI Write Fifo calculated from user constant PCIW_ADDR_LENGTH
PCIR_DEPTH  size of PCI Read Fifo calculated from user constant PCIR_ADDR_LENGTH
*_BIT  Fifo Control bus bit positions  used internally by the core for decoding what kind of data or transaction is on top of Fifo.
WISHBONE Slave constants
WB_AM0  20 bit address mask value for WISHBONE configuration image. Used for decoding WISHBONE Configuration accesses and cant be changed.
Configuration registers address constants
*_ADDR  these defines specify the offset of each individual register residing in Configuration space. Defines are also used in testbench for accessing and checking value of registers.
66Mhz Capable bit constant
HEADER_66MHz  specifies a value for 66MHz Capable bit in Device Status register depending on PCI33 and PCI66 defines.


PCI Bridge Testbench
Overview
PCI Bridge testbench consists of a whole environment for testing PCI Bridge including PCI and WISHBONE bus models with bus monitors and test-cases which use those models to stimulate transactions through PCI Bridge. Those transactions are checked when Wishbone Slave Unit and PCI Target Unit operates separately and simultaneously. 

Testbench File Hierarchy
The hierarchy of modules in the Testbench of the PCI Bridge core is shown here with file tree. Each file here implements one module in a hierarchy source files of the Testbench are in the pci\bench\verilog subdirectory.

system.v
.  top.v
. wb_bus_monitor.v*
.     wb_master_behavioral.v
.        .       wb_master32.v
. wb_slave_behavioral.v
. pci_bus_monitor.v
.     pci_blue_arbiter.v
.    pci_behavioral_device.v*
.      .       pci_behaviorial_master.v
.      .       pci_behaviorial_target.v
.      .       delayed_test_pad.v*
.   pci_behavioral_iack_target.v
.  pci_unsupported_commands_master.v

*    Files are used within one module more than once: wb_bus_monitor.v is used within system.v for 2 times, pci_behavioral_device.v is used within system.v for 2 times, delayed_test_pad.v is used within pci_behavioral_device.v for 9 times. 

Testbench Module Hierarchy
Module hierarchy is shown in detail in the following picture. Description of modules and their connections is in the chapter  REF _Ref536333881 \r \h 3.3,  REF _Ref536333881 \h Description of Testbench Modules. 


Figure  STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 1: Testbench module hierarchy
Description of Testbench Modules
The module system.v is used as testing environment and it incorporates beside all test submodules, functions and tasks also Unit Under Test (PCI Bridge). Description of tasks is covered in chapter  REF _Ref536267832 \h Description of Testcases, while all test submodules are described in the following chapters. 

Description of PCI submodules
pci_bus_monitor submodule
The module pci_bus_monitor.v monitors the PCI Bus and tries to see PCI Protocol Errors. This module also has access to the individual PCI Bus OE signals for each behavioral interface (either through extra output ports or through "." notation), and it can see when more than one interface is driving the bus, even of the values are the same. 
Author of this module is Blue Beaver.
pci_blue_arbiter submodule
The module pci_blue_arbiter.v is used for arbitration on the PCI bus. It has 4 external PCI Request/Grant pairs and one internal Request/Grant Pair. All 4 external PCI Request/Grant pairs are used for 2 pci_behavioral_device submodules, pci_unsupported_commands_master submodule and for UUT - PCI Bridge.
Author of this module is Blue Beaver.
pci_behavioral_device submodule
The module pci_behavioral_device.v is used as PCI behavioral interface and includes two submodules for its operation; pci_behavioral_master.v and pci_behavioral_target.v. 
The module pci_behavioral_master.v accepts commands from top-level stimulus task. Regarding the arguments passed to this submodule, it generates appropriate bus command. All bus cycles must terminate as expected by top-level task. It also arbitrates for the bus, sends data when writing, and compares returned data when reading. Comparing of read data is sometimes switched off, e.g. when NO data was written into a location from which a device is reading. Read data is also provided to the top-level (Note: providing codes of operation on AD lines to the PCI Target device is disabled).
The module pci_behavioral_target.v receives PCI commands from the PCI bus. Its termination of cycle is controlled by top-level (Note: providing codes of operation on AD lines to the PCI Target device is disabled). This Target contains Configuration registers and a 256 byte scratch SRAM.  It responds with data when it is given a Read command, and checks data when it is given a Write command.
Author of this module is Blue Beaver.
pci_behavioral_iack_target submodule
The module pci_behavioral_iack_target.v is Target-only module. It is used to respond only to interrupt acknowledge commands, because other models dont respond to that command. When it should respond and the value of the interrupt vector is controlled by top-level.
pci_unsupported_commands_master submodule
The module pci_unsupported_commands_master.v is Master-only module. It is used to generate PCI bus commands, that are not supported by PCI Bridge Target device and those commands can not be generated by pci_behavioral_device.v module. It is also used for parity checking with ability to generate the address parity error on first and/or on second address phase of the DUAL ADDRESS CYCLE bus command. This bus command is unsupported, but parity checker must check for parity errors.
This PCI Master module waits for master-abort termination of the initiated bus cycle.

Description of WB submodules
wb_bus_monitor submodule
The module wb_bus_monitor.v monitors the WB Bus and tries to see WB Protocol Errors. There are two point-to-point WB buses (WB master from PCI Target Unit and WB slave from WB Slave Unit), and two WB bus monitors, one for each WB bus.
wb_master_behavioral submodule
The module wb_master_behavioral.v is used to initiates WB cycles to WB Slave in the PCI bridge. That is controlled by top-level. This module also includes a submodule wb_master32.v, which is used to generate proper WB cycles. The length and type of each cycle is controlled by wb_master_behavioral.v module.
wb_slave_behavioral submodule
The module wb_slave_behavioral.v responds to cycles initiated by WB Master in the PCI bridge. When to respond and a type of cycle termination is controlled by top-level. This module also incorporates a block of SRAM.

Description of Testcases
There are some tasks not used as testcases (e.g. fill_memory, do_reset and specific tasks for initializing some registers, see chapters  REF _Ref536370713 \n \h 3.4.1 and  REF _Ref536370734 \n \h 3.4.2), but are significant for proper working of testbench. But there are some tasks used as basic tasks for all testcases (e.g. DO_REF  located in system.v module, wishbone_master.wb_single_write  located in wb_master_behavioral.v module, and other wishbone_master.wb_ tasks).
All Testcases are in system.v file and are sometimes combined with more tasks or are just a part of one task. Testcases are controlled in a task run_tests; some system parameters (behavioral master and target wait cycles  tb_init_waits, tb_subseq_waits; behavioral target response time  tb_target_decode_speed) are used with all possible combinations while running all testcases (most of testcases are used more than one time). In the following chapters basic descriptions for groups of testcases are presented. Each testcase has its name with a test type meaning. For deeper explanations of testcases see the comments in the system.v file.
Testbench also provide log files as a result of all tests into pci/sim/rtl_sim/log directory. File pci_tb.log has all testcases results written as SUCCESSFULL or FAIL. Files pci_mon.log, wbu_mon.log and pciu_mon.log report any wrong and suspicious activities on PCI and both WB buses. 

Description of WBU Testcases
Before running testcases for WBU, some initialization must be done. 
With task configure_bridge_target, some registers in PCI Bridge Target are initialized (master and target are enabled, base address register 0 is set and enabled).
With task configure_target each behavioral PCI target is initialized.
Task find_pci_devices executes only if PCI Bridge is implemented as HOST. It is not referenced in any log file as a testcase, since it is like a part of initialization. It checks if all PCI devices are connected correctly in the testbench with PCI Master configuration cycles.
Testcases for Configuration
Testcases described here are fundamental for all tests to pass successful. They set the configuration of the WBU of the PCI Bridge, but they dont test WB to PCI accesses. Because of that, they are not listed in the pci_tb.log file.

Following testcases are for configuring normal writes and reads through IMAGEs. Task location for testcases is: run_tests > test_wb_image.
"WB IMAGE CONFIGURATION" 
"CONFIGURE ADDRESS TRANSLATION FOR WISHBONE IMAGE" 
"CHANGE WB IMAGE BASE ADDRESS" 
"ENABLE WB IMAGE ADDRESS TRANSLATION" 
"ENABLING/DISABLING IMAGE'S FEATURES" 
"DISABLING WB IMAGE" 

Following testcases are for configuring erroneous WB writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_slave_errors.
"CONFIGURING IMAGE FOR WB SLAVE ERROR TERMINATION TESTING" 
"RECONFIGURING IMAGE TO I/O MAPPED ADDRESS SPACE" 
"DISABLE IMAGE" 

Following testcases are for configuring erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling.
"CONFIGURING BRIDGE FOR PCI ERROR TERMINATION RESPONSE BY WB SLAVE TESTING"
"SETUP BRIDGE FOR TARGET ABORT HANDLING TESTS"

Following testcases are for configuring parity checking during writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"CONFIGURE BRIDGE FOR PARITY CHECKER FUNCTIONS TESTING"
"CLEARING PARITY ERROR STATUSES"
"CLEARANCE OF PARITY INTERRUPT STATUSES"
"DISABLE USED IMAGES"

Following testcases are for configuring transactions during writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_transactions.
"BRIDGE CONFIGURATION FOR TRANSACTION TESTING"
"RECONFIGURE PCI MASTER/WISHBONE SLAVE"
"DISABLE_IMAGE"
Testcases for IMAGEs Tests
Following testcases are for testing normal writes and reads through IMAGEs. Task location for testcases is: run_tests > test_wb_image.
"NORMAL SINGLE MEMORY WRITE THROUGH WB IMAGE TO PCI"
"NORMAL SINGLE MEMORY READ THROUGH WB IMAGE FROM PCI"
"NORMAL SINGLE MEMORY WRITE THROUGH WB IMAGE TO PCI WITH ADDRESS TRANSLATION"
"CAB MEMORY WRITE THROUGH WB SLAVE TO PCI"
"CAB MEMORY READ THROUGH WB SLAVE FROM PCI"
"CAB MEMORY READ THROUGH WB IMAGE WITH READ BURSTING ENABLED"
"SINGLE MEMORY READ THROUGH WB IMAGE WITH READ BURSTING ENABLED"
"I/O WRITE TRANSACTION FROM WB TO PCI TEST"
"I/O READ TRANSACTION FROM WB TO PCI TEST"

Following testcases are for testing erroneous WB writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_slave_errors.
"SINGLE ERRONEOUS MEMORY WRITE TO WB SLAVE"
"SINGLE ERRONEOUS MEMORY READ TO WB SLAVE"
"ERRONEOUS CAB MEMORY WRITE TO WB SLAVE"
"ERRONEOUS CAB MEMORY READ TO WB SLAVE"
"ERRONEOUS I/O WRITE TO WB SLAVE"
"ERRONEOUS I/O READ TO WB SLAVE"
"CAB I/O WRITE TO WB SLAVE"
"CAB I/O READ TO WB SLAVE"
"ERRONEOUS WB CONFIGURATION WRITE ACCESS"
"ERRONEOUS WB CONFIGURATION READ ACCESS"
"WB CAB CONFIGURATION WRITE ACCESS"
"WB CAB CONFIGURATION READ ACCESS"

Following testcases are for testing erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling. 
"MASTER ABORT ERROR HANDLING DURING WB TO PCI WRITES"
"MASTER ABORT ERROR HANDLING FOR WB TO PCI READS"
"MASTER ABORT ERROR DURING CAB READ FROM WB TO PCI"
"TARGET ABORT ERROR ON SINGLE WRITE"
"TARGET ABORT ERROR ON CAB MEMORY WRITE"
"TARGET ABORT TERMINATION ON SECOND DATA PHASE OF BURST WRITE"
"TARGET ABORT DURING SINGLE MEMORY READ"
"TARGET ABORT ERROR DURING SECOND DATAPHASE OF BURST READ"
"TARGET ABORT ERROR DURING LAST DATAPHASE OF BURST READ"
"ERROR REPORTING FUNCTIONALITY FOR I/O WRITE"

Following testcases are for testing parity during PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"RESPONSE TO TARGET ASSERTING PERR DURING MASTER WRITE"
"RESPONSE TO TARGET ASSERTING PERR DURING MASTER WRITE WITH PARITY ERROR RESPONSE ENABLED"
"MASTER WRITE WITH NO PARITY ERRORS"
"BRIDGE'S RESPONSE TO PARITY ERRORS DURING MASTER READS"
"NO PERR ASSERTION ON MASTER READ WITH PAR. ERR. RESPONSE DISABLED"
"MASTER READ TRANSACTION WITH NO PARITY ERRORS"
"NO SERR ASSERTION AFTER ADDRESS PARITY ERROR, SERR DISABLED AND PAR. ERR. RESPONSE ENABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR RESPONSE WITH SERR AND PARITY ERROR RESPONSE ENABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"NO SERR ASSERTION ON ADDRESS PARITY ERROR WITH SERR ENABLED AND PAR. ERR. RESPONSE DISABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"EXTERNAL WRITE WITH NO PARITY ERRORS"
"INVALID PAR ON WRITE REFERENCE THROUGH BRIDGE'S TARGET - PERR RESPONSE ENABLED"
"PARITY ERROR HANDLING ON TARGET READ REFERENCE"

Following testcases are for testing transactions during writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_transactions.
"SINGLE POSTED WRITE TRANSACTION PROCESSING ON PCI"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI RETRIED FIRST TIME"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI RETRIED SECOND TIME"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI DISCONNECTED"
"BURST LENGTH 2 POSTED WRITE TRANSACTION PROCESSING ON PCI"
"BURST LENGTH 2 POSTED WRITE STARTS WITH RETRY"
"BURST LENGTH 2 POSTED WRITE RETRIED SECOND TIME DISCONNECTED ON FIRST DATAPHASE"
"BURST LENGTH 2 POSTED WRITE NORMAL COMPLETION AFTER DISCONNECT "
"BURST LENGTH 2 POSTED WRITE DISCONNECTED AFTER FIRST DATAPHASE FIRST TIME"
"BURST LENGTH 2 POSTED WRITE DISCONNECTED WITH SECOND DATAPHASE SECOND TIME"
"BURST LENGTH 2 POSTED WRITE TRANSACTION PROCESSING ON PCI WITH NORMAL COMPLETION"
"BURST LENGTH 3 POSTED WRITE TRANSACTION PROCESSING ON PCI"
"BURST LENGTH 3 POSTED WRITE TRANSACTION DISCONNECT ON FIRST DATAPHASE FIRST TIME"
"BURST LENGTH 3 POSTED WRITE TRANSACTION DISCONNECT ON SECOND DATAPHASE SECOND TIME"
"BURST LENGTH 3 POSTED WRITE DISCONNECTED ON SECOND FIRST TIME"
"BURST LENGTH 3 POSTED WRITE DISCONNECTED ON FIRST SECOND TIME"
"BURST LENGTH 3 POSTED WRITE TRANSACTION WITH NORMAL COMPLETION"
"BURST LENGTH OF WISHBONE FIFO DEPTH POSTED MEMORY WRITE"
"FULL WRITE FIFO BURST RETRIED FIRST TIME"
"FULL WRITE FIFO BURST DISCONNECT WITH FIRST SECOND TIME"
"FULL WRITE FIFO BURST DISCONNECT AFTER FIRST THIRD TIME"
"FULL WRITE FIFO BURST DISCONNECT WITH SECOND FOURTH TIME"
"REMAINDER OF FULL WRITE FIFO BURST NORMAL COMPLETION FIFTH TIME"
"READ DATA BURSTED TO TARGET BACK AND CHECK VALUES"
"SINGLE READ TRANSACTION PROCESSING ON PCI"
"SINGLE MEMORY READ RETRIED FIRST TIME"
"SINGLE MEMORY READ DISCONNECTED WITH FIRST SECOND TIME"
"FILL TARGET MEMORY WITH DATA"
"SINGLE READ TO PUSH WRITE DATA FROM FIFO"
"BURST READ WITH DISCONNECT ON FIRST"
"BURST READ WITH DISCONNECT AFTER FIRST"
"BURST READ WITH DISCONNECT ON SECOND - TAKE OUT ONLY ONE"
"BURST READ WITH NORMAL TERMINATION"
"NORMAL BURST READ WITH NORMAL COMPLETION, MEMORY READ LINE DISABLED, PREFETCH ENABLED, BURST SIZE 4"
"SINGLE READ WITH FUNNY BYTE ENABLE COMBINATION"
"BURST READ WITH NORMAL COMPLETION FILLING FULL FIFO - MRL AND PREFETCH BOTH ENABLED"
"SINGLE CAB READ FOR FLUSHING STALE READ DATA FROM FIFO"
"WB BURST READ WHEN CACHE LINE SIZE VALUE IS INVALID"
"WB BURST READ WHEN CACHE LINE SIZE VALUE IS ZERO"
"LATENCY TIMER OPERATION ON PCI MASTER WRITE"
"BURST WRITE DATA DISCONNECTED BY LATENCY TIMEOUT"
"LATENCY TIMER OPERATION DURING MASTER READ"

Following testcases are for testing interrupt acknowledge cycles. Task location for testcases is: run_tests > iack_cycle.
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH MASTER ABORT"
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH NORMAL COMPLETION"
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH NORMAL COMPLETION AND FUNNY BYTE ENABLES"
Testcases for Verification
Following testcase is for testing normal writes and reads through IMAGEs. Task location for testcase is: run_tests > test_wb_image.
"CHECK MAXIMUM IMAGE SIZE"

Following testcases are for testing erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling.
"CHECKING ERROR REPORTING FUNCTIONS AFTER MASTER ABORT ERROR"
"CHECKING INTERRUPT REQUESTS AFTER MASTER ABORT ERROR"
"CHECKING PCI DEVICE STATUS REGISTER VALUE AFTER MASTER ABORT"
"CHECKING MASTER ABORT ERROR HANDLING ON CAB MEMORY WRITE"
"CHECKING ERROR REPORTING REGISTERS' VALUES AFTER MASTER ABORT ERROR"
"CHECKING INTERRUPT REQUESTS AFTER CLEARING THEM"
"CHECK NORMAL WRITING/READING FROM WISHBONE TO PCI AFTER ERRORS WERE PRESENTED"
"CHECKING ERROR STATUS AFTER MASTER ABORT ON READ"
"CHECK PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT ON DELAYED READ"
"CHECK PCI DEVICE STATUS REGISTER AFTER READ TERMINATED WITH MASTER ABORT"
"NORMAL SINGLE MEMORY WRITE IMMEDIATELY AFTER ONE TERMINATED WITH TARGET ABORT"
"NORMAL SINGLE MEMORY READ AFTER WRITE TERMINATED WITH TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES CHECK AFTER WRITE TARGET ABORT"
"PCI DEVICE STATUS VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER CLEARING ERROR STATUS"
"INTERRUPT REQUEST ASSERTION AFTER ERROR REPORTING TRIGGER"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER TARGET ABORTED MEMORY WRITE"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER CLEARING STATUS BITS"
"WB ERROR STATUS REGISTER VALUE CHECK AFTER CLEARING STATUS BIT"
"WB ERROR STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"CHECK NORMAL BURST READ AFTER TARGET ABORT TERMINATED BURST READ"
"WB ERROR STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"
"WB ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES AFTER MASTER ABORTED I/O WRITE"
"INTERRUPT STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"

Following testcases are for testing parity during PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"CHECK PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR DURING MASTER WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR DURING MASTER WRITE - PAR. ERR. RESPONSE ENABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL MEMORY WRITE"
"INTERRUPT REQUEST ASSERTION AFTER PARITY ERROR"
"PCI DEVICE STATUS REGISTER VALUE AFTER MASTER READ PARITY ERROR"
"INTERRUPT STATUS REGISTER AFTER MASTER READ PARITY ERROR"
"INTERRUPT REQUEST CHECK AFTER READ PARITY ERROR WITH PARITY ERROR RESPONSE DISABLED"
"INTERRUPT STATUS REGISTER VALUE AFTER MASTER READ PARITY ERROR WITH PAR. ERR. RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL READ"
"INTERRUPT STATUS REGISTER VALUE AFTER NORMAL READ"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR AND SERR DISABLED"
"INTERRUPT REQUEST AFTER ADDRESS PARITY ERROR"
"INTERRUPT REQUEST AFTER ADDRESS PARITY ERROR WAS PRESENTED ON PCI"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR ON PCI"
"INTERRUPT STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR ON PCI"
"INTERRUPT REQUEST AFTER ADDR. PARITY ERROR WITH PERR RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDR PERR WITH PERR RESPONSE DISABLED"
"INTERRUPT STATUS REGISTER VALUE AFTER ADDR PERR WITH PERR RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR AND PERR DISABLED"
"INTERRUPT REQUESTS AFTER NORMAL EXTERNAL MASTER WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL EXTERNAL MASTER WRITE"
"INTERRUPT STATUS REGISTER VALUE AFTER NORMAL EXTERNAL MASTER WRITE"
"INTERRUPT REQUESTS AFTER TARGET WRITE REFERENCE PARITY ERROR"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET REFERENCE"
"INTERRUPT STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET REFERENCE"
"INTERRUPT REQUESTS AFTER PERR ON READ REFERENCE THROUGH BRIDGE'S TARGET"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET READ REFERENCE"
"INTERRUPT STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET READ REFERENCE"

Description of PCIU Testcases
Before running testcases for PCIU, some initialization must be done. 
With task configure_bridge_target_base_addresses, PCI Bridge Target is initialized (master and target are enabled, all implemented base address registers are set and enabled).
Testcases for Configuration
Testcases described here are fundamental for all tests to pass successful. They set the configuration of the PCIU of the PCI Bridge, but they dont test PCI to WB accesses. Because of that, they are not listed in the pci_tb.log file.

Following testcases are for configuring normal writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_normal_wr_rd.
"PCI IMAGE SETTINGS"
"CONFIGURE BRIDGE FOR NORMAL TARGET READ/WRITE"

Following testcases are for configuring erroneous WB writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"CONFIGURE BRIDGE FOR ERROR TERMINATED WRITES THROUGH PCI TARGET UNIT"
"CLEARING STATUS BITS AFTER WRITE TERMINATED WITH ERROR ON WB"
"INTERRUPT REQUEST FINISHED AFTER PCI ERROR INTERRUPT STATUS IS CLEARED"
"CONFIGURE BRIDGE FOR ERROR TERMINATED READS THROUGH PCI TARGET UNIT"
"DISABLE IMAGE"

Following testcases are for configuring normal writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image.
"PCI IMAGE SETTINGS"
"ENABLE/DISABLE ADDRESS TRANSLATION"

Following testcases are for configuring erroneous writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_wb_error_rd.
"ENABLE/DISABLE ADDRESS TRANSLATION"
"ENABLE/DISABLE ERROR REPORTING"
"ENABLE/DISABLE PCI ERROR INTERRUPTS"
"CLEAR ERROR STATUS"
"CLEARING INTERRUPT STATUS"
"CONFIGURE BRIDGE FOR ERROR TERMINATED READS THROUGH PCI TARGET UNIT"
"DISABLE IMAGE"

Following testcases are for configuring fast back-to-back writes and reads through IMAGEs. Task location for testcases is: run_tests > target_fast_back_to_back.
"CONFIGURE TARGET FOR FAST B2B TESTING"
"DISABLING MEM IMAGE"
"DISABLING IO IMAGE"

Following testcases are for configuring target disconnects on PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > target_disconnects.
"CONFIGURE TARGET FOR DISCONNECT TESTING"
"DISABLING MEMORY IMAGE"
"DISABLING IO IMAGE"

Following testcases are for configuring target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_target_abort.
"CONFIGURE TARGET FOR TARGET ABORT TESTING"
"DISABLE IMAGE"

Following testcases are for configuring transaction ordering during writes and reads through WBU and PCIU simultaneously. Task location for testcase is: run_tests > transaction_ordering.
"BRIDGE CONFIGURATION FOR TRANSACTION ORDERING TESTS"

Testcases for IMAGEs Tests
Following testcases are for testing normal writes and reads through MEMORY IMAGEs (singles and bursts). Task location for testcases is: run_tests > test_pci_image > test_normal_wr_rd.
"NORMAL POSTED WRITE THROUGH PCI TARGET UNIT"
"NORMAL MEMORY READ THROUGH PCI TARGET UNIT"

Following testcases are for testing erroneous WB writes and reads through MEMORY IMAGEs (singles and bursts). Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ON FIRST TRANSFER"
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ONE BEFORE LAST TRANSFER"
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ON LAST TRANSFER"
"SINGLE READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON FIRST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON SECOND DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON LAST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON ONE BEFORE LAST DATAPHASE"
"FULL FIFO BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON LAST DATAPHASE"
"FULL FIFO BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE BEFORE LAST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE, ERROR NOT PULLED OUT ON PCI"

Following testcases are for testing normal writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_target_io_wr_rd.
"BYTE ADDRESSABLE WRITES THROUGH TARGET IO IMAGE"
"READ BY WORDS IO DATA PREVIOUSLY WRITTEN BY BYTES"

Following testcases are for testing erroneous writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_target_io_err_wr.
"POST IO WRITE THAT WILL BE TERMINATED WITH ERROR ON WISHBONE"
"SINGLE I/O READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE"

Following testcases are for testing NO target response (master abort) on unsupported PCI  bus commands. Task location for testcases is: run_tests > test_pci_image > target_unsupported_cmds.
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - IACK"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - SPECIAL"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED0"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED1"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED2"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED3"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - DUAL_ADDR_CYC"

Following testcases are for testing fast back-to-back writes and reads through IMAGEs. Task location for testcases is: run_tests > target_fast_back_to_back.
"FAST BACK TO BACK THROUGH TARGET - FILL WRITE FIFO, CHECK RETRY ON FAST B2B WRITE"
"FAST BACK TO BACK THROUGH TARGET - BOTH WRITES SMALL ENOUGH TO PROCEEDE THROUGH FIFO"
"FAST BACK TO BACK THROUGH TARGET - FIRST WRITE FULL FIFO, THEN READ BACK"
"FAST BACK TO BACK THROUGH TARGET - TWO SINGLE IO WRITES"
"FAST BACK TO BACK THROUGH TARGET - FIRST I/O WRITE, THEN READ BACK"

Following testcases are for testing target disconnects on PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > target_disconnects.
"TARGET DISCONNECT ON BURST WRITE TO CONFIGURATION SPACE"
"TARGET DISCONNECT ON BURST READ FROM CONFIGURATION SPACE"
"TARGET DISCONNECT WHEN WRITE FIFO FILLED DURING BURST WRITE"
"TARGET DISCONNECT WHEN READ FIFO IS EMPTIED DURING BURST READ"
"TARGET DISCONNECT ON WRITES WITH UNSUPPORTED WRAPING MODES"
"TARGET DISCONNECT ON READS WITH UNSUPPORTED WRAPING MODES"
"TARGET DISCONNECT ON BURST WRITE TO IO SPACE"
"TARGET DISCONNECT ON BURST READ TO IO SPACE"

Following testcases are for testing target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_target_abort.
"TARGET ABORT SIGNALING ON I/O ACCESSES WITH INVALID ADDRESS/BYTE ENABLE COMBINATION"

Following testcases are for testing transaction ordering during writes and reads through WBU and PCIU simultaneously. Task location for testcases is: run_tests > transaction_ordering.
"SIMULTANEOUS WRITE REFERENCE TO WB SLAVE AND PCI TARGET"
"SIMULTANEOUS WRITE REFERENCE TO PCI TARGET AND WB SLAVE"
"SIMULTANEOUS MULTI BEAT WRITES THROUGH WB SLAVE AND PCI TARGET"
"SIMULTANEOUS MULTI BEAT WRITE REFERENCE TO PCI TARGET AND WB SLAVE"
"ORDERING OF TRANSACTIONS MOVING IN SAME DIRECTION - WRITE THROUGH WB SLAVE, READ THROUGH PCI TARGET"
"ORDERING OF TRANSACTIONS MOVING IN SAME DIRECTION - WRITE THROUGH PCI TARGET, READ THROUGH WB SLAVE"

Testcases for Verification
Following testcase is for testing normal writes and reads through IMAGEs. Task location for testcase is: run_tests > test_pci_image > test_normal_wr_rd.
"PCI ERROR STATUS AFTER NORMAL WRITE/READ"

Following testcases are for testing erroneous PCI writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR"
"PCI ERRONEOUS DATA REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR ON WB"
"PCI ERRONEOUS ADDRESS REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR ON WB"
"INTERRUPT ASSERTION AND STATUS AFTER WRITE TERMINATED WITH ERROR ON WB"
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER READ THROUGH TARGET TERMINATED WITH TARGET ABORT"
"ALL PCI DEVICE STATUSES AFTER ERRONEOUS TARGET READS"

Following testcases are for testing erroneous writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_pci_image > test_target_io_err_wr.
"INTERRUPT REQUEST ASSERTION AFTER ERROR TERMINATED WRITE ON WISHBONE"
"ERROR STATUS REGISTER VALUE CHECK AFTER ERROR TERMINATED POSTED IO WRITE ON WISHBONE"
"ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES CHECK AFTER WRITE TERMINATED WITH ERROR ON WISHBONE"
"INTERRUPT STATUS REGISTER VALUE AFTER ERROR TERMINATED WRITE ON WISHBONE"
"INTERRUPT REQUEST DEASSERTION AFTER CLEARING INTERRUPT STATUS"
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER READ THROUGH TARGET TERMINATED WITH TARGET ABORT"

Following testcases are for testing target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_target_abort.
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER TARGET ABORTS"

Testbench Constants
There are three files with constants for whole testbench. Two of them are for behavioral models of Blue Beaver, pci_blue_options.vh and pci_blue_constants.vh. There were some additional lines added into this two files so we can use all features needed for testing PCI Bridge. The third file, for testbench and other behavioral models, is pci_testbench_defines.v. 
All constants in all three files are set to test all possible combinations on WB and/or PCI buses. So none of those constants should be changed (see chapter  REF _Ref536515790 \r \h 3.5.2  REF _Ref536515837 \h Unchangeable Testbench Constants), except those mentioned below (see chapter  REF _Ref536514856 \r \h 3.5.1  REF _Ref536514856 \h Changeable Testbench Constants). All constants described are from pci_testbench_defines.v file.

Changeable Testbench Constants
Constants written in a pci_testbench_defines.v file under section Changeable testbench defines (constants) are described herein.
Following define affects the execution of the testbench:
STOP_ON_FAILURE  if defined, testbench will stop when a testcase fails.
Value in the following define affects a ratio of WB to PCI clocks:
WB_FREQ  number defined here defines WB clock frequency in GHz (e.g. 0.025 = 25 MHz). PCI clock is fixed (33 MHz). 
Following constants can be changed, but must be very carefully set. IMAGEs are NOT allowed to interleave on a PCI bus. See PCI IP Core Specification document for more details on how to set IMAGEs.
Values in following defines define base addresses of implemented PCI IP Core IMAGEs:
TAR0_BASE_ADDR_0, TAR0_BASE_ADDR_1, TAR0_BASE_ADDR_2, TAR0_BASE_ADDR_3, TAR0_BASE_ADDR_4, TAR0_BASE_ADDR_5  numbers defined here define 32 bit values for each PCI IMAGEs base address. They are written into PCI Bridge during initialization. 
Which base addresses are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define address masks of implemented PCI IP Core IMAGEs:
TAR0_ADDR_MASK_0, TAR0_ADDR_MASK_1, TAR0_ADDR_MASK_2, TAR0_ADDR_MASK_3, TAR0_ADDR_MASK_4, TAR0_ADDR_MASK_5  numbers defined here define 32 bit values for each PCI IMAGEs address mask. This defines the size of each IMAGE. They are written into PCI Bridge during initialization. 
Which address masks are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define translation addresses of implemented PCI IP Core IMAGEs:
TAR0_TRAN_ADDR_0, TAR0_TRAN_ADDR_1, TAR0_TRAN_ADDR_2, TAR0_TRAN_ADDR_3, TAR0_TRAN_ADDR_4, TAR0_TRAN_ADDR_5  numbers defined here define 32 bit values for each PCI IMAGEs translation address. This defines how base address is translated from PCI to WB side. They are written into PCI Bridge during initialization. 
Which translation addresses are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define starting and ending base addresses of behavioral PCI target IMAGEs:
BEH_TAR1_MEM_START, BEH_TAR1_MEM_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI MEMORY IMAGE. They are written into behavioral PCI device 1 during initialization. 
BEH_TAR1_IO_START, BEH_TAR1_IO_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI IO IMAGE. They are written into behavioral PCI device 1 during initialization. 
BEH_TAR2_MEM_START, BEH_TAR2_MEM_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI MEMORY IMAGE. They are written into behavioral PCI device 2 during initialization. 
BEH_TAR2_IO_START, BEH_TAR2_IO_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI IO IMAGE. They are written into behavioral PCI device 2 during initialization. 

Unchangeable Testbench Constants
Constants written in a pci_testbench_defines.v file under section User-unchangeable testbench defines (constants) are mentioned herein. Basic descriptions can be found in a file where they are defined. 



This section contains an alphabetical list of helpful document entries with their corresponding page numbers.
 INCLUDEPICTURE "http://www.opencores.org/logos/jng3.gif" \* MERGEFORMATINET OpenCores        PCI IP Core Design document      DATE \@ "d.M.yyyy" 28.1.2002




 HYPERLINK "http://www.opencores.org" http://www.opencores.org         Rev 0.1  PAGE iv 

 INCLUDEPICTURE "http://www.opencores.org/logos/jng3.gif" \* MERGEFORMATINET OpenCores        PCI IP Core Design document      DATE \@ "d.M.yyyy" 28.1.2002






PAGE \# "'Page: '#''"  Sledeca slika  old stuff gre lahko ven, oziroma ce se da updejatat tako, kot je OC design guidelines  itak bo treba tako naredit direktorije!





 "pr{|d
¾±}q}cq}qj}UmHnHujUmHnHumHnHu0JaJHmHnHu&j>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHu:;j:;UCJHmH      sH     mHsH55CJ mHnHuj5CJ U5CJ 6CJ 5CJ45OJQJ\% !"H\pqr{
ހ"<
pRRb^\l """"""$ >F"VZ.:F!!bb[HB!Rb"b  ]-
!""b0}p"\~P4H""!!!!



PCI IP Core
Design document


Authors: Miha Dolenc & Tadej Markovic
mihad@opencores.org
tadej@opencores.org


Rev. 0.1
 TIME \@ "MMMM d, yyyy" January 28, 2002












This Page is Intentionally Blank

Revision History
Rev.DateAuthorDescription0.013/11/01Miha Dolenc
Tadej MarkovicFirst Draft0.124/01/02Miha Dolenc
Tadej MarkovicTestbench description added

Contents
 TOC \o "2-4" \h \z \t "Headeing 1 Name;1"  HYPERLINK \l "_Toc536594626" Introduction    PAGEREF _Toc536594626 \h 1
 HYPERLINK \l "_Toc536594627" 1.1   PCI IP Core Introduction         PAGEREF _Toc536594627 \h 1
 HYPERLINK \l "_Toc536594628" 1.2   PCI IP Core Features     PAGEREF _Toc536594628 \h 1
 HYPERLINK \l "_Toc536594629" 1.3   PCI IP Core Directory Structure  PAGEREF _Toc536594629 \h 2
 HYPERLINK \l "_Toc536594630" PCI Bridge Core        PAGEREF _Toc536594630 \h 6
 HYPERLINK \l "_Toc536594631" 2.1   Overview         PAGEREF _Toc536594631 \h 6
 HYPERLINK \l "_Toc536594632" 2.2   Core File Hierarchy      PAGEREF _Toc536594632 \h 7
 HYPERLINK \l "_Toc536594633" 2.2.1 Core Module Hierarchy    PAGEREF _Toc536594633 \h 9
 HYPERLINK \l "_Toc536594634" 2.3   Description of Core Modules      PAGEREF _Toc536594634 \h 13
 HYPERLINK \l "_Toc536594635" 2.3.1        Description of general core submodules   PAGEREF _Toc536594635 \h 13
 HYPERLINK \l "_Toc536594636" 2.3.2        Description of PCI I/O submodules        PAGEREF _Toc536594636 \h 13
 HYPERLINK \l "_Toc536594637" 2.3.2.1      pci_io_mux submodule     PAGEREF _Toc536594637 \h 13
 HYPERLINK \l "_Toc536594638" 2.3.2.2      cur_out_reg submodule    PAGEREF _Toc536594638 \h 14
 HYPERLINK \l "_Toc536594639" 2.3.2.3      pci_in_reg submodule     PAGEREF _Toc536594639 \h 14
 HYPERLINK \l "_Toc536594640" 2.3.2.4      pci_rst_int submodule    PAGEREF _Toc536594640 \h 14
 HYPERLINK \l "_Toc536594641" 2.3.2.5      pci_parity_check submodule       PAGEREF _Toc536594641 \h 16
 HYPERLINK \l "_Toc536594642" 2.3.3        Description of WB slave Unit submodules  PAGEREF _Toc536594642 \h 18
 HYPERLINK \l "_Toc536594643" 2.3.3.1      wb_slave.v       PAGEREF _Toc536594643 \h 18
 HYPERLINK \l "_Toc536594644" 2.3.3.2      wb_addr_mux.v    PAGEREF _Toc536594644 \h 22
 HYPERLINK \l "_Toc536594645" 2.3.3.3      wbw_wbr_fifos.v  PAGEREF _Toc536594645 \h 22
 HYPERLINK \l "_Toc536594646" 2.3.3.4      delayed_write_reg.v      PAGEREF _Toc536594646 \h 24
 HYPERLINK \l "_Toc536594647" 2.3.3.5      conf_cyc_addr_dec.v      PAGEREF _Toc536594647 \h 24
 HYPERLINK \l "_Toc536594648" 2.3.3.6      pci_master32_sm_if.v     PAGEREF _Toc536594648 \h 24
 HYPERLINK \l "_Toc536594649" 2.3.3.7      pci_master32_sm.v        PAGEREF _Toc536594649 \h 26
 HYPERLINK \l "_Toc536594650" 2.3.4        Description of PCI target Unit submodules        PAGEREF _Toc536594650 \h 29
 HYPERLINK \l "_Toc536594651" 2.3.4.1      pci_target32_sm.v & pci_target32_interface.v	 PAGEREF _Toc536594651 \h 29
 HYPERLINK \l "_Toc536594652" 2.3.4.2	pciw_pcir_fifos.v	 PAGEREF _Toc536594652 \h 35
 HYPERLINK \l "_Toc536594653" 2.3.4.3	wb_master.v	 PAGEREF _Toc536594653 \h 36
 HYPERLINK \l "_Toc536594654" 2.3.5	Description of Configuration space submodules	 PAGEREF _Toc536594654 \h 37
 HYPERLINK \l "_Toc536594655" 2.4	Changeable Core Constants	 PAGEREF _Toc536594655 \h 44
 HYPERLINK \l "_Toc536594656" 2.4.1	Fifo size constants	 PAGEREF _Toc536594656 \h 44
 HYPERLINK \l "_Toc536594657" 2.4.2	Fifo RAM instantiation Constants	 PAGEREF _Toc536594657 \h 45
 HYPERLINK \l "_Toc536594658" 2.4.3	PCI I/O Pads constants	 PAGEREF _Toc536594658 \h 46
 HYPERLINK \l "_Toc536594659" 2.4.4	HOST / GUEST implementation selection	 PAGEREF _Toc536594659 \h 46
 HYPERLINK \l "_Toc536594660" 2.4.5	Image implementation constants	 PAGEREF _Toc536594660 \h 46
 HYPERLINK \l "_Toc536594661" 2.4.6	Optional Read-Only Configuration image implementation	 PAGEREF _Toc536594661 \h 46
 HYPERLINK \l "_Toc536594662" 2.4.7	PCI images implementation constants	 PAGEREF _Toc536594662 \h 47
 HYPERLINK \l "_Toc536594663" 2.4.8	WISHBONE images implementation constants	 PAGEREF _Toc536594663 \h 48
 HYPERLINK \l "_Toc536594664" 2.4.9	WISHBONE Slave specific constants	 PAGEREF _Toc536594664 \h 49
 HYPERLINK \l "_Toc536594665" 2.4.10	PCI specific constants	 PAGEREF _Toc536594665 \h 49
 HYPERLINK \l "_Toc536594666" 2.4.11	WISHBONE Master specific constants	 PAGEREF _Toc536594666 \h 50
 HYPERLINK \l "_Toc536594667" 2.5	Changeable constants dependencies	 PAGEREF _Toc536594667 \h 50
 HYPERLINK \l "_Toc536594668" 2.6	Unchangeable Core Constants	 PAGEREF _Toc536594668 \h 52
 HYPERLINK \l "_Toc536594669" 2.6.1	Fifo constants	 PAGEREF _Toc536594669 \h 52
 HYPERLINK \l "_Toc536594670" 2.6.2	WISHBONE Slave constants	 PAGEREF _Toc536594670 \h 52
 HYPERLINK \l "_Toc536594671" 2.6.3	Configuration registers address constants	 PAGEREF _Toc536594671 \h 52
 HYPERLINK \l "_Toc536594672" 2.6.4	66Mhz Capable bit constant	 PAGEREF _Toc536594672 \h 53
 HYPERLINK \l "_Toc536594673" PCI Bridge Testbench	 PAGEREF _Toc536594673 \h 54
 HYPERLINK \l "_Toc536594674" 3.1	Overview	 PAGEREF _Toc536594674 \h 54
 HYPERLINK \l "_Toc536594675" 3.2	Testbench File Hierarchy	 PAGEREF _Toc536594675 \h 54
 HYPERLINK \l "_Toc536594676" 3.2.1	Testbench Module Hierarchy	 PAGEREF _Toc536594676 \h 55
 HYPERLINK \l "_Toc536594677" 3.3	Description of Testbench Modules	 PAGEREF _Toc536594677 \h 56
 HYPERLINK \l "_Toc536594678" 3.3.1	Description of PCI submodules	 PAGEREF _Toc536594678 \h 56
 HYPERLINK \l "_Toc536594679" 3.3.1.1	pci_bus_monitor submodule	 PAGEREF _Toc536594679 \h 56
 HYPERLINK \l "_Toc536594680" 3.3.1.2	pci_blue_arbiter submodule	 PAGEREF _Toc536594680 \h 56
 HYPERLINK \l "_Toc536594681" 3.3.1.3	pci_behavioral_device submodule	 PAGEREF _Toc536594681 \h 56
 HYPERLINK \l "_Toc536594682" 3.3.1.4	pci_behavioral_iack_target submodule	 PAGEREF _Toc536594682 \h 57
 HYPERLINK \l "_Toc536594683" 3.3.1.5	pci_unsupported_commands_master submodule	 PAGEREF _Toc536594683 \h 57
 HYPERLINK \l "_Toc536594684" 3.3.2	Description of WB submodules	 PAGEREF _Toc536594684 \h 57
 HYPERLINK \l "_Toc536594685" 3.3.2.1	wb_bus_monitor submodule	 PAGEREF _Toc536594685 \h 57
 HYPERLINK \l "_Toc536594686" 3.3.2.2	wb_master_behavioral submodule	 PAGEREF _Toc536594686 \h 57
 HYPERLINK \l "_Toc536594687" 3.3.2.3	wb_slave_behavioral submodule	 PAGEREF _Toc536594687 \h 58
 HYPERLINK \l "_Toc536594688" 3.4	Description of Testcases	 PAGEREF _Toc536594688 \h 58
 HYPERLINK \l "_Toc536594689" 3.4.1	Description of WBU Testcases	 PAGEREF _Toc536594689 \h 58
 HYPERLINK \l "_Toc536594690" 3.4.1.1	Testcases for Configuration	 PAGEREF _Toc536594690 \h 59
 HYPERLINK \l "_Toc536594691" 3.4.1.2	Testcases for IMAGEs Tests	 PAGEREF _Toc536594691 \h 60
 HYPERLINK \l "_Toc536594692" 3.4.1.3	Testcases for Verification	 PAGEREF _Toc536594692 \h 64
 HYPERLINK \l "_Toc536594693" 3.4.2	Description of PCIU Testcases	 PAGEREF _Toc536594693 \h 68
 HYPERLINK \l "_Toc536594694" 3.4.2.1	Testcases for Configuration	 PAGEREF _Toc536594694 \h 68
 HYPERLINK \l "_Toc536594695" 3.4.2.2	Testcases for IMAGEs Tests	 PAGEREF _Toc536594695 \h 70
 HYPERLINK \l "_Toc536594696" 3.4.2.3	Testcases for Verification	 PAGEREF _Toc536594696 \h 73
 HYPERLINK \l "_Toc536594697" 3.5	Testbench Constants	 PAGEREF _Toc536594697 \h 74
 HYPERLINK \l "_Toc536594698" 3.5.1	Changeable Testbench Constants	 PAGEREF _Toc536594698 \h 75
 HYPERLINK \l "_Toc536594699" 3.5.2	Unchangeable Testbench Constants	 PAGEREF _Toc536594699 \h 76


Introduction
PCI IP Core Introduction
The PCI IP core (PCI bridge) provides an interface between the WISHBONE SoC bus and the PCI local bus. It consists of two independent units, one handling transactions originating on the PCI bus, the other one handling transactions originating on the WISHBONE bus.  
The core has been designed to offer as much flexibility as possible to all kinds of applications.
The chapter 2 describes file hierarchy, description of modules, core design considerations and constants regarding the PCI IP Core.
The chapter 3 describes file hierarchy, description of modules, testbench design considerations, description of testcases and constants regarding the Testbench.
PCI IP Core Features
The following lists the main features of the PCI IP core:
32-bit PCI interface
Fully PCI 2.2 compliant (with 66 MHz PCI specification)
Separated initiator and target functional blocks 
Supported initiator commands and functions:
Memory Read, Memory Write
Memory Read Multiple (MRM)
Memory Read Line (MRL)
I/O Read, I/O Write
Configuration Read, Configuration Write
Bus Parking
Interrupt Acknowledge
Host Bridging
Supported target commands and functions:
Type 0 Configuration Space Header 
(Type 0 is used to configure agents on the same bus segment)
(Type 1 is used to configure across PCI-to-PCI bridges) Parity Generation (PAR), Parity Error Detection (PERR# and SERR#)
Memory Read, Memory Write
Memory Read Multiple (MRM)
Memory Read Line (MRL)
Memory Write and Invalidate (MWI)
I/O Read, I/O Write
Configuration Read, Configuration Write
Target Abort, Target Retry, Target Disconnect
Fast Back-to-Back Capable response
Full Command/Status registers
WISHBONE SoC Interconnection Rev. B compliant interface on processor side (master with Target PCI and slave with Initiator PCI interface)
Configurable on-chip FIFOs 
PCI IP Core Directory Structure
Following picture shows the structure of directories of the PCI IP Core.

There are three major parts of the Verilog code in the pci directory. First one is the code for the PCI Bridge. The Verilog files are in the pci\rtl\verilog subdirectory. The second one is the code for the PCI Testbench. This files are used together with files for the PCI Bridge. There are also some exceptions, but those will be mentioned later. The Verilog files are in the pci\bench\verilog subdirectory. The third one is the code for the application, which is PCI Crt Controller. This files are used together with files for the PCI Bridge. There are also some exceptions, but those will be mentioned later. The Verilog files are in the pci\apps\crt\rtl\verilog subdirectory.
The documentation is in the subdirectory pci\doc. Documentation consists of PCI Bridge White Paper, PCI Bridge Product Preview, PCI IP Core Specification and PCI IP Core Design document.
Library files of the device specific subelements are in the subdirectory pci\lib. This device specific elements are Memory Blocks, Global Buffers and I/O Buffers. I/O Buffers used in FPGA are written in generic Verilog code and are put into FPGA IOB cells with constraint file. This files must be changed with device specific IOB cells when the design is used in ASIC. Memory Blocks and Global Buffers are device specific in both, FPGA and ASIC.
pci\sim subdirectory is used for running simulation  testbench. The rtl_sim subdirectory is used for RTL ( functional ) simulation of the core. There are a few directories included here:
bin  includes various scripts needed for running Ncsim simulator
run  the directory from which the simulation is ran. It provides a script for starting the simulation and a script for cleaning all the results produced by previous simulation runs
log  Ncvlog, Ncelab and Ncsim log files are stored here for review. There is also a script provided for extracting errors from this logs.
out  simulation output directory  simulation stores all the results into this directory ( dump files for viewing with Signalscan, testbench text output etc. )
The gate_sim directory is used the same way as rtl_sim, except simulation is run with the netlist provided from synthesis tool.
Generated files from synthesis tools, like gate level Verilog and log files, are stored in the pci\syn subdirectory and its subdirectories.
Regarding the application, there are other subdirectories under pci\apps directory. User constraint file for pre-synthesis is in the pci\apps\crt\syn\exc subdirectory. This is used for preserving some of the hierarchy to meet PCI timing constraints in FPGA. User constraint file after synthesis and before implementation is in the pci\apps\crt\syn\ucf subdirectory. This is used for pin locations, pin types and timing constraints. Generated bit file from FPGA synthesis tool is stored in the pci\apps\crt\syn\out\bit subdirectory. This is used for FPGA programming. Generated sdf file from FPGA synthesis tool is stored in the pci\apps\crt\syn\out\sdf subdirectory. This file contains all timing delays. Sdf file back annotated to Verilog is stored in the pci\apps\crt\syn\out\verilog subdirectory. This file is used for timing simulation.


PCI Bridge Core
Overview
The PCI bridge consists of two units: the PCI target unit and the WISHBONE slave unit. Each holds its own set of functions to support bridging operations from WISHBONE to PCI and from PCI to WISHBONE. The WISHBONE slave unit acts as a slave on the WISHBONE side of the bridge and initiates transactions as a master on the PCI bus. The PCI target unit acts as a target on the PCI side of the bridge and as a master on its WISHBONE side. Both units operate independently of each other. 
The PCI interface is PCI Specification 2.2 compliant, whereas the WISHBONE is SoC Interconnection Specification Rev. B compliant. The WISHBONE implementation carries out a 32-bit bus operation and does not support other bus widths.



Core File Hierarchy
The hierarchy of modules in the PCI Bridge core is shown here with file tree. Each file here implements one module in a hierarchy RTL source files of the PCI Bridge core are in the pci\rtl\verilog subdirectory.

top.v
	pci_bridge32.v
	.	wb_slave_unit.v
	.	.	wb_slave.v
	.	.	wbw_wbr_fifos.v
	.	.	.	pci_tpram.v *
	.	.	.	wbw_fifo_control.v
	.	.	.	wbr_fifo_control.v
	.	.	wb_addr_mux.v
	.	.	.	decoder.v **
	.	.	delayed_sync.v *
	.	.	.	synchronizer_flop.v **
	.	.	delayed_write_reg.v
	.	.	conf_cyc_addr_dec.v
	.	.	pci_master32_sm_if.v
	.	.	pci_master32_sm.v
	.	.	.	frame_crit.v
	.	.	.	frame_load_crit.v
	.	.	.	irdy_out_crit.v
	.	.	.	mas_ad_load_crit.v
	.	.	.	mas_ch_state_crit.v
	.	.	.	mas_ad_en_crit.v
	.	.	.	cbe_en_crit
	.	.	.	frame_en_crit.v
	.	pci_target_unit.v
	.	.	wb_master.v
	.	.	pciw_pcir_fifos.v
	.	.	.	pci_tpram.v *
	.	.	.	pciw_fifo_control.v
	.	.	.	fifo_control.v
	.	.	delayed_sync.v *
	.	.	.	synchronizer_flop.v **
	.	.	pci_target32_interface.v
	.	.	.	pci_decoder.v **
	.	.	pci_target32_sm.v
	.	.	.	pci_target32_clk_en.v
	.	.	.	pci_target32_trdy_crit.v
	.	.	.	pci_target32_stop_crit.v
	.	.	.	pci_target32_devs_crit.v
	.	conf_space.v
	.	.	synchronizer_flop.v **
	.	.	sync_module.v**
	.	.	.	synchronizer_flop.v **
	.	pci_io_mux.v
	.	.	pci_io_mux_ad_en_crit.v **
	.	.	pci_io_mux_ad_load_crit.v **
	.	.	out_reg.v **
	.	cur_out_reg.v
	.	pci_in_reg.v
	.	pci_parity_check.v
	.	.	par_crit.v
	.	.	perr_crit.v
	.	.	perr_en_crit.v
	.	.	serr_crti.v
	.	.	serr_en_crit.v
	.	pci_rst_int.v
	bufif0 ***

*	Files are used within more than one module: pci_tpram.v is used within wbw_wbr_fifos.v and pciw_pcir_fifos.v files, delayed_sync.v is used within wb_slave_unit.v and pci_target_unit.v files.
**	Files are used within one module more than once: synchronizer_flop.v is used within delayed_sync.v for 5 times and within conf_space.v for several times as sync_module.v etc., decoder.v is used within wb_addr_mux.v for as much times as there is the number of WB images, pci_decoder.v is used within pci_target32_interface.v for as much times as there is the number of PCI images, pci_io_mux_ad_en_crit.v and pci_io_mux_ad_load_crit.v are used within pci_io_mux.v for 4 times each, out_reg.v is used within pci_io_mux.v for 47 times (for AD, CBE and Control signals). 
***	Instantiation bufif0 is a generic tri-state buffer with active low output enable and is used within top.v for 47 times (for AD, CBE and Control signals). This is Verilog generic primitive and it works fine in FPGA implementation ( I/O pads are defined in constraint files ). For an ASIC implementation, user must edit top.v file to instantiate PCI I/O pads before synthesys.
Core Module Hierarchy
Module hierarchy is shown in detail in the following four pictures. First picture explains how the following three pictures should be viewed as a whole. Dashed line means a boundary between two pictures. Fourth picture shows connections between modules in the PCI target Unit (PCIU). Third picture shows connections between modules in the WB slave Unit (WBU) and the Configuration space connections. Second picture shows connections between modules in the PCI Input/Output interface (I/O).
The name of each module is upper-case name of the respective file. Description of modules and their connections is in the chapter  REF _Ref531365462 \h Description of Core Modules.


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 1: First picture - Distribution of modules hierarchy into three pictures

Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 2: Second picture - Module hierarchy of PCI I/O interconnection


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 3: Third picture - Module hierarchy of WB slave Unit and Configuration space


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 4: Fourth picture - Module hierarchy of PCI target Unit

Description of Core Modules
Description of general core submodules
The module top.v consists only of module pci_bridge32.v and Verilog instances bufif0 for PCI Input and Output buffers. 
The module pci_bridge32.v consists of all major submodules and is, like the module top.v, without any logic. It includes some Verilog pre-compiler directives for connections with Configuration space, depending on the HOST or GUEST implementation of the core. If PCI bridge is implemented as HOST, then read/write connection is provided for WB slave Unit (accesses from WB bus) and read-only connection is provided for PCI target Unit (accesses from PCI bus). If PCI bridge is implemented as GUEST bridge, then read/write connection is provided for PCI target Unit and read-only connection for WB slave Unit. 
Description of PCI I/O submodules
PCI I/O modules are shown on the  REF _Ref531366460 \h Figure 22: Second picture - Module hierarchy of PCI I/O interconnection. 
There are two sets of signals connected to PCI bus through I/O modules. One set of signals is from WB slave Unit and the other set of signals is from PCI target Unit. All output signals, connected to PCI bus, from WB slave and PCI target Unit, also have output enable signals. 
pci_io_mux submodule
The module pci_io_mux.v is used for multiplexing output signals from WB slave and PCI target Unit before registering them in corresponding output Flip-Flops. The signal used as a select multiplexer signal is registered AD output enable from PCI target Unit, tar_ad_en_reg_in (from cur_out_reg.v). This way the PCI master in the WB slave Unit can use the PCI output signals when Target is not operating. This is done to implement bus parking capability.
All output signals and their appropriate output enable signals are registered. Each output Flip-Flop and corresponding output enable Flip-Flop are implemented in out_reg.v file. In addition to data input, each of these Flip-Flops has an asynchronous reset and clock enable ports. AD output Flip-Flops are shared between Master and Target state machines, other outputs are controlled exclusively. Outputs from this Flip-Flops are driven into bufif0 instances (for PCI I/O pins) in the top level module.
Loading ( clock enable ) of AD output Flip-Flops is in part calculated in pci_io_mux.v, while timing critical calculation is done in a pci_io_mux_ad_load_crit.v. There are four of these sub-modules instantiated, one for each byte, to reduce fan-out. Preserve hierarchy constraint can be selected on these modules, to prevent logic optimization in them and thus satisfy PCI input timing constraints.
Somewhat similar module and functionality is provided for AD output enable Flip-Flops driving. It is implemented in pci_io_mux_ad_en_crit.v.
cur_out_reg submodule
The opeartion of cur_out_reg.v submodule is the same as pci_io_mux.v, so it consists of multiplexer and flip-flops and the same input signals. It is used for back-up information of signals driven on the PCI bus for WB slave and PCI target Units. This had to be done for FPGA implementation where IOB Flip-Flops are used  they can only have a fanout of 1, so register replication has to be done in order to use this information. This is also OK for ASIC implementation, since providing low fanout on output flip-flops reduces delay on output ports and maybe prevents buffer insertions.
pci_in_reg submodule
The module pci_in_reg.v is used for registering the input PCI bus signals. Registered inputs are used wherever and as much as possible, since stringent PCI bus input timing constraints don't allow free usage of unregistered inputs. Newertheless, PCI bus control signals must be used unregistered in some cases because of PCI bus protocol ( eg: Master must deassert FRAME# on the same clock it detects STOP# asserted or Target must deassert DEVSEL#, STOP# and TRDY# on the same clock it detects FRAME# deasserted and IRDY# asserted ). 
pci_rst_int submodule
The module pci_rst_int.v is used for basic logic for reset and interrupt pins.  
If PCI bridge is implemented as HOST bridge,  then RST_I input from WB bus is recognized as a main asynchronous reset source. The module connects it to PCI core's internal reset signal and PCI bus RST signal. Soft Reset bit in configuration space also causes a reset on PCI bus, but does not have any effect on PCI Core's internal logic. Reset signal RST_O to WB bus is always inactive in this case. Some special design considerations must be taken into account when using Software Reset  PCI Core doesn't take care of Device Initialization time as specified in PCI Local Bus Specification v. 2.2. Software must take care of  this by waiting the ammount of time required by the PCI Specification before starting any transactions on the PCI bus. This wouldn't influence PCI Core's logic, but could cause errors to occur or make PCI subsystem unstable. Refer to PCI Local Bus Specification v. 2.2., chapter 4.3.2. Special design considerations are also in order for power up reset which comes from RST_I signal on WB bus. This reset must be implemented in compliance with PCI Local Bus Specification!
If PCI Core is implemented as GUEST bridge, then RST input from PCI bus is recognized as a main asynchronous reset source. The module connects it to PCI core's internal reset signal and WB bus RST_O signal. Soft Reset bit in configuration space also causes a reset on WB bus, but does not have any effect on PCI Core's internal logic. When using Soft Reset bit, designer must take into consideration its application's reset implementation, to provide valid reset sequnce. For PCI bus reset operation, which is propagated to WB bus, refer to PCI Local Bus Specification v. 2.2., chapter 4.3.2.
If PCI Core is implemented as HOST bridge, then its INTA# PCI pin is configured as an input pin ( output is always tri-stated ). Its negated, synchronized to WB clock domain and passed to WB bus through INT_O pin, if interrupt propagation is enabled. (interrupt propagation enable bit of interrupt control register in conf_space.v). Some software considerations come into account here  since interrupt is synchronized, it induces a certain latency to pass through the bridge. When software clears an interrupt request at its source, it should not immediately start accepting new interrupts. There are two possibilities:
Interrupt is cleared with a write to the source of interrupt:Writes through the bridge are posted, therefore software cannot know and must not assume a time when this write will finish on PCI bus. A common thing a software would do would be to perform a write transaction to the source and immediately after that perform a read transaction. This would cause a write transaction to finish on PCI bus before read transaction can. When read transaction is finished on WB bus, software knows for sure, that all writes posted before a read are finished ( except in case of an error ). This should mean the source of interrupt was cleared, and WB agent can start accepting new interrupt requests.
Interrupt is cleared with a read from the source of interrupt:When this read is finished, interrupt request should already be cleared  except in case of  a source that also induces latency to clearing the interrupt. Software should take that into the account and wait appropriate number of cycles before accepting new requests. 
If PCI Core is implemented as GUEST bridge, then its INTA# PCI pin is configured as an output pin. INT_I from WB bus is negated, synchronized to PCI clock domain and passed to PCI bus through INTA# pin, if interrupt propagation is enabled. (interrupt propagation enable bit of interrupt control register in conf_space.v). Some software considerations come into account here  since interrupt is synchronized, it induces a certain latency to pass through the bridge. When software clears an interrupt request at its source, it should not immediately start accepting new interrupts. There are two possibilities:
Interrupt is cleared with a write to the source of interrupt:Writes through the bridge are posted, therefore software cannot know and must not assume a time when this write will finish on WB bus. A common thing a software would do would be to perform a write transaction to the source and immediately after that perform a read transaction. This would cause a write transaction to finish on WB bus before read transaction can. When read transaction is finished on PCI bus, software knows for sure, that all writes posted before a read are finished ( except in case of an error ). This should mean the source of interrupt was cleared, and PCI agent can start accepting new interrupt requests.
Interrupt is cleared with a read from the source of interrupt:When this read is finished, interrupt request should already be cleared  except in case of a source that also induces latency to clearing the interrupt. Software should take that into the account and wait appropriate number of cycles before accepting new requests. 
Since PCI Core can also cause interrupt requests, pci_rst_int.v module handles passing those to appropriate output pins too. For HOST bridge implementation interrupts will be passed to INT_O pin on WB bus, for GUEST bridge implementation they will be passed to INTA# pin on PCI bus. Some internal synchronization is possible ( depending on the source of interrupt ), so software should make sure not to accept new interrupt requsts from the bridge for at least five cycles after interrupt status is cleared.
pci_parity_check submodule
The module pci_parity_check.v is used for generating/checking parity on PCI bus during address and data phases.
The module is implemented in such a way, that no special signals are needed from PCI Master or Target state machines. Its operation is based primarily on monitoring Master and Target output enable and PCI input signals. 
When Master state machine is driving AD bus, parity calculation is based on AD and CBE outputs it provides. Appropriate parity value is driven to PCI bus on PAR pin one clock after corresponding AD and CBE values. PERR# signal is sampled on next clock. If it is sampled asserted, Parity Error Detected signal is generated and Master Parity Error is signaled, if Parity Error Response is enabled in configuration space. PCI Master reads are decoded using its FRAME and IRDY output enable signals. If those signals are enabled and AD bus is not, then Master Read is in progress. Operation now switches from generating value on PAR signal and monitoring PERR# signal, to monitoring PAR signal and generating PERR# signal. Valid parity is calculated from CBE signals provided by PCI Master state machine and AD signals provided by external Target. AD signals are monitored only on cycles on which TRDY# is sampled asserted. Value on PAR signal received on next clock cycle is xor ed with parity calculated from CBE and AD signals immediately. Result must be 0, otherwise Detected Parity Error is signalled. If Parity Error Response in Configuration space is enabled also, when this event occurs, then PERR# is asserted for one clock cycle and Master Data Parity Error signal is asserted to set appropriate status bits in Configuration space.
Reads from PCI bus through Target state machine are decoded with Target control signals and AD bus output enables. When Target state machine is driving control signals and AD bus, this means a read through Target is in progress. Appropriate parity value is calculated from Target  provided AD value and external Master-provided CBE value. It is then driven to PCI bus on PAR pin one clock after corresponding AD values. PERR# signal is sampled on next clock. If it is sampled asserted, Parity Error Detected signal is asserted to set appropriate bit in Configuration space. PCI Target writes are decoded using Target's TRDY output enable signal. If this signal is enabled and AD bus is not, then Target Write is in progress. Operation now switches from generating value on PAR signal and monitoring PERR# signal, to monitoring PAR signal and generating PERR# signal. Valid parity is calculated from external Master-provided CBE and AD signals. AD signals are monitored only on cycles on which IRDY# is sampled asserted. Value on PAR signal received on next clock cycle is xor ed with parity calculated from CBE and AD signals. Result must be 0, otherwise Detected Parity Error is signalled. If Parity Error Response in Configuration space is enabled also, when this event occurs, then PERR# is asserted for one clock cycle.
Parity is also calculated on every Master initiated address phase  value is driven on PAR pin one clock cycle after the address phase. 
Parity is also checked on any external Master's address phase. If invalid parity is detected, Parity Error Response and System Error Enable bits are set in configuration space, then SERR# is asserted for one clock cycle and Signaled System Error is signaled to Configuration space to set appropriate status bit. Detected Parity Error is also signaled to Configuration space in such an event, regardles of the state of Parity Error Response and System Error Enable bits. Parity error checking during external Masters' address phases is done same way as in writes through Target state machine, except in place of Target control signals, FRAME# input is monitored to decode address phase.
A few small submodules are included into pci_parity_check.v. They are provided only because PCI timing constraints are hard to meet in FPGA implementation. Preserve hierarchy option can be selected over these modules in FPGA synthesis tool to prevent optimization of paths that include timing critical inputs. This kind of practice reduced logic levels on those inputs. Modules provided because of timing issues are:
par_crit.v  provides output to PAR output Flip-Flop. Signal is generated directly from some timing critical PCI input signals during target operation.
perr_crit.v  module feeding PERR output Flip-Flop.
perr_en_crit.v  module feeding PERR output enable Flip-Flop.
serr_en_crit.v  module feeding SERR output enable Flip-Flop
serr_crit.v  module feeding SERR output Flip-Flop
Description of WB slave Unit submodules
wb_slave_unit.v is used for connecting lower level modules that implement units functionality. It also provides all connections needed between Configuration space and lower level modules (see  REF _Ref532098758 \h Figure 23: Third picture - Module hierarchy of WB slave Unit and Configuration space).
wb_slave.v
Module implements WISHBONE slave state machine, which monitors and responds to cycles generated by external WB masters. It includes all logic needed for passing requests from WB bus to PCI bus or Configuration space. During WB write requests, logic checks whether or not all conditions for a write are satisfied. There are a few different ways writes are processed:
WB state machine starts processing a write, when CYC_I, STB_I and WE_I WB signals are all active ( 1 ). WB address ( ADR_I ) passes through decoders implemented in wb_addr_mux.v. Decoders compare input address with addresses stored in Configuration space and generate hit signals. WB slave state machine samples those signals at the rising edge of CLK_I while leaving IDLE or one of DECODE states. Hit signals are used in START state to decide where to go or what to do next. If not hit signal is sampled active, state machine doesnt respond and returns to IDLE state.
Configuration Writes  configuration write starts, when decoder hit0 is active and lower twelve addresses dont match with Configuration Cycle data register offset. Configuration writes are accepted only as single writes to DWORD aligned addresses. If any of addresses [1:0] are non-zero or CAB_I signal is active during configuration write, WB slave state machine responds with an error and returns to idle state. WB slave state machine signals to Configuration space when write to register is to be done also ( write enable signal to configuration space ). In case of GUEST implementation of the bridge, configuration writes have no effect on Configuration space registers. A special case applies here  when bridge is defined as a GUEST and configuration image is not implemented, WB slave state machine does not respond to configuration writes at all, because decoder for Configuration space accesses is not implemented. 
Configuration Cycle Writes  this kind of writes is possible only in HOST bridge implementation. It is initiated when decoder hit0 is active and lower twelve addresses match with Configuration Cycle data register offset. State machine handles these as Delayed Writes, so some additional restrictions apply. New Configuration Cycle Write Request can be accepted only if bridge has no other pending Delayed Transaction to be processed. That means no other Delayed Read/Write Request/Completion is pending. Pending Requests/Completions are signaled to WB slave from delayed_sync.v included in wb_slave_unit.v. All of this conditions are sampled at the same time hits from decoders are sampled. If there is no Configuration Cycle Write Delayed Completion pending ( signaled from delayed_sync.v ), then WB slave state machine responds with retry on WB bus and returns to idle state. If Completion is pending, WB slave state machine will end a cycle with error or acknowledge, depending on a kind of termination received on PCI bus and return to IDLE state. If neither Request or Completion is pending, then state machine signals Delayed Write Request to delayed_sync.v, providing appropriate PCI bus command ( Configuration Write ) and address decoded by module in conf_cyc_addr_dec.v.
Image Writes  Image write is initiated when following conditions are satisfied:
WB Write Fifo ( in wbw_wbr_fifos.v ) is not almost full nor full
Delayed Read or Write Requests are not pending
One of hits from decoders is active, except hit0
Image Write has two possible forms  I/O write or Memory Write. WB slave state machine decodes a form of Image Write by sampling map bits coming from Configuration space the same way hits from decoders are sampled. Each hit has its corresponding map bit. If map bit is 1, then I/O write is assumed, otherwise memory write is assumed. In case of I/O write, CAB_I signal is not allowed to be asserted ( only single I/O writes possible ) and SEL_I, ADR_I[1:0] combination must be valid ( PCI IP Core Specification, Chapter 3.2.3 ). If CAB_I is asserted or invalid address/select combination is detected, WB slave state machine will not accept a write, respond with error and return to IDLE state. In case of memory write, ADR_I[1:0] must be zero, otherwise state machine doesnt accept a write, responds with an error and returns to IDLE state. When Image Write is accepted, state machine enables first write to WBW Fifo. During this write, address from wb_addr_mux.v is driven on WBW Fifo address/data output, PCI bus command is driven on command/byte enable output ( PCI bus command is based on whether this is memory ( Memory Write command ) or I/O write ( I/O Write command ). Corresponding control bus value is also written to WBW Fifo during this write to mark an entry as an address/bus command entry. At this same time, state machine acknowledges the transfer and stores values from SDAT_I and SEL_I buses into intermediate register. State machine now switches WBW Fifo output to intermediate register data and negated selects sampled on previous clock edge. In case of I/O write, it asserts Fifo write enable, drives a value on Fifo control bus to mark an entry as last in a transaction and returns to IDLE state. In case of single memory write ( CAB_I de-asserted ) or when WBW Fifo status is ALMOST FULL, the action taken is the same as for I/O writes. Otherwise, state machine continues to WRITE state used for burst writes. In this state, it keeps sampling data and selects on every clock cycle STB_I is sampled asserted, responds with acknowledge, and writes previously sampled data to Fifo, until it signals ALMOST FULL status or WB Master stops transferring ( de-asserts CYC_I or CAB_I ). When this happens, data sampled into intermediate register is written to Fifo and marked as last in a transaction by providing right value on Fifo control bus. State machine then returns to IDLE state.
During WB read requests, logic checks whether or not all conditions for a read are satisfied. There are a few different ways reads are processed:
Reads are decoded in a same manner as writes, the only difference is that WE_I WB signal must be inactive ( 0 ) .
Configuration Reads - configuration read starts, when decoder hit0 is active and lower twelve addresses dont match with Configuration Cycle data register or Interrupt Acknowledge Cycle register offset. Configuration reads are accepted only as single reads to DWORD aligned addresses. If any of addresses [1:0] are non-zero or CAB_I signal is active during configuration read, WB slave state machine responds with an error and returns to IDLE state. A special case applies when bridge is defined as a GUEST  if configuration image is not implemented, WB slave state machine does not respond to configuration reads at all, because decoder for Configuration space accesses is not implemented.
Interrupt Acknowledge Read  can only be done when PCI Core is configured as HOST. It starts when decoder hit0 is active and lower twelve addresses match with Interrupt Acknowledge Cycle register offset. Since Interrupt Acknowledge cycle is generated as a Delayed Read Transaction, some additional rules to Configuration Reads rules apply: There must be no other outstanding Delayed Request or Completion present in WB unit of the bridge. When this is true, Delayed Read Request with Interrupt Acknowledge PCI bus command is accepted, WB slave state machine responds with retry and returns to IDLE state. When Interrupt Acknowledge cycle is finished on PCI, status is transfered through delayed_sync.v and data through WB Read Fifo ( in wbw_wbr_fifos.v ). When cycle is repeated by external WB Master, Delayed Completion pending is signaled from delayed_sync.v and PCI Write Fifo ( pciw_pcir_fifos.v in pci_target_unit.v ) is empty, data and appropriate status are signaled to requesting WB Master and state machine returns to IDLE state.
Configuration Cycle Read - can only be done when PCI Core is configured as HOST. It starts when decoder hit0 is active and lower twelve addresses match with Configuration Cycle Data register offset. Since Configuration Read cycle is generated as a Delayed Read Transaction, some additional rules to Configuration Reads rules apply: There must be no other outstanding Delayed Request or Completion present in WB unit of the bridge. When this is true, Delayed Read Request with Configuration Read PCI bus command and decoded address from conf_cyc_addr_dec.v is accepted. WB slave state machine responds with retry and returns to IDLE state. When Configuration Cycle is finished on PCI, status is transfered through delayed_sync.v and data through WB Read Fifo ( in wbw_wbr_fifos.v ). When cycle is repeated by external WB Master, Delayed Completion pending is signaled from delayed_sync.v and PCI Write Fifo ( pciw_pcir_fifos.v in pci_target_unit.v ) is empty, data and appropriate status are signaled to requesting WB Master and state machine returns to IDLE state.
Image Read  starts when one of hit signals is set, except for hit0 ( configuration hit ). All image reads are processed as Delayed Transactions, so following rules apply: If no other outstanding Delayed Request or Completion is pending in WB slave unit, then new request can be accepted. In case of Memory Read, reads to DWORD aligned addresses are accepted only. In case of I/O Read, only single reads ( CAB_I signal 0 ) with appropriate address/select line combinations are accepted ( PCI IP Core specification, Chapter 3.2.3 ). I/O and Memory reads are differentiated by map bit that corresponds to current image hit. If map bit is 1, that means I/O Read, otherwise it is processed as Memory Read. When new Delayed Read Request is accepted, WB slave state machine responds with retry, stores address, select and bus command information and returns to IDLE state. I/O Reads are always processed the same way: as single reads with IO Read PCI bus command used. Memory reads however can be processed in a few different ways, depending on Cores configuration. Memory Read Line and Pre-fetch enable bits from an Image Control register that corresponds to current active hit input are sampled when state machine leaves IDLE or one of DECODE states. Invalid Cache Line Size register value masks these bits, so special commands cant be used and read bursts cannot be performed on PCI. Refer to PCI IP Core Specification, Chapter 3.2.4 to see how Delayed Memory Reads depend on the state of these bits. When new request can be accepted, WB slave state machine stores the address provided by wb_addr_mux.v, SEL_I lines provided from external WB Master and decoded PCI bus command by signaling new request to delayed_sync.v included in wb_slave_unit.v. When requested read transaction finishes on PCI bus, this status is signaled to WB slave state machine through delayed_sync.v. The data fetched is stored in WB Read Fifo ( wbw_wbr_fifo.v ) and is stored there until external WB Master repeats the same request. On any occasion external WB Master starts a read cycle, address and select lines provided are compared with stored values and result of this operation sampled into registers, when WB slave state machine leaves IDLE or one of DECODE states. If decoded address and select lines are the same and PCI Write Fifo is empty, then WB slave state machine starts providing data from WB Read Fifo on SDAT_O lines on WB bus. It keeps sending out data and acknowledging transfers until Fifo is empty, data marked as last or error is fetched out from WB Read Fifo, or external WB master stops a transfer. If external WB master stops a transfer before Read Fifo is empty, state machine generates a flush signal, to get rid of stale data.
wb_addr_mux.v
Module provides address decoding functionality for WB Slave Unit. ADR_I bus from WISHBONE is connected directly to this module. Configuration space is connected to this module with all WISHBONE Base Addresses ( WB_BAx ), Translation Addresses ( WB_TAx ) and Address Masks ( WB_AMx ). Each triplet of those values is connected to its own decoder ( in decoder.v ), while ADR_I bus is connected to all of them. Each implemented decoder generates independent address and hit signal output. Addresses from implemented decoders are multiplexed to one output address bus based on value of hit signals. Output address is connected to WB Slave state machine, where it is used in various functions. Each defined decoder instantiated in wb_addr_mux.v is implemented in decoder.v. This module is responsible for comparing decoded number of address lines between provided base address and WISHBONE input address. If bus values are the same, decoder sets hit signal to 1. Address Translation Enable input provided from Configuration space is also checked. If it has a value of 1 and address translation is implemented, then translation is performed by changing decoded number of WISHBONE address bus input bits with decoded number of Translation Address inputs. Result is provided on address output bus.
wbw_wbr_fifos.v
Module is the main storage unit for data passing through WISHBONE Slave Unit. It instantiates synchronous dual port RAMs for each Fifo or one two port RAM used for both Fifos. It also inferes two counters  one for incoming transactions and one for outgoing transactions through WB Write Fifo. This is done to signal  pci_master32_sm_if.v interface when at least one complete Write Transaction is in the Write Fifo and can be started on PCI bus. WB Read Fifo does not need such a counter, because complete transaction is signalled through delayed_sync.v. The module is also responsible for multiplexing read and write addresses in PCI and WB clock domain when only one RAM is instantiated for both Fifos. 
Data for WB Write Fifo is received from WB Slave state machine on multiplexed address/data bus. It's written to WB Write Fifo on rising WB clock edge, when Fifo is not full and WB Slave state machine asserts write enable signal. It's stored at write address provided by wbw_fifo_control.v. If data witten to Fifo is marked as last on WB Write Fifo control bus ( also provided by WB Slave state machine ), then incoming transaction counter is incremented. When incoming and outgoing transaction counters are not equal, Transaction Ready signal is generated on next rising PCI clock edge. Comparison is done between Grey coded values, to provide glitch free comparator output. pci_master32_sm_if.v signals a read from WB Write Fifo. If on rising PCI clock edge WB Write Fifo read enable is active, read address from wbw_fifo_control.v is applied to RAM interface, to provide next data at its data outputs. Address/data output from WB Write Fifo is connected to pci_master32_sm_if.v. When data marked as last ( determined by monitoring control bus output ) is read from Fifo, outgoing transaction counter is incremented and Transaction Ready output is cleared. If there is another transaction ready in the Fifo, Transaction Ready output will be set on next rising PCI clock edge. wbw_fifo_control.v provides a module for generating synchronous RAM addresses for WB Write Fifo. It provides write side RAM address ( in WB clock domain ) and read side RAM address ( in PCI clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  WB clock domain always writes to WB Write Fifo, so it is only interested in Fifo fullness. So Fifo's Almost Full and Full statuses are synchronized to WB clock domain. On the other hand, PCI clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore statuses Two Left, Almost Empty and Empty are syncronized to PCI clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.  
Data for WB Read Fifo is received from PCI Master state machine Interface. It is written to RAM address provided by wbr_fifo_control.v on rising PCI clock edge when WB Read Fifo Write Enable is asserted ( received from PCI Master state machine Interface) and Fifo is not Full. WB Slave state machine performs a read on rising edge of WB clock, during which it holds WB Read Fifo Read Enable asserted. Read address provided from wbr_fifo_control.v is applied to RAM address inputs on a port clocked by WB clock, to provide next data and control signals to WB Slave state machine on Fifo's data and control outputs. wbr_fifo_control.v provides a module for generating synchronous RAM addresses for WB Read Fifo. It provides write side RAM address ( in PCI clock domain ) and read side RAM address ( in WB clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  PCI clock domain always writes to WB Read Fifo, so it is only interested in Fifo fullness. So Fifo's Full status is synchronized to PCI clock domain. On the other hand, WB clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore status Empty is syncronized to WB clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.
delayed_write_reg.v
Module is provided as additional storage for Delayed Write Transactions. Only Configuration Write Transactions are processed as Delayed Writes currently, so this register is only relevant in HOST bridge implementation. When WB Slave state machine signals a Delayed Write Request, this register stores provided data for transfer on PCI bus. 
conf_cyc_addr_dec.v
Module provides address bus value for generation of Configuration Cycles. It is included only in HOST bridge implementation, since GUEST implementation cannot generate them. It receives value written in Configuration Cycle Address register in Configuration space. If value in this register marks Configuration Cycle as Type1 cycle, then address from register passes through the module unchanged. If a value in a register marks Configuration Cycle as Type0, then lower 11 bits pass through module unchanged. Next 5 bits in register value are decoded to provide 21 upper address bits. Refer to PCI IP Core Specification.
pci_master32_sm_if.v
Module is provided for passing requests from delayed_sync.v and wbw_wbr_fifos.v to pci_master32_sm.v. When no transaction is in progress currently, which is determined by three request Flip-Flops, the interface monitors its inputs from WB Write Fifo ( in wbw_wbr_fifos.v ) and delayed_sync.v. 
When Posted Write is prepared in WB Write Fifo, the interface starts preparing all necesary data for PCI Master state machine. It fetches the address into address counter and PCI bus command to its register first. These two registers are connected directly to address and bus command output buses, which go to pci_master32_sm.v. Then it fetches two data entries with byte enables ( if Posted Write is long enough ) to additional registers provided. One register is needed to store the last data in a Write Transaction that was not transfered to PCI bus. This has to be done if Disconnect is signaled in the middle of transaction. The second register is used to provide next data and byte enable information to PCI Master state machine. When address and bus command are prepared and data registers are loaded, the interface signals a request to PCI Master state machine. It receives statuses from the state machine, to know when to provide next write data. Statuses received are:
Wait  means state machine is not transfering yet  when wait is set to 1, all other statuses are ignored
Registered Transfer  status means data was transfered on previous rising PCI clock edge.
Wire Transfer  status signals transfer is going to happen on next rising PCI clock edge. Generation of this status uses unregistered PCI bus control inputs which are timing critical. Usage of this signal should be reduced to minimum to minimize fan-out and logic levels on timing critical PCI control inputs.
Registered Retry  status signals that retry or dissconnect was signaled on previous rising PCI clock edge.
Registered Error  status signals that Target Abort Termination was detected on previous rising PCI clock edge.
Master Abort - status signals that Master Abort Termination was initiated on previous rising PCI clock edge. Master Abort Termination status is treated the same way as Target Abort, except during Configuration Cycles.
The interface is also responsible for signaling to PCI Master state machine if current data phase is also the last or if current data phase is one before last ( state machine needs this information because of PCI bus protocol and registered PCI outputs ). Posted Write Transaction will be repeated and retried, until all data in the transaction is transfered or error status is signalled. Write Transaction can be interrupted by an external Target in the middle of transfer, so address counter is implemented to always provide the right address from which transaction must continue. If error is detected in the middle of Posted Write Transaction ( either Master or Target Abort ), error status is signaled to Configuration space, with erroneous address, bus command, data, byte enable and error source information. Refer to PCI IP Core Specification. The interface also recovers from a Posted Write error, by pulling data out of WB Write Fifo, until last data of current transaction is detected ( data marked as last on WB Write Fifo control bus input ). 
When no transaction is in progress, WB Write Fifo signals an Empty status and Delayed Request is signaled from delayed_sync.v, the interface starts preparing everything data for PCI Master state machine. It fetches address and bus command provided from delayed_sync.v into address counter and bus command register. If this is a Delayed Write Request, then it also fetches data from delayed_write_reg.v. If this is burst Delayed Read Request, a read counter is provided, to stop the reading when enough data is read. Single reads are stopped after single data is transfered from PCI bus. Refer to PCI IP Core Specification, regarding length of burst reads. 
Delayed Writes are always single transactions. When Delayed Write is finished on PCI bus  PCI Master state machine signaling Registered Transfer or Error with Wait status zero, appropriate status is returned to delayed_sync.v ( Delayed Request Complete and Error, if detected ). 
Delayed Reads can be done as burst or single transactions  Refer to PCI IP Core Specification. If delayed Read Request is decoded as a single read, then the interface will stop the request immediately after single data is stored in WB Read Fifo. Data can be marked as normal or error, depending on status returned by PCI Master state machine. Burst Read Request will be signaled to PCI Master state machine until all data required is stored in WB Read Fifo ( determined by a state of read counter ), external Target Disconnects or Master Abort or Target Abort is signaled. In later two cases, data entry will still be written to WB Read Fifo marked as error on WB Read Fifo control bus output ( except on Master Abort during execution of Configuration Read command ). Disconnects are determined with FIRST status Flip-Flop. If Registered Retry is received from PCI Master state machine and FIRST status is active, this means a normal Retry and transaction must be requested again. If FIRST status is inactive when Registered Retry is received, this means a Disconnect, which does not have to be repeated on PCI bus. The interface is responsible for signaling appropriate statuses to PCI Master state machine during Burst Delayed Reads also ( last data phase, one before last data phase ). This statuses are determined from a state of read counter. The interface also uses Cache Line Size register value from Configuration space for Burst Delayed Read Transactions in some cases. 
pci_master32_sm.v
Module implements PCI Master state machine and control logic. State machine only signals current state, Wait status and data source to the outside world. Control logic calculates appropriate value for each PCI bus signal, controls loading of output and output enable Flip-Flops and supplies appropriate value for them. It also disables clock on PCI Master state machine, when it is not allowed to change the state it is in.
When state machine is in IDLE state, control logic monitors PCI control input signals. If PCI bus is idle ( FRAME# and IRDY# both de-asserted ) and GNT# is asserted, it just loads output enable Flip-Flops for AD and CBE# busses with active value ( 1 ). This implements bus parking functionality. Value of those buses is not important at this time. When Request and Ready signals from pci_master32_sm_if.v are both 1, control logic loads REQ# output Flip-Flop with active value ( 0 ). It also monitors state of PCI bus and GNT# input signal. If PCI bus is idle and GNT# is asserted ( 0 ), control logic enables load of new values to AD and CBE output buses, loads output enable Flip-Flops to active state for FRAME# signal and AD and CBE buses. It also enables clock for PCI Master State machine, which will proceede to ADDRESS state on next rising PCI clock edge. While state machine is in address phase ( always for one cycle only ), control logic keeps state machine clock enabled. It determines next value of FRAME# output signal  if data is marked as last from pci_master32_sm_if.v this would be 1, otherwise FRAME# output Flip-Flop is loaded with active value ( 0 ). It determines next value for AD output enable Flip-Flops. If this is a read transaction ( determined from LS bit of PCI bus command ), AD output enable Flip-Flops are loaded with inactive value, to disable driving of AD bus when state machine leaves an ADDRESS state. IRDY# output and output enable Flip-Flops are loaded with an active value. State machine is now in TRANSFER state. It is allowed to go out from this state only when FRAME# output is de-asserted. Control logic now calculates next values for output enables, loads and values for control signals by monitoring external Target response signals, statuses received from pci_master32_sm_if.v and internal counters. It also signals its own statuses and the ones received from external PCI target to the interface. Two counters are implemented to satisfy PCI bus protocol: Decode Timeout and Latency Timeout. Decode Timeout occurs when state machine is in TRANSFER state and no external target has responded to transaction address by asserting DEVSEL# signal. This happens four PCI clock cycles after state machine leaves ADDRESS state. If DEVSEL# is not sampled asserted after these four clocks, Master Abort procedure is initiated. Latency Timer counter value is received from Configuration space. Timer counts all the time when state machine is in ADDRESS or TRANSFER state. When it is zero and GNT# is sampled de-asserted, Latency Timeout occurs. When this occurs, PCI Master state machine finishes the transfer and signals to the interface as if Disconnect was received. For Burst Posted Write Transaction this means it will continue next time PCI Master state machine is granted a bus, while Burst Read transaction is finished when this happens ( since the interface stops requesting ). When Latency Timeout, Master Abort, Target Abort, Retry, Disconnect or transfer of last data is decoded, state machine goes to TURN_AROUND state. At this time, AD and CBE buses and FRAME# output enable Flip-Flops are loaded with inactive value, IRDY# output is loaded with de-asserted value ( 1 ). When state machine leaves TURN_AROUND state, IRDY# output enable Flip-Flop is loaded with inactive value also. 
Submodules instantiated in pci_master32_sm.v are used to resolve timing issues on PCI control signals used unregistered. Logic optimization was turned off for these modules during FPGA synthesis to reduce a number of logic levels on timing critical PCI input paths.
frame_crit.v  module feeds FRAME PCI signal output Flip  Flop. FRAME# signal must be de-asserted on any clock cycle STOP# input is sampled asserted. Normal FRAME output calculation is performed in the wb_master32_sm.v and fed to this module in parallel with STOP# input. When this one is sampled asserted, module immediately blocks out FRAME# assertion regardless of the result of normal FRAME# calculation.
frame_load_crit.v  module feeds FRAME output Flip-Flops clock enable. Value of FRAME# output signal changes when state machine starts operation, when external PCI target is responding or when Master Abort termination is initiated. Master Abort termination and start of transaction are not critical to detect, since they are generated internally. The calculation of those is fed to this module in parallel with TRDY# and STOP# PCI inputs. New value of FRAME# output is loaded when internal logic forces it or, in the middle of transaction, when external target responds with TRDY# or #STOP asserted. 
irdy_out_crit.v  this module is provided for basically the same operation as previous one, except it feeds IRDY# output Flip  Flop. External logic signals when IRDY# must be asserted no matter what and state of current FRAME# output. When FRAME# output signal is de-asserted, module waits for TRDY# or STOP# signals to be asserted and de-asserts IRDY# output on that same rising PCI clock edge.
mas_ad_load_crit.v  module signals to pci_io_mux.v in pci_bridge32.v when to load next data to AD[31:0] output Flip-Flops. It receives a signal which forces output registers to be loaded, and signal that allows outputs to be loaded and GNT# input from PCI bus. Load is forced, when state machine is changing state from IDLE to ADDRESS, to provide the address received from pci_master32_sm_if.v on AD outputs, and when state machine is changing state from ADDRESS to TRANSFER, if current transaction is a write. When state machine is in TRANSFER state during a write, loading is allowed on every cycle transfer is signaled, which is decoded in pci_io_mux.v 
mas_ch_state_crit.v  module provides an internal signal for clock enable on state machine. State transition is controlled by requests received from pci_master32_sm_if.v, state that state machine is currently in and PCI control input signals. For example  when state machine is in IDLE state, it can change state to ADDRESS state only when PCI bus is in idle state, pci_master32_sm_if.v request and ready signals are set and GNT# input is asserted. Or, when state machine is in TRANSFER state, state is allowed to change only when FRAME# output is de-asserted, Master Abort is in progress or external target is responding with TRDY# or STOP# asserted.
mas_ad_en_crit.v  module is provided to feed AD bus output enable Flip-Flops. It is provided, because Master state machine must enable output buffers when PCI bus is IDLE and GNT# is asserted. GNT# is constrained PCI input, so calculation is done in separate module. Other internal, non-critical calculations are done outside this module.
cbe_en_crit.v  module is provided for CBE output enable calculations that include timing critical PCI inputs. Since only PCI Master state machine can drive CBE outputs, this module resides in Master state machine and not in pci_io_mux.v as opposed to AD enable sub-modules, which are used in Master and Target operation.
frame_en_crit.v  module feeds FRAME# output enable Flip-Flop. FRAME# output must remain enabled, until last data phase is complete or Master Abort termination occurs. Signals for the module provide information on when FRAME# must remain enabled, when it must be disabled and when it is allowed to be disabled. When disabling of FRAME# is allowed, module waits for STOP# or TRDY# to be asserted and disables FRAME# output immediately on that clock edge. 
Description of PCI target Unit submodules
The module pci_target_unit.v is used for connecting lower level modules that implement units functionality which is accessing WB bus from PCI bus (see  REF _Ref532098719 \h Figure 24: Fourth picture - Module hierarchy of PCI target Unit). It has three communication ports; one from PCI bus, one to access Configuration space and one to access WB bus. Ports from PCI bus and to access Configuration space operate on PCI clock, while port for accessing WB bus operates on WB clock.
pci_target32_sm.v & pci_target32_interface.v
Module pci_target32_sm.v implements PCI Target state machine and control logic. State machine only signals current state and decides a next state regarding the signals from control logic. Control logic calculates appropriate value for each PCI bus signal, controls loading of output and output enable Flip-Flops and supplies appropriate value for them. It also disables clock on PCI Target state machine, when it is not allowed to change the state it is in, and it signals to pci_target32_interface.v where to data must be loaded (FIFO or Configuration space) or where from data must be fetched. Module pci_target32_interface.v additionally checks when stored address from requested read is the same as currently translated address from PCI bus and other checking that influence, what kind of termination will be.
The control logic monitors PCI control input signals and control signals from pci_target32_interface.v, since all storing registers, multiplexers and address decoders (pci_decoder.v) are implemented there. Internal control signals and ones from pci_target32_interface.v module, that influence on initial PCI Target response, are registered in pci_target32_sm.v module due to timing constraints in FPGA. This incorporates initial wait cycle for PCI Target response. Control signals from pci_target32_interface.v module are: 
addr_claim_in  ORed hits from PCI decoders (not registered before used)
same_read_in  If PCI bus read command and translated address are the same as stored ones (registered due to critical timings)
pci_cbe_reg_in[0]  Registered R/W signal from PCI bus command (registered due to  large fanout) 
read_completed_in  If there is a delayed read request finished on a WB bus and all data are ready in PCI read FIFO  pciw_pcir_fifos.v (used in equation and registered due to critical timings)
read_processing_in  If there is a delayed read request pending on a WB bus (used in equation and registered due to critical timings)
norm_access_to_config_in  If there is a memory access to Configuration space (used in equation and registered due to critical timings)
disconect_wo_data_out  If no data can be transferred any more. Signaled during data phases and used for disconnect without data (not registered before used).
disconect_w_data_out  If no data can be transferred any more. Signaled during data phases and used for disconnect with data (not registered before used).
target_abort_out  If a transaction must be aborted after address phase. Signaled at address phase only (not registered before used).
wbw_fifo_empty_in  If WB write FIFO is empty  just connected through pci_target32_interface.v module (used in equation and registered due to critical timings)
pciw_fifo_full_out  If PCI write FIFO has not enough space left (less then 3 locations, first one is for address)  ORed signals from FIFO pciw_fifo_full_in, pciw_fifo_almost_full_in and pciw_fifo_two_left_in (not registered before used).
pcir_fifo_data_err_out  If corresponding control bit value, of the data read out of PCI read FIFO, signals that an data entry is erroneous, therefore read must be aborted. This is signaled when FIFO is selected and not Configuration space (not registered before used).
All transactions are initiated from PCI bus (from other PCI master). How PCI reads and writes are processed is discussed separately. There are a few different ways writes are processed:
PCI Target state machine starts processing a write with address and one of write commands on AD and CBE# busses respectively, when FRAME# signal is active ( 0 ). Registered PCI address passes through PCI decoders (pci_decoder.v)  implemented in pci_target32_interface.v (it is also stored in a register there). PCI decoders compare input address with addresses stored in Configuration space. Regarding the space (MEMORY or I/O) to which an image is assigned to (bit 0 in P_BA register),  there must also be enabled MEMORY or I/O space (PCI Header - Command register, see PCI IP Core Specification, chapter 4.1.2) to allow PCI decoders to generate hit signals. Write can progress when there is address hit and: if there is no read request  pending on a WB bus and PCI write FIFO is not full (full, almost full and two left), if there is read request completed on a WB bus and PCI write FIFO is not full (full, almost full and two left) or if there is single word write command to Configuration space.
Configuration Writes  configuration write is meant as a write to Configuration space and they proceeds regardless of uncompleted read requests. It can be performed with MEM WRITE or CONF WRITE commands. 
Memory write to Configuration space starts, when decoder hit0 is active. Writes are accepted only as single writes (all MEM WRITE commands are DWORD aligned). If burst MEM WRITE is attempting, then control logic responds Disconnect With Data when data is transferred or Disconnect Without Data after data is transferred (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). 
Configuration write to Configuration space starts, when PCI signal IDSEL is active and CONF WRITE command is performed (all CONF WRITE commands are single writes and DWORD aligned). 
Logic in PCI target state machine signals to Configuration space when write to register is to be done (load_to_pciw_fifo_out - write enable signal to configuration space). In case of HOST implementation of the bridge, writes have no effect on Configuration space registers. A special case applies here  when bridge is defined as a HOST and configuration image is not implemented or is changed into normal PCI-WB image, PCI target state machine does not respond to configuration writes at all, because decoder for Configuration space accesses is not implemented. 
Image Writes  Image write is initiated when following conditions are satisfied:
PCI Write Fifo (in pciw_pcir_fifos.v) is not full nor almost full nor two left (pciw_fifo_full_in signal from pci_target32_interface.v)
Delayed Read Request is not pending (read_processing_in signal from pci_target32_interface.v), but can be completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
Image write has two possible forms  I/O write or Memory write with IO WRITE or MEM WRITE commands respectively. As mentioned, the appropriate space of an image must be enabled (MEMORY or I/O) for each kind of commands and also image must be assigned to appropriate space (MEMORY or I/O in a base address register  bit 0), otherwise PCI target state machine will not response at all. PCI decoders (pci_decoder.v)  take care of this for each image. 
Memory write can be single or burst (all MEM WRITE commands are DWORD aligned). The two LSBits of address (AD[1:0]) tell what kind of burst ordering is initiated. Two kinds are possible; linear incrementing and cacheline wrap, but only the first one is supported. If PCI master initiates the cacheline wrap burst ordering, the PCI target logic terminates the transaction with Disconnect With or Without Data and only single data phase transfers data (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v) as it reacts when there remains only two spare locations in PCI write FIFO during linear incrementing burst. The byte enables indicate the affected bytes within the DWORD for each data written.
I/O write is only single write. All 32 address bits are used to provide a full byte address. The PCI master is required to ensure that AD[1:0] indicate the least significant valid byte for the transaction. The byte enables indicate the size of the transfer and the affected bytes within the DWORD and must be consistent with AD[1:0] (see PCI IP Core Specification, chapter 3.3.3), otherwise PCI target logic terminates the transaction with Target-Abort (target_abort_in signal from pci_target32_interface.v) and no data is transferred.
When Image Write is accepted, control logic in pci_target32_interface.v enables first write to PCIW Fifo. During this write, address stored in a register (address is stored from multiplexer, to which PCI decoders are connected) is driven on PCIW Fifo address/data output, PCI bus command stored in a register is driven on command/byte enable output. Corresponding control bus value is also written to PCIW Fifo during this write to mark an entry as an address/bus command entry. Control logic now switches registered data from PCI bus to PCIW Fifo. In case of I/O write, it asserts Fifo write enable, drives a value on Fifo control bus to mark an entry as last. In case of single memory write (FRAME# de-asserted before first data phase), the action taken is the same as for I/O writes. When there is a burst memory write, data are normally written, with corresponding control bus value written to mark an entry as a burst, until there remains only two spare locations in PCIW Fifo or PCI master stops writing. When this happens, registered data written to Fifo are marked as last with corresponding control bus value.
During PCI read requests, logic checks whether or not all conditions for a read are satisfied. There are a few different ways reads are processed:
Reads are decoded in a same manner as writes, the only differences are READ commands instead of WRITE commands and that Read is requested on WB bus when there is address hit and there is no read request  pending on a WB bus and no read request completed and it is not a read from Configuration space. Read from PCI bridge can progress when there is address hit and: if there is read request completed on WB bus and the same address as an address of completed read and WBW Fifo is empty (due to transaction ordering) or if there is single word read command from Configuration space.
Configuration Reads  configuration read is meant as a read from Configuration space and they proceeds regardless of uncompleted or completed read requests. It can be performed with MEM READ or CONF READ commands. 
Memory read from Configuration space starts, when decoder hit0 is active. Reads are accepted only as single reads (all MEM READ commands are DWORD aligned). If burst MEM READ is attempting, then control logic responds Disconnect With Data when data is transferred or Disconnect Without Data after data is transferred (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). 
Configuration read from Configuration space starts, when PCI signal IDSEL is active and CONF READ command is performed (all CONF READ commands are single reads and DWORD aligned). 
Logic in PCI target state machine just set the current address to Configuration space when read from register is to be done and set select signal on multiplexer for fetching the data from Configuration space (sel_conf_fifo_out). In case of HOST implementation of the bridge, just reads have effect on Configuration space registers. A special case applies here  when bridge is defined as a HOST and configuration image is not implemented or is changed into normal PCI-WB image, PCI target state machine does not respond to configuration reads at all, because decoder for Configuration space accesses is not implemented. 
Image Reads  Image read is accepted when following conditions are satisfied:
Delayed Read Request is not pending (read_processing_in signal from pci_target32_interface.v) and Delayed Read Request is not completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
 Image read is initiated when following conditions are satisfied:
Delayed Read Request is completed (read_completed_in signal from pci_target32_interface.v)
One of hits from decoders is active, except hit0 (see PCI IP Core Specification, chapter 3.3.2)
Initiated address is the same as the starting address of completed Delayed Read Request (same_read_in signal from pci_target32_interface.v)
WB Write Fifo (in wbw_wbr_fifos.v) is empty (wbw_fifo_empty_in signal from wb_slave_unit.v) due to transaction ordering
As mentioned, Delayed Read must first be accepted and requested to complete on WB bus. When new Delayed Read Request is accepted, PCI target state machine responds with retry and stores the translated address with its bus command. Image read has two possible forms  I/O read or Memory read with IO READ or MEM READ commands respectively. As mentioned, the appropriate space of an image must be enabled (MEMORY or I/O) for each kind of commands and also image must be assigned to appropriate space (MEMORY or I/O in a base address register  bit 0), otherwise PCI target state machine will not response at all. PCI decoders (pci_decoder.v)  take care of this for each image. I/O Reads are always processed the same way: as single reads with IO Read PCI bus command used. The PCI master is required to ensure that AD[1:0] indicate the least significant valid byte for the transaction. The byte enables indicate the size of the transfer and the affected bytes within the DWORD and must be consistent with AD[1:0] (see PCI IP Core Specification, chapter 3.3.3), otherwise PCI target logic terminates the transaction with Target-Abort (target_abort_in signal from pci_target32_interface.v) and no data is transferred. Memory reads however can be processed in a few different ways, depending on Cores configuration. Pre-fetch enable bits from an Image Control register that corresponds to current active hit input together with one of MEM READ commands and Cache Line Size register value influence to a number of data read on a WB bus (see PCI IP Core Specification, Chapter 3.2.4). When new request can be accepted, PCI target state machine stores the translated address and PCI bus command by signaling new request to delayed_sync.v included in pci_target_unit.v. When requested read transaction finishes on WB bus, this status is signaled to PCI target state machine through delayed_sync.v and pci_target32_interface.v. The data fetched is stored in PCI Read Fifo ( pciw_pcir_fifo.v ) and is stored there until external PCI Master repeats the same request. On any occasion external PCI Master starts a read cycle, translated address and PCI bus command provided are compared with stored values. If decoded address and bus command are the same and WB Write Fifo is empty, then PCI target state machine set select signal on multiplexer for fetching the data from Fifo and starts providing data from PCI Read Fifo to PCI bus. There is also one storing register between Fifo and output register, in order to have only one initial wait cycle and no subsequent wait cycles. PCI target state machine keeps sending out data and acknowledging transfers until Fifo is empty, data marked as last or error is fetched out from PCI Read Fifo, or external PCI master stops a transfer. If PCI master initiates the cacheline wrap burst ordering for MEM READ commands, the PCI target logic terminates the transaction with Disconnect With or Without Data and only single data phase transfers data (disconect_wo_data_in and disconect_w_data_in signals from pci_target32_interface.v). If a transfer is stopped before Read Fifo is empty, state machine generates a flush signal, to get rid of stale data. The byte enables indicate the affected bytes within the DWORD for each single data read, while for burst data reads byte enables have no meaning.
Submodules instantiated in pci_target32_sm.v are used to resolve timing issues on PCI control signals used unregistered. Logic optimization was turned off for these modules during FPGA synthesis to reduce a number of logic levels on timing critical PCI input paths.
pci_target32_clk_en.v  module feeds clock enable signal for state machine with inputs FRAME# and IRDY#.
pci_target32_trdy_crit.v  module feeds output value for TRDY# signal.
pci_target32_stop_crit.v  module feeds output value for STOP# signal.
pci_target32_devs_crit.v  module feeds output value for DEVSEL# signal.

pciw_pcir_fifos.v
Module is the main storage unit for data passing through PCI Target Unit. It instantiates synchronous dual port RAMs for each Fifo or one two port RAM used for both Fifos. It also inferes two counters  one for incoming transactions and one for outgoing transactions through PCI Write Fifo. This is done to signal  wb_master.v state machine when at least one complete Write Transaction is in the Write Fifo and can be started on WB bus. PCI Read Fifo does not need such a counter, because complete transaction is signalled through delayed_sync.v. The module is also responsible for multiplexing read and write addresses in PCI and WB clock domain when only one RAM is instantiated for both Fifos. 
Data for PCI Write Fifo is received from PCI Target state machine on multiplexed address/data bus. It's written to PCI Write Fifo on rising PCI clock edge, when Fifo is not full and PCI Target state machine asserts write enable signal. It's stored at write address provided by pciw_fifo_control.v. If data witten to Fifo is marked as last on PCI Write Fifo control bus ( also provided by PCI Target state machine ), then incoming transaction counter is incremented. When incoming and outgoing transaction counters are not equal, Transaction Ready signal is generated on next rising WB clock edge. Comparison is done between Grey coded values, to provide glitch free comparator output. wb_master.v signals a read from PCI Write Fifo. If on rising WB clock edge PCI Write Fifo read enable is active, read address from pciw_fifo_control.v is applied to RAM interface, to provide next data at its data outputs. Address/data output from PCI Write Fifo is connected to wb_master.v. When data marked as last ( determined by monitoring control bus output ) is read from Fifo, outgoing transaction counter is incremented and Transaction Ready output is cleared. If there is another transaction ready in the Fifo, Transaction Ready output will be set on next rising WB clock edge. pciw_fifo_control.v provides a module for generating synchronous RAM addresses for PCI Write Fifo. It provides write side RAM address ( in PCI clock domain ) and read side RAM address ( in WB clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  PCI clock domain always writes to PCI Write Fifo, so it is only interested in Fifo fullness. So Fifo's Almost Full and Full statuses are synchronized to PCI clock domain. On the other hand, WB clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore statuses Two Left, Almost Empty and Empty are syncronized to WB clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.  
Data for PCI Read Fifo is received from WB Master state machine. It is written to RAM address provided by fifo_control.v on rising WB clock edge when PCI Read Fifo Write Enable is asserted ( received from WB Master state machine) and Fifo is not Full. PCI Target state machine performs a read on rising edge of PCI clock, during which it holds PCI Read Fifo Read Enable asserted. Read address provided from fifo_control.v is applied to RAM address inputs on a port clocked by PCI clock, to provide next data and control signals to PCI Target state machine on Fifo's data and control outputs. fifo_control.v provides a module for generating synchronous RAM addresses for PCI Read Fifo. It provides write side RAM address ( in WB clock domain ) and read side RAM address ( in PCI clock domain ). It also generates different statuses. Statuses are always determined by comparing Grey coded read and write addresses to provide glitch free comparator outputs. Status outputs are sampled in Flip-Flops in appropriate clock domain. For example  WB clock domain always writes to PCI Read Fifo, so it is only interested in Fifo fullness. So Fifo's Full status is synchronized to WB clock domain. On the other hand, PCI clock domain always just reads from this Fifo and is therefore interested only in Fifo emptiness. Therefore status Empty is syncronized to PCI clock domain. Grey code pipeline is provided for generating statuses. Each clock domain has its own pipeline, values are compared between clock domains and results sampled at appropriate clocks as stated previously.
wb_master.v
Module implements WISHBONE master state machine and is provided for passing requests from delayed_sync.v and pciw_pcir_fifos.v to external WB slaves. 
When Posted Write is prepared in PCI Write Fifo, the state machine fetches the address into address counter. These register is connected directly to address output bus. Then it fetches each data with byte enables (if Posted Write) and put it on WB bus until last data is fetched from PCIW Fifo, while address counter is incremented for each data phase, when data are terminated with ACK_I. If write is terminated with RTY_I signal, the last data transfer is repeated for the value of define WB_RTY_CNT_MAX. If there is no response on WB bus, internal signal (set_retry) is active after 8 WB clock periods, and is used as there would be a termination with RTY_I signal. If retry counter reaches maximum value, address, data, bus command and control signals (cause of the error, error_source_out and write_rty_cnt_exp_out) are written into ERR registers if this is enabled. The rest of posted write is emptied from PCIW Fifo until last data (more Posted Writes can be in PCIW Fifo). If write is terminated with ERR_I signal, then action is the same as when retry counter reaches maximum value. 
When there is a delayed read request, it can not be processed until PCIW Fifo is empty (due to transaction ordering). Logic first determine how long a read should be performed. This is calculated from PCI bus command, pre-fetch enable bit of image control register and cache line size register (must be aligned to 4 DWORDs  2 LSBits are zero). Then state machine fetches the address into address counter and starts the transaction. Address counter is incremented for each data phase, when data are terminated with ACK_I. If read is terminated with RTY_I signal, the last data transfer is repeated for the value of define WB_RTY_CNT_MAX. If there is no response on WB bus, internal signal (set_retry) is active after 8 WB clock periods, and is used as there would be a termination with RTY_I signal. If retry counter reaches maximum value because of RTY_I termination, then state machine stop reading, otherwise if retry counter reaches maximum value because of no response, then state machine write last data into PCIR Fifo with error control bit, the same as it would be terminated with ERR_I.
Description of Configuration space submodules
The module conf_space.v is also referenced as Configuration space (see  REF _Ref532098758 \h Figure 23: Third picture - Module hierarchy of WB slave Unit and Configuration space). It consists of PCI Configuration Header and Device specific registers for WB slave and PCI target Units. It has some sub-modules used for synchronization, sync_module.v and synchronizer_flop.v.
It has two ports for access registers by their address. One port is Read-Only, the other is Read/Write. Both ports have theirs own address and read data busses, but only Read/Write port has write data bus. Each port has its own address decoder for accessing appointed registers. Reading is asynchronous, while writing is synchronous. To have only one address decoder for Read/Write port, we set address decoded select signals w_reg_select_dec[55:0] in address decoder for reading from Read/Write port and then we use those selects for writing into individual registers.
Some register bits are constant and cannot be changed. Almost all others can be set to desired values. Only exceptions are status bits, which are set to logic 1 when there occurs e.g. error and are deleted with writing 1 into them.
If PCI bridge is implemented as HOST bridge, then Configuration access port from wb_slave.v (in WB slave Unit) is connected to Read/Write port of Configuration space and Configuration access port from pci_target32_interface.v (in PCI Target Unit) is connected to Read-Only port. For GUEST bridge implementation it is vice-versa. 
If PCI bridge is implemented as HOST bridge with all 6 PCI images (PCI_IMAGE6) or if there are less images and disabled Read-Only access (NO_CNF_IMAGE), then there is no Read-Only port connection between Configuration space and PCI Target Unit. If PCI bridge is implemented as GUEST bridge and disabled Read-Only access (NO_CNF_IMAGE), then there is no Read-Only port connection between Configuration space and WB Slave Unit.
Read-Only port consists of inputs: r_conf_address_in and r_re (read enable); and of outputs: r_conf_data_out. Read/Write port consists of inputs: w_conf_address_in, w_conf_data_in, w_byte_en, w_re (read enable) and w_we (write enable); and of outputs: w_conf_data_out. 
Basically all register bit outputs (control, status, address etc.) are connected directly to the modules, which action depends on them. Registers themselves are well described in PCI IP Core Specification.
OUTPUTS form PCI Configuration Header registers:
serr_enable, perr_response (bits 8 and 6 of Command register): connected to pci_parity_check.v of PCI I/O
pci_master_enable (bit 2 of Command register): connected to wb_slave.v of WB slave Unit
memory_space_enable, io_space_enable (bits 1 and 0 of Command register): connected to pci_target32_interface.v of PCI raget Unit
cache_line_size_to_pci (Cache Line Size register): connected to pci_master32_sm_if.v of WB slave Unit
cache_line_size_to_wb (Cache Line Size register): connected to wb_master.v of PCI target Unit
cache_lsize_not_zero_to_wb: connected to wb_slave.v of WB slave Unit and to wb_master.v of PCI target Unit
latency_tim (Latency Timer register): connected to pci_master32_sm.v of WB slave Unit
OUTPUTS from PCI Image registers:
pci_base_addr* (bits 31-12 of P_BA* register): connected to pci_decoder.v of PCI target Unit
pci_memory_io* (bit 0 of P_BA* register): connected to pci_decoder.v of PCI target Unit
pci_addr_mask* (bits 31-12 of P_AM* register): connected to pci_decoder.v of PCI target Unit
pci_tran_addr* (bits 31-12 of P_TA* register): connected to pci_decoder.v of PCI target Unit
pci_img_ctrl* (bits 2-1 of P_IMG_CTRL* register): connected to pci_decoder.v (bit 2) and pci_target32_interface.v of PCI target Unit
* Stands for number from 0 to N (N is a number of implemented PCI images), see PCI IP Core Specification document.
12     This value of P_BA, P_AM and P_TA registers is determined according to PCI_Number_of_Decoded_Address_Lines (20 is maximum  31:12, 1 is minimum  31:31).
OUTPUTS from WB Image registers:
wb_base_addr** (bits 31-12 of W_BA** register): connected to decoder.v of WB slave Unit
wb_memory_io* (bit 0 of W_BA* register): connected to wb_slave.v of WB slave Unit
wb_addr_mask* (bits 31-12 of W_AM* register): connected to decoder.v of WB slave Unit
wb_tran_addr* (bits 31-12 of W_TA* register): connected to decoder.v of WB slave Unit
wb_img_ctrl* (bits 2-0 of W_IMG_CTRL* register): connected to decoder.v (bit 2) and wb_slave.v of WB slave Unit
*      Stands for number from 1 to N (N is a number of implemented WB images).
**      Stands for number from 0 to N (N is a number of implemented WB images), see PCI IP Core Specification document.
12      This value of W_BA, W_AM and W_TA registers is determined according to WB_Number_of_Decoded_Address_Lines (20 is maximum  31:12, 1 is minimum  31:31).
OUTPUTS from device specific control registers:
config_addr (CNF_ADDR register): connected to conf_cyc_addr_dec.v of WB slave Unit if there is a HOST bridge implementation
icr_soft_res (bit 31 of ICR register): connected to pci_rst_int.v of PCI I/O
int_out (ORed bits 4-0 of ISR register):connected to pci_rst_int.v of PCI I/O
INPUTS to PCI Configuration Header register:
perr_in, serr_in and master_data_par_err (bits 15, 14 and 8 of Status register): connected from pci_parity_check.v of PCI I/O
master_abort_recv and target_abort_recv (bits 13 and 12 of Status register): connected from pci_master32_sm_if.v of WB slave Unit
target_abort_set (bit 11 of Status register): connected from pci_target32_sm.v of PCI target Unit
INPUTS to PCI Error registers:
pci_error_be, pci_error_bc, pci_error_rty_exp , pci_error_es and pci_error_sig (bits 31-28, 27-24, 10, 9 and 8 of P_ERR_CS register): connected from wb_master.v of PCI target Unit
pci_error_addr (P_ERR_ADDR register): connected from wb_master.v of PCI target Unit
pci_error_data (P_ERR_DATA register): connected from wb_master.v of PCI target Unit
INPUTS to WB Error registers:
wb_error_be (bits 31-28 of W_ERR_CS register): connected from cur_out_reg.v of PCI I/O
wb_error_bc, wb_error_es and wb_error_sig (bits 27-24, 9 and 8 of W_ERR_CS register): connected from pci_master32_sm_if.v of WB slave Unit
wb_error_addr (W_ERR_ADDR register): connected from pci_master32_sm_if.v of WB slave Unit
wb_error_data (W_ERR_DATA register): connected from cur_out_reg.v of PCI I/O
INPUTS to Interrupt Status register:
isr_sys_err_int and isr_par_err_int (bits 4 and 3 of ISR register): connected from pci_master32_sm_if.v of WB slave Unit
pci_error_sig (bit 2 of ISR register): connected from wb_master.v of PCI target Unit
wb_error_sig (bit 1 of ISR register): connected from pci_master32_sm_if.v of WB slave Unit
isr_int_prop (bit 0 of ISR register): connected from pci_rst_int.v of PCI I/O
Since access and monitoring of Configuration space is from two clock domains, some synchronization need to be done, where necessary (fixed values of course dont need to be synchronized, e.g. WB_CONF_SPC_BAR). Access from Read-Only and Read/Write ports is straight forward, because of system point of view, most of registers dont need to be synchronized. If PCI bridge is implemented as HOST, then WB device must initialize the Configuration space, otherwise (if GUEST) PCI device (the HOST) must initialize the Configuration space. Following registers are set only during initialization phase and therefore dont need to be synchronized:
Interrupt Line register (PCI Header)
P_IMG_CTRL0 - P_IMG_CTRLn (n is a number of implemented PCI images, see also PCI IP Core Specification document)
P_BA0 - P_BAn (n is a number of implemented PCI images)
P_AM0 - P_AMn (n is a number of implemented PCI images)
P_TA0 - P_TAn (n is a number of implemented PCI images)
W_IMG_CTRL1 - W_IMG_CTRLn (n is a number of implemented WB images, see also PCI IP Core Specification document)
W_BA1 - W_BAn (n is a number of implemented WB images)
W_AM1 - W_AMn (n is a number of implemented WB images)
W_TA1 - W_TAn (n is a number of implemented WB images)
If the initialization device needs to change any of this registers when system already normally operate, then it must prevent all devices on the opposite bus to access through bridge and stop the opposite bridge unit.
Following registers are used only when PCI bridge is implemented as HOST and also dont need to be synchronized, because they are used for specific cycles totally by WB slave Unit:
CNF_ADDR (for configuration cycles, see also PCI IP Core Specification document)
CNF_DATA (for configuration cycles)
INT_ACK (for interrupt acknowledge cycles)
Following registers are somehow linked with synchronization (their outputs, their deleting etc.), except specific bits. therefore they are described separately. 
Bits 15-11 and 8 of Status register (PCI Header) are synchronized, when PCI bridge is implemented as HOST. This bits are always set on a PCI CLK, and in a case of HOST bridge, they are read and deleted on WB CLK. The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bits 8, 6, 1 and 0 of Command register (PCI Header) are synchronized, when PCI bridge is implemented as HOST. Their values are always used on PCI CLK (in pci_parity_check.v and pci_decoder.v). This bits are set in a case of HOST bridge on WB CLK. Their values are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Bit 2 of Command register (PCI Header) is synchronized, when PCI bridge is implemented as GUEST. Its value is always used on WB CLK (in wb_slave.v). This bit is set in a case of GUEST bridge on PCI CLK. Its value is therefore synchronized (with two flip-flops on WB CLK) to WB CLK.
Cache Line Size register (PCI Header) is synchronized. 
Outputs cache_line_size_to_pci are always used on PCI CLK (pci_master32_sm_if.v) and are synchronized, when PCI bridge is implemented as HOST. This register is set in a case of HOST bridge on WB CLK. Its outputs are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Outputs cache_line_size_to_wb are always used on WB CLK (wb_master.v) and are synchronized, when PCI bridge is implemented as GUEST. This register is set in a case of GUEST bridge on PCI CLK. Its outputs are therefore synchronized (with two flip-flops on WB CLK) to WB CLK.
Latency Timer register (PCI Header) is synchronized, when PCI bridge is implemented as HOST. Its outputs are always used on PCI CLK (in pci_master32_sm.v). This register is set in a case of HOST bridge on WB CLK. Its outputs are therefore synchronized (with two flip-flops on PCI CLK) to PCI CLK.
Bit 0 (ERR_EN) of P_ERR_CS and W_ERR_CS registers is not synchronized, because it is only the enable for error pulse on error signal.
Bit 8 (ERR_SIG) of P_ERR_CS register is synchronized, when PCI bridge is implemented as GUEST. This bit is always set on WB CLK if bit 0 (ERR_EN) of P_ERR_CS register is set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit is also blocked the next PCI CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 8 (ERR_SIG) of W_ERR_CS register is synchronized, when PCI bridge is implemented as HOST. This bit is always set on PCI CLK if bit 0 (ERR_EN) of W_ERR_CS register is set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bits 31-28 (BE), 27-24 (BC), 10 (RTY_EXP only for P_ERR_CS) and 9 (ES) of P_ERR_CS and W_ERR_CS registers are only status information bits and are not synchronized, because they are valid when bit 8 (ERR_SIG) is valid (this bit is synchronized). If software uses error poling, it must respond only to bit 8 (ERR_SIG)!
Bit 31 (SW_RST) of ICR register is not synchronized, since reset is asynchronously propagated. If PCI bridge is implemented as HOST, then value of this bit is propagated to PCI bus, otherwise it is propagated to WB bus.
Bits 4 (SERR_INT_EN) and 3 (PERR_INT_EN) of ICR register are implemented only when bridge is implemented as HOST (GUEST bridges only trigger interrupts to PCI bus; see also PCI IP Core Specification). This bits  are not synchronized because they are only enables for interrupt pulses on interrupt signals.
Bits 2-0 (PCI_EINT_EN, WB_EINT_EN and INT_PROP_EN) of ICR register are not synchronized because they are only enables for interrupt pulses on interrupt signals.
Bits 4 (SERR_INT) and 3 (PERR_INT) of ISR register are synchronized and are implemented only when bridge is implemented as HOST (GUEST bridges only trigger interrupts to PCI bus; see also PCI IP Core Specification). This bits are always set on PCI CLK if bits 4 (SERR_INT_EN) and 3 (PERR_INT_EN) respectively, of ICR register, are set. Theirs values are used on WB CLK (software on other WB device). The values of status bits are also blocked the next WB CLK period, when each delete bit is written, so there is like immediate response of status. The values of status bit them-self are also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 2 (PCI_EINT) of ISR register is synchronized, when PCI bridge is implemented as GUEST. This bit is always set on WB CLK if bit 2 (PCI_EINT_EN) of ICR register and bit 0 (ERR_EN) of P_ERR_CS register are set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit is also blocked the next PCI CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 1 (WB_EINT) of ISR register is synchronized, when PCI bridge is implemented as HOST. This bit is always set on PCI CLK if bit 1 (WB_EINT_EN) of ICR register and bit 0 (ERR_EN) of W_ERR_CS register are set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit is also blocked the next WB CLK period, when delete bit is written, so there is like immediate response of status. The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK. See  REF _Ref531586771 \h Figure 25: SET and DELETE synchronization for status reporting bit.
Bit 0 (INT) of ISR register is synchronized. 
When PCI bridge is implemented as HOST, is this bit set on PCI CLK if bit 0 (INT_PROP_EN) of ICR register is set. Its value is used in a case of HOST bridge on WB CLK (software on other WB device). The value of status bit itself is also synchronized (with two flip-flops on WB CLK) to WB CLK.
When PCI bridge is implemented as GUEST, is this bit set on WB CLK if bit 0 (INT_PROP_EN) of ICR register is set. Its value is used in a case of GUEST bridge on PCI CLK (software on other PCI device). The value of status bit itself is also synchronized (with two flip-flops on PCI CLK) to PCI CLK.
There is also a synchronization, before interrupts are connected to int_out signal. 
All interrupts are logically ORed and then synchronized. When PCI bridge is implemented as HOST, the synchronization is done (with two flip-flops on WB CLK) to WB CLK, otherwise the synchronization is done (with two flip-flops on PCI CLK) to PCI CLK.
Signal, which sets bit 0 (INT) of ISR register, is connected to OR logic directly, before it is synchronized to status bit in ISR. All other 4 bits (in case of HOST bridge, otherwise there are 2 bits) are connected to OR logic from AND gates after flip-flops, which are set directly from interrupt signals, if they are synchronized, otherwise they are connected from flip-flops.


Figure  STYLEREF 1 \s 2 SEQ Figure \* ARABIC \s 1 5: SET and DELETE synchronization for status reporting bit

Changeable Core Constants
PCI IP Core user changeable constants are defined in pci_user_constants.v in projects rtl/verilog subdirectory. 
Fifo size constants
Values in following defines indirectly define sizes of implemented PCI IP Core Fifos:
WBW_ADDR_LENGTH  number defined here defines WB Write Fifos size. Size is calculated as 2^^WBW_ADDR_LENGTH. Note that Fifos control logic is such, that one location in RAM is always empty, so usable Fifo size is (2^^WBW_ADDR_LENGTH)  1. Any value equal to or larger than 3 is valid here  the only restriction is the size of RAMs instantiated for Fifo storage.
WBR_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to WB Read Fifo implementation.
PCIW_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to PCI Write Fifo implementation.
PCIR_ADDR_LENGTH  same as WBW_ADDR_LENGTH, except this applies to PCI Read Fifo implementation.
Fifo RAM instantiation Constants
RAMs are instantiated in pci_tpram.v and wb_tpram.v, each used in PCI Target Unit and WB Slave Unit respectively.
Following defines in pci_user_constants.v influence RAM  storage implementation for all Fifos in the PCI IP Core:
RAM_DONT_SHARE  if defined, than each Fifo in PCI IP Core has storage space implemented in its own RAM instance. That would mean 12 block RAM instances in XILINX FPGA or 4 RAM instances in ASIC. This instances can be dual port ( write and read port in different clock domains ). If this is not defined, RAM sharing between Fifos is performed. Two Fifos use one RAM instance for their storage. That would mean 6 block RAM instances used in XILINX FPGA or 2 RAM instances in an ASIC. This RAM instances must be two port ( read and write port in different clock domains ). When RAM sharing is implemented, Fifos split the RAM address space in half. One half is used for one Fifo, other half for the other.
FPGA  if FPGA is defined, then some restrictions on RAM instantiating apply. 
XILINX - Currently only Xilinx block and distributed RAM instances are supported, which are included into design by defining XILINX in addition to FPGA. Xilinx Block RAMs used are configured as RAMB4_S16_S16, which is dual 16 bit port RAM. It can store 256 entries, so address for this RAM is 8 bit in length ( no exceptions ). For smaller Fifo sizes ( 8 or 16 ), Xilinx distributed RAM instances can be included into the implementation by defining WB_XILINX_DIST_RAM or PCI_XILINX_DIST_RAM. PCI_FIFO_RAM_ADDR_LENGTHand WB_FIFO_RAM_ADDR_LENGTH must be set to 4 in this case.
FPGA not defined  user must generate appropriate RAM instances with RAM generators provided by various ASIC library vendors. RAM has to be 40 bits wide and a size equal to or larger than 8 for Fifo implementations that do not share RAM instances, and equal to or larger than 16 for implementations that share RAMs between FIFOs. Designer is also responsible for defining appropriate RAM address lengths. 
PCI_FIFO_RAM_ADDR_LENGTH  must be equal to address length of instantiated RAM in pci_tpram.v.
WB_FIFO_RAM_ADDR_LENGTH  must be equal to address length of instantiated RAM in wb_tpram.v.
PCI I/O Pads constants
Depending on PCI I/O buffers used, designer may choose how PCI IP Core generates its PCI bus signals output enables.
ACTIVE_HIGH_OE  selects active high output enables generated by the core
ACTIVE_LOW_OE - selects active low output enables generated by the core
Designer must define only one of these two options for given implementation  never both at the same time!
HOST / GUEST implementation selection
HOST  if defined, core will be implemented or simulated with HOST bridge features enabled
GUEST  if defined, core will be implemented or simulated with GUEST bridge features enabled
These two defines are mutually exclusive. PCI IP Core Specification throughout contains all information regarding different behavior of the Core, if implemented as HOST or GUEST.
Image implementation constants
PCI IP Core can be implemented with various number of images for accessing WISHBONE bus address space from PCI bus and vice  versa. 
Optional Read-Only Configuration image implementation
NO_CNF_IMAGE  constant definition prevents Read-Only configuration image to be implemented. Read-Only Configuration space access can be provided through PCI image 0 for HOST implementation of the Core, and through WB image 0 for GUEST implementation. If NO_CNF_IMAGE is defined, then this image is not implemented. This saves one address decoder and one multiplexer in overall design. It is recommended to define this constant, when the Core is used in such an application that does not need this Read-Only access to Configuration space. PCI Bridge implemented as GUEST with CRT controller connected to WB Slave interface is an example application. Although CRT controller has WB Master interface to fetch its own pixel data from PCI bus, it will never need or use access to Bridges Configuration space. So by defining NO_CNF_IMAGE, some additional space is saved.
ADDR_TRAN_IMPL  if defined, address translation functionality is added to decoders for both, PCI and WISHBONE accesses. Address translation implementation is useful when application uses fixed address map, while PCI address map is configurable. If address translation is not needed, this define can be commented out to allow faster decode timing.
PCI images implementation constants
Constants definitions described in this chapter control the number and minimum address range of PCI Target images. PCI image 1 is always implemented, without any exceptions, so no define is provided for it. Image implementation means that all required registers for each image are implemented in Configuration space and each image needs its own decoder. Image constants definitions have quite an impact on Cores size and speed. 
PCI_NUM_OF_DEC_ADDR_LINES  number defined here is used for controlling implementation of PCI images decoders. It defines how many address lines are used for decoding PCI Target accesses and therefore defines what minimum image size can be. Maximum number allowed is 20 ( 4KB minimum image size ) and minimum is 1 ( 2GB minimum image size  this value implies that more than two images cannot be enabled at the same time ). The number of decoded address lines also influences the speed of the Core.
PCI_IMAGE0  this define only has meaning when HOST and NO_CNF_IMAGE are defined also. This enables usage of all 6 PCI Target images for accessing WISHBONE bus address space from PCI address space. Otherwise, PCI_IMAGE0 does not needs to be defined, since it is always used for accessing Configuration space.
PCI_IMAGE2  if defined, PCI Target image 2 is implemented
PCI_IMAGE3  if defined, PCI Target image 3 is implemented
PCI_IMAGE4  if defined, PCI Target image 4 is implemented
PCI_IMAGE5  if defined, PCI Target image 5 is implemented
PCI_AM0, PCI_AM1, PCI_AM2, PCI_AM3, PCI_AM4, PCI_AM5  values defined with this macros are initial ( reset ) values of PCI address masks registers. These are very important if the Core is implemented as GUEST, since configuration is done via PCI Target state machine. If the designer wants an implemented PCI Target image to be detected by device independent software at system power-up, he has to set initial masks to enabled state  MS bit has to be 1. Other bits can have a value of 1 or zero, depending on what size of an image has to be presented to the software. The masks can be set inactive also, but device independent software wont detect implemented PCI Target images and therefore not configure them. Device specific software will then have to jump in to configure images with inactive initial masks defined, which also means that it will probably have to rebuild PCI address space map.
PCI_BA0_MEM_IO, PCI_BA1_MEM_IO, PCI_BA2_MEM_IO, PCI_BA3_MEM_IO, PCI_BA4_MEM_IO, PCI_BA5_MEM_IO  Those are initial values of PCI Base Address registers bits 0. If the Core is configured as HOST, this initial values can later be changed by writing appropriate value to PCI Base Address register x. If the core is GUEST, than this values are hardwired, because device independent software must know in advance where to map each PCI Base Address. 
WISHBONE images implementation constants
Constants definitions described in this chapter control the number and minimum address range of WISHBONE Slave images. WISHBONE image 1 is always implemented, without any exceptions, so no define is provided for it. Image implementation means that all required registers for each image are implemented in Configuration space and each image needs its own decoder. Image constants definitions have quite an impact on Cores size and speed.
WB_NUM_OF_DEC_ADDR_LINES  number defined here is used for controlling implementation of WISHBONE images decoders. It defines how many address lines are used for decoding WISHBONE Slave accesses and therefore defines what minimum image size can be. Maximum number allowed is 20 ( 4KB minimum image size ) and minimum is 1 ( 2GB minimum image size  this value implies that more than two images cannot be enabled at the same time ). The number of decoded address lines also influences the speed of the Core.
WB_IMAGE2  if defined, WB Slave image 2 is implemented
WB_IMAGE3  if defined, WB Slave image 3 is implemented
WB_IMAGE4  if defined, WB Slave image 4 is implemented
WB_IMAGE5  if defined, WB Slave image 5 is implemented
WISHBONE Slave specific constants
WB_DECODE_FAST, WB_DECODE_MEDIUM, WB_DECODE_SLOW  these are all mutually exclusive definitions. They define how many cycles WISHBONE Slave state machine takes to decode an access. WB Slave state machine samples decode information on same clock edge cycle is started when WB_DECODE_FAST is defined. It samples decode data one clock after cycle is started if WB_DECODE_MEDIUM is defined. If WB_DECODE_SLOW is defined, state machine samples decode data two clocks after cycle is started. This defines can or should be taken into account during synthesis to provide information about multicycle paths.
WB_CONFIGURATION_BASE  defines 20 bit value for WISHBONE configuration image address. Those bits are compared to 20 MS bits of WISHBONE Slave address to decode Configuration accesses from WISHBONE bus. This is constant value and cannot be changed after the Core is implemented, since WISHBONE bus does not provide any special mechanism for device configuration.
REGISTER_WBS_OUTPUTS  this define is used mostly when the Core is included into top level application as precompiled macro, because timings cannot be optimized during top level synthesis. WISHBONE Slave state machine registers all outputs when this macro is defined and introduces one wait cycle after every transfer. It also registers all interfaces with core internals to release a burden on WISHBONE Slave inputs also.
PCI specific constants
PCI33, PCI66  these two mutually exclusive defines are used for simulation purposes ( PCI clock speed ) and to set 66MHz Capable bit in PCI Device Status register, if PCI66 is defined. There are no other features dependent on those defines. 
HEADER_VENDOR_ID  each PCI bus compatible hardware vendor gets its 16 bit hexadecimal ID from PCI SIG organization. It should be specified in this define. This value shows up in Vendor ID register of PCI Type0 Configuration Header.
HEADER_DEVICE_ID  Device ID is vendor specific, 16 bit hexadecimal value. It shows up in Device ID register of PCI Type0 Configuration Header.
HEADER_REVISION_ID  Also vendor specific, 8 bit hexadecimal value, that shows up in Revision ID register of PCI Type0 Configuration Header.
WISHBONE Master specific constants
REGISTER_WBM_OUTPUTS  this define is used mostly when the Core is included into top level application as precompiled macro, because timings cannot be optimized during top level synthesis. WISHBONE Master state machine registers all outputs when this macro is defined and introduces one wait cycle after every transfer. It also registers input data and some interfaces with core internals to release a burden on WISHBONE Master control inputs also.
WB_RTY_CNT_MAX  this define is used to prevent deadlock in WB Master state machine for maximum counting value of RTY terminations on WB bus, before ACK or ERR terminations. The last two terminations reset the counter. This counter is also used, when no WB device responds (e.g. if accessing to unused memory locations). In that case internal set_retry signal is set every 8 WB clock periods and counter counts to maximum value defined. 
Changeable constants dependencies
This chapter describes what the user should be aware of when defining / not defining some of the changeable Core constants.
WBW_ADDR_LENGTH, WBR_ADDR_LENGTH  numbers defined cannot have value less than 3, because of Fifos control logic implementation.  WBW(R)_ADDR_LENGTH constant value also depends on value of WB_FIFO_RAM_ADDR_LENGTH and definition of WB_RAM_DONT_SHARE. If WB_RAM_DONT_SHARE is defined, then WBW(R)_ADDR_LENGTH can be defined as any number between 3 and WB_FIFO_RAM_ADDR_LENGTH. Otherwise, WBW(R)_ADDR_LENGTH can be defined as any number between 3 and (WB_FIFO_RAM_ADDR_LENGTH  1).
PCIW_ADDR_LENGTH, PCIR_ADDR_LENGTH  numbers defined cannot have value less than 3, because of Fifo control logic implementation.  PCIW(R)_ADDR_LENGTH constant value also depends on value of PCI_FIFO_RAM_ADDR_LENGTH and definition of PCI_RAM_DONT_SHARE. If PCI_RAM_DONT_SHARE is defined, then PCIW(R)_ADDR_LENGTH can be defined as any number between 3 and PCI_FIFO_RAM_ADDR_LENGTH. Otherwise, PCIW(R)_ADDR_LENGTH can be defined as any number between 3 and (PCI_FIFO_RAM_ADDR_LENGTH  1).
WB_FIFO_RAM_ADDR_LENGTH, PCI_FIFO_RAM_ADDR_LENGTH  depend on other constants only if FPGA is defined. If XILINX is defined, user can select between two possible RAM instances  Block Select RAM+ or Distributed RAM. If WB(PCI)_XILINX_RAMB4 is defined, this selects Block Select RAM+ for WB (PCI) Read and Write Fifos implementation. WB(PCI)_FIFO_RAM_ADDR_LENGTH can only be defined to 8 in this case. If WB(PCI)_XILINX_DIST_RAM is defined, then WB(PCI)_FIFO_RAM_ADDR_LENGTH constant can only be defined to a value of 4. User can use Distributed and Block Select RAM+ in the same design, by defining Block RAM for PCI(WB) Fifos and Distributed RAM for WB(PCI) Fifos. When the Core is to be implemented in an ASIC, user must include appropriate RAM instances into wb_tpram.v and pci_tpram.v under appropriate define and edit these two constants to reflect proper information about instantiated RAM blocks.
WB(PCI)_XILINX_RAMB4  user must define FPGA and XILINX also, to use Xilinx Block RAMs.
WB(PCI)_XILINX_DIST_RAM  user must define FPGA, XILINX and corresponding (WB)PCI_RAM_DONT_SHARE. Distributed RAM cant be shared between Fifos, because it only has one write port.
PCI_NUM_OF_DEC_ADDR_LINES  maximum value can be 20 and minimum 1, which implements minimum PCI image size of 4KB or 2GB respectively. This number also depends on number of implemented PCI images  bridge cannot decode accesses to 6 different images by decoding only 1 bit of address. If 1 or 2 PCI images are implemented, then minimum number of decoded address lines can be 1, if 3 or 4 are implemented, at least two address lines must be decoded and if 5 or 6 images are implemented, at least 3 address lines must be decoded. PCI images are implemented by defining PCI_IMAGE2 through PCI_IMAGE5 and PCI_IMAGE0 for HOST bridge implementation with NO_CNF_IMAGE defined. Note that PCI image 1 is always implemented. PCI image 0 is implemented when bridge is configured as GUEST or when it is configured as HOST and NO_CNF_IMAGE is not defined or PCI_IMAGE0 is defined. 
WB_NUM_OF_DEC_ADDR_LINES  rules described for PCI number of decoded address lines apply to WISHBONE number of decoded address lines also, except the number depends on WISHBONE Images implemented. WISHBONE Image 1 is always implemented. WISHBONE Image 0 is implemented in HOST implementation of the bridge or in GUEST implementation of the bridge when NO_CNF_IMAGE is not defined. Other WISHBONE Images are selected by defining WB_IMAGE2 through WB_IMAGE5.
WB_DECODE_FAST  fast decoding in WISHBONE Slave state machine is possible only when REGISTER_WBS_OUTPUTS is not defined. If REGISTER_WBS_OUTPUTS is defined, then medium decode is implemented in WISHBONE Slave state machine, unless WB_DECODE_SLOW is defined. 
Unchangeable Core Constants
Constants defined in file pci_constants.v in projects rtl/verilog subdirectory are not to be changed by the end user of the core, so they are just described here briefly for reference.
Fifo constants
WBW_DEPTH  size of WB Write Fifo calculated from user constant WBW_ADDR_LENGTH
WBR_DEPTH  size of WB Read Fifo calculated from user constant WBR_ADDR_LENGTH
PCIW_DEPTH  size of PCI Write Fifo calculated from user constant PCIW_ADDR_LENGTH
PCIR_DEPTH  size of PCI Read Fifo calculated from user constant PCIR_ADDR_LENGTH
*_BIT  Fifo Control bus bit positions  used internally by the core for decoding what kind of data or transaction is on top of Fifo.
WISHBONE Slave constants
WB_AM0  20 bit address mask value for WISHBONE configuration image. Used for decoding WISHBONE Configuration accesses and cant be changed.
Configuration registers address constants
*_ADDR  these defines specify the offset of each individual register residing in Configuration space. Defines are also used in testbench for accessing and checking value of registers.
66Mhz Capable bit constant
HEADER_66MHz  specifies a value for 66MHz Capable bit in Device Status register depending on PCI33 and PCI66 defines.


PCI Bridge Testbench
Overview
PCI Bridge testbench consists of a whole environment for testing PCI Bridge including PCI and WISHBONE bus models with bus monitors and test-cases which use those models to stimulate transactions through PCI Bridge. Those transactions are checked when Wishbone Slave Unit and PCI Target Unit operates separately and simultaneously. 

Testbench File Hierarchy
The hierarchy of modules in the Testbench of the PCI Bridge core is shown here with file tree. Each file here implements one module in a hierarchy source files of the Testbench are in the pci\bench\verilog subdirectory.

system.v
.  top.v
. wb_bus_monitor.v*
.     wb_master_behavioral.v
.        .       wb_master32.v
. wb_slave_behavioral.v
. pci_bus_monitor.v
.     pci_blue_arbiter.v
.    pci_behavioral_device.v*
.      .       pci_behaviorial_master.v
.      .       pci_behaviorial_target.v
.      .       delayed_test_pad.v*
.   pci_behavioral_iack_target.v
.  pci_unsupported_commands_master.v

*    Files are used within one module more than once: wb_bus_monitor.v is used within system.v for 2 times, pci_behavioral_device.v is used within system.v for 2 times, delayed_test_pad.v is used within pci_behavioral_device.v for 9 times. 

Testbench Module Hierarchy
Module hierarchy is shown in detail in the following picture. Description of modules and their connections is in the chapter  REF _Ref536333881 \r \h 3.3,  REF _Ref536333881 \h Description of Testbench Modules. 


Figure  STYLEREF 1 \s 3 SEQ Figure \* ARABIC \s 1 1: Testbench module hierarchy
Description of Testbench Modules
The module system.v is used as testing environment and it incorporates beside all test submodules, functions and tasks also Unit Under Test (PCI Bridge). Description of tasks is covered in chapter  REF _Ref536267832 \h Description of Testcases, while all test submodules are described in the following chapters. 

Description of PCI submodules
pci_bus_monitor submodule
The module pci_bus_monitor.v monitors the PCI Bus and tries to see PCI Protocol Errors. This module also has access to the individual PCI Bus OE signals for each behavioral interface (either through extra output ports or through "." notation), and it can see when more than one interface is driving the bus, even of the values are the same. 
Author of this module is Blue Beaver.
pci_blue_arbiter submodule
The module pci_blue_arbiter.v is used for arbitration on the PCI bus. It has 4 external PCI Request/Grant pairs and one internal Request/Grant Pair. All 4 external PCI Request/Grant pairs are used for 2 pci_behavioral_device submodules, pci_unsupported_commands_master submodule and for UUT - PCI Bridge.
Author of this module is Blue Beaver.
pci_behavioral_device submodule
The module pci_behavioral_device.v is used as PCI behavioral interface and includes two submodules for its operation; pci_behavioral_master.v and pci_behavioral_target.v. 
The module pci_behavioral_master.v accepts commands from top-level stimulus task. Regarding the arguments passed to this submodule, it generates appropriate bus command. All bus cycles must terminate as expected by top-level task. It also arbitrates for the bus, sends data when writing, and compares returned data when reading. Comparing of read data is sometimes switched off, e.g. when NO data was written into a location from which a device is reading. Read data is also provided to the top-level (Note: providing codes of operation on AD lines to the PCI Target device is disabled).
The module pci_behavioral_target.v receives PCI commands from the PCI bus. Its termination of cycle is controlled by top-level (Note: providing codes of operation on AD lines to the PCI Target device is disabled). This Target contains Configuration registers and a 256 byte scratch SRAM.  It responds with data when it is given a Read command, and checks data when it is given a Write command.
Author of this module is Blue Beaver.
pci_behavioral_iack_target submodule
The module pci_behavioral_iack_target.v is Target-only module. It is used to respond only to interrupt acknowledge commands, because other models dont respond to that command. When it should respond and the value of the interrupt vector is controlled by top-level.
pci_unsupported_commands_master submodule
The module pci_unsupported_commands_master.v is Master-only module. It is used to generate PCI bus commands, that are not supported by PCI Bridge Target device and those commands can not be generated by pci_behavioral_device.v module. It is also used for parity checking with ability to generate the address parity error on first and/or on second address phase of the DUAL ADDRESS CYCLE bus command. This bus command is unsupported, but parity checker must check for parity errors.
This PCI Master module waits for master-abort termination of the initiated bus cycle.

Description of WB submodules
wb_bus_monitor submodule
The module wb_bus_monitor.v monitors the WB Bus and tries to see WB Protocol Errors. There are two point-to-point WB buses (WB master from PCI Target Unit and WB slave from WB Slave Unit), and two WB bus monitors, one for each WB bus.
wb_master_behavioral submodule
The module wb_master_behavioral.v is used to initiates WB cycles to WB Slave in the PCI bridge. That is controlled by top-level. This module also includes a submodule wb_master32.v, which is used to generate proper WB cycles. The length and type of each cycle is controlled by wb_master_behavioral.v module.
wb_slave_behavioral submodule
The module wb_slave_behavioral.v responds to cycles initiated by WB Master in the PCI bridge. When to respond and a type of cycle termination is controlled by top-level. This module also incorporates a block of SRAM.

Description of Testcases
There are some tasks not used as testcases (e.g. fill_memory, do_reset and specific tasks for initializing some registers, see chapters  REF _Ref536370713 \n \h 3.4.1 and  REF _Ref536370734 \n \h 3.4.2), but are significant for proper working of testbench. But there are some tasks used as basic tasks for all testcases (e.g. DO_REF  located in system.v module, wishbone_master.wb_single_write  located in wb_master_behavioral.v module, and other wishbone_master.wb_ tasks).
All Testcases are in system.v file and are sometimes combined with more tasks or are just a part of one task. Testcases are controlled in a task run_tests; some system parameters (behavioral master and target wait cycles  tb_init_waits, tb_subseq_waits; behavioral target response time  tb_target_decode_speed) are used with all possible combinations while running all testcases (most of testcases are used more than one time). In the following chapters basic descriptions for groups of testcases are presented. Each testcase has its name with a test type meaning. For deeper explanations of testcases see the comments in the system.v file.
Testbench also provide log files as a result of all tests into pci/sim/rtl_sim/log directory. File pci_tb.log has all testcases results written as SUCCESSFULL or FAIL. Files pci_mon.log, wbu_mon.log and pciu_mon.log report any wrong and suspicious activities on PCI and both WB buses. 

Description of WBU Testcases
Before running testcases for WBU, some initialization must be done. 
With task configure_bridge_target, some registers in PCI Bridge Target are initialized (master and target are enabled, base address register 0 is set and enabled).
With task configure_target each behavioral PCI target is initialized.
Task find_pci_devices executes only if PCI Bridge is implemented as HOST. It is not referenced in any log file as a testcase, since it is like a part of initialization. It checks if all PCI devices are connected correctly in the testbench with PCI Master configuration cycles.
Testcases for Configuration
Testcases described here are fundamental for all tests to pass successful. They set the configuration of the WBU of the PCI Bridge, but they dont test WB to PCI accesses. Because of that, they are not listed in the pci_tb.log file.

Following testcases are for configuring normal writes and reads through IMAGEs. Task location for testcases is: run_tests > test_wb_image.
"WB IMAGE CONFIGURATION" 
"CONFIGURE ADDRESS TRANSLATION FOR WISHBONE IMAGE" 
"CHANGE WB IMAGE BASE ADDRESS" 
"ENABLE WB IMAGE ADDRESS TRANSLATION" 
"ENABLING/DISABLING IMAGE'S FEATURES" 
"DISABLING WB IMAGE" 

Following testcases are for configuring erroneous WB writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_slave_errors.
"CONFIGURING IMAGE FOR WB SLAVE ERROR TERMINATION TESTING" 
"RECONFIGURING IMAGE TO I/O MAPPED ADDRESS SPACE" 
"DISABLE IMAGE" 

Following testcases are for configuring erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling.
"CONFIGURING BRIDGE FOR PCI ERROR TERMINATION RESPONSE BY WB SLAVE TESTING"
"SETUP BRIDGE FOR TARGET ABORT HANDLING TESTS"

Following testcases are for configuring parity checking during writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"CONFIGURE BRIDGE FOR PARITY CHECKER FUNCTIONS TESTING"
"CLEARING PARITY ERROR STATUSES"
"CLEARANCE OF PARITY INTERRUPT STATUSES"
"DISABLE USED IMAGES"

Following testcases are for configuring transactions during writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_transactions.
"BRIDGE CONFIGURATION FOR TRANSACTION TESTING"
"RECONFIGURE PCI MASTER/WISHBONE SLAVE"
"DISABLE_IMAGE"
Testcases for IMAGEs Tests
Following testcases are for testing normal writes and reads through IMAGEs. Task location for testcases is: run_tests > test_wb_image.
"NORMAL SINGLE MEMORY WRITE THROUGH WB IMAGE TO PCI"
"NORMAL SINGLE MEMORY READ THROUGH WB IMAGE FROM PCI"
"NORMAL SINGLE MEMORY WRITE THROUGH WB IMAGE TO PCI WITH ADDRESS TRANSLATION"
"CAB MEMORY WRITE THROUGH WB SLAVE TO PCI"
"CAB MEMORY READ THROUGH WB SLAVE FROM PCI"
"CAB MEMORY READ THROUGH WB IMAGE WITH READ BURSTING ENABLED"
"SINGLE MEMORY READ THROUGH WB IMAGE WITH READ BURSTING ENABLED"
"I/O WRITE TRANSACTION FROM WB TO PCI TEST"
"I/O READ TRANSACTION FROM WB TO PCI TEST"

Following testcases are for testing erroneous WB writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_slave_errors.
"SINGLE ERRONEOUS MEMORY WRITE TO WB SLAVE"
"SINGLE ERRONEOUS MEMORY READ TO WB SLAVE"
"ERRONEOUS CAB MEMORY WRITE TO WB SLAVE"
"ERRONEOUS CAB MEMORY READ TO WB SLAVE"
"ERRONEOUS I/O WRITE TO WB SLAVE"
"ERRONEOUS I/O READ TO WB SLAVE"
"CAB I/O WRITE TO WB SLAVE"
"CAB I/O READ TO WB SLAVE"
"ERRONEOUS WB CONFIGURATION WRITE ACCESS"
"ERRONEOUS WB CONFIGURATION READ ACCESS"
"WB CAB CONFIGURATION WRITE ACCESS"
"WB CAB CONFIGURATION READ ACCESS"

Following testcases are for testing erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling. 
"MASTER ABORT ERROR HANDLING DURING WB TO PCI WRITES"
"MASTER ABORT ERROR HANDLING FOR WB TO PCI READS"
"MASTER ABORT ERROR DURING CAB READ FROM WB TO PCI"
"TARGET ABORT ERROR ON SINGLE WRITE"
"TARGET ABORT ERROR ON CAB MEMORY WRITE"
"TARGET ABORT TERMINATION ON SECOND DATA PHASE OF BURST WRITE"
"TARGET ABORT DURING SINGLE MEMORY READ"
"TARGET ABORT ERROR DURING SECOND DATAPHASE OF BURST READ"
"TARGET ABORT ERROR DURING LAST DATAPHASE OF BURST READ"
"ERROR REPORTING FUNCTIONALITY FOR I/O WRITE"

Following testcases are for testing parity during PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"RESPONSE TO TARGET ASSERTING PERR DURING MASTER WRITE"
"RESPONSE TO TARGET ASSERTING PERR DURING MASTER WRITE WITH PARITY ERROR RESPONSE ENABLED"
"MASTER WRITE WITH NO PARITY ERRORS"
"BRIDGE'S RESPONSE TO PARITY ERRORS DURING MASTER READS"
"NO PERR ASSERTION ON MASTER READ WITH PAR. ERR. RESPONSE DISABLED"
"MASTER READ TRANSACTION WITH NO PARITY ERRORS"
"NO SERR ASSERTION AFTER ADDRESS PARITY ERROR, SERR DISABLED AND PAR. ERR. RESPONSE ENABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR DISABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR RESPONSE WITH SERR AND PARITY ERROR RESPONSE ENABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. ENABLED"
"NO SERR ASSERTION ON ADDRESS PARITY ERROR WITH SERR ENABLED AND PAR. ERR. RESPONSE DISABLED"
"ADDRESS PARITY ERROR ON FIRST DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"ADDRESS PARITY ERROR ON SECOND DATA PHASE OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"ADDRESS PARITY ERROR ON BOTH DATA PHASES OF DUAL ADDRESS CYCLE - SERR ENABLED, PAR. RESP. DISABLED"
"EXTERNAL WRITE WITH NO PARITY ERRORS"
"INVALID PAR ON WRITE REFERENCE THROUGH BRIDGE'S TARGET - PERR RESPONSE ENABLED"
"PARITY ERROR HANDLING ON TARGET READ REFERENCE"

Following testcases are for testing transactions during writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_transactions.
"SINGLE POSTED WRITE TRANSACTION PROCESSING ON PCI"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI RETRIED FIRST TIME"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI RETRIED SECOND TIME"
"SINGLE POSTED WRITE FROM WISHBONE TO PCI DISCONNECTED"
"BURST LENGTH 2 POSTED WRITE TRANSACTION PROCESSING ON PCI"
"BURST LENGTH 2 POSTED WRITE STARTS WITH RETRY"
"BURST LENGTH 2 POSTED WRITE RETRIED SECOND TIME DISCONNECTED ON FIRST DATAPHASE"
"BURST LENGTH 2 POSTED WRITE NORMAL COMPLETION AFTER DISCONNECT "
"BURST LENGTH 2 POSTED WRITE DISCONNECTED AFTER FIRST DATAPHASE FIRST TIME"
"BURST LENGTH 2 POSTED WRITE DISCONNECTED WITH SECOND DATAPHASE SECOND TIME"
"BURST LENGTH 2 POSTED WRITE TRANSACTION PROCESSING ON PCI WITH NORMAL COMPLETION"
"BURST LENGTH 3 POSTED WRITE TRANSACTION PROCESSING ON PCI"
"BURST LENGTH 3 POSTED WRITE TRANSACTION DISCONNECT ON FIRST DATAPHASE FIRST TIME"
"BURST LENGTH 3 POSTED WRITE TRANSACTION DISCONNECT ON SECOND DATAPHASE SECOND TIME"
"BURST LENGTH 3 POSTED WRITE DISCONNECTED ON SECOND FIRST TIME"
"BURST LENGTH 3 POSTED WRITE DISCONNECTED ON FIRST SECOND TIME"
"BURST LENGTH 3 POSTED WRITE TRANSACTION WITH NORMAL COMPLETION"
"BURST LENGTH OF WISHBONE FIFO DEPTH POSTED MEMORY WRITE"
"FULL WRITE FIFO BURST RETRIED FIRST TIME"
"FULL WRITE FIFO BURST DISCONNECT WITH FIRST SECOND TIME"
"FULL WRITE FIFO BURST DISCONNECT AFTER FIRST THIRD TIME"
"FULL WRITE FIFO BURST DISCONNECT WITH SECOND FOURTH TIME"
"REMAINDER OF FULL WRITE FIFO BURST NORMAL COMPLETION FIFTH TIME"
"READ DATA BURSTED TO TARGET BACK AND CHECK VALUES"
"SINGLE READ TRANSACTION PROCESSING ON PCI"
"SINGLE MEMORY READ RETRIED FIRST TIME"
"SINGLE MEMORY READ DISCONNECTED WITH FIRST SECOND TIME"
"FILL TARGET MEMORY WITH DATA"
"SINGLE READ TO PUSH WRITE DATA FROM FIFO"
"BURST READ WITH DISCONNECT ON FIRST"
"BURST READ WITH DISCONNECT AFTER FIRST"
"BURST READ WITH DISCONNECT ON SECOND - TAKE OUT ONLY ONE"
"BURST READ WITH NORMAL TERMINATION"
"NORMAL BURST READ WITH NORMAL COMPLETION, MEMORY READ LINE DISABLED, PREFETCH ENABLED, BURST SIZE 4"
"SINGLE READ WITH FUNNY BYTE ENABLE COMBINATION"
"BURST READ WITH NORMAL COMPLETION FILLING FULL FIFO - MRL AND PREFETCH BOTH ENABLED"
"SINGLE CAB READ FOR FLUSHING STALE READ DATA FROM FIFO"
"WB BURST READ WHEN CACHE LINE SIZE VALUE IS INVALID"
"WB BURST READ WHEN CACHE LINE SIZE VALUE IS ZERO"
"LATENCY TIMER OPERATION ON PCI MASTER WRITE"
"BURST WRITE DATA DISCONNECTED BY LATENCY TIMEOUT"
"LATENCY TIMER OPERATION DURING MASTER READ"

Following testcases are for testing interrupt acknowledge cycles. Task location for testcases is: run_tests > iack_cycle.
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH MASTER ABORT"
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH NORMAL COMPLETION"
"INTERRUPT ACKNOWLEDGE CYCLE GENERATION WITH NORMAL COMPLETION AND FUNNY BYTE ENABLES"
Testcases for Verification
Following testcase is for testing normal writes and reads through IMAGEs. Task location for testcase is: run_tests > test_wb_image.
"CHECK MAXIMUM IMAGE SIZE"

Following testcases are for testing erroneous PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > wb_to_pci_error_handling.
"CHECKING ERROR REPORTING FUNCTIONS AFTER MASTER ABORT ERROR"
"CHECKING INTERRUPT REQUESTS AFTER MASTER ABORT ERROR"
"CHECKING PCI DEVICE STATUS REGISTER VALUE AFTER MASTER ABORT"
"CHECKING MASTER ABORT ERROR HANDLING ON CAB MEMORY WRITE"
"CHECKING ERROR REPORTING REGISTERS' VALUES AFTER MASTER ABORT ERROR"
"CHECKING INTERRUPT REQUESTS AFTER CLEARING THEM"
"CHECK NORMAL WRITING/READING FROM WISHBONE TO PCI AFTER ERRORS WERE PRESENTED"
"CHECKING ERROR STATUS AFTER MASTER ABORT ON READ"
"CHECK PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT ON DELAYED READ"
"CHECK PCI DEVICE STATUS REGISTER AFTER READ TERMINATED WITH MASTER ABORT"
"NORMAL SINGLE MEMORY WRITE IMMEDIATELY AFTER ONE TERMINATED WITH TARGET ABORT"
"NORMAL SINGLE MEMORY READ AFTER WRITE TERMINATED WITH TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES CHECK AFTER WRITE TARGET ABORT"
"PCI DEVICE STATUS VALUE CHECK AFTER WRITE TARGET ABORT"
"WB ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER CLEARING ERROR STATUS"
"INTERRUPT REQUEST ASSERTION AFTER ERROR REPORTING TRIGGER"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER TARGET ABORTED MEMORY WRITE"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER CLEARING STATUS BITS"
"WB ERROR STATUS REGISTER VALUE CHECK AFTER CLEARING STATUS BIT"
"WB ERROR STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"PCI DEVICE STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"INTERRUPT STATUS REGISTER VALUE CHECK AFTER READ TERMINATED WITH TARGET ABORT"
"CHECK NORMAL BURST READ AFTER TARGET ABORT TERMINATED BURST READ"
"WB ERROR STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"
"WB ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES AFTER MASTER ABORTED I/O WRITE"
"INTERRUPT STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER MASTER ABORTED I/O WRITE"

Following testcases are for testing parity during PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > parity_checking.
"CHECK PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR DURING MASTER WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR DURING MASTER WRITE - PAR. ERR. RESPONSE ENABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL MEMORY WRITE"
"INTERRUPT REQUEST ASSERTION AFTER PARITY ERROR"
"PCI DEVICE STATUS REGISTER VALUE AFTER MASTER READ PARITY ERROR"
"INTERRUPT STATUS REGISTER AFTER MASTER READ PARITY ERROR"
"INTERRUPT REQUEST CHECK AFTER READ PARITY ERROR WITH PARITY ERROR RESPONSE DISABLED"
"INTERRUPT STATUS REGISTER VALUE AFTER MASTER READ PARITY ERROR WITH PAR. ERR. RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL READ"
"INTERRUPT STATUS REGISTER VALUE AFTER NORMAL READ"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR AND SERR DISABLED"
"INTERRUPT REQUEST AFTER ADDRESS PARITY ERROR"
"INTERRUPT REQUEST AFTER ADDRESS PARITY ERROR WAS PRESENTED ON PCI"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR ON PCI"
"INTERRUPT STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR ON PCI"
"INTERRUPT REQUEST AFTER ADDR. PARITY ERROR WITH PERR RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDR PERR WITH PERR RESPONSE DISABLED"
"INTERRUPT STATUS REGISTER VALUE AFTER ADDR PERR WITH PERR RESPONSE DISABLED"
"PCI DEVICE STATUS REGISTER VALUE AFTER ADDRESS PARITY ERROR AND PERR DISABLED"
"INTERRUPT REQUESTS AFTER NORMAL EXTERNAL MASTER WRITE"
"PCI DEVICE STATUS REGISTER VALUE AFTER NORMAL EXTERNAL MASTER WRITE"
"INTERRUPT STATUS REGISTER VALUE AFTER NORMAL EXTERNAL MASTER WRITE"
"INTERRUPT REQUESTS AFTER TARGET WRITE REFERENCE PARITY ERROR"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET REFERENCE"
"INTERRUPT STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET REFERENCE"
"INTERRUPT REQUESTS AFTER PERR ON READ REFERENCE THROUGH BRIDGE'S TARGET"
"PCI DEVICE STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET READ REFERENCE"
"INTERRUPT STATUS REGISTER VALUE AFTER PARITY ERROR ON TARGET READ REFERENCE"

Description of PCIU Testcases
Before running testcases for PCIU, some initialization must be done. 
With task configure_bridge_target_base_addresses, PCI Bridge Target is initialized (master and target are enabled, all implemented base address registers are set and enabled).
Testcases for Configuration
Testcases described here are fundamental for all tests to pass successful. They set the configuration of the PCIU of the PCI Bridge, but they dont test PCI to WB accesses. Because of that, they are not listed in the pci_tb.log file.

Following testcases are for configuring normal writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_normal_wr_rd.
"PCI IMAGE SETTINGS"
"CONFIGURE BRIDGE FOR NORMAL TARGET READ/WRITE"

Following testcases are for configuring erroneous WB writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"CONFIGURE BRIDGE FOR ERROR TERMINATED WRITES THROUGH PCI TARGET UNIT"
"CLEARING STATUS BITS AFTER WRITE TERMINATED WITH ERROR ON WB"
"INTERRUPT REQUEST FINISHED AFTER PCI ERROR INTERRUPT STATUS IS CLEARED"
"CONFIGURE BRIDGE FOR ERROR TERMINATED READS THROUGH PCI TARGET UNIT"
"DISABLE IMAGE"

Following testcases are for configuring normal writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image.
"PCI IMAGE SETTINGS"
"ENABLE/DISABLE ADDRESS TRANSLATION"

Following testcases are for configuring erroneous writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_wb_error_rd.
"ENABLE/DISABLE ADDRESS TRANSLATION"
"ENABLE/DISABLE ERROR REPORTING"
"ENABLE/DISABLE PCI ERROR INTERRUPTS"
"CLEAR ERROR STATUS"
"CLEARING INTERRUPT STATUS"
"CONFIGURE BRIDGE FOR ERROR TERMINATED READS THROUGH PCI TARGET UNIT"
"DISABLE IMAGE"

Following testcases are for configuring fast back-to-back writes and reads through IMAGEs. Task location for testcases is: run_tests > target_fast_back_to_back.
"CONFIGURE TARGET FOR FAST B2B TESTING"
"DISABLING MEM IMAGE"
"DISABLING IO IMAGE"

Following testcases are for configuring target disconnects on PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > target_disconnects.
"CONFIGURE TARGET FOR DISCONNECT TESTING"
"DISABLING MEMORY IMAGE"
"DISABLING IO IMAGE"

Following testcases are for configuring target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_target_abort.
"CONFIGURE TARGET FOR TARGET ABORT TESTING"
"DISABLE IMAGE"

Following testcases are for configuring transaction ordering during writes and reads through WBU and PCIU simultaneously. Task location for testcase is: run_tests > transaction_ordering.
"BRIDGE CONFIGURATION FOR TRANSACTION ORDERING TESTS"

Testcases for IMAGEs Tests
Following testcases are for testing normal writes and reads through MEMORY IMAGEs (singles and bursts). Task location for testcases is: run_tests > test_pci_image > test_normal_wr_rd.
"NORMAL POSTED WRITE THROUGH PCI TARGET UNIT"
"NORMAL MEMORY READ THROUGH PCI TARGET UNIT"

Following testcases are for testing erroneous WB writes and reads through MEMORY IMAGEs (singles and bursts). Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ON FIRST TRANSFER"
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ONE BEFORE LAST TRANSFER"
"POSTED WRITE THROUGH PCI TARGET ERROR TERMINATION ON WB ON LAST TRANSFER"
"SINGLE READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON FIRST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON SECOND DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON LAST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON ONE BEFORE LAST DATAPHASE"
"FULL FIFO BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE ON LAST DATAPHASE"
"FULL FIFO BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE BEFORE LAST DATAPHASE"
"BURST READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE, ERROR NOT PULLED OUT ON PCI"

Following testcases are for testing normal writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_target_io_wr_rd.
"BYTE ADDRESSABLE WRITES THROUGH TARGET IO IMAGE"
"READ BY WORDS IO DATA PREVIOUSLY WRITTEN BY BYTES"

Following testcases are for testing erroneous writes and reads through I/O IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_target_io_err_wr.
"POST IO WRITE THAT WILL BE TERMINATED WITH ERROR ON WISHBONE"
"SINGLE I/O READ THROUGH PCI TARGET TERMINATED WITH ERROR ON WISHBONE"

Following testcases are for testing NO target response (master abort) on unsupported PCI  bus commands. Task location for testcases is: run_tests > test_pci_image > target_unsupported_cmds.
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - IACK"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - SPECIAL"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED0"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED1"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED2"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - RESERVED3"
"MASTER ABORT WHEN ACCESSING TARGET WITH UNSUPPORTED BUS COMMAND - DUAL_ADDR_CYC"

Following testcases are for testing fast back-to-back writes and reads through IMAGEs. Task location for testcases is: run_tests > target_fast_back_to_back.
"FAST BACK TO BACK THROUGH TARGET - FILL WRITE FIFO, CHECK RETRY ON FAST B2B WRITE"
"FAST BACK TO BACK THROUGH TARGET - BOTH WRITES SMALL ENOUGH TO PROCEEDE THROUGH FIFO"
"FAST BACK TO BACK THROUGH TARGET - FIRST WRITE FULL FIFO, THEN READ BACK"
"FAST BACK TO BACK THROUGH TARGET - TWO SINGLE IO WRITES"
"FAST BACK TO BACK THROUGH TARGET - FIRST I/O WRITE, THEN READ BACK"

Following testcases are for testing target disconnects on PCI writes and reads through IMAGEs. Task location for testcases is: run_tests > target_disconnects.
"TARGET DISCONNECT ON BURST WRITE TO CONFIGURATION SPACE"
"TARGET DISCONNECT ON BURST READ FROM CONFIGURATION SPACE"
"TARGET DISCONNECT WHEN WRITE FIFO FILLED DURING BURST WRITE"
"TARGET DISCONNECT WHEN READ FIFO IS EMPTIED DURING BURST READ"
"TARGET DISCONNECT ON WRITES WITH UNSUPPORTED WRAPING MODES"
"TARGET DISCONNECT ON READS WITH UNSUPPORTED WRAPING MODES"
"TARGET DISCONNECT ON BURST WRITE TO IO SPACE"
"TARGET DISCONNECT ON BURST READ TO IO SPACE"

Following testcases are for testing target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_target_abort.
"TARGET ABORT SIGNALING ON I/O ACCESSES WITH INVALID ADDRESS/BYTE ENABLE COMBINATION"

Following testcases are for testing transaction ordering during writes and reads through WBU and PCIU simultaneously. Task location for testcases is: run_tests > transaction_ordering.
"SIMULTANEOUS WRITE REFERENCE TO WB SLAVE AND PCI TARGET"
"SIMULTANEOUS WRITE REFERENCE TO PCI TARGET AND WB SLAVE"
"SIMULTANEOUS MULTI BEAT WRITES THROUGH WB SLAVE AND PCI TARGET"
"SIMULTANEOUS MULTI BEAT WRITE REFERENCE TO PCI TARGET AND WB SLAVE"
"ORDERING OF TRANSACTIONS MOVING IN SAME DIRECTION - WRITE THROUGH WB SLAVE, READ THROUGH PCI TARGET"
"ORDERING OF TRANSACTIONS MOVING IN SAME DIRECTION - WRITE THROUGH PCI TARGET, READ THROUGH WB SLAVE"

Testcases for Verification
Following testcase is for testing normal writes and reads through IMAGEs. Task location for testcase is: run_tests > test_pci_image > test_normal_wr_rd.
"PCI ERROR STATUS AFTER NORMAL WRITE/READ"

Following testcases are for testing erroneous PCI writes and reads through MEMORY IMAGEs. Task location for testcases is: run_tests > test_pci_image > test_wb_error_wr.
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR"
"PCI ERRONEOUS DATA REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR ON WB"
"PCI ERRONEOUS ADDRESS REGISTER VALUE AFTER WRITE TERMINATED WITH ERROR ON WB"
"INTERRUPT ASSERTION AND STATUS AFTER WRITE TERMINATED WITH ERROR ON WB"
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER READ THROUGH TARGET TERMINATED WITH TARGET ABORT"
"ALL PCI DEVICE STATUSES AFTER ERRONEOUS TARGET READS"

Following testcases are for testing erroneous writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_pci_image > test_target_io_err_wr.
"INTERRUPT REQUEST ASSERTION AFTER ERROR TERMINATED WRITE ON WISHBONE"
"ERROR STATUS REGISTER VALUE CHECK AFTER ERROR TERMINATED POSTED IO WRITE ON WISHBONE"
"ERRONEOUS ADDRESS AND DATA REGISTERS' VALUES CHECK AFTER WRITE TERMINATED WITH ERROR ON WISHBONE"
"INTERRUPT STATUS REGISTER VALUE AFTER ERROR TERMINATED WRITE ON WISHBONE"
"INTERRUPT REQUEST DEASSERTION AFTER CLEARING INTERRUPT STATUS"
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"PCI ERROR CONTROL AND STATUS REGISTER VALUE AFTER READ THROUGH TARGET TERMINATED WITH TARGET ABORT"

Following testcases are for testing target aborts on PCI writes and reads through I/O IMAGEs. Task location for testcase is: run_tests > test_target_abort.
"PCI DEVICE STATUS REGISTER VALUE AFTER TARGET ABORT"
"ERROR CONTROL AND STATUS REGISTER VALUE CHECK AFTER TARGET ABORTS"

Testbench Constants
There are three files with constants for whole testbench. Two of them are for behavioral models of Blue Beaver, pci_blue_options.vh and pci_blue_constants.vh. There were some additional lines added into this two files so we can use all features needed for testing PCI Bridge. The third file, for testbench and other behavioral models, is pci_testbench_defines.v. 
All constants in all three files are set to test all possible combinations on WB and/or PCI buses. So none of those constants should be changed (see chapter  REF _Ref536515790 \r \h 3.5.2  REF _Ref536515837 \h Unchangeable Testbench Constants), except those mentioned below (see chapter  REF _Ref536514856 \r \h 3.5.1  REF _Ref536514856 \h Changeable Testbench Constants). All constants described are from pci_testbench_defines.v file.

Changeable Testbench Constants
Constants written in a pci_testbench_defines.v file under section Changeable testbench defines (constants) are described herein.
Following define affects the execution of the testbench:
STOP_ON_FAILURE  if defined, testbench will stop when a testcase fails.
Value in the following define affects a ratio of WB to PCI clocks:
WB_FREQ  number defined here defines WB clock frequency in GHz (e.g. 0.025 = 25 MHz). PCI clock is fixed (33 MHz). 
Following constants can be changed, but must be very carefully set. IMAGEs are NOT allowed to interleave on a PCI bus. See PCI IP Core Specification document for more details on how to set IMAGEs.
Values in following defines define base addresses of implemented PCI IP Core IMAGEs:
TAR0_BASE_ADDR_0, TAR0_BASE_ADDR_1, TAR0_BASE_ADDR_2, TAR0_BASE_ADDR_3, TAR0_BASE_ADDR_4, TAR0_BASE_ADDR_5  numbers defined here define 32 bit values for each PCI IMAGEs base address. They are written into PCI Bridge during initialization. 
Which base addresses are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define address masks of implemented PCI IP Core IMAGEs:
TAR0_ADDR_MASK_0, TAR0_ADDR_MASK_1, TAR0_ADDR_MASK_2, TAR0_ADDR_MASK_3, TAR0_ADDR_MASK_4, TAR0_ADDR_MASK_5  numbers defined here define 32 bit values for each PCI IMAGEs address mask. This defines the size of each IMAGE. They are written into PCI Bridge during initialization. 
Which address masks are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define translation addresses of implemented PCI IP Core IMAGEs:
TAR0_TRAN_ADDR_0, TAR0_TRAN_ADDR_1, TAR0_TRAN_ADDR_2, TAR0_TRAN_ADDR_3, TAR0_TRAN_ADDR_4, TAR0_TRAN_ADDR_5  numbers defined here define 32 bit values for each PCI IMAGEs translation address. This defines how base address is translated from PCI to WB side. They are written into PCI Bridge during initialization. 
Which translation addresses are implemented and the number of valid MSBits depend on changeable constants (NO_CNF_IMAGE, PCI_IMAGE0, PCI_IMAGE2  5 and PCI_NUM_OF_DEC_ADDR_LINES) described in a chapter  REF _Ref536519039 \w \h 2.4.7  REF _Ref536519405 \h PCI images implementation constants. 
Values in following defines define starting and ending base addresses of behavioral PCI target IMAGEs:
BEH_TAR1_MEM_START, BEH_TAR1_MEM_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI MEMORY IMAGE. They are written into behavioral PCI device 1 during initialization. 
BEH_TAR1_IO_START, BEH_TAR1_IO_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI IO IMAGE. They are written into behavioral PCI device 1 during initialization. 
BEH_TAR2_MEM_START, BEH_TAR2_MEM_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI MEMORY IMAGE. They are written into behavioral PCI device 2 during initialization. 
BEH_TAR2_IO_START, BEH_TAR2_IO_END  numbers defined here define 32 bit values for starting and ending base addresses of PCI IO IMAGE. They are written into behavioral PCI device 2 during initialization. 

Unchangeable Testbench Constants
Constants written in a pci_testbench_defines.v file under section User-unchangeable testbench defines (constants) are mentioned herein. Basic descriptions can be found in a file where they are defined. 



This section contains an alphabetical list of helpful document entries with their corresponding page numbers.
 INCLUDEPICTURE "http://www.opencores.org/logos/jng3.gif" \* MERGEFORMATINET OpenCores        PCI IP Core Design document      DATE \@ "d.M.yyyy" 28.1.2002




 HYPERLINK "http://www.opencores.org" http://www.opencores.org         Rev 0.1  PAGE iv 

 INCLUDEPICTURE "http://www.opencores.org/logos/jng3.gif" \* MERGEFORMATINET OpenCores        PCI IP Core Design document      DATE \@ "d.M.yyyy" 28.1.2002






PAGE \# "'Page: '#''"  Sledeca slika  old stuff gre lahko ven, oziroma ce se da updejatat tako, kot je OC design guidelines  itak bo treba tako naredit direktorije!





 "pr{|d
¾±}q}cq}qj}UmHnHujUmHnHumHnHu0JaJHmHnHu&j>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHu:;j:;UCJHmH      sH     mHsH55CJ mHnHuj5CJ U5CJ 6CJ 5CJ45OJQJ\% !"H\pqr{
$
f!@&a$DC$EƀޛVFC$$
f!a$@&
f!ihkll"$IfC$ /;PJJJJJ"$If$$Ifl4\3!<c  
$
f!@&a$DC$EƀޛVFC$$
f!a$@&
f!ihkll"$IfC$ /;PJJJJJ"$If$$Ifl4\3!<c  
t(&&&&04
t(&&&&04
la;<@IUdlffffflffff"$If$$Ifl\3!<c
la;<@IUdlffffflffff"$If$$Ifl\3!<c
t04
t04
lalffffldb`Z
!
lalffffldb`Z
!
"$If$$Ifl\3!<c
"$If$$Ifl\3!<c
t04
t04
la
la
123478PQRlmnopqrst㷩s㷩ejqUmHnHu&j>*B*UmHnHphujwUmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHu&j>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHu5;CJaJmHnHsH     u'r3._          *
123478PQRlmnopqrst㷩s㷩ejqUmHnHu&j>*B*UmHnHphujwUmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHu&j>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHu5;CJaJmHnHsH     u'r3._          *
L#y-


K
!
L#y-


K
!

!

!

!

!

!

!
-./012345QRSTcdeƸưиxj[5;CJaJmHnHsH       ujeUmHnHu0JaJHmHnHu&j>*B*UmHnHphujkUmHnHujUmHnHumHnHu:CJaJmHnHsH  u0JaJ mHnHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHumHnHu#
()*+,-./0LM̶̾־̶̾t־jYUmHnHu&j>*B*UmHnHphumHnHuj_UmHnHujUmHnHumHnHu:CJaJmHnHsH     u0JaJ mHnHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHu%MNOTUjkl
           տߝyky]kߝjMUmHnHu:CJaJmHnHsH      u0JaJ mHnHu&j>*B*UmHnHphumHnHu0JmHnHujSUmHnHujUmHnHumHnHu6CJaJmHnHsH u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu$                        <	=	>      X     Y     Z     \     ]     ^     _     `     a     }     ~                                                                                                         տߝտuߝa&j
-./012345QRSTcdeƸưиxj[5;CJaJmHnHsH       ujeUmHnHu0JaJHmHnHu&j>*B*UmHnHphujkUmHnHujUmHnHumHnHu:CJaJmHnHsH  u0JaJ mHnHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHumHnHu#
()*+,-./0LM̶̾־̶̾t־jYUmHnHu&j>*B*UmHnHphumHnHuj_UmHnHujUmHnHumHnHu:CJaJmHnHsH     u0JaJ mHnHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHu%MNOTUjkl
           տߝyky]kߝjMUmHnHu:CJaJmHnHsH      u0JaJ mHnHu&j>*B*UmHnHphumHnHu0JmHnHujSUmHnHujUmHnHumHnHu6CJaJmHnHsH u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu$                        <	=	>      X     Y     Z     \     ]     ^     _     `     a     }     ~                                                                                                         տߝտuߝa&j
>*B*UmHnHphujA
>*B*UmHnHphujA
UmHnHu&j     >*B*UmHnHphumHnHu0JmHnHujG     UmHnHujUmHnHumHnHu6CJaJmHnHsH      u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu&              
UmHnHu&j     >*B*UmHnHphumHnHu0JmHnHujG     UmHnHujUmHnHumHnHu6CJaJmHnHsH      u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu&              


#
#
$
$
%
%
'
'
(
(
)
)
*
*
+
+
,
,
H
H
I
I
J
J
K
K
R
R
S
S
h
h
i
i
j
j
׼׼rj/
UmHnHu&j>*B*UmHnHphuj5UmHnHu&j>*B*UmHnHphumHnHuj0JUmHnHuj;UmHnHujUmHnHumHnHuCJaJmHnHsH u0JmHnHu,
׼׼rj/
UmHnHu&j>*B*UmHnHphuj5UmHnHu&j>*B*UmHnHphumHnHuj0JUmHnHuj;UmHnHujUmHnHumHnHuCJaJmHnHsH u0JmHnHu,
)*+EFGIJKLMNjklmtu˱ˏj#UmHnHu&j>*B*UmHnHphuj)UmHnHu&j
>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH        uj0JUmHnHujUmHnHumHnHu, !"#$%ABCDKLVWXrstvwxyz{տߝߝwiwߝjUmHnHuCJaJmHnHsH u&j>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu6CJaJmHnHsH      u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu$
)*+EFGIJKLMNjklmtu˱ˏj#UmHnHu&j>*B*UmHnHphuj)UmHnHu&j
>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH        uj0JUmHnHujUmHnHumHnHu, !"#$%ABCDKLVWXrstvwxyz{տߝߝwiwߝjUmHnHuCJaJmHnHsH u&j>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu6CJaJmHnHsH      u0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu$



&
'
(
*
+
,
-
.
/
K
L
M
N
U
V
i
j
÷é÷ף׏÷Á÷ףm&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphumHnHujUmHnHujUmHnHumHnHuCJaJmHnHsH    u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu*j
k



























      



&
'
(
*
+
,
-
.
/
K
L
M
N
U
V
i
j
÷é÷ף׏÷Á÷ףm&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphumHnHujUmHnHujUmHnHumHnHuCJaJmHnHsH    u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu*j
k



























      
()*DEFммļмvvhjUmHnHu0JmHnHsHu&j|>*B*UmHnHphujUmHnHu&j>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHumHnHujUmHnHu(FHIJKLMijklst˱ߧӧ˅{m{_jUmHnHu6CJaJmHnHsH	u0JaJmHnHu&jp>*B*UmHnHphujUmHnHu0JmHnHsHu&jv>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHumHnHu%9:;<CDpqrж欠vРИhjUmHnHu&jd>*B*UmHnHphujUmHnHumHnHuCJaJmHnHsH    u0JmHnHsHu&jj>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH      uj0JUmHnHujUmHnHu($%&@ABDEFGHIefghmnЄvhvjUmHnHu6CJaJmHnHsH     u0JaJmHnHu&jX>*B*UmHnHphujUmHnHujUmHnHumHnHuCJaJmHnHsH        uj0JUmHnHu&j^>*B*UmHnHphumHnHu0JmHnHu'G|F
()*DEFммļмvvhjUmHnHu0JmHnHsHu&j|>*B*UmHnHphujUmHnHu&j>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHumHnHujUmHnHu(FHIJKLMijklst˱ߧӧ˅{m{_jUmHnHu6CJaJmHnHsH	u0JaJmHnHu&jp>*B*UmHnHphujUmHnHu0JmHnHsHu&jv>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHumHnHu%9:;<CDpqrж欠vРИhjUmHnHu&jd>*B*UmHnHphujUmHnHumHnHuCJaJmHnHsH    u0JmHnHsHu&jj>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH      uj0JUmHnHujUmHnHu($%&@ABDEFGHIefghmnЄvhvjUmHnHu6CJaJmHnHsH     u0JaJmHnHu&jX>*B*UmHnHphujUmHnHujUmHnHumHnHuCJaJmHnHsH        uj0JUmHnHu&j^>*B*UmHnHphumHnHu0JmHnHu'G|F
}I<l
!
}I<l
!

!

!

!

!

!

!

!

!
 !=>?@EFYZ[uvwyz{|}~տߝyky]kߝjUmHnHu6CJaJmHnHsH  u0JaJmHnHu&jL>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHuj0JUmHnHu&jR>*B*UmHnHphu$
#$%?@ACDEFGHdefgտߝտuߝa&j: >*B*UmHnHphujUmHnHu&j@>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHuj0JUmHnHu&jF>*B*UmHnHphu&glm;<=>CDyz{Ӹ縰߈Ӹ縰t&j.">*B*UmHnHphuj!UmHnHu&j4!>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj UmHnHujUmHnHumHnHu6CJaJmHnHsH        u0JaJmHnHu* 
 !=>?@EFYZ[uvwyz{|}~տߝyky]kߝjUmHnHu6CJaJmHnHsH  u0JaJmHnHu&jL>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHuj0JUmHnHu&jR>*B*UmHnHphu$
#$%?@ACDEFGHdefgտߝտuߝa&j: >*B*UmHnHphujUmHnHu&j@>*B*UmHnHphumHnHu0JmHnHujUmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHuj0JUmHnHu&jF>*B*UmHnHphu&glm;<=>CDyz{Ӹ縰߈Ӹ縰t&j.">*B*UmHnHphuj!UmHnHu&j4!>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj UmHnHujUmHnHumHnHu6CJaJmHnHsH        u0JaJmHnHu* 
()*+01Z[\vwxz{ѻї×މѻuї×gj$UmHnHu&j"$>*B*UmHnHphuj#UmHnHu0JaJmHnHu&j(#>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH     uj0JUmHnHumHnHujUmHnHuj"UmHnHu({|}~     &'(BCDFGHIJKgh幱݃幱uj&UmHnHu&j&>*B*UmHnHphuj%UmHnHujUmHnHumHnHu0JaJmHnHu&j%>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH uj0JUmHnHu*hijpq !=>տߝyky]kߝj(UmHnHu:CJaJmHnHsH     u0JaJ mHnHu&j
()*+01Z[\vwxz{ѻї×މѻuї×gj$UmHnHu&j"$>*B*UmHnHphuj#UmHnHu0JaJmHnHu&j(#>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH     uj0JUmHnHumHnHujUmHnHuj"UmHnHu({|}~     &'(BCDFGHIJKgh幱݃幱uj&UmHnHu&j&>*B*UmHnHphuj%UmHnHujUmHnHumHnHu0JaJmHnHu&j%>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH uj0JUmHnHu*hijpq !=>տߝyky]kߝj(UmHnHu:CJaJmHnHsH     u0JaJ mHnHu&j
(>*B*UmHnHphumHnHu0JmHnHuj'UmHnHujUmHnHumHnHu6CJaJmHnHsH u0JaJmHnHuj0JUmHnHu&j'>*B*UmHnHphu$>?@CD_`a{|}տߝyky]kߝj{*UmHnHu6CJaJmHnHsH	u0JaJmHnHu&j)>*B*UmHnHphumHnHu0JmHnHuj)UmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHuj0JUmHnHu&j)>*B*UmHnHphu$5679:;<=>Z[\]bcտߝտuߝa&j,>*B*UmHnHphujo,UmHnHu&j+>*B*UmHnHphumHnHu0JmHnHuju+UmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHuj0JUmHnHu&j*>*B*UmHnHphu&
2345IJKefgijklmnӸ縰~Ӹo[&j.>*B*UmHnHphu5;CJaJmHnHsH   ujc.UmHnHu0JaJHmHnHu&j->*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuji-UmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHu":;<=BӸ縰߈Ӹ縰tj0JaJmHnHu&j0>*B*UmHnHphujW0UmHnHu&j/>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj]/UmHnHujUmHnHumHnHu:CJaJmHnHsH  u0JaJ mHnHu%BC]^_yz{}~ Թ򹱫qԹ]&j2>*B*UmHnHphujK2UmHnHu:CJaJmHnHsH u0JaJ mHnHu&j1>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHujQ1UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH   u$,-.HIJLMNOPQmnopwxԹ򹱫}Թi&j4>*B*UmHnHphuj?4UmHnHuCJaJmHnHsH  u&j3>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHujE3UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH        u)Oj4g4 g  4!!!]""""!dh
!
(>*B*UmHnHphumHnHu0JmHnHuj'UmHnHujUmHnHumHnHu6CJaJmHnHsH u0JaJmHnHuj0JUmHnHu&j'>*B*UmHnHphu$>?@CD_`a{|}տߝyky]kߝj{*UmHnHu6CJaJmHnHsH	u0JaJmHnHu&j)>*B*UmHnHphumHnHu0JmHnHuj)UmHnHujUmHnHumHnHu:CJaJmHnHsH	u0JaJ mHnHuj0JUmHnHu&j)>*B*UmHnHphu$5679:;<=>Z[\]bcտߝտuߝa&j,>*B*UmHnHphujo,UmHnHu&j+>*B*UmHnHphumHnHu0JmHnHuju+UmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHuj0JUmHnHu&j*>*B*UmHnHphu&
2345IJKefgijklmnӸ縰~Ӹo[&j.>*B*UmHnHphu5;CJaJmHnHsH   ujc.UmHnHu0JaJHmHnHu&j->*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuji-UmHnHujUmHnHumHnHu6CJaJmHnHsH	u0JaJmHnHu":;<=BӸ縰߈Ӹ縰tj0JaJmHnHu&j0>*B*UmHnHphujW0UmHnHu&j/>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj]/UmHnHujUmHnHumHnHu:CJaJmHnHsH  u0JaJ mHnHu%BC]^_yz{}~ Թ򹱫qԹ]&j2>*B*UmHnHphujK2UmHnHu:CJaJmHnHsH u0JaJ mHnHu&j1>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHujQ1UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH   u$,-.HIJLMNOPQmnopwxԹ򹱫}Թi&j4>*B*UmHnHphuj?4UmHnHuCJaJmHnHsH  u&j3>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHujE3UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH        u)Oj4g4 g  4!!!]""""!dh
!

!

!

!

!
89:;BCbcd~ѽѽŽޕѽѽŽsѽj-7UmHnHu&j6>*B*UmHnHphuj36UmHnHu&j5>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHumHnHujUmHnHuj95UmHnHu-GHIcdeghijkl¶¨¶քv¶h¶vj!9UmHnHu6CJaJmHnHsH	u0JaJmHnHu&j8>*B*UmHnHphumHnHuj'8UmHnHujUmHnHumHnHuCJaJmHnHsH	uj0JUmHnHu&j7>*B*UmHnHphu0JmHnHu%-./123456RSTU\]{|}÷é÷ף׏÷Á÷ףm&j;>*B*UmHnHphuj;UmHnHu&j:>*B*UmHnHphumHnHuj:UmHnHujUmHnHumHnHuCJaJmHnHsH	u0JmHnHuj0JUmHnHu&j9>*B*UmHnHphu*	%&'(+,DEF`abdefghiмИ|Њмh^0JaJmHnHu&j=>*B*UmHnHphuj	=UmHnHu:CJaJmHnHsH	u0JaJ mHnHu&j<>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHuj<UmHnHumHnHujUmHnHu!-./123456RSTU\]wxyԹ򹱫}Թi&jz?>*B*UmHnHphuj>UmHnHuCJaJmHnHsH	u&j>>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj>UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH	u)       ! & ' D E F ` ѽѽŽޕѽwiw6CJaJmHnHsH	u0JaJmHnHu&jnA>*B*UmHnHphuj@UmHnHu&jt@>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHumHnHujUmHnHuj?UmHnHu$` a b d e f g h i                         !!!-!.!/!1!ѻѻއѕѻsѻejCUmHnHu&jbC>*B*UmHnHphujBUmHnHuCJaJmHnHsH	u&jhB>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH	uj0JUmHnHumHnHujUmHnHujAUmHnHu'1!2!3!4!5!6!R!S!T!U!\!]!w!x!y!!!!!!!!!!!!!!!!!!!!!!!!!!!ҸҰҎvhvjEUmHnHu:CJaJmHnHsH	u0JaJ mHnHu&jVE>*B*UmHnHphujDUmHnHumHnHu&j\D>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHu(!!"""""":";"<"V"W"X"Z"["\"]"^"_"{"|"}"~"""""""""""""" *!*ƸưиƸưtиjaj0Jm<Uj:;CJUjGUmHnHu&jJG>*B*UmHnHphujFUmHnHujUmHnHumHnHu6CJaJmHnHsH       u0JaJmHnHuj0JUmHnHu&jPF>*B*UmHnHphumHnHu0JmHnHu&""""#]$$%%%%oF
89:;BCbcd~ѽѽŽޕѽѽŽsѽj-7UmHnHu&j6>*B*UmHnHphuj36UmHnHu&j5>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHumHnHujUmHnHuj95UmHnHu-GHIcdeghijkl¶¨¶քv¶h¶vj!9UmHnHu6CJaJmHnHsH	u0JaJmHnHu&j8>*B*UmHnHphumHnHuj'8UmHnHujUmHnHumHnHuCJaJmHnHsH	uj0JUmHnHu&j7>*B*UmHnHphu0JmHnHu%-./123456RSTU\]{|}÷é÷ף׏÷Á÷ףm&j;>*B*UmHnHphuj;UmHnHu&j:>*B*UmHnHphumHnHuj:UmHnHujUmHnHumHnHuCJaJmHnHsH	u0JmHnHuj0JUmHnHu&j9>*B*UmHnHphu*	%&'(+,DEF`abdefghiмИ|Њмh^0JaJmHnHu&j=>*B*UmHnHphuj	=UmHnHu:CJaJmHnHsH	u0JaJ mHnHu&j<>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHuj<UmHnHumHnHujUmHnHu!-./123456RSTU\]wxyԹ򹱫}Թi&jz?>*B*UmHnHphuj>UmHnHuCJaJmHnHsH	u&j>>*B*UmHnHphumHnHu0JmHnHuj0JUmHnHuj>UmHnHujUmHnHumHnHu0JaJmHnHu6CJaJmHnHsH	u)       ! & ' D E F ` ѽѽŽޕѽwiw6CJaJmHnHsH	u0JaJmHnHu&jnA>*B*UmHnHphuj@UmHnHu&jt@>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHumHnHujUmHnHuj?UmHnHu$` a b d e f g h i                         !!!-!.!/!1!ѻѻއѕѻsѻejCUmHnHu&jbC>*B*UmHnHphujBUmHnHuCJaJmHnHsH	u&jhB>*B*UmHnHphumHnHu0JmHnHu6CJaJmHnHsH	uj0JUmHnHumHnHujUmHnHujAUmHnHu'1!2!3!4!5!6!R!S!T!U!\!]!w!x!y!!!!!!!!!!!!!!!!!!!!!!!!!!!ҸҰҎvhvjEUmHnHu:CJaJmHnHsH	u0JaJ mHnHu&jVE>*B*UmHnHphujDUmHnHumHnHu&j\D>*B*UmHnHphumHnHu0JmHnHuCJaJmHnHsH	uj0JUmHnHujUmHnHu(!!"""""":";"<"V"W"X"Z"["\"]"^"_"{"|"}"~"""""""""""""" *!*ƸưиƸưtиjaj0Jm<Uj:;CJUjGUmHnHu&jJG>*B*UmHnHphujFUmHnHujUmHnHumHnHu6CJaJmHnHsH       u0JaJmHnHuj0JUmHnHu&jPF>*B*UmHnHphumHnHu0JmHnHu&""""#]$$%%%%oF
&FEƀ"V&CEƀ"V&
&FEƀ"V&CEƀ"V&
%&P&|&q*F
%&P&|&q*F
&FEƀ"V&F
&FEƀ"V&F
&FEƀ"V&F
&FEƀ"V&F
&FEƀ"V&|&&&_O
&FEƀ"V&|&&&_O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^&&&_O
&F
hEƀ"V&" ^&&&_O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^&''_O
&F
hEƀ"V&" ^&''_O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^'&'4'_O
&F
hEƀ"V&" ^'&'4'_O
&F
hEƀ"V&
&F
hEƀ"V&
" ^O
" ^O
&F
hEƀ"V&       " ^4']'''7(hb\^`O
&F
hEƀ"V&       " ^4']'''7(hb\^`O
&F
hEƀ"V&" ^F
&F
hEƀ"V&" ^F
&FEƀ"V&7(Q(l(_O
&FEƀ"V&7(Q(l(_O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^l(((_O
&F
hEƀ"V&" ^l(((_O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^O
&F
hEƀ"V&" ^(((_O
&F
hEƀ"V&" ^(((_O
&F
hEƀ"V&
&F
hEƀ"V&
" ^O
" ^O
&F
hEƀ"V&       " ^()2)P))UF
&F
hEƀ"V&       " ^()2)P))UF
&FEƀ"V&
&FEƀ"V&
&F
&F
&F
h^O
&F
h^O
&F
hEƀ"V&" ^))*`*b*
&F
hEƀ"V&" ^))*`*b*
--/?00711c22o366o$
--/?00711c22o366o$
&Fdx$a$o$dxF
&Fdx$a$o$dxF
&FEƀ"V&!*`*a*****++,,3-:-..////?0B00071:111g2o222B3I3333	444\5u555d6688999.999m:|:::::::::G;I;^;_;{;};;;<<3=4=P=R=r=== >F>mH   sH     mHsH5\mH   sH     5\mHsH      jrU
6W{W65\     jDHUQ6666899999::::::::     ;#;o$d(($a$CEƀ"V&#;6;J;`;~;;;;;;<%<?<Z<r<<<<<<<	==5=S=q====(o$d(===>->I>^>|>>>>>>??'?8?L?]?q????P@BDDFF(F>I>[>]>y>{>}>>>>>>>>>?9????????@@O@@@@@AAaAnArA~AAAAAB4B=B>BBBBCCFFFFFFFFFFFFFFFFFFFFFEGFGNGOG^G_G`GaGbGcG      jZUmHnHu   j9UjU       jUmH    sH     5\mH     sH     5\mHsH5\PFFFEGGGGGGIHJHLHHHHIyIKKLMMrOhQRSSUo$dx @&$a$cG~GGGGGGGGGGGGGGGGGGJHKHSHTHcHdHeHfHgHhHHHHHII*I8IOIUIIIIIIILL4L5L6L=L>L?L@L~LLMMNNNNPP+Q1QQQQRkSSSSSSVV1X>XXX
&FEƀ"V&!*`*a*****++,,3-:-..////?0B00071:111g2o222B3I3333	444\5u555d6688999.999m:|:::::::::G;I;^;_;{;};;;<<3=4=P=R=r=== >F>mH   sH     mHsH5\mH   sH     5\mHsH      jrU
6W{W65\     jDHUQ6666899999::::::::     ;#;o$d(($a$CEƀ"V&#;6;J;`;~;;;;;;<%<?<Z<r<<<<<<<	==5=S=q====(o$d(===>->I>^>|>>>>>>??'?8?L?]?q????P@BDDFF(F>I>[>]>y>{>}>>>>>>>>>?9????????@@O@@@@@AAaAnArA~AAAAAB4B=B>BBBBCCFFFFFFFFFFFFFFFFFFFFFEGFGNGOG^G_G`GaGbGcG      jZUmHnHu   j9UjU       jUmH    sH     5\mH     sH     5\mHsH5\PFFFEGGGGGGIHJHLHHHHIyIKKLMMrOhQRSSUo$dx @&$a$cG~GGGGGGGGGGGGGGGGGGJHKHSHTHcHdHeHfHgHhHHHHHII*I8IOIUIIIIIIILL4L5L6L=L>L?L@L~LLMMNNNNPP+Q1QQQQRkSSSSSSVV1X>XXX
&F
&F
&FY\\a\\\]]H_M___R`^`aa5dsdeeee@fEfffghjjllllllnnooppqqqqqqr
&FY\\a\\\]]H_M___R`^`aa5dsdeeee@fEfffghjjllllllnnooppqqqqqqr
rrrrrssssuu$v)vwwwwwwwwaxgxxxxyyyyzzzz||
}}~~*SamH      sH     6]56\]5\])8
rrrrrssssuu$v)vwwwwwwwwaxgxxxxyyyyzzzz||
}}~~*SamH      sH     6]56\]5\])8

XYJPQRy16#27Lj

XYJPQRy16#27Lj
‹*8! W\^hoyWdy~uz(-16OT֛lz/@6]5\mHnHuj~U jU56\]X)\gՂ@o̟ɳ4H
‹*8! W\^hoyWdy~uz(-16OT֛lz/@6]5\mHnHuj~U jU56\]X)\gՂ@o̟ɳ4H
&F^
&F^
&F
&F
&F@ADU̟Ȣע5CDYjkn*79?Ȫ9GvSY
 %.B˹J^=O	,$5"mHsH6]56\]5\]H+'q";iPo
&F@ADU̟Ȣע5CDYjkn*79?Ȫ9GvSY
 %.B˹J^=O	,$5"mHsH6]56\]5\]H+'q";iPo
&F
&F
&F
&F
&F"*05:RV>Rsw68=@pr,._d
&F"*05:RV>Rsw68=@pr,._d
>E %EJ!'U\hiz
>E %EJ!'U\hiz
.45\mHsH56\]_/4ej$OPbw=AwQeV[_dno#15$*DJNTrw{     jU5B*\ph6]56\]5\Y !d|,D5CPm~/A=    R               w
.45\mHsH56\]_/4ej$OPbw=AwQeV[_dno#15$*DJNTrw{     jU5B*\ph6]56\]5\Y !d|,D5CPm~/A=    R               w




D\*;=UZo,9Kc>R.L`ex>*5\56\]mHsHmHnHu  jUj~UV     7Cm/=             w
D\*;=UZo,9Kc>R.L`ex>*5\56\]mHsHmHnHu  jUj~UV     7Cm/=             w



V>Yfs

V>Yfs
&F^
&F^
&F
&F
&F.?Ld$2JSZ U m ""^'q'5(Y(s))))))))O+`+,,^-p-}------..../////00#0/0>02233G4N4444477+7<77777	88;<>*5\56\]`s5& $%^'5()~*,9--Z...X//\0[=e>>?\????
&F.?Ld$2JSZ U m ""^'q'5(Y(s))))))))O+`+,,^-p-}------..../////00#0/0>02233G4N4444477+7<77777	88;<>*5\56\]`s5& $%^'5()~*,9--Z...X//\0[=e>>?\????
&F
&F
&F
&F
&F
&F
&F^<<*<8<P<v==e>z>>>>>>>>????-?N?S?[?\?t?????@@AACCE*EEE5F@FiG|GKKKMMMMQQQRRR!RSSSSiTrTTTCUSUXUmU+V0VXXXX1Y:YYYYYZZ[[>[?[U[V[W[jU     jU6]56\]5\Z?rBuKQQ:RVZZr\^_`bchdde[eeBffgaggg8h
&F^<<*<8<P<v==e>z>>>>>>>>????-?N?S?[?\?t?????@@AACCE*EEE5F@FiG|GKKKMMMMQQQRRR!RSSSSiTrTTTCUSUXUmU+V0VXXXX1Y:YYYYYZZ[[>[?[U[V[W[jU     jU6]56\]5\Z?rBuKQQ:RVZZr\^_`bchdde[eeBffgaggg8h
&F
&F
&F5^5W[^[_[`[a[[[K\X\]\p\^3^__a`y`bbbbbbc/c1c?cAcJcLcPcccgcccddddddee?eIe[enepeeeeeef0f4fAfBfWfffffffffgg>gOgSg`gggggggggh$h56\]mH       sH     mH   sH     5\mH     sH     5\56\]        jUmHnHuR$h8hFhPhRhthhhhhhhhhh1i>iKiciiijjjjjjk
k6k@kRk_kikkkkkkkkkkkk
&F5^5W[^[_[`[a[[[K\X\]\p\^3^__a`y`bbbbbbc/c1c?cAcJcLcPcccgcccddddddee?eIe[enepeeeeeef0f4fAfBfWfffffffffgg>gOgSg`gggggggggh$h56\]mH       sH     mH   sH     5\mH     sH     5\56\]        jUmHnHuR$h8hFhPhRhthhhhhhhhhh1i>iKiciiijjjjjjk
k6k@kRk_kikkkkkkkkkkkk
l
l
qQq]qpq~qqqq56\]5\a8hhhwiijjkRkkknll+mmmsnno;oo;ppppqqr
qQq]qpq~qqqq56\]5\a8hhhwiijjkRkkknll+mmmsnno;oo;ppppqqr
&F0^`0
&F0^`0
&Fqqqr6rBrtrrrrrrrrrss%sLsasrssssssst7tLt]tjttttttt
uuBuPuxxxxxxxxyyyyyyyz}       }}}~~~~~~~~~&-23qrmHnHujU jUmH    sH     mHsH56\]5\Sr6rrsrsss]tt
u[uwxqxxxyyyy.z{{|2|o$
&Fqqqr6rBrtrrrrrrrrrss%sLsasrssssssst7tLt]tjttttttt
uuBuPuxxxxxxxxyyyyyyyz}       }}}~~~~~~~~~&-23qrmHnHujU jUmH    sH     mHsH56\]5\Sr6rrsrsss]tt
u[uwxqxxxyyyy.z{{|2|o$
&Fdo$do$dx
&Fdo$do$dx
&F5^5
&F5^5
&F2|]||!mۂB\/5Zo$8d^8o$5d^5`o$
&F2|]||!mۂB\/5Zo$8d^8o$5d^5`o$
&Fdo$do$
&Fdo$do$
&Fdxǁށu#$yz?@GLSX_astacuv46EF34GHѐҐӐڐېj
UjUmHnHujU       jU56\]5\56\]mH  sH     Nېܐݐđő56LMNUVWX=>ȕɕʕ˕ȘϘPQYZijklmn*8Chqe"9L]bs        jUjUjU5\       jUmHnHuVZ٘ԙOPRƛǛSg*LmߟRa7
&Fdxǁށu#$yz?@GLSX_astacuv46EF34GHѐҐӐڐېj
UjUmHnHujU       jU56\]5\56\]mH  sH     Nېܐݐđő56LMNUVWX=>ȕɕʕ˕ȘϘPQYZijklmn*8Chqe"9L]bs        jUjUjU5\       jUmHnHuVZ٘ԙOPRƛǛSg*LmߟRa7
&F
&F
&F
&F
&F @&o$dxo$5dx^5
&F @&o$dxo$5dx^5
ɨ|Z
,K̰|pVԻ
ɨ|Z
,K̰|pVԻ
&F
&F
&F
&F
&F
&F
&F"Zv4'-PeD,&
&F"Zv4'-PeD,&
&F
&F
&F
&F
&F
&F
&F
&F
&Fs&BDf.@EWi|
*,]y&05@&7;=CVl$)-IU&>6:^cDXl5\d&(wHs,GCEƀ"V&
&Fs&BDf.@EWi|
*,]y&05@&7;=CVl$)-IU&>6:^cDXl5\d&(wHs,GCEƀ"V&
&F
&F
&F)8FQ"3EFc
&F)8FQ"3EFc



$%&FGKLTUdefghiFWTk56\]jUmHnHu	jݺUj`UjU	jUmH	sH	5\mH	sH	5\mHsH5\H+,E!"+3G`r ?cdRSnJKM(M!;)IA J, @&Lc!=Uv,jw 59DFOV\jrzbj*,7<Hg?Vk   B*phjUjaU       jU5\5B*\ph56\]Sq
?UV&Yjk
k     !#9\^LfNO

$%&FGKLTUdefghiFWTk56\]jUmHnHu	jݺUj`UjU	jUmH	sH	5\mH	sH	5\mHsH5\H+,E!"+3G`r ?cdRSnJKM(M!;)IA J, @&Lc!=Uv,jw 59DFOV\jrzbj*,7<Hg?Vk   B*phjUjaU       jU5\5B*\ph56\]Sq
?UV&Yjk
k     !#9\^LfNO
47,



d#%{    &!K!M!)!*=*?*22o22
47,



d#%{    &!K!M!)!*=*?*22o22
4444455556S7n7"8?899*:+::::(;;;<<<<===+>>>>BC8CDHDYEEG5B*\ph        B*ph5\^k   U#[|^h!Lx#NO    
 6     _                         
4444455556S7n7"8?899*:+::::(;;;<<<<===+>>>>BC8CDHDYEEG5B*\ph        B*ph5\^k   U#[|^h!Lx#NO    
 6     _                         
+
+
T
T
x
x




7m!`+
,


Ty
y&Nc,U2cd6t'W
7f;|U2Z,g#y
I|%`    M!!!"<"""#7###$c$$
$$2%~%%&W&&&!'b''(R(((&)g)))?***3+d+++7,,
,,-R---
7m!`+
,


Ty
y&Nc,U2cd6t'W
7f;|U2Z,g#y
I|%`    M!!!"<"""#7###$c$$
$$2%~%%&W&&&!'b''(R(((&)g)))?***3+d+++7,,
,,-R---
.N...4///0G0001c11222e2313444
44
.N...4///0G0001c11222e2313444
44
5556?66666p7777A8f88888$9495999:*:+:
+:::;';(;;;<<<<<===*>+>>6???@l@@AuAA5B
5BBB:ClCCCJDDDDEE&FtFFG^GGGOHHHEIIIIeJJ
GG(HMHDJcJ.L/LLLMMMO'PWPYPPP.Q0Q7SSSVVVWWWWWXX>Y?YXYYYZY_Y`YaYbYxYyYzYYYYYYYYYYYYZZZ"Z#ZGZ^ZZZ__,_-_._3_4_5_6_L_M_jUjOUjUjUUjUj[U        jU5\       B*phLJJKXKKKL.L/LL"M#MMNPNNN
5556?66666p7777A8f88888$9495999:*:+:
+:::;';(;;;<<<<<===*>+>>6???@l@@AuAA5B
5BBB:ClCCCJDDDDEE&FtFFG^GGGOHHHEIIIIeJJ
GG(HMHDJcJ.L/LLLMMMO'PWPYPPP.Q0Q7SSSVVVWWWWWXX>Y?YXYYYZY_Y`YaYbYxYyYzYYYYYYYYYYYYZZZ"Z#ZGZ^ZZZ__,_-_._3_4_5_6_L_M_jUjOUjUjUUjUj[U        jU5\       B*phLJJKXKKKL.L/LL"M#MMNPNNN
&F
B\]\]O^v__`bdbcd4effgthuhhcidiei^
&F
B\]\]O^v__`bdbcd4effgthuhhcidiei^
&FM_N_r_s_aaaaaaaaaaaabbidjdddddddddddddhhdieiii"j#j$j%jKjLj`jajjjkjljmjpjqjjjjjjjjżż       B*ph0JjsU
&FM_N_r_s_aaaaaaaaaaaabbidjdddddddddddddhhdieiii"j#j$j%jKjLj`jajjjkjljmjpjqjjjjjjjjżż       B*ph0JjsU
W+WOJQJmHnHujOJQJUOJQJ     j=U
cHdh
{Z&5\jUjCUjUjIU jU:eifiiljmjnjojpjjjbkckdkekhkllll=
W+WOJQJmHnHujOJQJUOJQJ     j=U
cHdh
{Z&5\jUjCUjUjIU jU:eifiiljmjnjojpjjjbkckdkekhkllll=
&dP
&dP
&dPC#Eƀ"V&IndexjjjjjjjjjkkkkAkBkVkWk`kakbkckhkikkkkkl
j0JmU0Jm
&dPC#Eƀ"V&IndexjjjjjjjjjkkkkAkBkVkWk`kakbkckhkikkkkkl
j0JmU0Jm
W+WOJQJmHnHujOJQJUOJQJ     jNU       jU0JmHnHu0J
j0JUlll8
W+WOJQJmHnHujOJQJUOJQJ     jNU       jU0JmHnHu0J
j0JUlll8
000&PP/R / =!"#$%0.       00&P/R / =!"#$%2 00&PP/R / =!"#$%}DyK_Toc536594626}DyK_Toc536594626}DyK_Toc536594627}DyK_Toc536594627}DyK_Toc536594628}DyK_Toc536594628}DyK_Toc536594629}DyK_Toc536594629}DyK_Toc536594630}DyK_Toc536594630}DyK_Toc536594631}DyK_Toc536594631}DyK_Toc536594632}DyK_Toc536594632}DyK_Toc536594633}DyK_Toc536594633}DyK_Toc536594634}DyK_Toc536594634}DyK_Toc536594635}DyK_Toc536594635}DyK_Toc536594636}DyK_Toc536594636}DyK_Toc536594637}DyK_Toc536594637}DyK_Toc536594638}DyK_Toc536594638}DyK_Toc536594639}DyK_Toc536594639}DyK_Toc536594640}DyK_Toc536594640}DyK_Toc536594641}DyK_Toc536594641}DyK_Toc536594642}DyK_Toc536594642}DyK_Toc536594643}DyK_Toc536594643}DyK_Toc536594644}DyK_Toc536594644}DyK_Toc536594645}DyK_Toc536594645}DyK_Toc536594646}DyK_Toc536594646}DyK_Toc536594647}DyK_Toc536594647}DyK_Toc536594648}DyK_Toc536594648}DyK_Toc536594649}DyK_Toc536594649}DyK_Toc536594650}DyK_Toc536594650}DyK_Toc536594651}DyK_Toc536594651}DyK_Toc536594652}DyK_Toc536594652}DyK_Toc536594653}DyK_Toc536594653}DyK_Toc536594654}DyK_Toc536594654}DyK_Toc536594655}DyK_Toc536594655}DyK_Toc536594656}DyK_Toc536594656}DyK_Toc536594657}DyK_Toc536594657}DyK_Toc536594658}DyK_Toc536594658}DyK_Toc536594659}DyK_Toc536594659}DyK_Toc536594660}DyK_Toc536594660}DyK_Toc536594661}DyK_Toc536594661}DyK_Toc536594662}DyK_Toc536594662}DyK_Toc536594663}DyK_Toc536594663}DyK_Toc536594664}DyK_Toc536594664}DyK_Toc536594665}DyK_Toc536594665}DyK_Toc536594666}DyK_Toc536594666}DyK_Toc536594667}DyK_Toc536594667}DyK_Toc536594668}DyK_Toc536594668}DyK_Toc536594669}DyK_Toc536594669}DyK_Toc536594670}DyK_Toc536594670}DyK_Toc536594671}DyK_Toc536594671}DyK_Toc536594672}DyK_Toc536594672}DyK_Toc536594673}DyK_Toc536594673}DyK_Toc536594674}DyK_Toc536594674}DyK_Toc536594675}DyK_Toc536594675}DyK_Toc536594676}DyK_Toc536594676}DyK_Toc536594677}DyK_Toc536594677}DyK_Toc536594678}DyK_Toc536594678}DyK_Toc536594679}DyK_Toc536594679}DyK_Toc536594680}DyK_Toc536594680}DyK_Toc536594681}DyK_Toc536594681}DyK_Toc536594682}DyK_Toc536594682}DyK_Toc536594683}DyK_Toc536594683}DyK_Toc536594684}DyK_Toc536594684}DyK_Toc536594685}DyK_Toc536594685}DyK_Toc536594686}DyK_Toc536594686}DyK_Toc536594687}DyK_Toc536594687}DyK_Toc536594688}DyK_Toc536594688}DyK_Toc536594689}DyK_Toc536594689}DyK_Toc536594690}DyK_Toc536594690}DyK_Toc536594691}DyK_Toc536594691}DyK_Toc536594692}DyK_Toc536594692}DyK_Toc536594693}DyK_Toc536594693}DyK_Toc536594694}DyK_Toc536594694}DyK_Toc536594695}DyK_Toc536594695}DyK_Toc536594696}DyK_Toc536594696}DyK_Toc536594697}DyK_Toc536594697}DyK_Toc536594698}DyK_Toc536594698}DyK_Toc536594699}DyK_Toc536594699)DdC>
000&PP/R / =!"#$%0.       00&P/R / =!"#$%2 00&PP/R / =!"#$%}DyK_Toc536594626}DyK_Toc536594626}DyK_Toc536594627}DyK_Toc536594627}DyK_Toc536594628}DyK_Toc536594628}DyK_Toc536594629}DyK_Toc536594629}DyK_Toc536594630}DyK_Toc536594630}DyK_Toc536594631}DyK_Toc536594631}DyK_Toc536594632}DyK_Toc536594632}DyK_Toc536594633}DyK_Toc536594633}DyK_Toc536594634}DyK_Toc536594634}DyK_Toc536594635}DyK_Toc536594635}DyK_Toc536594636}DyK_Toc536594636}DyK_Toc536594637}DyK_Toc536594637}DyK_Toc536594638}DyK_Toc536594638}DyK_Toc536594639}DyK_Toc536594639}DyK_Toc536594640}DyK_Toc536594640}DyK_Toc536594641}DyK_Toc536594641}DyK_Toc536594642}DyK_Toc536594642}DyK_Toc536594643}DyK_Toc536594643}DyK_Toc536594644}DyK_Toc536594644}DyK_Toc536594645}DyK_Toc536594645}DyK_Toc536594646}DyK_Toc536594646}DyK_Toc536594647}DyK_Toc536594647}DyK_Toc536594648}DyK_Toc536594648}DyK_Toc536594649}DyK_Toc536594649}DyK_Toc536594650}DyK_Toc536594650}DyK_Toc536594651}DyK_Toc536594651}DyK_Toc536594652}DyK_Toc536594652}DyK_Toc536594653}DyK_Toc536594653}DyK_Toc536594654}DyK_Toc536594654}DyK_Toc536594655}DyK_Toc536594655}DyK_Toc536594656}DyK_Toc536594656}DyK_Toc536594657}DyK_Toc536594657}DyK_Toc536594658}DyK_Toc536594658}DyK_Toc536594659}DyK_Toc536594659}DyK_Toc536594660}DyK_Toc536594660}DyK_Toc536594661}DyK_Toc536594661}DyK_Toc536594662}DyK_Toc536594662}DyK_Toc536594663}DyK_Toc536594663}DyK_Toc536594664}DyK_Toc536594664}DyK_Toc536594665}DyK_Toc536594665}DyK_Toc536594666}DyK_Toc536594666}DyK_Toc536594667}DyK_Toc536594667}DyK_Toc536594668}DyK_Toc536594668}DyK_Toc536594669}DyK_Toc536594669}DyK_Toc536594670}DyK_Toc536594670}DyK_Toc536594671}DyK_Toc536594671}DyK_Toc536594672}DyK_Toc536594672}DyK_Toc536594673}DyK_Toc536594673}DyK_Toc536594674}DyK_Toc536594674}DyK_Toc536594675}DyK_Toc536594675}DyK_Toc536594676}DyK_Toc536594676}DyK_Toc536594677}DyK_Toc536594677}DyK_Toc536594678}DyK_Toc536594678}DyK_Toc536594679}DyK_Toc536594679}DyK_Toc536594680}DyK_Toc536594680}DyK_Toc536594681}DyK_Toc536594681}DyK_Toc536594682}DyK_Toc536594682}DyK_Toc536594683}DyK_Toc536594683}DyK_Toc536594684}DyK_Toc536594684}DyK_Toc536594685}DyK_Toc536594685}DyK_Toc536594686}DyK_Toc536594686}DyK_Toc536594687}DyK_Toc536594687}DyK_Toc536594688}DyK_Toc536594688}DyK_Toc536594689}DyK_Toc536594689}DyK_Toc536594690}DyK_Toc536594690}DyK_Toc536594691}DyK_Toc536594691}DyK_Toc536594692}DyK_Toc536594692}DyK_Toc536594693}DyK_Toc536594693}DyK_Toc536594694}DyK_Toc536594694}DyK_Toc536594695}DyK_Toc536594695}DyK_Toc536594696}DyK_Toc536594696}DyK_Toc536594697}DyK_Toc536594697}DyK_Toc536594698}DyK_Toc536594698}DyK_Toc536594699}DyK_Toc536594699)DdC>


#A"2?)}'4xT5)H`!)}'4xT5   @UBHx(xݝ
|սwvvv&ٷַ>%6Kk !YD‹^ڂ{Sj"Z}4"E[[hbb^j=ggϝ" L~3?g^v|.~\.qٮΛt͘4\~|rB
\uS5؅q^\(~׌?-bECbjh.ۿ.Z9W׵jWkkkkkf/U&th\ڬ~^()J-Eɢ,HJk~俞{I>QK-VJD\NM+G4.:A5kឞKS7%5KDlL
#A"2?)}'4xT5)H`!)}'4xT5   @UBHx(xݝ
|սwvvv&ٷַ>%6Kk !YD‹^ڂ{Sj"Z}4"E[[hbb^j=ggϝ" L~3?g^v|.~\.qٮΛt͘4\~|rB
\uS5؅q^\(~׌?-bECbjh.ۿ.Z9W׵jWkkkkkf/U&th\ڬ~^()J-Eɢ,HJk~俞{I>QK-VJD\NM+G4.:A5kឞKS7%5KDlL
65_Gd}(/8m/E_…=sY5ȵwl]k*T{~*.׻=uϝsz=^8OS:&*SU#Co,rE'vf~@]'MlNϿ<([y;׬R[SxO|]].4WY*۪ƁCƁceqpr\A9SM1eqd_{lhG2_;#ϓvQ8u[rκYDle   {נXD"^^{\;vqM=He*U\5U\]fOZo)tB\#b+D[Jq͵ 9?}}>Wq/2_cʲ^.xW:DH;~쫸ϊeP!=6]Ӯ'f[◯
:t\k   >NMPi׭6onhKuu+V3bfXcEYdy3iX7DU9\D}qSOр
,%6]]*O-^=`X8YOd<[K
65_Gd}(/8m/E_…=sY5ȵwl]k*T{~*.׻=uϝsz=^8OS:&*SU#Co,rE'vf~@]'MlNϿ<([y;׬R[SxO|]].4WY*۪ƁCƁceqpr\A9SM1eqd_{lhG2_;#ϓvQ8u[rκYDle   {נXD"^^{\;vqM=He*U\5U\]fOZo)tB\#b+D[Jq͵ 9?}}>Wq/2_cʲ^.xW:DH;~쫸ϊeP!=6]Ӯ'f[◯
:t\k   >NMPi׭6onhKuu+V3bfXcEYdy3iX7DU9\D}qSOр
,%6]]*O-^=`X8YOd<[K
T/he9ߩ2 yM.mS`t
T/he9ߩ2 yM.mS`t
s}V^ʴ{?{ߛYcl0d73'W{fX
s}V^ʴ{?{ߛYcl0d73'W{fX
>]RlHш˴ts26q|Urkyi}o_]LY䂬r,=_dYus]2¿Jޚet7dz!8
>]RlHш˴ts26q|Urkyi}o_]LY䂬r,=_dYus]2¿Jޚet7dz!8
yyFo*l0d9$Yn*<Ɗhkh
xJwUᩯ
tMG	5ݲ>o^[b{MQ!6]k]Vl.zl:
yyFo*l0d9$Yn*<Ɗhkh
xJwUᩯ
tMG	5ݲ>o^[b{MQ!6]k]Vl.zl:
Z}q]CWm,N<]:sfݹg6z׿o㎻".QMm7o&N|yf1A~䗐'|+&u}M~"䗑_M~-w?@ynv)1'K~957J~䏓z_N~,)ɯ |mw?DaJt5k7o&N|yƿ?'A~	zɷN~/n7iM~"䗑_M~-w?@yǐL~.אH~+]?N>O~,)ɯ |mw?Dƿ?rא%H|;]G@~%ɯ'J~;{3ig'?D/#[$1,Y4ɏ!?\ɯ!V$|0H?HXSW_A~-&&	l4ɗN|-Fw"ΡC |=[o'|7yo.\GH~6eW@~?F^~g!ǐL~.אH~+]?N>O~,)ɯ |mw?DP?rא%H|;]QQG@~%ɯ'J~;{c4c4ɏ&?lȯ&; ?cO&?rko$.'̧OXSW_A~-&&	];$]s$?xU#|K~bAq$ڑ
Z}q]CWm,N<]:sfݹg6z׿o㎻".QMm7o&N|yf1A~䗐'|+&u}M~"䗑_M~-w?@ynv)1'K~957J~䏓z_N~,)ɯ |mw?DaJt5k7o&N|yƿ?'A~	zɷN~/n7iM~"䗑_M~-w?@yǐL~.אH~+]?N>O~,)ɯ |mw?Dƿ?rא%H|;]G@~%ɯ'J~;{3ig'?D/#[$1,Y4ɏ!?\ɯ!V$|0H?HXSW_A~-&&	l4ɗN|-Fw"ΡC |=[o'|7yo.\GH~6eW@~?F^~g!ǐL~.אH~+]?N>O~,)ɯ |mw?DP?rא%H|;]QQG@~%ɯ'J~;{c4c4ɏ&?lȯ&; ?cO&?rko$.'̧OXSW_A~-&&	];$]s$?xU#|K~bAq$ڑ
H)NɩwT9Ul҆[AVܢD,{NͶl{NǓ"|u[Ruﲭ<	<9ݤrZ4=U,ho%y/Ǟ'ryO"uבoI՝'ȱd_NvB'K{ȵɎ\{Ǔ"|u[Ruɏs<9dGnv(E{-U,h?J䱰=O$'?|Eȯ#ߒ;%O买ʓMs%*[Ò<#Ĵ#kGu/%'_A>A~1Su'Jі/J.ׂ'mJ}ANuQB@>\\`Od=}>Iɏ'_E~:ȷNO|5\\Ф}ES,'n|R'>})8
H)NɩwT9Ul҆[AVܢD,{NͶl{NǓ"|u[Ruﲭ<	<9ݤrZ4=U,ho%y/Ǟ'ryO"uבoI՝'ȱd_NvB'K{ȵɎ\{Ǔ"|u[Ruɏs<9dGnv(E{-U,h?J䱰=O$'?|Eȯ#ߒ;%O买ʓMs%*[Ò<#Ĵ#kGu/%'_A>A~1Su'Jі/J.ׂ'mJ}ANuQB@>\\`Od=}>Iɏ'_E~:ȷNO|5\\Ф}ES,'n|R'>})8
       ߟ;e>f'j>)vԇbNh<mNϪ-UG?L^3>j})8
       ߟ;e>f'j>)vԇbNh<mNϪ-UG?L^3>j})8
T    y2Un$.WnIO5J􄑯   o_ݒ<\oSc|3vȻMv?T	yR&V{=Ep{j̷23쉛H7$%~}>'0y9a+'Ru'XIG'=SOx3S,'ߊ/=E>htN|y9iȏH՝24|iE4H7&M=O=O};]eiȏH՝'kVUy|7)Z=Ofy2oϓtN|y'>f #RuɗVWy2_f돛K#rܜ,_KޟdhIՑG7o'AgT       y#ڲ”r=oZyR{ތ~bE})yϓ3y`=Oi+0Wޫޫ|.2lmI՝SVNrߓ11߿zu=sN=}#f;wycSD}̓}*O|r7Wԧ$nl[3~6Gu/%'_A>A~1Su\Kкv; []5Wz\\%(yϓ!{l$Gu/%'_A>A~1SuBVRy9R%T*T/Bkr֖_Kkr>j})8
T    y2Un$.WnIO5J􄑯   o_ݒ<\oSc|3vȻMv?T	yR&V{=Ep{j̷23쉛H7$%~}>'0y9a+'Ru'XIG'=SOx3S,'ߊ/=E>htN|y9iȏH՝24|iE4H7&M=O=O};]eiȏH՝'kVUy|7)Z=Ofy2oϓtN|y'>f #RuɗVWy2_f돛K#rܜ,_KޟdhIՑG7o'AgT       y#ڲ”r=oZyR{ތ~bE})yϓ3y`=Oi+0Wޫޫ|.2lmI՝SVNrߓ11߿zu=sN=}#f;wycSD}̓}*O|r7Wԧ$nl[3~6Gu/%'_A>A~1Su\Kкv; []5Wz\\%(yϓ!{l$Gu/%'_A>A~1SuBVRy9R%T*T/Bkr֖_Kkr>j})8
T)>i]ɍΜjLL2gq:S~=8~=8~w"/ϡ}̴AGN9βΡRЃk戬b9n#YNA}#t||O՝9^`w
T)>i]ɍΜjLL2gq:S~=8~=8~w"/ϡ}̴AGN9βΡRЃk戬b9n#YNA}#t||O՝9^`w
~p^VX֋:'$y-牬Iv_J>N|bNɓ?Zy"'ޢgXQXӏh_N~,)ɯ |mw?Dx~(rא%H|;]&?'A~	zɷN~/n4ɏ&?lȯ&; GG%o%A44ɏ%?|5גo"nȟ 
~p^VX֋:'$y-牬Iv_J>N|bNɓ?Zy"'ޢgXQXӏh_N~,)ɯ |mw?Dx~(rא%H|;]&?'A~	zɷN~/n4ɏ&?lȯ&; GG%o%A44ɏ%?|5גo"nȟ 
'_NL
ٺ6Wϖn#"!vGLw&>Gɛ/WDw%'KY~!?B)/g^SZ
'_NL
ٺ6Wϖn#"!vGLw&>Gɛ/WDw%'KY~!?B)/g^SZ
U3W_H>_#<_H~$k$?Ji;#i}iC_E~[E!K @ݟa7L}viO%?J'ȿBM=~~Ǒ}7ǕӲ1~ Ǔ"|u["ɰ#3Wf!3|v_K_Ms|;Ӵ|jA%@~6{&el<o%_N~:7?䜭{3LDkYvͲRg򾅳uݢ!`?6{&e}4Kɟ{2>)?Iy$*H$?xU#|_[=Ev_duo&*L7ϡ{y]_XψCD=#H!˴H.+.b]:ȗ"BI%rBYϸg?V=냞kf|{kLYB
,;!Wxs#^ηU[Oϗ.qg7sY1k̊^#&/^#G
/%'_A>;5Ƭ׸'^cVlqO,a,   FQ]y<>Ϟ'0y'>j})8
U3W_H>_#<_H~$k$?Ji;#i}iC_E~[E!K @ݟa7L}viO%?J'ȿBM=~~Ǒ}7ǕӲ1~ Ǔ"|u["ɰ#3Wf!3|v_K_Ms|;Ӵ|jA%@~6{&el<o%_N~:7?䜭{3LDkYvͲRg򾅳uݢ!`?6{&e}4Kɟ{2>)?Iy$*H$?xU#|_[=Ev_duo&*L7ϡ{y]_XψCD=#H!˴H.+.b]:ȗ"BI%rBYϸg?V=냞kf|{kLYB
,;!Wxs#^ηU[Oϗ.qg7sY1k̊^#&/^#G
/%'_A>;5Ƭ׸'^cVlqO,a,   FQ]y<>Ϟ'0y'>j})8
T)yry'T\7՘0y3r_'yϓQ<oϓt̓t5쾔||D<yrSʓQSFEL0>+K~[u        +Z
T)yry'T\7՘0y3r_'yϓQ<oϓt̓t5쾔||D<yrSʓQSFEL0>+K~[u        +Z
z%bf{ȇv_aǑ$}!ȿFy=fy1HגIwG(y3~O"?Dqϒ!ȷs3u<:.ZcrM幨S5j?>}詏ǧf%ix|iԾ\?arݗ H՝z~?KSGF]tXNsDQOg:sR".]H@ar)}}#q{}*bzukOjneu+Y=_!Sdj]ohwv'_i@fwqw?sI'~zިYNOm9V]wd/ڜݷWLW!k֘<>YSa{4
֏5֜j&>;Q=km3Ÿ)sm*-k+
,Z.K/TY=?M4DȲGl,ښKI\$rUL%F)&O!K~>&z~s[YkLY6{]P9#9{~֖:͒,5"tzl_2ᓭ>KƶՌ,3}ۭ}6Hf?Qkd)Y=Z{}NjS{Y\Z&KfeY-Qjn}^Yrk`{tYdNn/&ۦ'V|[<[e`Ԇ<ݩ24§rr˱Pu[%Go6]'s:5Yvk}Ι5=5z;_P!=6]P5ɑ[#ù,>2+wwĘ
+ʂp&˛ΪΛuk9m0ͬ1e	g6ܛ{IvNf!/WU6ֈǑ}˲ Zme
YeH
z%bf{ȇv_aǑ$}!ȿFy=fy1HגIwG(y3~O"?Dqϒ!ȷs3u<:.ZcrM幨S5j?>}詏ǧf%ix|iԾ\?arݗ H՝z~?KSGF]tXNsDQOg:sR".]H@ar)}}#q{}*bzukOjneu+Y=_!Sdj]ohwv'_i@fwqw?sI'~zިYNOm9V]wd/ڜݷWLW!k֘<>YSa{4
֏5֜j&>;Q=km3Ÿ)sm*-k+
,Z.K/TY=?M4DȲGl,ښKI\$rUL%F)&O!K~>&z~s[YkLY6{]P9#9{~֖:͒,5"tzl_2ᓭ>KƶՌ,3}ۭ}6Hf?Qkd)Y=Z{}NjS{Y\Z&KfeY-Qjn}^Yrk`{tYdNn/&ۦ'V|[<[e`Ԇ<ݩ24§rr˱Pu[%Go6]'s:5Yvk}Ι5=5z;_P!=6]P5ɑ[#ù,>2+wwĘ
+ʂp&˛ΪΛuk9m0ͬ1e	g6ܛ{IvNf!/WU6ֈǑ}˲ Zme
YeH
l/X77
6l62`;v̟B6l9`[v;"?`SVk     P6/V6̝A6l       X=zV`{ȿ\h`l'c`/6l.r5`;v,F`cU[
l7!`/+VV"?`f-[
l/X77
6l62`;v̟B6l9`[v;"?`SVk     P6/V6̝A6l       X=zV`{ȿ\h`l'c`/6l.r5`;v,F`cU[
l7!`/+VV"?`f-[
l/X77!FM
l5-`;!`c&[l#V]`?`SVk     PO,}9:s!ZDSl p`U`ց|m9<5]I+
l/X77!FM
l5-`;!`c&[l#V]`?`SVk     PO,}9:s!ZDSl p`U`ց|m9<5]I+
lX:羜&x#"r
//r$wF%ɝbbbbbw)X,/ؽR/r׋:=SIxf
lX:羜&x#"r
//r$wF%ɝbbbbbw)X,/ؽR/r׋:=SIxf
l02Fx|}!7TnɝϷZo^Ś:ܦb1SA`#ގg^f=q)DΈ~={QS
l02Fx|}!7TnɝϷZo^Ś:ܦb1SA`#ގg^f=q)DΈ~={QS
jw~3Ӑk#3ECF3X;XX
/"?_4N#nnqgdHx>U|ƫL3A`}ge޸kH7Cz%wFQ)S<Н;}*wT<Ղ55uuxy~
jw~3Ӑk#3ECF3X;XX
/"?_4N#nnqgdHx>U|ƫL3A`}ge޸kH7Cz%wFQ)S<Н;}*wT<Ղ55uuxy~
K-~':#"OoH[-*U%E=l`Kփm
+6l"le`6m  vߣ9.6l.r5`;v,h(v`cU[
l7!`!b
+VV6&l`Kփm
@e FM
l5-`;>`slA`A?Ϗ6lZ&m`w(Xyg{θҭ"{
K-~':#"OoH[-*U%E=l`Kփm
+6l"le`6m  vߣ9.6l.r5`;v,h(v`cU[
l7!`!b
+VV6&l`Kփm
@e FM
l5-`;>`slA`A?Ϗ6lZ&m`w(Xyg{θҭ"{
<+OWB`ׂG(Q]
<+OWB`ׂG(Q]
l-`w=8س`/%g8|UZS`/v$Z33T;ǁU-^{
U,-\6Z`w=(`;3MŊLņ]6 {Y{,ع]%M`/`>>S`_
l-`w=8س`/%g8|UZS`/v$Z33T;ǁU-^{
U,-\6Z`w=(`;3MŊLņ]6 {Y{,ع]%M`/`>>S`_
6l%{7z~J0q`~>k"`ƃU-[+d(]     v`KV=7`bb]
vT^M`m`{iiעr!Ρ``jjӮ;eTsCC/6;zb4KҴkNkXhS@;e*5Rxui[/PuOʷ{UN0Wb\6lvL};+>+Ug'3fToa0T<+UE
6l%{7z~J0q`~>k"`ƃU-[+d(]     v`KV=7`bb]
vT^M`m`{iiעr!Ρ``jjӮ;eTsCC/6;zb4KҴkNkXhS@;e*5Rxui[/PuOʷ{UN0Wb\6lvL};+>+Ug'3fToa0T<+UE
xi!Έ+7#x,U$0q``{)^;|t!Hkfأ`Ovĸ-SlU`n!{     
w,T7eM^mC:b>kn^m)2kiTK{YciTK`q
xi!Έ+7#x,U$0q``{)^;|t!Hkfأ`Ovĸ-SlU`n!{     
w,T7eM^mC:b>kn^m)2kiTK{YciTK`q
5Nz3!Ddz
x
5Nz3!Ddz
x


cTA0wishbone_compatible.gifb /'(`
cTA0wishbone_compatible.gifb /'(`
sG/ Yrn /'(`
sG/ Yrn /'(`
sG/PNG
sG/PNG



IHDRoEEPsBIT&C`PLTE9J)9){ksZcJRo~tRNS@fcmPPJCmp0712HsIDATx^] Zv)9G[8UR

IHDRoEEPsBIT&C`PLTE9J)9){ksZcJRo~tRNS@fcmPPJCmp0712HsIDATx^] Zv)9G[8UR
|$tu
|$tu
+PW@]u
+PW@]u
_S R_<qZ}w
_S R_<qZ}w
lX
lX
Dh;橺8[눊HEp4QpUBH0q4?W43`Y`FøU=Hg7_W
u$Ϳ5WUz-0qu4_;?{4\1ޟ\WM:x
ƦW
cW]XLsTVݤ~qW
1n03`UíC#pDA       tI34*{2xA3    `&,6$GVMG-6ઋ&UH3`,+F
osU\A3CjsAYD'YLga<.I@U##,K@:Y2*tD\J@g#vB`~g?vy<̃D3Gx Wm1AcS\%1~顙c#\,ׁɑ~!9UR:Đ?o0}p'#4m(%)UO4ab9G,M構јU-@F`rt.;-\s}O3GJr,U2+Æ_ƛg[p3?D"`B0b`ܙك
Dh;橺8[눊HEp4QpUBH0q4?W43`Y`FøU=Hg7_W
u$Ϳ5WUz-0qu4_;?{4\1ޟ\WM:x
ƦW
cW]XLsTVݤ~qW
1n03`UíC#pDA       tI34*{2xA3    `&,6$GVMG-6ઋ&UH3`,+F
osU\A3CjsAYD'YLga<.I@U##,K@:Y2*tD\J@g#vB`~g?vy<̃D3Gx Wm1AcS\%1~顙c#\,ׁɑ~!9UR:Đ?o0}p'#4m(%)UO4ab9G,M構јU-@F`rt.;-\s}O3GJr,U2+Æ_ƛg[p3?D"`B0b`ܙك
8i?hLrQHU]R-rOcP%[=6[vm4F>1(g9\
mZvWV7{
8i?hLrQHU]R-rOcP%[=6[vm4F>1(g9\
mZvWV7{

~
a'Q.m E?ʍ4Xji{_&4Px@>evhFcr$9v}?

~
a'Q.m E?ʍ4Xji{_&4Px@>evhFcr$9v}?
D_/J}y7*bOȎQ+p=>xJPUOAf:L"NseB?Dkv}>1R\UUgp<!WXd%V7"ժ/?IhLM<-A;ߠr#ffL(DqxV6r891+0J셅mL-=O'hԠc#*r:b칭0
D_/J}y7*bOȎQ+p=>xJPUOAf:L"NseB?Dkv}>1R\UUgp<!WXd%V7"ժ/?IhLM<-A;ߠr#ffL(DqxV6r891+0J셅mL-=O'hԠc#*r:b칭0
8}B—ӆh.H@јW
8}B—ӆh.H@јW
&OΧ!
yO{\l'j۟ӱ8	#h*t>&?_6@KI3M"+ڻtMqHjV24Cj%N+/z MM2t"*sT˂)JDvǚCܥu0fF.Vm#ɱeUˬst>(,`1(5bը.@natF;bpmJkX   z0ǫ:x    p"P`̣dp&  !=dSNPg48nR.7ތ
QW=!c4+`tQgb.?}CfW&Gz\{u8Kw"Zg6L/7l4=t;Vwo)0m,QE?FA38N\ku(4ɣEH7wnbehO;(!ףY&*FʭfQ'cwyؙ$cX#`1
d<.@+\O,=Ľ8vqPn(Tl<򘁾d(0|1;3ލ4.SaMX@
&OΧ!
yO{\l'j۟ӱ8	#h*t>&?_6@KI3M"+ڻtMqHjV24Cj%N+/z MM2t"*sT˂)JDvǚCܥu0fF.Vm#ɱeUˬst>(,`1(5bը.@natF;bpmJkX   z0ǫ:x    p"P`̣dp&  !=dSNPg48nR.7ތ
QW=!c4+`tQgb.?}CfW&Gz\{u8Kw"Zg6L/7l4=t;Vwo)0m,QE?FA38N\ku(4ɣEH7wnbehO;(!ףY&*FʭfQ'cwyؙ$cX#`1
d<.@+\O,=Ľ8vqPn(Tl<򘁾d(0|1;3ލ4.SaMX@
m(s޲Lwy7GꆥuXqk$cnL;X[@#Ɛ?%&PON)rhXhauwu͉ꆭuPhD}H^^&UHz_Cҹ/s,}R:-jW|y~##hx̫e,	E^D@%2e>ißU 24H)<;(ޙBͧX/QH~f
m(s޲Lwy7GꆥuXqk$cnL;X[@#Ɛ?%&PON)rhXhauwu͉ꆭuPhD}H^^&UHz_Cҹ/s,}R:-jW|y~##hx̫e,	E^D@%2e>ißU 24H)<;(ޙBͧX/QH~f
T\նF]|`I<5  Cn*\5i'"T
T\նF]|`I<5  Cn*\5i'"T
Imui2NsSi:f˳Kl1IIPd)dce"269QP2c7Oč!5
Imui2NsSi:f˳Kl1IIPd)dce"269QP2c7Oč!5
0KWՐBsw@4ഌ
0KWՐBsw@4ഌ
4!&t
r|Je˕dYO[[~8L)"07>ԐYaJ91[vH#L!*~̏׀IyD#HO(:@-E[Ya|;zğ%za`"%"?
4!&t
r|Je˕dYO[[~8L)"07>ԐYaJ91[vH#L!*~̏׀IyD#HO(:@-E[Ya|;zğ%za`"%"?
Bԉٙ:lbڿXW~'pÕg[P|b!MzdQoS
Bԉٙ:lbڿXW~'pÕg[P|b!MzdQoS
˾Z0,(4pY͓dZphe0ˊ,dztH{%ئ9M
˾Z0,(4pY͓dZphe0ˊ,dztH{%ئ9M
V7j(}~/!&na`L衙
V7j(}~/!&na`L衙
&}MX0e	=,M{iiho4xQT$!lF±` .5Z?LN0HӾ8`u83fO{a'/_Ĺ2P xj!-$8+g	~2hnNrNTKNƊ(V(Rbx؞U$7|vO,8|uzu|(	|4J;
&}MX0e	=,M{iiho4xQT$!lF±` .5Z?LN0HӾ8`u83fO{a'/_Ĺ2P xj!-$8+g	~2hnNrNTKNƊ(V(Rbx؞U$7|vO,8|uzu|(	|4J;
^mo)f&\^{)f͔E#nM(&|6'`Iv3A2WL}CJ)DXXmAiZՀjB;5@ײ{gpn\J(>1B#ڊQ_"dBLmRJB9SuoBޟhjeR
^mo)f&\^{)f͔E#nM(&|6'`Iv3A2WL}CJ)DXXmAiZՀjB;5@ײ{gpn\J(>1B#ڊQ_"dBLmRJB9SuoBޟhjeR
j;injpp]Rj'px$(E8c;L^ltxΖϝgmYG%Շ(7 DF)B!^C熈[E^2WPqPp_.=v&dy	.Ł.qZ9R$r6S	;,*&`
j;injpp]Rj'px$(E8c;L^ltxΖϝgmYG%Շ(7 DF)B!^C熈[E^2WPqPp_.=v&dy	.Ł.qZ9R$r6S	;,*&`
!(fBJN֤mK~D
!(fBJN֤mK~D
]J\ZI,\D[**G-gPml       ,EWZVi?f-KP޹50&3QԠќq9A"lfmLVv-\*{Hir&-IZXtOYhѓI
]J\ZI,\D[**G-gPml       ,EWZVi?f-KP޹50&3QԠќq9A"lfmLVv-\*{Hir&-IZXtOYhѓI
/+EJ,J 7q^     qvvE X=/3I[JDLaJ$X!ëSJ7b1J.rlC,@-"}cTڃ5=oᴅHȂ<ni?%FE6oHfڊQMvQJL-ǙW@\6Ezm:Em
/+EJ,J 7q^     qvvE X=/3I[JDLaJ$X!ëSJ7b1J.rlC,@-"}cTڃ5=oᴅHȂ<ni?%FE6oHfڊQMvQJL-ǙW@\6Ezm:Em
rM帏+{I3A0n:Q9̀ijdI5:±=‘YލM_fAoF΃;HDR&j?^nJkUqlp-JM=,2Cz9>?=&"sj՝bKWma
rM帏+{I3A0n:Q9̀ijdI5:±=‘YލM_fAoF΃;HDR&j?^nJkUqlp-JM=,2Cz9>?=&"sj՝bKWma
xdŌE2x޻
FKim=
$  w j      {I{uw~YՏ3'puM:۝J0OS])>9e^}Xu]ؠ**ځ)I`4}J/h{f -Wqh;Р@bvq4c))7g^LWZ5Hm#W.A
xdŌE2x޻
FKim=
$  w j      {I{uw~YՏ3'puM:۝J0OS])>9e^}Xu]ؠ**ځ)I`4}J/h{f -Wqh;Р@bvq4c))7g^LWZ5Hm#W.A
0zjD0r39Y4IԷ֘i      
0zjD0r39Y4IԷ֘i      
od#NXxW\`:\
od#NXxW\`:\
BZGBY~ܻ8HhG$29]      T
pRzWy>~tLkAS@%^% Fv)ZڴW":?=m~vqUsEV=9O/o4c  ˇPŽڗ;lJI       S*! !e>/Oj$z&v8vSdIsm_gȔy^ij5NTA*=9` ?-*1-E{C̉Try{rAǗ}qSjԔRNAa0ses?=;P}X#ږU#'iU0xR"8bYvs8,2?~PrCR+f81P     “w(a@r
BZGBY~ܻ8HhG$29]      T
pRzWy>~tLkAS@%^% Fv)ZڴW":?=m~vqUsEV=9O/o4c  ˇPŽڗ;lJI       S*! !e>/Oj$z&v8vSdIsm_gȔy^ij5NTA*=9` ?-*1-E{C̉Try{rAǗ}qSjԔRNAa0ses?=;P}X#ږU#'iU0xR"8bYvs8,2?~PrCR+f81P     “w(a@r
(luB @/ԌFbxRJHB쾲ұ3QY6O
(luB @/ԌFbxRJHB쾲ұ3QY6O
qEC>o
0]lV6MeEgKiwVL7rd0EZks-!?@fhZ3ZGMmR;4/=ͨ鍲ЎR6+or;b%ڟtyRHn&h#[IS'{ra,?
וl'a+, i
qEC>o
0]lV6MeEgKiwVL7rd0EZks-!?@fhZ3ZGMmR;4/=ͨ鍲ЎR6+or;b%ڟtyRHn&h#[IS'{ra,?
וl'a+, i
p   ̧OZ_oEU̯@ʘ"joc󐲙B%l;^U1
p   ̧OZ_oEU̯@ʘ"joc󐲙B%l;^U1
1ZG>Dmq;1?}$رfU<ӖfFq@;E؂	Ok&v$aiU+;l;R^W o-ADC9"h,ZnX:U]utw.MφGؑ 3X柎A@8\&U&Np>-2-~~ʹK[FolX2UjB$?0W&Ըn@ ._6J%8xuPfUwF8Q
ei.UXz,aHjXlGB%^Խ2cVUsThκtOmU"pBM:0	FZ18QZ`NU~S.MJ/Oxt*UybtrfF Lv|R02Q &NhoQUrQǗԔ#lnm(w;E^IZA'%{͞zWR`(8*}1Eܲn2GόMZ?d]     B"[vT1U͊gVZRʹ9rf{y4{F&eŜ b&x+l(ZڎmwTe-fr@8rx">W݁=~rDGDq={f3p3U,J'oFd{1d:چќc[KIz8 G87ާP9۩bE   v,~_OR9B20#M:u0A]EEb:JZ?r|?pFE'AǢq/桉JTuԵ\P$Y k@EGf36]OۓĦof4bhRIiPQǪf~`
1ZG>Dmq;1?}$رfU<ӖfFq@;E؂	Ok&v$aiU+;l;R^W o-ADC9"h,ZnX:U]utw.MφGؑ 3X柎A@8\&U&Np>-2-~~ʹK[FolX2UjB$?0W&Ըn@ ._6J%8xuPfUwF8Q
ei.UXz,aHjXlGB%^Խ2cVUsThκtOmU"pBM:0	FZ18QZ`NU~S.MJ/Oxt*UybtrfF Lv|R02Q &NhoQUrQǗԔ#lnm(w;E^IZA'%{͞zWR`(8*}1Eܲn2GόMZ?d]     B"[vT1U͊gVZRʹ9rf{y4{F&eŜ b&x+l(ZڎmwTe-fr@8rx">W݁=~rDGDq={f3p3U,J'oFd{1d:چќc[KIz8 G87ާP9۩bE   v,~_OR9B20#M:u0A]EEb:JZ?r|?pFE'AǢq/桉JTuԵ\P$Y k@EGf36]OۓĦof4bhRIiPQǪf~`
'3؀v?mOR̞{(یѹk̏5aAXQV_C\zEpg<MWnWu/XGq\ex% #
'3؀v?mOR̞{(یѹk̏5aAXQV_C\zEpg<MWnWu/XGq\ex% #
Ys")cJP     z#qu¹S=o?4\r'uZMqO՜v
Ys")cJP     z#qu¹S=o?4\r'uZMqO՜v
^MTI+"CO»_%MzCBWґ@_?="fRi*7߽OEUe{Ƕ%E_qٽ.. |sw77'W˜ZڳZL:(Ǔ2ښIh7Xf64kt'7YDq>oCTUlzAzFYx7p;XgIB]gxo5|QL%       Fͬ;yhj9L`bۯYGXAssv>M)?+vNMW-]4vqhZew$,
^MTI+"CO»_%MzCBWґ@_?="fRi*7߽OEUe{Ƕ%E_qٽ.. |sw77'W˜ZڳZL:(Ǔ2ښIh7Xf64kt'7YDq>oCTUlzAzFYx7p;XgIB]gxo5|QL%       Fͬ;yhj9L`bۯYGXAssv>M)?+vNMW-]4vqhZew$,
c@Gw1.Z^U}DDAK
<ŕÅw0%KJ'r/&=KzvLt0.$G6r{b+zOy{Ҩ6$Ő
c@Gw1.Z^U}DDAK
<ŕÅw0%KJ'r/&=KzvLt0.$G6r{b+zOy{Ҩ6$Ő
Y5b,G=Ybc4$8 C43JWgI4oMH}r  1sEAӟUM    ~sŏu5e&:qI,Pm	
Y5b,G=Ybc4$8 C43JWgI4oMH}r  1sEAӟUM    ~sŏu5e&:qI,Pm	
&:
6ӉE61F1*ƯL4/*5        ˜N#f4&6-8VG
&:
6ӉE61F1*ƯL4/*5        ˜N#f4&6-8VG
c       t(/FXj"VKh+W&E0+9k_`FXjqwyi#-e=
Yl4&pUT
z_E'eѤYqL]oW߇%(#r[ZY&Uye$P}`0Ь\pд]᳕FUڬ030hVFДhr>ɡWYYwN
[~z||Z
c       t(/FXj"VKh+W&E0+9k_`FXjqwyi#-e=
Yl4&pUT
z_E'eѤYqL]oW߇%(#r[ZY&Uye$P}`0Ь\pд]᳕FUڬ030hVFДhr>ɡWYYwN
[~z||Z
w~
w~
|H/ۦMMK'[NIwON@]u
|H/ۦMMK'[NIwON@]u
+PW@]u
+PW@]u
+PW{4IENDB`}DyK_Ref531365462!DdM*>
+PW{4IENDB`}DyK_Ref531365462!DdM*>


#A"2%n qJp*k}`!c%n       qJp* cjh>1xݘ]LTG+X`*VLJij41(*ZTa[iXb51kHEM/PFA_4i$!FT>hjjs{{\5]r9̝U3)dԖ\a!hUc7~? l%MmrP.Eߟ^xJ
#A"2%n qJp*k}`!c%n       qJp* cjh>1xݘ]LTG+X`*VLJij41(*ZTa[iXb51kHEM/PFA_4i$!FT>hjjs{{\5]r9̝U3)dԖ\a!hUc7~? l%MmrP.Eߟ^xJ
AV_(W391byXOB
AV_(W391byXOB
:
:
}
}
}KF^+7UBAQz~N/A_o     BH=QEBzg    }Ћ>_苄^,UB/zzf3Qը~ugGC_Wރ?Myuuo7ǎ^IB.w}ЏO  
}KF^+7UBAQz~N/A_o     BH=QEBzg    }Ћ>_苄^,UB/zzf3Qը~ugGC_Wރ?Myuuo7ǎ^IB.w}ЏO  
/
/
/}Hׅ~S跅~OXυNn jYν)73ɝ7=ƛgh]A&9?-{+mn~[LUP HmFg_JWQ^}j_qf:t65bB[,3gƃ_ʽȥJ>
}ς#][ќ>Fi>}QhKkO3e^Vvsjb2MkňͯPfK'^
<,`dSNu7dtmj,RLZЬr26!qoVװӌXccbnČ]zqh}Ur3V<&/9~ס+T/_zs馿S>]֚O9ՒתYS_Otn}t'ϴsgS@f{|Q#-j!Hli{}b8=ϳ=G
/}Hׅ~S跅~OXυNn jYν)73ɝ7=ƛgh]A&9?-{+mn~[LUP HmFg_JWQ^}j_qf:t65bB[,3gƃ_ʽȥJ>
}ς#][ќ>Fi>}QhKkO3e^Vvsjb2MkňͯPfK'^
<,`dSNu7dtmj,RLZЬr26!qoVװӌXccbnČ]zqh}Ur3V<&/9~ס+T/_zs馿S>]֚O9ՒתYS_Otn}t'ϴsgS@f{|Q#-j!Hli{}b8=ϳ=G
۷޿~Q|sBWW|+
۷޿~Q|sBWW|+
y祬~5B4lj:Y2l!%JaY-fZ3d.f{cvafGdˬ9f3dv0n1>G̞03)%*2dl̊gY1UʘU2cF&bgM_Jb%F|Y{;l=61`Ynf{`vf'bvYf]dvefC̮36{2{93б3wn-{:V
y祬~5B4lj:Y2l!%JaY-fZ3d.f{cvafGdˬ9f3dv0n1>G̞03)%*2dl̊gY1UʘU2cF&bgM_Jb%F|Y{;l=61`Ynf{`vf'bvYf]dvefC̮36{2{93б3wn-{:V


#A"2=G3zZ|>Gnv<`!<G3zZ|>GnvNAjA<x}
|Ź=}ΞMBAQPI,$D    M
#A"2=G3zZ|>Gnv<`!<G3zZ|>GnvNAjA<x}
|Ź=}ΞMBAQPI,$D    M
|$yEjAHK)
|$yEjAHK)
Wi˵j-(I~*h=g'           $YNagyyfvvvv9Αrd.{˽F U@}vr4/D9nU{qEȒKR{q\
ٸ3v'7,[r\       7{(Nx(S/+|2pM?P՜'G\I !\/s5cWt"q3/eQI􎺖U]jm.vmrd@7sz:`z{Z&Nt]ebo;wWöUO]jc6R.]˟LO0IgeţVs:/`?2|;lYUFjqip҉T"\˲.o~WH2l?۵z~vע7u;лކd;쎾{3|k0'b0Hq_;~a,X=0/e
Wi˵j-(I~*h=g'           $YNagyyfvvvv9Αrd.{˽F U@}vr4/D9nU{qEȒKR{q\
ٸ3v'7,[r\       7{(Nx(S/+|2pM?P՜'G\I !\/s5cWt"q3/eQI􎺖U]jm.vmrd@7sz:`z{Z&Nt]ebo;wWöUO]jc6R.]˟LO0IgeţVs:/`?2|;lYUFjqip҉T"\˲.o~WH2l?۵z~vע7u;лކd;쎾{3|k0'b0Hq_;~a,X=0/e
w1
w1
0?f9cX~(ÏcW3fax+OvE_C_

0?f9cX~(ÏcW3fax+OvE_C_

×2|?u?%i>3<_135i"~`_`6ß`
$KLg|/b2dbZo`3o/3G2D3zÿgW00/e
×2|?u?%i>3<_135i"~`_`6ß`
$KLg|/b2dbZo`3o/3G2D3zÿgW00/e
w13<_135?Lgq?0j2O270?g"/cJ!e? Lg?g3w0>?3Y^|M?0|)W0!mFx]8#j^耝eq?IWp{I+BY՗}>Ց923rOț,}7|䜨nøk-[yKޑ鑼Dm-Oq_u"%.ܷK(̿/瞑i\7
w13<_135?Lgq?0j2O270?g"/cJ!e? Lg?g3w0>?3Y^|M?0|)W0!mFx]8#j^耝eq?IWp{I+BY՗}>Ց923rOț,}7|䜨nøk-[yKޑ鑼Dm-Oq_u"%.ܷK(̿/瞑i\7
I[df0z.)6TZѥ'Ȼo3w<5Fc>x87E#|&a2xWDfݕY1tևp3lƻNV
I[df0z.)6TZѥ'Ȼo3w<5Fc>x87E#|&a2xWDfݕY1tևp3lƻNV
t>cä-p3pE^=nқkAV"urS$nQVV_<ٴVa흘v0rD<~'phX+8NU}X㣈_̾?t I|w{Oׁ[2`diT`IUA,(e/F6g 0
K$VOF@
i
t[     Cוy
t߀:؂|5ҽ{oD_nHqe{^G;˷+: \~Ou}"ZHg5?:Fw
t>cä-p3pE^=nқkAV"urS$nQVV_<ٴVa흘v0rD<~'phX+8NU}X㣈_̾?t I|w{Oׁ[2`diT`IUA,(e/F6g 0
K$VOF@
i
t[     Cוy
t߀:؂|5ҽ{oD_nHqe{^G;˷+: \~Ou}"ZHg5?:Fw
T
T
ph-_,v)ɿz9.N,w]ߍBUpHPe#{zDAP{"W~/vO-sqG
{EJ_\>mcE?WͶqJT:jDNVkk֬iSQȕ(ԿEtt-VmJb'[1 xH'Փn"u$d'Yp'7\mj~"`PdF"㬬C{~:7U?[UWGb9U7p܌6U?Hw">俒ȸԁ9{IOU)^6mo#~a3n߆|%J'#uZ[ˡJo@lq{
ph-_,v)ɿz9.N,w]ߍBUpHPe#{zDAP{"W~/vO-sqG
{EJ_\>mcE?WͶqJT:jDNVkk֬iSQȕ(ԿEtt-VmJb'[1 xH'Փn"u$d'Yp'7\mj~"`PdF"㬬C{~:7U?[UWGb9U7p܌6U?Hw">俒ȸԁ9{IOU)^6mo#~a3n߆|%J'#uZ[ˡJo@lq{
^E=ȷC"~֍BNƗnR]eJ^u)s_N< oEfy
^E=ȷC"~֍BNƗnR]eJ^u)s_N< oEfy
 
 
M<7X~'ԁyav<9OD[a7 `_Oꎽo:`W]DԳz   psqYc!d
"N﨣M
M<7X~'ԁyav<9OD[a7 `_Oꎽo:`W]DԳz   psqYc!d
"N﨣M
F8%qh"EڟFs2?Fl\K%"NEdl9EA>ArQX \˨aY;0ODFrDOvCF8cpF걸zlm9D cecb*doə."kζΌ;r/%cS1P̱rMÈwW6"*F飘mįTAFdFJ$J퐕ݎke(QN6Wbۈ_m#{X_>0՗W!GZUn^:V9c@0ӞL{
F8%qh"EڟFs2?Fl\K%"NEdl9EA>ArQX \˨aY;0ODFrDOvCF8cpF걸zlm9D cecb*doə."kζΌ;r/%cS1P̱rMÈwW6"*F飘mįTAFdFJ$J퐕ݎke(QN6Wbۈ_m#{X_>0՗W!GZUn^:V9c@0ӞL{
3)̴0ӞL{
3)̴0ӞL{
3)̴0Ӟ      ޞsƸ9[˸i[P츬|$y1v
3)̴0Ӟ      ޞsƸ9[˸i[P츬|$y1v
Ps5dMa<_4`
DA4CsH9Bם9!7o!l]37PwC/
Ps5dMa<_4`
DA4CsH9Bם9!7o!l]37PwC/
-1Wx['-5LI[94.|R/ǯ'5Qo<	s<O"}RTG
#>qǾ*<"~E!U4!_/1Vq|F~&s^h6ھj;h͸{\Id+l6ھ9A藜H:[5hvj745\Pn}>U7*
-1Wx['-5LI[94.|R/ǯ'5Qo<	s<O"}RTG
#>qǾ*<"~E!U4!_/1Vq|F~&s^h6ھj;h͸{\Id+l6ھ9A藜H:[5hvj745\Pn}>U7*
Ŀ>S.@ל:OA~ŕ\w,h
Ŀ>S.@ל:OA~ŕ\w,h
RmWB}=V!G%W'
Dp>⫁V#o$mcgΎG.ΣLJd_¨uD&Os|)ï{=%N㛈Z{k0Ĺ&P|,YX`uǻr^5'<;7Y{cyQwcc{,6:gEwNb}i^g{vBw,݊r5[Q[li
xu0ex{ߋt"=ȗ^rD{mtoOɺl"\=H7l{ۏR^N/@~Z`@Uh-7(w"ݝH?
RmWB}=V!G%W'
Dp>⫁V#o$mcgΎG.ΣLJd_¨uD&Os|)ï{=%N㛈Z{k0Ĺ&P|,YX`uǻr^5'<;7Y{cyQwcc{,6:gEwNb}i^g{vBw,݊r5[Q[li
xu0ex{ߋt"=ȗ^rD{mtoOɺl"\=H7l{ۏR^N/@~Z`@Uh-7(w"ݝH?
!NJqVl(=dET YuԞ/ez?BB,Eӄbb]=|{ﳮH7v,DXEVXkE2K
!NJqVl(=dET YuԞ/ez?BB,Eӄbb]=|{ﳮH7v,DXEVXkE2K
DrH:ȕhd=z\g,_"q:un:Y_+#Λ !{   _27`[D
DrH:ȕhd=z\g,_"q:un:Y_+#Λ !{   _27`[D

)x^0ǣ\g,_"qxrEAKYɐK.}/["s)E

)x^0ǣ\g,_"qxrEAKYɐK.}/["s)E
8Eb;tp=Gp0%dc^Aw;趆D5bH86R}>ݽ@Do_?t76@~:{P>2Y=7Bu"M2m盭&"Vxp/>Wvz!϶3xyuzgub^W:VX+cڷg(Kۨ3m
qqratMD~94V$w,u!"ӄuOt>V|,cx'2.rZNN>]!.#W@<"ܕ0w30ZgxFVW̓:"!C-U\na-ZS=gޛR#(OE#nCX~??fU)E'3c'3f&R,+C_Ud/;ђQ)_,3D6e\Db1ENt
{_zR
\zZԛyq#a u7Dfz*re̖zjf|KNEt^&ޛC-&:oW*Dכyl0OQ\v&o959V\gЛwc7m۴7ѹ~n~?A"$'~B|?j'}?n	w+O88/̋<{E"{ȱ"
qyrs[yg}Niٷ/H^p[m4qݷ㊣ϸ|f)N[+y3$>ЁpaF9Go{I;+nlM@螘y|elkˏo~1_docDCO3P11?"~`ObB,TCBC/snon\0Z(!,)|&>[µB':Sw~nc\÷1y	36/1RHb/Y^d
8Eb;tp=Gp0%dc^Aw;趆D5bH86R}>ݽ@Do_?t76@~:{P>2Y=7Bu"M2m盭&"Vxp/>Wvz!϶3xyuzgub^W:VX+cڷg(Kۨ3m
qqratMD~94V$w,u!"ӄuOt>V|,cx'2.rZNN>]!.#W@<"ܕ0w30ZgxFVW̓:"!C-U\na-ZS=gޛR#(OE#nCX~??fU)E'3c'3f&R,+C_Ud/;ђQ)_,3D6e\Db1ENt
{_zR
\zZԛyq#a u7Dfz*re̖zjf|KNEt^&ޛC-&:oW*Dכyl0OQ\v&o959V\gЛwc7m۴7ѹ~n~?A"$'~B|?j'}?n	w+O88/̋<{E"{ȱ"
qyrs[yg}Niٷ/H^p[m4qݷ㊣ϸ|f)N[+y3$>ЁpaF9Go{I;+nlM@螘y|elkˏo~1_docDCO3P11?"~`ObB,TCBC/snon\0Z(!,)|&>[µB':Sw~nc\÷1y	36/1RHb/Y^d
nʛ_)Kd%N*-f)|a/XNzm^9g&L<%-~$FYm)pL&~OJ|)ïgF+>
nʛ_)Kd%N*-f)|a/XNzm^9g&L<%-~$FYm)pL&~OJ|)ïgF+>
шg#6m˦59pj/;6`ӪZyS;T;?Ut6a'
F24*G>72|d\W,1|fxᛜmd_MSjM      ;ʗ~ygd4.}(_E$n?`?S#q+4&Tp)pO?3Oir.mxtCod?Sp{ec\!rzZ6#zJ_w%zΛP[dvNjmNwydU6~G
шg#6m˦59pj/;6`ӪZyS;T;?Ut6a'
F24*G>72|d\W,1|fxᛜmd_MSjM      ;ʗ~ygd4.}(_E$n?`?S#q+4&Tp)pO?3Oir.mxtCod?Sp{ec\!rzZ6#zJ_w%zΛP[dvNjmNwydU6~G
ʝ"
ʝ"
?*       ݯ\t@N^2ʦ*sX0@Y*Q M2    ǂA| +EBFanӶM&Ul{mVmryO     {).LD[r&[itRݷ+sߨsBL'G阈%Uq
觧f/&COضVko
?*       ݯ\t@N^2ʦ*sX0@Y*Q M2    ǂA| +EBFanӶM&Ul{mVmryO     {).LD[r&[itRݷ+sߨsBL'G阈%Uq
觧f/&COضVko

fh=mxB+?Ѿ'|S(

fh=mxB+?Ѿ'|S(
1nA!7;\wWq<#=}^wP2~RRd轟]*{Zaoh{NMl{k-ZړbZrA6{dZiW*nKӵ!v7)R6UZc%o6 }%-G~r~V;Q*+v=\EeöTQZZ,/Q
1nA!7;\wWq<#=}^wP2~RRd轟]*{Zaoh{NMl{k-ZړbZrA6{dZiW*nKӵ!v7)R6UZc%o6 }%-G~r~V;Q*+v=\EeöTQZZ,/Q
oH"{~ /D~MXwWA;[bGĎOhc+Y?-fXˎ?<2m;QGŴ-[ut}s/U!U/Y}ArF+ohYWh$v$Ӵck@d"b-;eqm;ر"3l8)Vo+!
oH"{~ /D~MXwWA;[bGĎOhc+Y?-fXˎ?<2m;QGŴ-[ut}s/U!U/Y}ArF+ohYWh$v$Ӵck@d"b-;eqm;ر"3l8)Vo+!
dc^21r)oț_
NC(wA;< l    c**| yg*S)RP[(c%Y
``7q9snGt'Itێ
ۚ6U"*z*Fk诒5+̧#}Ucf̧B^kGkZ~JEԴWg;*щzt^J6Akk4Epl/݂zHr-e}f!Xcsi&[}D
?b/7
dc^21r)oț_
NC(wA;< l    c**| yg*S)RP[(c%Y
``7q9snGt'Itێ
ۚ6U"*z*Fk诒5+̧#}Ucf̧B^kGkZ~JEԴWg;*щzt^J6Akk4Epl/݂zHr-e}f!Xcsi&[}D
?b/7
`ouo&{Bي`>$8GρLFxEo&$7ݸ//^!yC $vZovZ%9=X%"n}f+	k1ǐAOΓȶ%"_[&}goUg(kö#@('Af#rpOF\' >4Ӑn2O@\'Iv7툀nn3Vw}Ƹ3o;þz9Dyug5{uh@V 6-nۭ5lvfmG~3aIg6zFXжt9)6RD^Jvj1C1osj~$]s1;N6@J㒕;.M]j98׫^x.wxO¨p"C"C0||       1|<_T8zw:뭎LF~`eR뮫}QB|91W"u( 
`ouo&{Bي`>$8GρLFxEo&$7ݸ//^!yC $vZovZ%9=X%"n}f+	k1ǐAOΓȶ%"_[&}goUg(kö#@('Af#rpOF\' >4Ӑn2O@\'Iv7툀nn3Vw}Ƹ3o;þz9Dyug5{uh@V 6-nۭ5lvfmG~3aIg6zFXжt9)6RD^Jvj1C1osj~$]s1;N6@J㒕;.M]j98׫^x.wxO¨p"C"C0||       1|<_T8zw:뭎LF~`eR뮫}QB|91W"u( 
Za
GWdwbt!Ϡ74M{;]\4[}_Iۇmͫd3QGO*"mD*}|y?,kuM]e3a\Xr)F$=}|
"GP$1o_h˿Ebn6WI
:whbѿ-VD*ćH܊~DHďUӏջD*d'hbp~_z?ݛN[P}+ћ#z/zS]}+Z^鉭U:uaEdߋ{?4   z`?.
Za
GWdwbt!Ϡ74M{;]\4[}_Iۇmͫd3QGO*"mD*}|y?,kuM]e3a\Xr)F$=}|
"GP$1o_h˿Ebn6WI
:whbѿ-VD*ćH܊~DHďUӏջD*d'hbp~_z?ݛN[P}+ћ#z/zS]}+Z^鉭U:uaEdߋ{?4   z`?.
"X.9tH)[+ӁN^;"OwT5޾bGwk>%ޖ}JjK'y/{v{܏=ƃj913FHgCcOΓbީꄎG9G)TQ)^p#vG4Qk       ~?G7
"X.9tH)[+ӁN^;"OwT5޾bGwk>%ޖ}JjK'y/{v{܏=ƃj913FHgCcOΓbީꄎG9G)TQ)^p#vG4Qk       ~?G7
R&[[h-P?G|qgg13=}Tf,_dzXy@r
R&[[h-P?G|qgg13=}Tf,_dzXy@r
,EtE;駧5Y:"̎{sKuX\om9˳Wx~..^6
,EtE;駧5Y:"̎{sKuX\om9˳Wx~..^6
j}Y'@Zݡ}.(5ޭzՍ}[rczw~n~^/KU}#d'?vHE;Q GދR{/v8]k@     }ЮCmҠ-T~=Gx3*p;KGS͊YY$:xs۲_&cħ_Tj*>Q2|o$OC[IiwQyn#?|ۑEIT'7HPg/=3=;3=X1ֻ.wL
j}Y'@Zݡ}.(5ޭzՍ}[rczw~n~^/KU}#d'?vHE;Q GދR{/v8]k@     }ЮCmҠ-T~=Gx3*p;KGS͊YY$:xs۲_&cħ_Tj*>Q2|o$OC[IiwQyn#?|ۑEIT'7HPg/=3=;3=X1ֻ.wL
<< ~X9'3=8!e!H_|s'mK#I5ש{6=X~cS?iY^Ik=|2W?ı	σ?tg	>D~rDo{}F7kH+zW@Maa7sΖL)L4_ۛ0Jz_'ћ<‰_.YMwɺ"yׯMrX*wއH$2$\oy{q{Bـ^ث/fG˗CzbO"{y394EENy42/CQK#k?2nUnM dtmslMBA'QH'J'D'{b*}>;ʵ{vp}[-p}+j휹]\}s{#a'&&4יLRYW}>EI{cٛSZ_Ve5t
䒯
<< ~X9'3=8!e!H_|s'mK#I5ש{6=X~cS?iY^Ik=|2W?ı	σ?tg	>D~rDo{}F7kH+zW@Maa7sΖL)L4_ۛ0Jz_'ћ<‰_.YMwɺ"yׯMrX*wއH$2$\oy{q{Bـ^ث/fG˗CzbO"{y394EENy42/CQK#k?2nUnM dtmslMBA'QH'J'D'{b*}>;ʵ{vp}[-p}+j휹]\}s{#a'&&4יLRYW}>EI{cٛSZ_Ve5t
䒯
DFsao>~ƕ[
DFsao>~ƕ[
?RbRl^Q5R<$JbNy[A(boP8>i?QlPl5^^M;Io(PPX>Ŋ(VFJmXbkٽ(6b)6bSl=vPlŎP}SөQlŦPb{b(:ŎRb)&Q,b)6b+(P
@1OOb(6b(b/Pl/ަ	7Q,bE+X%ŶS,DZ5PAAIM)b;(bG(>Rψ3MC)+XŞخ<_w43F~odFoE涗IxhtFE̿,-F3+K8oΰUs%-()~h֭7eYM8ke5$hNt:yn΍"[{ϋ7%8>x%?Hw">}Z+X8{/{]Jp|2K#~a3n߆|%ʺ܀kAV,Q(qʺ*j{ hYuYl
Ogk>?@z%>WxYڀfķm@aH
H+\seX,GVlkP
(w ૑U߃|;$ڏ*s/THkcN\n.;m:U1I#]f{`悒E7q(?
?RbRl^Q5R<$JbNy[A(boP8>i?QlPl5^^M;Io(PPX>Ŋ(VFJmXbkٽ(6b)6bSl=vPlŎP}SөQlŦPb{b(:ŎRb)&Q,b)6b+(P
@1OOb(6b(b/Pl/ަ	7Q,bE+X%ŶS,DZ5PAAIM)b;(bG(>Rψ3MC)+XŞخ<_w43F~odFoE涗IxhtFE̿,-F3+K8oΰUs%-()~h֭7eYM8ke5$hNt:yn΍"[{ϋ7%8>x%?Hw">}Z+X8{/{]Jp|2K#~a3n߆|%ʺ܀kAV,Q(qʺ*j{ hYuYl
Ogk>?@z%>WxYڀfķm@aH
H+\seX,GVlkP
(w ૑U߃|;$ڏ*s/THkcN\n.;m:U1I#]f{`悒E7q(?
!C֠;JD6Wl
;Q76D+uͷjb#Ϩbua`mǥ\4isĔex}Ha6Ɗ['=M&gU:V%I夛)yHzKK/E@Hta9񬻰pMZ"Žs:_w_   ^w]D7zؙD ?mv>chO+9C3xKxŸz{sN=oSwp9M=BE,ؗmW _    9_ɻqc^mWL~Ŵ_1mW^Z͢XPJ6.q]
!C֠;JD6Wl
;Q76D+uͷjb#Ϩbua`mǥ\4isĔex}Ha6Ɗ['=M&gU:V%I夛)yHzKK/E@Hta9񬻰pMZ"Žs:_w_   ^w]D7zؙD ?mv>chO+9C3xKxŸz{sN=oSwp9M=BE,ؗmW _    9_ɻqc^mWL~Ŵ_1mW^Z͢XPJ6.q]
~q/;RCd^m6Saj0q8Lm6[Ob.~}ug;s,EQ~F̽)c w lH3kDCsH9BƋd9Np
KWuuwКScMd+I@뚻/њf$zlתzMSmNfgJS/n@k3Kĩ~i'ikuU*xnoB_ܟ C7w/lJ[GMOc68.:K]\/g.480;M,ib[猗ͻX0Ĺ&P|,YX`]FGz/9Ͻ=0Y3"ME
~q/;RCd^m6Saj0q8Lm6[Ob.~}ug;s,EQ~F̽)c w lH3kDCsH9BƋd9Np
KWuuwКScMd+I@뚻/њf$zlתzMSmNfgJS/n@k3Kĩ~i'ikuU*xnoB_ܟ C7w/lJ[GMOc68.:K]\/g.480;M,ib[猗ͻX0Ĺ&P|,YX`]FGz/9Ͻ=0Y3"ME
v"Wt_mpdxnyoyR7خ^k!n\;c6y/݋ _g{yʒG:z8Sr
v"Wt_mpdxnyoyR7خ^k!n\;c6y/݋ _g{yʒG:z8Sr
Yť!>(w"ݝH?
Yť!>(w"ݝH?
!N^]Ie1u2>,@"_$2,zdp3cp,ݽ=i;F5{ex͞.[J2K
!N^]Ie1u2>,@"_$2,zdp3cp,ݽ=i;F5{ex͞.[J2K
DrH:xO]uENdnUnUnU^Jd}3Opԗ;o\,%U2Jlp\H1#&yAvyAvyAvyRuKYɐK*=O@HA{	}[ Y#UAw3Yu@ntFcmt-u/!s:&{Ksڼ&k{n{&wh?F( &v->.w7B"l	gOݧ~	)&6D0iY>3747)mZ#u?rS.ux:ਕpZ'<^,\1"asDMnJdd҃me&6D4i{b?X
>*-McF_Ih-YK&+X)S,DZ)~˻7Hba)uʓ"Hm{Y<3=|f=_RuuCʲ]d/+'$W;'xV*OHqX<5      ^딇b2UUK}WݼFth\!7˧g0Kr[/$BK"DJ2_d7],!5w؂sO(s)ͳP~'G"cyU;fdbNQhbGDEA%Q`bGD"^HHʅ:Fo
DrH:xO]uENdnUnUnU^Jd}3Opԗ;o\,%U2Jlp\H1#&yAvyAvyAvyRuKYɐK*=O@HA{	}[ Y#UAw3Yu@ntFcmt-u/!s:&{Ksڼ&k{n{&wh?F( &v->.w7B"l	gOݧ~	)&6D0iY>3747)mZ#u?rS.ux:ਕpZ'<^,\1"asDMnJdd҃me&6D4i{b?X
>*-McF_Ih-YK&+X)S,DZ)~˻7Hba)uʓ"Hm{Y<3=|f=_RuuCʲ]d/+'$W;'xV*OHqX<5      ^딇b2UUK}WݼFth\!7˧g0Kr[/$BK"DJ2_d7],!5w؂sO(s)ͳP~'G"cyU;fdbNQhbGDEA%Q`bGD"^HHʅ:Fo
        "jp#N=gĴLJ_-қXTNgo:aǰbcXt
b?.eP,b?JWcX7ԃW`u
        "jp#N=gĴLJ_-қXTNgo:aǰbcXt
b?.eP,b?JWcX7ԃW`u
a4+
a4+
س(ևb_&V'5Cj?OoFratJ&jb>UU̧ʵTV)z(VfȆQMkr۞6ڙh_:EKSKgvܩa?F(`7OKbL6Sl
س(ևb_&V'5Cj?OoFratJ&jb>UU̧ʵTV)z(VfȆQMkr۞6ڙh_:EKSKgvܩa?F(`7OKbL6Sl
(6bŚJ푪T;mJUtS; pְDV(6bc)w]pO?3Oir*k#F|6Rl>S,5=VFae\Y
(6bŚJ푪T;mJUtS; pְDV(6bc)w]pO?3Oir*k#F|6Rl>S,5=VFae\Y
Dit'$R^_+_M]kLUNJyj"!U)8\e&㜪2G)^ʿ ,\d+S|,A7
Dit'$R^_+_M]kLUNJyj"!U)8\e&㜪2G)^ʿ ,\d+S|,A7
R$XǗ`&wɭ*>%P"BDP7aw6Vݣz7* Sɴl=_W䗄%){TV(=,~}O<aP
R$XǗ`&wɭ*>%P"BDP7aw6Vݣz7* Sɴl=_W䗄%){TV(=,~}O<aP
       _\)~/6`Ra\o˰?YgJ94H   [W=^\o?/X'K!9zd2³-
       _\)~/6`Ra\o˰?YgJ94H   [W=^\o?/X'K!9zd2³-
t|"orK$ۃ[Mw!Lp%\4Ӑn2O@\'籎_ï2񿯄}r|u9ۿZG@ǙutΆAn@8lW9b,Eqd<;/܁pA" %+wp1\22k_+aY%Z=mB-nD7?`sJXGM|:2j:u*R7Y%u( 
t|"orK$ۃ[Mw!Lp%\4Ӑn2O@\'籎_ï2񿯄}r|u9ۿZG@ǙutΆAn@8lW9b,Eqd<;/܁pA" %+wp1\22k_+aY%Z=mB-nD7?`sJXGM|:2j:u*R7Y%u( 
o˓C:CANyHY.fήw|g^ӶJ6iv\DĨ3DNU6"m[*Ѿ35X-vY"񮫱dn:FU5_hu4uȽSSnB9_l5m)OH(׋.    pD'ѧCJ~Z![g]yH:+^<}.{~]"}T}r?.WpC7"ݟ!?9u       [5}u4
o˓C:CANyHY.fήw|g^ӶJ6iv\DĨ3DNU6"m[*Ѿ35X-vY"񮫱dn:FU5_hu4uȽSSnB9_l5m)OH(׋.    pD'ѧCJ~Z![g]yH:+^<}.{~]"}T}r?.WpC7"ݟ!?9u       [5}u4
>K\n܎(`r&[9x
7GH& QAV,O¯~)狣=qʅsY,yf
>K\n܎(`r&[9x
7GH& QAV,O¯~)狣=qʅsY,yf
xhJ=ɳ
xhJ=ɳ
ǁ-7W!9r߱Zjخ:o%WC[Iiwqyn#?|ۑEIT[LNLOߐdyrqq\}?\2ː   /COcl{ޓ/j_H]<ӵn42]Dv/
ǁ-7W!9r߱Zjخ:o%WC[Iiwqyn#?|ۑEIT[LNLOߐdyrqq\}?\2ː   /COcl{ޓ/j_H]<ӵn42]Dv/


#A"2=i4ClT*ɪqiA`!i4ClT*ɪq{`ghx      |E{>2pS%",`X@!A%"Q *!(QFt%YE֠˂,4WݕGIH`2>Ew=꽪p
#A"2=i4ClT*ɪqiA`!i4ClT*ɪq{`ghx      |E{>2pS%",`X@!A%"Q *!(QFt%YE֠˂,4WݕGIH`2>Ew=꽪p
Zwgruc8-iA7\:Sט..[(]5$R
ñO{nM@Bi_4`z01|CH?r=v=sqdn
Zwgruc8-iA7\:Sט..[(]5$R
ñO{nM@Bi_4`z01|CH?r=v=sqdn
)&h;YyuH2͏u潎M]3`Z?`W\\!]    )       R{{$0Z')_߫l޽e4t~K!]}c[Qbw;ñⱬ+St'_nMt;8.oP~Y82mNf*_lG#~)_x|r7丰7=.|~`H2bJ{\_c/d[x{!!~JE_E-C|     įC- .!꿂?#ňA|xK!#꿌?/#$!>E<KK#_OC|8OBE""oEyė!~/SGķ %C|_#>1G-8<G_fw#~+|(Cy;Ļ#>I߃R#6"~ӈB(o"D|SD<\ķ#q	I(x*@<7!ď#QQG<l!W߉AO N$T%T@!>G_fw#~+22wG|񥈯Gm?D07TT0ħ"x6⹈oG|?_#3>SO⥏X[+VGhP[x
)&h;YyuH2͏u潎M]3`Z?`W\\!]    )       R{{$0Z')_߫l޽e4t~K!]}c[Qbw;ñⱬ+St'_nMt;8.oP~Y82mNf*_lG#~)_x|r7丰7=.|~`H2bJ{\_c/d[x{!!~JE_E-C|     įC- .!꿂?#ňA|xK!#꿌?/#$!>E<KK#_OC|8OBE""oEyė!~/SGķ %C|_#>1G-8<G_fw#~+|(Cy;Ļ#>I߃R#6"~ӈB(o"D|SD<\ķ#q	I(x*@<7!ď#QQG<l!W߉AO N$T%T@!>G_fw#~+22wG|񥈯Gm?D07TT0ħ"x6⹈oG|?_#3>SO⥏X[+VGhP[x
7!>و/B|5"񃈟@設Q[x7">?Z7#CD\1P[aA| F4↉
7!>و/B|5"񃈟@設Q[x7">?Z7#CD\1P[aA| F4↉
D|SD<\ķ#q
D|SD<\ķ#q
"ijA|@8TcPG<l!W߉AO N|PG\E|-ߍ!O"Ģ?$A|)?i
?~T0ħ"x6⹈oG|?_#38TPG<tg xGA]_*^=+eq8.{??q<7ҹ_Ynk#rױl>;׃0폳&K>
"ijA|@8TcPG<l!W߉AO N|PG\E|-ߍ!O"Ģ?$A|)?i
?~T0ħ"x6⹈oG|?_#38TPG<tg xGA]_*^=+eq8.{??q<7ҹ_Ynk#rױl>;׃0폳&K>
s72T@F13E>k';S܈v
s72T@F13E>k';S܈v
9-aqB>S~5
7~ti:-W;fҢ/߁w_s̻v\I|sO  -恮RJY}틻yӹ)\n&mJ)εD/ν3=ɞP{(2eXH܈@pU]8]ؙ,v_J+:7V|[>|2oe1އPx
9-aqB>S~5
7~ti:-W;fҢ/߁w_s̻v\I|sO  -恮RJY}틻yӹ)\n&mJ)εD/ν3=ɞP{(2eXH܈@pU]8]ؙ,v_J+:7V|[>|2oe1އPx
_z13+0+j;x֋W:ێv̄yܷ]66IA&6Mh>Y\)`c<+qZwqCz7c%;E-8YI^/;fd{6dB
ߌqsƻ1&~:w\W2حVKι9vհb:M,^D΄pn7z
_z13+0+j;x֋W:ێv̄yܷ]66IA&6Mh>Y\)`c<+qZwqCz7c%;E-8YI^/;fd{6dB
ߌqsƻ1&~:w\W2حVKι9vհb:M,^D΄pn7z
ӝ>P?p
ӝ>P?p
AZpI16 :x*o2.Mo%4$>N*w}
AZpI16 :x*o2.Mo%4$>N*w}
/e-{;doS        ee||L_^ BO޾fZ}yJuG,HeM#@=#e_9(8KM62Jy]/Dl'B@~/M8),"xVSv?Yb7yv?^eMmnbPk{
B&/Dge\C_xn,~?^U-mkhkؾeO?U|
,_Cs^C񚆁khr
[s<	v>޴.O(˒l;:@^Ktn\1/B]ʨ+BuE(eK>L+vLhMRQ]_5>Qb߯Rk1SF7E4WAjavS:
/e-{;doS        ee||L_^ BO޾fZ}yJuG,HeM#@=#e_9(8KM62Jy]/Dl'B@~/M8),"xVSv?Yb7yv?^eMmnbPk{
B&/Dge\C_xn,~?^U-mkhkؾeO?U|
,_Cs^C񚆁khr
[s<	v>޴.O(˒l;:@^Ktn\1/B]ʨ+BuE(eK>L+vLhMRQ]_5>Qb߯Rk1SF7E4WAjavS:
e!aH
e!aH
ȥVf⾡*v3h:MPMZEPjSߐ;Q*5.S).Z!VtNX^?yX~n2L3_:z      3"

Kb|S$Op΍j6gT2JX-.7"_S
_[-78ixC0?4ʪ/嶻v#W@L~)#6$Q,iWFfp)fԼ42fsb   1lwWe0e`\iv;8llυ2aϠ뭄-&ts-ToNޮ$n},7~!ߑhiML_GcOʣ'6y>g*1@_9ft@fPgcSvt_=	A_9dv>67es|~]uIMpliI~@njEߏB{(ڿS8z>ï㵭n^";.spL桉2gvǾFc1ǔ3ɍ䳽[ӡ Ht}F4M~1|J?wACQFQqQl
ȥVf⾡*v3h:MPMZEPjSߐ;Q*5.S).Z!VtNX^?yX~n2L3_:z      3"

Kb|S$Op΍j6gT2JX-.7"_S
_[-78ixC0?4ʪ/嶻v#W@L~)#6$Q,iWFfp)fԼ42fsb   1lwWe0e`\iv;8llυ2aϠ뭄-&ts-ToNޮ$n},7~!ߑhiML_GcOʣ'6y>g*1@_9ft@fPgcSvt_=	A_9dv>67es|~]uIMpliI~@njEߏB{(ڿS8z>ï㵭n^";.spL桉2gvǾFc1ǔ3ɍ䳽[ӡ Ht}F4M~1|J?wACQFQqQl
\b1s
\b1s
RʵH&'>X(4MrX?:I+~wiuwmx->1&!Ѣ)^8ӴG$),   ~qPR`{ u)i>r
zf0!B}*}!(&Z4m!Gt&}
پk'Ff{siWhJnhSeզ럴N{CaPV
RʵH&'>X(4MrX?:I+~wiuwmx->1&!Ѣ)^8ӴG$),   ~qPR`{ u)i>r
zf0!B}*}!(&Z4m!Gt&}
پk'Ff{siWhJnhSeզ럴N{CaPV
[v[臇t/5Wv:g.D_qc{_R>gK4v]wk~'j)[W|])Đ|)%7DӾ8ϖbF-Y}q瞧wFN r?'
[v[臇t/5Wv:g.D_qc{_R>gK4v]wk~'j)[W|])Đ|)%7DӾ8ϖbF-Y}q瞧wFN r?'
i*M>ˆ=?8~J;?FKsÜ.URي}G^R4bJS)w\Vb5 k.ybHwy||o|?iЋ'4~'w?
 +[rGV`o`6o`;`(Aw7װ!nI_ Mz
i*M>ˆ=?8~J;?FKsÜ.URي}G^R4bJS)w\Vb5 k.ybHwy||o|?iЋ'4~'w?
 +[rGV`o`6o`;`(Aw7װ!nI_ Mz
F0JsOsH{ڗ%_%{ڔ{,#=Odo.*g0=^(_.پtΖf*M3l9}X}ef_ऌऌBc齤xX5L':c#h,ppT4֟>A\B/_'b?Nz5i#C`҉P8-/Up7S9!Ru,J;?-՟!i0F9S:+AsW\(ɑQ _M!#WT#~b+9|%_LqhOdWd/|_p7U_1^QdUJ6}_,ElqtW/-u    ~|8 I۽nDk=3"}z]rv#,KwCi廦gXcX[h;pT!G8>cMGcڵ;[vDu
F0JsOsH{ڗ%_%{ڔ{,#=Odo.*g0=^(_.پtΖf*M3l9}X}ef_ऌऌBc齤xX5L':c#h,ppT4֟>A\B/_'b?Nz5i#C`҉P8-/Up7S9!Ru,J;?-՟!i0F9S:+AsW\(ɑQ _M!#WT#~b+9|%_LqhOdWd/|_p7U_1^QdUJ6}_,ElqtW/-u    ~|8 I۽nDk=3"}z]rv#,KwCi廦gXcX[h;pT!G8>cMGcڵ;[vDu
L|S>P4ڽ]G/cۆKmXo`Zai
jSXnA[ P}֢ǘ(}$6"㔎/v[oF%Gȹb>v>kw3^t#NiK)K+)_$t3-Y,%zQ<5{+t)ǑB>tROoYb@~X8tג2|޼
lH9]?3|o>_ƏA,y>}`{{_&,wnޠQ
L|S>P4ڽ]G/cۆKmXo`Zai
jSXnA[ P}֢ǘ(}$6"㔎/v[oF%Gȹb>v>kw3^t#NiK)K+)_$t3-Y,%zQ<5{+t)ǑB>tROoYb@~X8tג2|޼
lH9]?3|o>_ƏA,y>}`{{_&,wnޠQ
qNviID}t      3({#Gݻ!9oFzI}>EvӞ Z޵jwb8>b5~8;Kv#gHKL[t?%R1{m=p͟=vQo7q'0'EtmOGF:;Z5||t'ja7hE^#vzL86F#=&v)Wo#}lï'7NH0ma֞;f{Zb7/LFsi9OhSc)}Rk{յP[JvMm7k;)yu!_#!3лR(Unqs}a?tqw84usZ6N4c;O2+I<-Ao*u<"z|b_?Ʈ)c3}Horʢ/Eu-QzNjV$h+rT-T(~f+]ve%	Z$+>Di/>}^[BjhFY4kPO@]wݦoӣ8pMm>Hm oLaݎ#zf-bio[U³Mnub/EH)/A=Gzd'iL$$%ɓd(!`:jXo[G`YŅ8'P$i2,1z֧w(!yޡ얭[7o|Jqc
qNviID}t      3({#Gݻ!9oFzI}>EvӞ Z޵jwb8>b5~8;Kv#gHKL[t?%R1{m=p͟=vQo7q'0'EtmOGF:;Z5||t'ja7hE^#vzL86F#=&v)Wo#}lï'7NH0ma֞;f{Zb7/LFsi9OhSc)}Rk{յP[JvMm7k;)yu!_#!3лR(Unqs}a?tqw84usZ6N4c;O2+I<-Ao*u<"z|b_?Ʈ)c3}Horʢ/Eu-QzNjV$h+rT-T(~f+]ve%	Z$+>Di/>}^[BjhFY4kPO@]wݦoӣ8pMm>Hm oLaݎ#zf-bio[U³Mnub/EH)/A=Gzd'iL$$%ɓd(!`:jXo[G`YŅ8'P$i2,1z֧w(!yޡ얭[7o|Jqc
$~d߈+jaW5%1_X/ֈV`*b]ؔUlIvA=ŰlIMIC.BH{Q,i^zMBzNh(,iP,߫~௷a!¤FRWmϲ%="Y#H{RcԊl:7Y-
%OJ`:jXo[G~eC^Ne\ND䡤ɰ
$~d߈+jaW5%1_X/ֈV`*b]ؔUlIvA=ŰlIMIC.BH{Q,i^zMBzNh(,iP,߫~௷a!¤FRWmϲ%="Y#H{RcԊl:7Y-
%OJ`:jXo[G~eC^Ne\ND䡤ɰ
z>X^$֡Iv'㯫JWe}1U, _/x
z>X^$֡Iv'㯫JWe}1U, _/x
(6D{>a/ax@)ůBJս#*z/}.~Cޛ uy3;xL@,bYz8Fv!}/dO^TeO?ҏtXX'}.,>K      Hf{2dLl?0K:*dHT]aYSz94ahL%M:OdLsɟč        e
(6D{>a/ax@)ůBJս#*z/}.~Cޛ uy3;xL@,bYz8Fv!}/dO^TeO?ҏtXX'}.,>K      Hf{2dLl?0K:*dHT]aYSz94ahL%M:OdLsɟč        e
S_%GêZK|u<$=CfKϑۤH_iI^+-LXAKm<
S_%GêZK|u<$=CfKϑۤH_iI^+-LXAKm<
y]ϔ wJÉlV0f;fsg*P_Hmd,VKcxNolV;՛az@Wh52]vFoꍴ?uU{W/9ߋAev3z5eߨ(ӾAo1hmFcK#N4j>ך´i8-l
2jC.Z<zKa]l;?~']	:J!@tP6JM~Jc5ܩ27{U7RsjYbTbR{[ϩNu1LrŪie%h͵oFf]mj"c*HL~%Yg/«_m
0\7FhHmL1n&ô!ZOlܨE1(Ac^9nfA?̸AcֺB^6Ҵ~b	/0	OwfGyM my~ߕy^ӹp|G[ji*sFhĹƚw9(klRAV#Gd,S@?hmܯ˸W=aI{h]>tsO8n嘏YBuzv3Uˣ*1X-XԇGh_lMs>jnR_1gsVzUCl-7^`gL}oGmW'ɐ0rlгzwS^ѯW8gFY4^/[qW_FRH)W8(y}hJ4laFrkk4k 0eggh]gh7F}䯍7_=i9g1%1|d"}<[aB+q-sn`b->jsoxVo-o;H0-h=uzc$w;vٹcJpp?9?cLg
MnrW;o_}gwS
Oowl#  26p5s8P2TFʨbu>L%u4VtV>a(y(2GȖXo?KW~E;[Y1E=0V킨o79b1k]ڷ|hB{ڽ-mv0],闰|Oz'a1Jo.΁.f)m澉[ٝvzk蓑 ,˪bZK       {8NSc(n޾,ڝ+s;D݇]SÍ|~WfɐݾqmU]?pݹ\O?;,w9&9!_L;{Mڜ8>Nʻܹ6#Ҏ
y]ϔ wJÉlV0f;fsg*P_Hmd,VKcxNolV;՛az@Wh52]vFoꍴ?uU{W/9ߋAev3z5eߨ(ӾAo1hmFcK#N4j>ך´i8-l
2jC.Z<zKa]l;?~']	:J!@tP6JM~Jc5ܩ27{U7RsjYbTbR{[ϩNu1LrŪie%h͵oFf]mj"c*HL~%Yg/«_m
0\7FhHmL1n&ô!ZOlܨE1(Ac^9nfA?̸AcֺB^6Ҵ~b	/0	OwfGyM my~ߕy^ӹp|G[ji*sFhĹƚw9(klRAV#Gd,S@?hmܯ˸W=aI{h]>tsO8n嘏YBuzv3Uˣ*1X-XԇGh_lMs>jnR_1gsVzUCl-7^`gL}oGmW'ɐ0rlгzwS^ѯW8gFY4^/[qW_FRH)W8(y}hJ4laFrkk4k 0eggh]gh7F}䯍7_=i9g1%1|d"}<[aB+q-sn`b->jsoxVo-o;H0-h=uzc$w;vٹcJpp?9?cLg
MnrW;o_}gwS
Oowl#  26p5s8P2TFʨbu>L%u4VtV>a(y(2GȖXo?KW~E;[Y1E=0V킨o79b1k]ڷ|hB{ڽ-mv0],闰|Oz'a1Jo.΁.f)m澉[ٝvzk蓑 ,˪bZK       {8NSc(n޾,ڝ+s;D݇]SÍ|~WfɐݾqmU]?pݹ\O?;,w9&9!_L;{Mڜ8>Nʻܹ6#Ҏ
!O㏳
!O㏳
^Ԯoq&$Vc\N\Q#wK^WmWtLM 7f?n >HUh2A.}h3^N}EvZD}hw=.t6[$w>k
^Ԯoq&$Vc\N\Q#wK^WmWtLM 7f?n >HUh2A.}h3^N}EvZD}hw=.t6[$w>k
{(1vleE;NkwMm _q>}O]PUgv.εSeq}=c.u]~/%oDVħ# +߈x"N$lj2;#Q߁B+ R(oxW >e{2mHmstP>?"~-mqP~Ȋ2?dst9洝旒P~
7"~+oD<\0CewFWOqR(oxW >\9K.BcBy;Ļ#>I߃x[2cKzE|;);"x:3B<M#~{P^G
#MF|6_D '%i58"(k߬]koň2ǖLtlɖCoG|?_#3ⴝ͕PTx9oB<Gs/G<l!W߉AO N۹`~[#
񁈏C|."Z׹mfܟ9ܟ'!~[ݱ:+=ocýޗ&9_VZ9,$9o2aE]b2/bfJ&
0eũ\JRlui}_KT"_hL{l^>K9P(w0ǜ|q<3L"I6¼ewMܻx~\Յz2I܇w]uvsʣ|G>x2IԻضٶQFmԶYlM}+ak$Sc+qL]N-9婱|)?8}T&7NOL)d1^v;B(_C|)Ojq~ϒ]^g߳ȷOWX9X
}vC-o[.sH{`~+h}Es[%->mӪ׷U}:}L^n
=0L-~SYMf7}7#9Ud-y0?^e|&xF].C׾"
{(1vleE;NkwMm _q>}O]PUgv.εSeq}=c.u]~/%oDVħ# +߈x"N$lj2;#Q߁B+ R(oxW >e{2mHmstP>?"~-mqP~Ȋ2?dst9洝旒P~
7"~+oD<\0CewFWOqR(oxW >\9K.BcBy;Ļ#>I߃x[2cKzE|;);"x:3B<M#~{P^G
#MF|6_D '%i58"(k߬]koň2ǖLtlɖCoG|?_#3ⴝ͕PTx9oB<Gs/G<l!W߉AO N۹`~[#
񁈏C|."Z׹mfܟ9ܟ'!~[ݱ:+=ocýޗ&9_VZ9,$9o2aE]b2/bfJ&
0eũ\JRlui}_KT"_hL{l^>K9P(w0ǜ|q<3L"I6¼ewMܻx~\Յz2I܇w]uvsʣ|G>x2IԻضٶQFmԶYlM}+ak$Sc+qL]N-9婱|)?8}T&7NOL)d1^v;B(_C|)Ojq~ϒ]^g߳ȷOWX9X
}vC-o[.sH{`~+h}Es[%->mӪ׷U}:}L^n
=0L-~SYMf7}7#9Ud-y0?^e|&xF].C׾"
9[2}qSH0_eQݖJ[^KO+}gKd}*gH(uߋpē繎DBB(uI(O"!w?%b(ğD|GפPV
9[2}qSH0_eQݖJ[^KO+}gKd}*gH(uߋpē繎DBB(uI(O"!w?%b(ğD|GפPV


ķ"[ʡ/_?GWB9}.6F|
ķ"[ʡ/_?GWB9}.6F|
KO/F{|/BʯBBE"~
KO/F{|/BʯBBE"~
KPE#߃3P7PG^@?L?0b%F7qS|'>e*o`IFk^
KPE#߃3P7PG^@?L?0b%F7qS|'>e*o`IFk^
_bX/ֿk
DsrBUW=P>ňo4"?rvkRb!nSc6,_e6灊+%@Xo0?Ds(X䫎278N[0߭g"x
_bX/ֿk
DsrBUW=P>ňo4"?rvkRb!nSc6,_e6灊+%@Xo0?Ds(X䫎278N[0߭g"x
!~Rj<,G#
xO|7!qwG	?+_EQ'!{?(r(_TSq!)-lg ~W?,b(A|6o$PA>ď|"~xOs!DM"]/"]b#MR_Flk'Q
!~Rj<,G#
xO|7!qwG	?+_EQ'!{?(r(_TSq!)-lg ~W?,b(A|6o$PA>ď|"~xOs!DM"]/"]b#MR_Flk'Q
`hEB>HIIqYb"K    cq<U
`hEB>HIIqYb"K    cq<U
;އ``yO[۽D1(zņbCBE"~
;އ``yO[۽D1(zņbCBE"~
K|ޓ// WG|3=jH]`6E~'BHW|KКkkA_zfjHh@_'wIJkzV'Iu1$
(e쯰
K|ޓ// WG|3=jH]`6E~'BHW|KКkkA_zfjHh@_'wIJkzV'Iu1$
(e쯰
b&Îo3fkqLŕۀvsmoKrilvSj}"N!ǀs@VF+Maot'`mw4&=~WMZ.j^/FםRMFm~Ao`Ǚ[tUs0huWrGлֻ
b&Îo3fkqLŕۀvsmoKrilvSj}"N!ǀs@VF+Maot'`mw4&=~WMZ.j^/FםRMFm~Ao`Ǚ[tUs0huWrGлֻ
ut@kc,ҶֿvXm}Wdk~@:_vX>o}xXlw+l?e[,7_[{M;!mwG'ͺXYi''җ0Y
kao}l44ZYF['H0/a}?"_8XTSx#7(Hz?*;A_r9q(W+e}Qr<0]L37ϱep۵ʖ9#6EV΃:<nO:>Lgt    ,)kaS
ut@kc,ҶֿvXm}Wdk~@:_vX>o}xXlw+l?e[,7_[{M;!mwG'ͺXYi''җ0Y
kao}l44ZYF['H0/a}?"_8XTSx#7(Hz?*;A_r9q(W+e}Qr<0]L37ϱep۵ʖ9#6EV΃:<nO:>Lgt    ,)kaS
~IX,C'
7&h|ÎXӍcn2$QlcB?6C^LO/8Npb_`.b$9}	'J7iXLv~b Blb;ZwD} s       <9va	.b\X\X\\H\qD}Hƾ>3v>%6_:`yO_뭅VUob
F^Y~;wcq+zgĿ:7ao>>lfX,9FOǪy~=OS8v~8%sظ1_Kc1`((0ll?e1:ٹ籨<'cع!!>XbCC`z]s88w+y8wOV"-+lqK-ѸmjiF{&q;=֍Xݼ.V2cc2B?6c5Ra:o}xXlw+l?e[Zu;biXq?; 6CLmzbl: 6AnXݰ/?]-ώоexY[t<d^;t,JjwJ9!v9.v9*v94vH.%*6Ӽ2vL3`yc&؞.v#	B#N
cGMTl8ߙc6¼	Z!(/:^ky-d\F0Vǀ:zu^jSüV%[̓쩩@{}߹17T,KP8!uNϽEg}4O:m㬁Rwa[zjr;"^;Wѓ/k|~nXܨ񳐏ĔgM;-ͼ
nr5蠇Q0mCf2)Ӵ˨we3pӸ\
~IX,C'
7&h|ÎXӍcn2$QlcB?6C^LO/8Npb_`.b$9}	'J7iXLv~b Blb;ZwD} s       <9va	.b\X\X\\H\qD}Hƾ>3v>%6_:`yO_뭅VUob
F^Y~;wcq+zgĿ:7ao>>lfX,9FOǪy~=OS8v~8%sظ1_Kc1`((0ll?e1:ٹ籨<'cع!!>XbCC`z]s88w+y8wOV"-+lqK-ѸmjiF{&q;=֍Xݼ.V2cc2B?6c5Ra:o}xXlw+l?e[Zu;biXq?; 6CLmzbl: 6AnXݰ/?]-ώоexY[t<d^;t,JjwJ9!v9.v9*v94vH.%*6Ӽ2vL3`yc&؞.v#	B#N
cGMTl8ߙc6¼	Z!(/:^ky-d\F0Vǀ:zu^jSüV%[̓쩩@{}߹17T,KP8!uNϽEg}4O:m㬁Rwa[zjr;"^;Wѓ/k|~nXܨ񳐏ĔgM;-ͼ
nr5蠇Q0mCf2)Ӵ˨we3pӸ\
~/fv;h_3uѾVEUF,-/t~yʪ=~Ҵb.+JevY-]Vh
~/fv;h_3uѾVEUF,-/t~yʪ=~Ҵb.+JevY-]Vh
ׂ6yCt*_>5b3}VYzͬom.Xan/l<okrmlnװ1V3k"5s5i3IB.sRoAM曾#}GPYm0[9fc}i̧FYwN+v=?Rw>tǝ+Vf3Hh?a4i}X@WX
ׂ6yCt*_>5b3}VYzͬom.Xan/l<okrmlnװ1V3k"5s5i3IB.sRoAM曾#}GPYm0[9fc}i̧FYwN+v=?Rw>tǝ+Vf3Hh?a4i}X@WX
lgl >6TI&;[p|ڎ90oY3bZ%mDw5V{-8~Jp5ьh?7vӺڝiΈuM)$L)>xc7G}97E	]&|hE1L%=9iy,(χλ[-ފ~0㭯>EYPu['RUg+:M8E\SI3(f>K}:pGzYA9٩V'rA'lk!04*yVc6轍bϾylpxoQ?l;ԟCγ5 3:#C{UQqP7]_5
Vkwsnm˵׸ ־;+{֞{=m{m\[26鴿<϶tcL-vS/sNR554#|,iJH'!3:nMűE2MSYO5
~^*Ti
lަ6qHhwsA>g
R
lgl >6TI&;[p|ڎ90oY3bZ%mDw5V{-8~Jp5ьh?7vӺڝiΈuM)$L)>xc7G}97E	]&|hE1L%=9iy,(χλ[-ފ~0㭯>EYPu['RUg+:M8E\SI3(f>K}:pGzYA9٩V'rA'lk!04*yVc6轍bϾylpxoQ?l;ԟCγ5 3:#C{UQqP7]_5
Vkwsnm˵׸ ־;+{֞{=m{m\[26鴿<϶tcL-vS/sNR554#|,iJH'!3:nMűE2MSYO5
~^*Ti
lަ6qHhwsA>g
R
g'3m̧8'綺<_*e?ė%Tk"˗+!u'/}IQ/r87       8
g'3m̧8'綺<_*e?ė%Tk"˗+!u'/}IQ/r87       8
JɝO1%ǥ:Σ:.]$~O#9{/#     
JɝO1%ǥ:Σ:.]$~O#9{/#     
٥ib5/JP9"qmc+/ԏ)~
^_塠E{nPq)0WNle=.X]mƞq}a:|:3@Xoۍצ2qI,1X:ݾZw2H'mƞq`,?z.,wz`n|\ˠ\]'A\)y_W瘑)3;<%XOxԣOA@,%sOwcodkW3_gy~oonUW8^7e/>y/g|W3.)}'@X>2|ۛ}>O
~9z'0
ekۅC      Eg7yW3BA7 DS
杭P~+!,#q1P>?"s/F.+kK{tdMεyAp4-:v_쵟1a][ۨ>|9|9oL\mN?!q`oFnğBf糊tc\xSK\''uqEsy.~o    ;˅io~o_~7]}*Hx62LL!{FxNdegt,q}g,;~?Պg}{lVɳ       o-?R-      i?B`:Vd]`.~2lo`5_js㲂JsP!')F(OG<}iwV%Y-ҖD_jFQ_ҫ0woi';ƗV3UHS=lAԏ#PޯGwژ|!w?j(ğD|G?Fh#'PWĿD\$
٥ib5/JP9"qmc+/ԏ)~
^_塠E{nPq)0WNle=.X]mƞq}a:|:3@Xoۍצ2qI,1X:ݾZw2H'mƞq`,?z.,wz`n|\ˠ\]'A\)y_W瘑)3;<%XOxԣOA@,%sOwcodkW3_gy~oonUW8^7e/>y/g|W3.)}'@X>2|ۛ}>O
~9z'0
ekۅC      Eg7yW3BA7 DS
杭P~+!,#q1P>?"s/F.+kK{tdMεyAp4-:v_쵟1a][ۨ>|9|9oL\mN?!q`oFnğBf糊tc\xSK\''uqEsy.~o    ;˅io~o_~7]}*Hx62LL!{FxNdegt,q}g,;~?Պg}{lVɳ       o-?R-      i?B`:Vd]`.~2lo`5_js㲂JsP!')F(OG<}iwV%Y-ҖD_jFQ_ҫ0woi';ƗV3UHS=lAԏ#PޯGwژ|!w?j(ğD|G?Fh#'PWĿD\$
 {!>
R(A
 {!>
R(A
Cʻk2Yv(Ļ"qZft9UA($t'vB^D5)N"e\K"v_JKԇEBT"_)])jZs-^LTe#?iQyBsp+
h)W9GpyӄɐA(x"DpyPW/,ADI["jZ6_L  Ӊ<aa/Xl7(F:yq Giw9P9>Zt{X%!9WhOrKqe{70
Cʻk2Yv(Ļ"qZft9UA($t'vB^D5)N"e\K"v_JKԇEBT"_)])jZs-^LTe#?iQyBsp+
h)W9GpyӄɐA(x"DpyPW/,ADI["jZ6_L  Ӊ<aa/Xl7(F:yq Giw9P9>Zt{X%!9WhOrKqe{70
~G].ُ;y/˕\!{?!++?.[Azs~s&L3v:lمG;O:sqL[ĴLʹ´˙Vܽ1n͇ruPBQ=u\C˧\^[c\y-cڽL´[փiֈiNYj{i똶i6iv2ILtMW{i3m
3m0?Ӻ0%1gڷ}b;L{iO2!bHeZ2gZjtWi;"V0McpfZӚ1bZjG4Lʴ癶i2m
~G].ُ;y/˕\!{?!++?.[Azs~s&L3v:lمG;O:sqL[ĴLʹ´˙Vܽ1n͇ruPBQ=u\C˧\^[c\y-cڽL´[փiֈiNYj{i똶i6iv2ILtMW{i3m
3m0?Ӻ0%1gڷ}b;L{iO2!bHeZ2gZjtWi;"V0McpfZӚ1bZjG4Lʴ癶i2m
naZgZ#iL;SY1m1m     1m1:e%LOaǴיi6ic֟i]֒i3[şi/3I=ĴYLɴLKfZL+XI,i/2m`4
gZo%1,,DLʴ癶i2m
naZgZ#iL;SY1m1m     1m1:e%LOaǴיi6ic֟i]֒i3[şi/3I=ĴYLɴLKfZL+XI,i/2m`4
gZo%1,,DLʴ癶i2m
naZgZ#iL;EXL´uL[´yLALimv      $ X1uabagZdZ=LgdzcL{i1mF2/Ӓ4?ӊ,,i/2m`4
gZo%1,yXyX1m+Ӟg2˴)Li=֞i1;űccc
buLKM>`Lx\.gZ
naZgZ#iL;EXL´uL[´yLALimv      $ X1uabagZdZ=LgdzcL{i1mF2/Ӓ4?ӊ,,i/2m`4
gZo%1,yXyX1m+Ӟg2˴)Li=֞i1;űccc
buLKM>`Lx\.gZ
nbhf"fګLɴL;4u֚iݘ6i6i2m-63m71$yWkǴL´ILiKio3Cfi5\z2mӦ2-iLevgLi>j͉udZ*ҙ6iYLa&3ӎ3#Y1-i71m4f3mV3UdA`XI,֍i6is(2m3v3N2MY,֝iC6i0m)3m}ȴL;4CacZO
cTe2-iLδLi?3ͧSY1-iL,0mviǙXi,´6ii*v2 N0,tLƴLǴL{ikivi',Lδ!LĴ{i6>dafa3Y1'ӆ1m*2ʹ\mg~}ʹXY,ʴt`ZriL;LİaǴĴLʹEL[ʹWiviiݘ6i6i2m-63m71$ӔX,֝iC6i0m)3m}ȴL;4i=6iSɴl2m;3k4_8LKeZ:f0-i9LĴ|`qyi)L+?KyW_腾  h-c\zy_
r1       {ަgO>zREKm<9V`*5gӧf&\
nbhf"fګLɴL;4u֚iݘ6i6i2m-63m71$yWkǴL´ILiKio3Cfi5\z2mӦ2-iLevgLi>j͉udZ*ҙ6iYLa&3ӎ3#Y1-i71m4f3mV3UdA`XI,֍i6is(2m3v3N2MY,֝iC6i0m)3m}ȴL;4CacZO
cTe2-iLδLi?3ͧSY1-iL,0mviǙXi,´6ii*v2 N0,tLƴLǴL{ikivi',Lδ!LĴ{i6>dafa3Y1'ӆ1m*2ʹ\mg~}ʹXY,ʴt`ZriL;LİaǴĴLʹEL[ʹWiviiݘ6i6i2m-63m71$ӔX,֝iC6i0m)3m}ȴL;4i=6iSɴl2m;3k4_8LKeZ:f0-i9LĴ|`qyi)L+?KyW_腾  h-c\zy_
r1       {ަgO>zREKm<9V`*5gӧf&\
k%kJA`C<~^}#2ƍ3Umfp~#	Eb	󪺈DtՕuՕ>{qfϸo&
k%kJA`C<~^}#2ƍ3Umfp~#	Eb	󪺈DtՕuՕ>{qfϸo&
L؜}k}iom~{o'\UY1ku>`~hޅ?3ʲ>O1&rG(?jѰNF.G&ϰ:feZiwNۿY#O>sMo3HJaR[s8Q_&uVU,^l{?rۆO=}63m8vol+ANihJΪ.	{ݰc!}Ԩfff7RǪk!\9ιé'eRsr#rCA"&?__V"	;I`UjɠtL8ufqaJFB%#U2&DiQJ/=8L3K9b$+nh^ԃt0jsJ1vN
L؜}k}iom~{o'\UY1ku>`~hޅ?3ʲ>O1&rG(?jѰNF.G&ϰ:feZiwNۿY#O>sMo3HJaR[s8Q_&uVU,^l{?rۆO=}63m8vol+ANihJΪ.	{ݰc!}Ԩfff7RǪk!\9ιé'eRsr#rCA"&?__V"	;I`UjɠtL8ufqaJFB%#U2&DiQJ/=8L3K9b$+nh^ԃt0jsJ1vN
j
j
D&ȇESVz`[k*j1L|^s1iffX1iB-4_s7E]&|hUjqQ/78ixC0?4*_>CN(?4+ԇi#XԔH3\j^DI}91B`+C՗7oπ<yy68z?LA_     <[        [Lcd_(+
D&ȇESVz`[k*j1L|^s1iffX1iB-4_s7E]&|hUjqQ/78ixC0?4*_>CN(?4+ԇi#XԔH3\j^DI}91B`+C՗7oπ<yy68z?LA_     <[        [Lcd_(+
4NjFSd}ھE';j٣G
1n@߽&\{	^_U+OOhMyz}@yFiGf&|9kp{)aCTΐ|3M	3|$W@y\횔>mW
6iJy
	M'CI
XCL_S>X%$P*]mfV~9W\R9%|M%mJ8͓X&)1eTR^,}[F'NI5|dfq[Ԯy)&YUPj&Д,yh*n&iGgv&[\vfw)K~;죯>44¢8[)])ֱZ;N
gL؆\bۦ%Νkrg͐Flh:-AR,O8ϖ
4NjFSd}ھE';j٣G
1n@߽&\{	^_U+OOhMyz}@yFiGf&|9kp{)aCTΐ|3M	3|$W@y\횔>mW
6iJy
	M'CI
XCL_S>X%$P*]mfV~9W\R9%|M%mJ8͓X&)1eTR^,}[F'NI5|dfq[Ԯy)&YUPj&Д,yh*n&iGgv&[\vfw)K~;죯>44¢8[)])ֱZ;N
gL؆\bۦ%Νkrg͐Flh:-AR,O8ϖ
4daDSa
k֜sCsf,      /V?M^D1MX_uC)2n
zXvd}EU_^7oyeow { 0=_
`o`aC2ݾ3P,AW͞`&X%٭JJXWbgLi-є הR
2W-^ʃ~\}i-u/^MZŐ4?t"u=۟7S9OOŐ4?)BH~CO*qį\Lx% Ǔ>9P9'"9o
4daDSa
k֜sCsf,      /V?M^D1MX_uC)2n
zXvd}EU_^7oyeow { 0=_
`o`aC2ݾ3P,AW͞`&X%٭JJXWbgLi-є הR
2W-^ʃ~\}i-u/^MZŐ4?t"u=۟7S9OOŐ4?)BH~CO*qį\Lx% Ǔ>9P9'"9o
_ɆOEKR{}f
_ɆOEKR{}f
ͤHOv ?3=>>rbnHa>
>{>>9G?h~r"&^~q#|MmxMnPgԝu30
iϒ^ڈAk8Bii~W#eu;勤n^%˔EJfݯT}gԖHBH1BZȑԞg>/ߛo;!-l(+oD~o_&,wnޠQ)hr"Ì9O'EN0CL2IJw~\^{b+g^"$۽坿U`Qo7q'0'E~G;        nޠuR)o#m$g~=YƿAwB*#m+gDo8=R[{C
ͤHOv ?3=>>rbnHa>
>{>>9G?h~r"&^~q#|MmxMnPgԝu30
iϒ^ڈAk8Bii~W#eu;勤n^%˔EJfݯT}gԖHBH1BZȑԞg>/ߛo;!-l(+oD~o_&,wnޠQ)hr"Ì9O'EN0CL2IJw~\^{b+g^"$۽坿U`Qo7q'0'E~G;        nޠuR)o#m$g~=YƿAwB*#m+gDo8=R[{C
OjiUgg`Fjdj
7ߞk㒸sI.DD   Z\ES,-}
OjiUgg`Fjdj
7ߞk㒸sI.DD   Z\ES,-}
gdCz7P9`jqoiDPIоWi'    ){ZP1G1-AK?WֺhQ)gjGH4/Gt^8hB/6NYg
gdCz7P9`jqoiDPIоWi'    ){ZP1G1-AK?WֺhQ)gjGH4/Gt^8hB/6NYg
ws?#H=4&oVL֒I2I0A_|5_ۭ#EBBKڊHq(I{4[x=X+'.n\'T'5&oIF)zP4       say!ˁaugX6夁\&%I$IJ:ʽa˭@oUwIpWD%PQVEAJIIJRAi⿄axPHZ_+?@k#ΐN1
ws?#H=4&oVL֒I2I0A_|5_ۭ#EBBKڊHq(I{4[x=X+'.n\'T'5&oIF)zP4       say!ˁaugX6夁\&%I$IJ:ʽa˭@oUwIpWD%PQVEAJIIJRAi⿄axPHZ_+?@k#ΐN1
b#'"rʤnL>I$~vK?
b#'"rʤnL>I$~vK?
;aaTD/}$\A=<%̒
;aaTD/}$\A=<%̒
R0UzW.m~˥A\t.ַIgIS|דb.
R0UzW.m~˥A\t.ַIgIS|דb.
므r`;.QQ܏;̏|sܬ5S?7WߘK_Ūe-RRJm=67[;ա0=EZj5kb6׾1iu2w?&c^b1B5Fj`zq6lzdF[FP7h}ZW41Azk&h?Wjߙ#fO7Am9%=ufm-7'k̹#ؤV#Gd,S@+R6Weܫ0=j_!|D2[Ly`*pM+4u#YsVzE2qϱ(
zY&9=K٫'+yz7ziH|&hEq
_60zF7E2WNG8wo0#KBQ)ӑ(k`G```|h#~<|eYʷ]ȏyMm)NW|Nv`ʵ}Wq@NTZ\'BVJSETJi->rSd-_Y㼔JFW]]5B
rR2_Z`=a<9z`9~b6ErL(6Bx^KV}_;dz:XN},      X,læHJUqUAub|P@]ub+ԍ|#@])闰|Oz'a10l캒)-j"FJY
므r`;.QQ܏;̏|sܬ5S?7WߘK_Ūe-RRJm=67[;ա0=EZj5kb6׾1iu2w?&c^b1B5Fj`zq6lzdF[FP7h}ZW41Azk&h?Wjߙ#fO7Am9%=ufm-7'k̹#ؤV#Gd,S@+R6Weܫ0=j_!|D2[Ly`*pM+4u#YsVzE2qϱ(
zY&9=K٫'+yz7ziH|&hEq
_60zF7E2WNG8wo0#KBQ)ӑ(k`G```|h#~<|eYʷ]ȏyMm)NW|Nv`ʵ}Wq@NTZ\'BVJSETJi->rSd-_Y㼔JFW]]5B
rR2_Z`=a<9z`9~b6ErL(6Bx^KV}_;dz:XN},      X,læHJUqUAub|P@]ub+ԍ|#@])闰|Oz'a10l캒)-j"FJY
m+ʏz+QRc#)?b/_䧗9y)_bcf{?+
c_>`w_{JySoP\&뻧<{'4
@=ȎXe@=yH/rEPeاIyqY}_^7|'󱘣aZqK]ôv+Ӧ3AdF1iLDW]2ufZ?bL[ȴ0˴OK֊i]6icvaL{i34Y.?y3Limv1D}o!iN?dasF!ȴ[6i2m%62-iL+d,7Y131m`Bi0]}ʴF!ˍCV+uee]L{iO3
ϴ/#"%YE\WqWkǴL´ILi\Llri5~fOq披udZ*ҙ6iYLa&3ӎ3ͣZ.gZ
m+ʏz+QRc#)?b/_䧗9y)_bcf{?+
c_>`w_{JySoP\&뻧<{'4
@=ȎXe@=yH/rEPeاIyqY}_^7|'󱘣aZqK]ôv+Ӧ3AdF1iLDW]2ufZ?bL[ȴ0˴OK֊i]6icvaL{i34Y.?y3Limv1D}o!iN?dasF!ȴ[6i2m%62-iL+d,7Y131m`Bi0]}ʴF!ˍCV+uee]L{iO3
ϴ/#"%YE\WqWkǴL´ILi\Llri5~fOq披udZ*ҙ6iYLa&3ӎ3ͣZ.gZ
nbhf"fګLɴL;4EfZ7
/3{3/J(n"V)E'`Ph+hb-J$HiTIh\]uwjC!h
nbhf"fګLɴL;4EfZ7
/3{3/J(n"V)E'`Ph+hb-J$HiTIh\]uwjC!h
ݤDk(߄ܣ$$09sޙs{}'Zbo^Fh]@;X
ݤDk(߄ܣ$$09sޙs{}'Zbo^Fh]@;X
ˉ>@]@]5{X?1uHu҈M"CJbJl?SWTW!~L~b{6{X5_#_#bS=Nlļr
ˉ>@]@]5{X?1uHu҈M"CJbJl?SWTW!~L~b{6{X5_#_#bS=Nlļr
S*LuP,)FGl&[l
S*LuP,)FGl&[l
O?y|F@A`ud:w9Gw~
w܀K|}!d!Hѯ|Sǿ7ճ.Xmi-V}\ VM,Vu:kk;l+4Ŷi!Gnb>
(n@bK^Y{b=1Nƶiƶk o+96}X~8fy2Mo       G:cF_,C{g;9   =O{b
.Kv>Vс2me?eCosl^V_yjM^SAʉm(ػb%Ğ"6X*KӼ-X        w}J+v7
O?y|F@A`ud:w9Gw~
w܀K|}!d!Hѯ|Sǿ7ճ.Xmi-V}\ VM,Vu:kk;l+4Ŷi!Gnb>
(n@bK^Y{b=1Nƶiƶk o+96}X~8fy2Mo       G:cF_,C{g;9   =O{b
.Kv>Vс2me?eCosl^V_yjM^SAʉm(ػb%Ğ"6X*KӼ-X        w}J+v7
b}L,Rʐb=Dl +ݰbEl     #!&b=#(tb^#X#o
7$,$+bCb{:b#v)W,G)b%Z{7o`,mF1&mYw(z_vIhqqibY-{=yV>ƏbӉ+=&+[|\0R`ͭg1Ǭ>;
/φ:3QND},ǠX~y޲hXO[Cl:b+v
W,lb}
L{́<@ؼ14|0W,Q{LDlˈ7{TX@,_#UE{sĦAF^s
Ib%)FHIJ1XMP*VD,؏%&Vk(JbCjbuŶꊽ@qb
 #'Mw49	K$v#X+(6X!rhn)V[e^*t+]_+|^̫u
7mmλoDaJ~=mD8XcGZei+n)IYb!VIbWGhHgG]@O{WJ@P75e#	Ͷ
~%XOغq\32JJFa92R$WFptl^?HƇK{g1Y6WqO)13XNM}W.)eɢVz?QoW8g],.b\leAZM-`aGh?vtoW\Ȭe.^矕Qr=QR[ʮ 0Բ	4wmGL^Ίt+Yq|a",'_EoCsaYmIr?%>_% MЃ'z'+S0;ΦlFMO V"7;֯f6֮kc+y<ԟ_"[ikGL#:eZ݋Q~>٨AVPG$>}       :1y;+iiwf11
b}L,Rʐb=Dl +ݰbEl     #!&b=#(tb^#X#o
7$,$+bCb{:b#v)W,G)b%Z{7o`,mF1&mYw(z_vIhqqibY-{=yV>ƏbӉ+=&+[|\0R`ͭg1Ǭ>;
/φ:3QND},ǠX~y޲hXO[Cl:b+v
W,lb}
L{́<@ؼ14|0W,Q{LDlˈ7{TX@,_#UE{sĦAF^s
Ib%)FHIJ1XMP*VD,؏%&Vk(JbCjbuŶꊽ@qb
 #'Mw49	K$v#X+(6X!rhn)V[e^*t+]_+|^̫u
7mmλoDaJ~=mD8XcGZei+n)IYb!VIbWGhHgG]@O{WJ@P75e#	Ͷ
~%XOغq\32JJFa92R$WFptl^?HƇK{g1Y6WqO)13XNM}W.)eɢVz?QoW8g],.b\leAZM-`aGh?vtoW\Ȭe.^矕Qr=QR[ʮ 0Բ	4wmGL^Ίt+Yq|a",'_EoCsaYmIr?%>_% MЃ'z'+S0;ΦlFMO V"7;֯f6֮kc+y<ԟ_"[ikGL#:eZ݋Q~>٨AVPG$>}       :1y;+iiwf11
TV=<ժíJ2{3av>Av`-G70b_h`K0 "o +QհDh_~{)J\5Ź;ӭB1Z&&[xq;fC}+_fF}:اtFW }Ž{"zR ݠ&^J;m|l)XY`g,~9^U*~&d”Y=Kܼw(:rSm?4̜z{SK}#kO>i;1*m`ϩv4:g5}/}^"(       X%/@WjLTB;/v(اtF?g9ΙE]2W!>8fo]"IqQRQ^r#e%A5h_~eQ!.X4^1 Os=bo%"&%r"+PnG|hWЯ6ʭ9k0{ZB]zHb)D!z)ck{|{RV9̄ؼ3{ؓ vo%I"Վv%`}주.K0:hF?]>f~{Y˳+KD^+nD!'Gx˟|s5h#ϱc3Wf\6=FWҖe@&c"I~,"Y:6oo%Zbc"wcJY2-vY:r] yT8#[۟:v?ٕ?ɢw%+yﳬ#yr{?q{l!\/fZ;ŶGG⏓/w?7*MGƐ#}=}%{N$.k9v0Уޗ29%ZߵoC_W'gSȐ#Mq^9q93OɍHkrHsߌc"?g~gOH׈Nldlף<}%7)K"H}S2|z#xB?>;ϖW|sn/GLG}
TV=<ժíJ2{3av>Av`-G70b_h`K0 "o +QհDh_~{)J\5Ź;ӭB1Z&&[xq;fC}+_fF}:اtFW }Ž{"zR ݠ&^J;m|l)XY`g,~9^U*~&d”Y=Kܼw(:rSm?4̜z{SK}#kO>i;1*m`ϩv4:g5}/}^"(       X%/@WjLTB;/v(اtF?g9ΙE]2W!>8fo]"IqQRQ^r#e%A5h_~eQ!.X4^1 Os=bo%"&%r"+PnG|hWЯ6ʭ9k0{ZB]zHb)D!z)ck{|{RV9̄ؼ3{ؓ vo%I"Վv%`}주.K0:hF?]>f~{Y˳+KD^+nD!'Gx˟|s5h#ϱc3Wf\6=FWҖe@&c"I~,"Y:6oo%Zbc"wcJY2-vY:r] yT8#[۟:v?ٕ?ɢw%+yﳬ#yr{?q{l!\/fZ;ŶGG⏓/w?7*MGƐ#}=}%{N$.k9v0Уޗ29%ZߵoC_W'gSȐ#Mq^9q93OɍHkrHsߌc"?g~gOH׈Nldlף<}%7)K"H}S2|z#xB?>;ϖW|sn/GLG}
>#v  ;quAaag5Ķ#&#]Q,lbm&vE|Z)?!bXo]QIJ؛>"7K6IAbm$Ib=Tlľ"-АWb-fb
#֕{떺fQլQ/fQ̺ٕ`ͭ;Z'$#ƒkX?gԛ}Z38`&60	_
}GWz%r^;Ts5\m2aĺyՊhm5Њك9y.aOh1VEXcKsVojfv|BE9'>ơgh]-|X:Dd'*RS>
>#v  ;quAaag5Ķ#&#]Q,lbm&vE|Z)?!bXo]QIJ؛>"7K6IAbm$Ib=Tlľ"-АWb-fb
#֕{떺fQլQ/fQ̺ٕ`ͭ;Z'$#ƒkX?gԛ}Z38`&60	_
}GWz%r^;Ts5\m2aĺyՊhm5Њك9y.aOh1VEXcKsVojfv|BE9'>ơgh]-|X:Dd'*RS>


#A"2D:#X9\~z :C`!:#X9\~zR _bj9x}|ٳsXA"     «ܔh
#A"2D:#X9\~z :C`!:#X9\~zR _bj9x}|ٳsXA"     «ܔh
)&1bD$HDŀ*"E$HT^_jBw_IQ_Ĥ{'9N0<3;;;#l$S:;F?o_;oZc<<"$i $
?$s$-Y&_!R-)xeCq&>?/]$ĉ-K) B
)&1bD$HDŀ*"E$HT^_jBw_IQ_Ĥ{'9N0<3;;;#l$S:;F?o_;oZc<<"$i $
?$s$-Y&_!R-)xeCq&>?/]$ĉ-K) B
)x@r#$y__
ҽ޹zuHzuxCi DY!vUWN-\[%n+{l̾S')_lj+C.){&q880t6s}*FL]p;s;~,&/':o!tlYםJSw;1~!g򺳬MC~g>{1N~3{YfKBgz$f9W~+~~>7    _?o~7~-??   ߍ*'v8;        E_JLO&%|g3pe?C_M<"D%|w"	3%^o'¯"|.	?O#4~~=W~g~Kx:?w~3?c?F_#OD"/%|&'~3ᏪU	yEJ>D^^K@U%|:>@x	_W~~=W~g~Kx՜?'O]L/ 
)x@r#$y__
ҽ޹zuHzuxCi DY!vUWN-\[%n+{l̾S')_lj+C.){&q880t6s}*FL]p;s;~,&/':o!tlYםJSw;1~!g򺳬MC~g>{1N~3{YfKBgz$f9W~+~~>7    _?o~7~-??   ߍ*'v8;        E_JLO&%|g3pe?C_M<"D%|w"	3%^o'¯"|.	?O#4~~=W~g~Kx:?w~3?c?F_#OD"/%|&'~3ᏪU	yEJ>D^^K@U%|:>@x	_W~~=W~g~Kx՜?'O]L/ 
%^o'¯"|.       ?O34~~=W~g~Kx?w~3?c?N_'OD"/%|&'~3j5	yEJ>D*?~;7~s  N>~x{~O=x++HYɹV~g~Kx
%^o'¯"|.       ?O34~~=W~g~Kx?w~3?c?N_'OD"/%|&'~3j5	yEJ>D*?~;7~s  N>~x{~O=x++HYɹV~g~Kx
+2V~7~-??       ߍ*q2Vp2V~'7K  IɄALxF     yEJ>D2+d2V~/~W>O '|2V~~=W~g~Kx^3rw~3?cZyy5'Љ'.w[y)K}WmQtMBӔǗ9ߟAK~WJ %_;yyEb{>=GU\gC\B{X蹸k5#T{"V\`h /D=Hϼ\a9[*3{QpZpl1O}v(j|JhO\1(ۀgpEWN^5Rpe$=~"w
J"GdXHl~۲=9}~su    o±\/[.l)S#%H-jP;v'
N"7N"b?qȾVoGN;ɄnimԘl4OC=/Wm;mӹОAߓ4ghSVf{T4!eɶ-l}CgUvA> )~| ,1<'>      s͂XC~3=a$m(lA_A߾o8V孕=B**Zdmͽj(
+2V~7~-??       ߍ*q2Vp2V~'7K  IɄALxF     yEJ>D2+d2V~/~W>O '|2V~~=W~g~Kx^3rw~3?cZyy5'Љ'.w[y)K}WmQtMBӔǗ9ߟAK~WJ %_;yyEb{>=GU\gC\B{X蹸k5#T{"V\`h /D=Hϼ\a9[*3{QpZpl1O}v(j|JhO\1(ۀgpEWN^5Rpe$=~"w
J"GdXHl~۲=9}~su    o±\/[.l)S#%H-jP;v'
N"7N"b?qȾVoGN;ɄnimԘl4OC=/Wm;mӹОAߓ4ghSVf{T4!eɶ-l}CgUvA> )~| ,1<'>      s͂XC~3=a$m(lA_A߾o8V孕=B**Zdmͽj(
OSZ{]}byx]]!wph^WݲuueU9¾&k6Y+lϫ
OSZ{]}byx]]!wph^WݲuueU9¾&k6Y+lϫ
y=\|ًZORxT
&o6YAx|%:-|xTƫ_stH!|ga+O${xuld۟)MZE_)Id@6!      XܤM̂fsZ[[c׷h>$ƅa^
y=\|ًZORxT
&o6YAx|%:-|xTƫ_stH!|ga+O${xuld۟)MZE_)Id@6!      XܤM̂fsZ[[c׷h>$ƅa^
@B%ƅw`#Tf0Թ7WʸgKK"0._6{6͛˜h/PA6!8z
˞M&?1{1,]3urskv=ڝh|hC,_'_ܱSMo_V߮	o
]zDH.)&]BJOetD
n.;CJ9wyJuq^!/@ߟ%bz8^qzum       p<{D$|+ܲ  
WX
67
@B%ƅw`#Tf0Թ7WʸgKK"0._6{6͛˜h/PA6!8z
˞M&?1{1,]3urskv=ڝh|hC,_'_ܱSMo_V߮	o
]zDH.)&]BJOetD
n.;CJ9wyJuq^!/@ߟ%bz8^qzum       p<{D$|+ܲ  
WX
67
}Opu$LV8n-ބFPn
?fwdCv@o^E^Zn}d~@3Qz.7<Θ(#'y1_kZba!6
}Opu$LV8n-ބFPn
?fwdCv@o^E^Zn}d~@3Qz.7<Θ(#'y1_kZba!6
2g5K4pP      6Nv[oD mW3Wƾ7m~7Dӿ\OKb pzox9Aa=Ŭ1u5q>)k72Gu
a?7tf㡮#xK~:z{wS8|c\6sxgc;nB7ppxH7xp}xAbM|$nQ9S/c4$W,[3l}Kk;C0G}%鯲+Oz-w[4TǪ2՝ynmWx^+`q>?GAKPP->sT|_76vGvgKu|V_G+gX|{|]|",bB[Mm7A[@B
2g5K4pP      6Nv[oD mW3Wƾ7m~7Dӿ\OKb pzox9Aa=Ŭ1u5q>)k72Gu
a?7tf㡮#xK~:z{wS8|c\6sxgc;nB7ppxH7xp}xAbM|$nQ9S/c4$W,[3l}Kk;C0G}%鯲+Oz-w[4TǪ2՝ynmWx^+`q>?GAKPP->sT|_76vGvgKu|V_G+gX|{|]|",bB[Mm7A[@B
! A!:wO?>5>#Ax˒#۟j)B[3mvtد~
! A!:wO?>5>#Ax˒#۟j)B[3mvtد~
O.il<;n4_%
ҥҍmpNCFݛvuvt)@Gv-$.1ѨlGO?e}ft{WC۪fb5wQ
O.il<;n4_%
ҥҍmpNCFݛvuvt)@Gv-$.1ѨlGO?e}ft{WC۪fb5wQ
     opqhW!E*o^P__zt/_VaI
     opqhW!E*o^P__zt/_VaI
ηvX k%|=p7}
ηvX k%|=p7}
+_Uq3>`F7YWUFeW,1cOMU:5zUC|l>D`+7*xUŮdy6?Ī`ƛ\oa;>w`]J!n0O|}m,P>(A6.6m/>(18S=@l?֐b,{N/W_}N^Â:{Ea;mxYBߞP[nYIIJK̑|e;Gb3،m3޺)"4}ÿ>>S.3zf\wɾ).:Q*Ѥ.tDBߌC:MM׮vy~QZQ-ʒ!IOt$vTW
+_Uq3>`F7YWUFeW,1cOMU:5zUC|l>D`+7*xUŮdy6?Ī`ƛ\oa;>w`]J!n0O|}m,P>(A6.6m/>(18S=@l?֐b,{N/W_}N^Â:{Ea;mxYBߞP[nYIIJK̑|e;Gb3،m3޺)"4}ÿ>>S.3zf\wɾ).:Q*Ѥ.tDBߌC:MM׮vy~QZQ-ʒ!IOt$vTW
ụMQ)"#89n
cB_B
ụMQ)"#89n
cB_B
_6+F|ۈ(ʫPo2"^ԫܮc޳nWS7uo8p}[Bo]Cl%^1|._<4y,6TH3#RblBؘl(^qF^իϙV_4\|/]Oz~Bck|-}770(mۄz[j#6j#mg4{=E6-Nϩg^><|z*TlpfFL>"HWWCBȟ}XgScsx|Lo-rx)☱|h(>dS\*l_
_6+F|ۈ(ʫPo2"^ԫܮc޳nWS7uo8p}[Bo]Cl%^1|._<4y,6TH3#RblBؘl(^qF^իϙV_4\|/]Oz~Bck|-}770(mۄz[j#6j#mg4{=E6-Nϩg^><|z*TlpfFL>"HWWCBȟ}XgScsx|Lo-rx)☱|h(>dS\*l_
B<ȗ
?_[ŏC8.VoWqиG[qc8wa[0c k-*`
B<ȗ
?_[ŏC8.VoWqиG[qc8wa[0c k-*`
آl{}k{ e{Y2WΤ-      BL>3  W˧d%ɧ(C@.9>5gO\_76ZY|-o9mZgݖZ0ڳvBE^3$i?JH_/Ƌr
z
آl{}k{ e{Y2WΤ-      BL>3  W˧d%ɧ(C@.9>5gO\_76ZY|-o9mZgݖZ0ڳvBE^3$i?JH_/Ƌr
z
2A7]CzQN*=+U9-0g}ߛQLwhF%Zۘ?*Ru{0.XQ̗XwϬ{u_        ڳ C:T]rCkz]fѠPPX
2A7]CzQN*=+U9-0g}ߛQLwhF%Zۘ?*Ru{0.XQ̗XwϬ{u_        ڳ C:T]rCkz]fѠPPX
ډpRBhҫw-^+sB Zw6qt3h4
7Oo*61!gC0z4۪{7~zq^mܦR3H6=Ѽ]\{g}))/7hW@sU*ԪVmTs9LK4ڳOwa+J/riPTKCh[izk>ԇLx*`k9*\}jVtЗ_sR4m5E2⩀     =Yk5n]LP˴dT\a        PxMs?~$CBiQU5Q+Ś
ƅ
ډpRBhҫw-^+sB Zw6qt3h4
7Oo*61!gC0z4۪{7~zq^mܦR3H6=Ѽ]\{g}))/7hW@sU*ԪVmTs9LK4ڳOwa+J/riPTKCh[izk>ԇLx*`k9*\}jVtЗ_sR4m5E2⩀     =Yk5n]LP˴dT\a        PxMs?~$CBiQU5Q+Ś
ƅ
J#Nv`ڳ
J#Nv`ڳ
}κೖ.ܨK#T{[z{ndf=GSTVIА~~I/dS/0sGø^b=k       "m8OW8.:+6u+x^!֝o@aBv'n
}κೖ.ܨK#T{[z{ndf=GSTVIА~~I/dS/0sGø^b=k       "m8OW8.:+6u+x^!֝o@aBv'n
5߾K}~   olpBj:>        _B_BI/jmEXnKBלND-hT!e[͈6VXG|u3^^~ya)       g җBM}Srn2D-Ҩ'[B-P>j_g]\{Z(ouҼu
5߾K}~   olpBj:>        _B_BI/jmEXnKBלND-hT!e[͈6VXG|u3^^~ya)       g җBM}Srn2D-Ҩ'[B-P>j_g]\{Z(ouҼu
#gNv7GxAb!![q-Qͨ ηCcgmLa?vSfd9s\{Jj5:ݡP7C+ϒ Zx(?&Zt=hUMc,s#B݊e}ZU
#gNv7GxAb!![q-Qͨ ηCcgmLa?vSfd9s\{Jj5:ݡP7C+ϒ Zx(?&Zt=hUMc,s#B݊e}ZU
d   E{v
d   E{v
w~c5PB8mYŁ>;^1>3*̤znkyǡ5l]IW        k9raפ3/g{fsxW+2^f+9 e9ZYj^
2ـ   %y:-ТqX
w~c5PB8mYŁ>;^1>3*̤znkyǡ5l]IW        k9raפ3/g{fsxW+2^f+9 e9ZYj^
2ـ   %y:-ТqX
#[v:ww6tę;]n{ڭx'}X8+36I9Es  \>ӄYKο&o       $#5N
>Ʉ
#[v:ww6tę;]n{ڭx'}X8+36I9Es  \>ӄYKο&o       $#5N
>Ʉ
y|       o!UOxPpa/!T_Lxp%?F[      ?ᏰpU     J3I}9s
H~̬RsjujK }fc
y|       o!UOxPpa/!T_Lxp%?F[      ?ᏰpU     J3I}9s
H~̬RsjujK }fc
GRv#^32DM\+dusx5FWbRu4IxKPӾR      Zo)|{S:]+-M@>C6㨘B_tgfe>z_O
GRv#^32DM\+dusx5FWbRu4IxKPӾR      Zo)|{S:]+-M@>C6㨘B_tgfe>z_O
23 Lksoz2KOj|m*]ҙ"A:SMfߪc 9_t!"s&isr=>)o[ŸM9pLYT/U_VM/ ߉G~o8+NLcJ8o%*"w#|5y8	I1%|
e3/"<#|O8     ń_HIGx}w;zހv_ZkN)Iʅߋ^i/3V.SB_CRWۻ^=gzT|Oi!w4Z ]_X!\Ktx
23 Lksoz2KOj|m*]ҙ"A:SMfߪc 9_t!"s&isr=>)o[ŸM9pLYT/U_VM/ ߉G~o8+NLcJ8o%*"w#|5y8	I1%|
e3/"<#|O8     ń_HIGx}w;zހv_ZkN)Iʅߋ^i/3V.SB_CRWۻ^=gzT|Oi!w4Z ]_X!\Ktx
}Otox9}<qqbyq/!T_Lx{9¯#|6 h^R>Hoh[j*Vt>HL
J-Rh*[ӔYS  ^O}{hN؎wmLNkBvz]gq_4i9B!NUm%֔wMP)}5%=U,~+ttt(!v/_B.pʔTmiݷ[
[s][PP       з@R~[JߵW@OV  ='ϐoT_?|uM[7}z{OvWvns{˲k|rnO_ݷv,oݷɀUמǥo|W[v*]NqNkkw_!
ض/N7E
}Otox9}<qqbyq/!T_Lx{9¯#|6 h^R>Hoh[j*Vt>HL
J-Rh*[ӔYS  ^O}{hN؎wmLNkBvz]gq_4i9B!NUm%֔wMP)}5%=U,~+ttt(!v/_B.pʔTmiݷ[
[s][PP       з@R~[JߵW@OV  ='ϐoT_?|uM[7}z{OvWvns{˲k|rnO_ݷv,oݷɀUמǥo|W[v*]NqNkkw_!
ض/N7E
7&
7&
;/k׏O^c9Yr3  {N2.E'b6b.m=o9u:%b#6݄r!u*}^_S/;?
;/k׏O^c9Yr3  {N2.E'b6b.m=o9u:%b#6݄r!u*}^_S/;?
GdT#'R}~UQGlb8EDb\-v! 6iAl bS;f'Gl'b+Bl)bMFlb}CbX.2b Ո!6
Eb;aؗ^Ķ#U"x#G@3ۃV#@lb   "f"VhBl3bk+@lb@ĺ!"vLCۉ&Ċ[X&bX_:#;h=FV#,&"6>uBϋ^Ķ#U"x#GFASۃV#@lb    "f"V8bیZ
GdT#'R}~UQGlb8EDb\-v! 6iAl bS;f'Gl'b+Bl)bMFlb}CbX.2b Ո!6
Eb;aؗ^Ķ#U"x#G@3ۃV#@lb   "f"VhBl3bk+@lb@ĺ!"vLCۉ&Ċ[X&bX_:#;h=FV#,&"6>uBϋ^Ķ#U"x#GFASۃV#@lb    "f"V8bیZ
4 6nchmBe"6E3b2ڟ3mDl5byBl"bCX'Nx~v" "Ė"dF Έ1Ď.b/#b[XbP         }iػEl;b[X.b鈍G,X
4 6nchmBe"6E3b2ڟ3mDl5byBl"bCX'Nx~v" "Ė"dF Έ1Ď.b/#b[XbP         }iػEl;b[X.b鈍G,X
ڟ.6#!6
1
Db*b8GCl'b+Bl)bMFlb}C(Cch=FV#,&"6>uB섌'!m@lb#6byۃV#@lb	"f"V-IhBl3bk+@lbXSstF~EnweQ9Y7Js'L艄#q.sSs9}D8%Xc]?n4uɺ$,4@q7J5;sN I8glx641K\VoEԋ46IHjL_H'|%ZSZqn(鹓23#ҟ    )3;tkt7).!,ɜ0aPzsrf̚S }:zB{FDs
^V0Bjz'ߔ[m/9TleB
ڟ.6#!6
1
Db*b8GCl'b+Bl)bMFlb}C(Cch=FV#,&"6>uB섌'!m@lb#6byۃV#@lb	"f"V-IhBl3bk+@lbXSstF~EnweQ9Y7Js'L艄#q.sSs9}D8%Xc]?n4uɺ$,4@q7J5;sN I8glx641K\VoEԋ46IHjL_H'|%ZSZqn(鹓23#ҟ    )3;tkt7).!,ɜ0aPzsrf̚S }:zB{FDs
^V0Bjz'ߔ[m/9TleB
)J
)J
ISTqV}ȅa}!b5-"ѪB*D+}-۬=gւsr,wvX?nkSLUj=2)x>idmRx=
ISTqV}ȅa}!b5-"ѪB*D+}-۬=gւsr,wvX?nkSLUj=2)x>idmRx=
+Bi] ]hK
+Bi] ]hK
\SWΒsY0Ke0Ι<s,A#s;7pn[HÃz;WzCޠ)ߥWKyrklޕM/p(KѯdT6OOgK.}.a)|?B0䫄P޻P~(7TkF'kՌ{e]ZK緰۬!vH?u>g\2ny12QF2O6c8,8’Cl?g5܃j{|, o
.o| xn(n))x%]ӯSs
n.;CJ9wyJuqHv[A{hn4(Ѵ'
\SWΒsY0Ke0Ι<s,A#s;7pn[HÃz;WzCޠ)ߥWKyrklޕM/p(KѯdT6OOgK.}.a)|?B0䫄P޻P~(7TkF'kՌ{e]ZK緰۬!vH?u>g\2ny12QF2O6c8,8’Cl?g5܃j{|, o
.o| xn(n))x%]ӯSs
n.;CJ9wyJuqHv[A{hn4(Ѵ'
6o<8=0沮Tv1迥:b<6tf#|xcW'gD8X|c\6s>λ%
<ckl'pCg_Œ~ŲkadfX]iʮ?eØ4FG71ƟaJ_Ǔ~>_c t=[˃<[/軡p-O6mo=VmXֿΖb|.Vϰzvvum=ƌ%sfωb{SyQ.HlkKņ       7e.w&bzޜޥ33$>7>e6;Y2{xu8~
龃Ր;#m$(>̶_7]ƵI#@x'ρtAzqϵr:2U|gsyy
1Ga)s(p1_5Y[   >HU@w7}PN(E'6B:ҭ<Òx5[juzZ/ |?
6o<8=0沮Tv1迥:b<6tf#|xcW'gD8X|c\6s>λ%
<ckl'pCg_Œ~ŲkadfX]iʮ?eØ4FG71ƟaJ_Ǔ~>_c t=[˃<[/軡p-O6mo=VmXֿΖb|.Vϰzvvum=ƌ%sfωb{SyQ.HlkKņ       7e.w&bzޜޥ33$>7>e6;Y2{xu8~
龃Ր;#m$(>̶_7]ƵI#@x'ρtAzqϵr:2U|gsyy
1Ga)s(p1_5Y[   >HU@w7}PN(E'6B:ҭ<Òx5[juzZ/ |?
o ]5?8QC+aM/XR+op5~3.ҋE&VXg#d>@z\7ׁYn#=#
q
иX_1u`  kL~u3Z` wֽ|_h=~=<>Z	j/*v8ĎZ曬*oc2+kbϱ'@c<CWXok/X5cyzVVʒX8>b.y`B
o ]5?8QC+aM/XR+op5~3.ҋE&VXg#d>@z\7ׁYn#=#
q
иX_1u`  kL~u3Z` wֽ|_h=~=<>Z	j/*v8ĎZ曬*oc2+kbϱ'@c<CWXok/X5cyzVVʒX8>b.y`B
}%!m1s֩|N},ɺڽYG{3|2      ~ __[?],YvԱZcp#{
}%!m1s֩|N},ɺڽYG{3|2      ~ __[?],YvԱZcp#{
o|"YZW~bi?w#>Ǭ$E}5Ug-~vv;;ٵx|#u~OaKz4V4$Kkagt3ڏzܮc
g4.֧$+[c>|"f
o|"YZW~bi?w#>Ǭ$E}5Ug-~vv;;ٵx|#u~OaKz4V4$Kkagt3ڏzܮc
g4.֧$+[c>|"f
ifxYJMӕ
i[kUxj im
h3Zu]?Im6nMM6s@׃VA;AKSA[SAkA{lpfFL>"HWWCBȟ߂6EVx|L^1S11cИQ|,6THځl_
ifxYJMӕ
i[kUxj im
h3Zu]?Im6nMM6s@׃VA;AKSA[SAkA{lpfFL>"HWWCBȟ߂6EVx|L^1S11cИQ|,6THځl_
B<ȗ
oA[+U`WUQ+U`|`?~7|Rp\VЊRmAY+~eEJ+Ί$(OJOQ\s3}kX{h:"uV-mJ(
[o     .Z\a(טnrU%W_ߘρl    .Zڿ%Zۘ?*
B<ȗ
oA[+U`WUQ+U`|`?~7|Rp\VЊRmAY+~eEJ+Ί$(OJOQ\s3}kX{h:"uV-mJ(
[o     .Z\a(טnrU%W_ߘρl    .Zڿ%Zۘ?*
gĺf]߃J-Գ5ˎt,~__ngd@*FۂkF_YQ\0m!o.H[6}Ū򾭇b9s.r4&V5K}BOzu*Z.$M-ɴWz'ݢ_׵Yqvo֧rRfDxcn	_xOgkSD!Z-$Q|kud~Ûs2nƺÂ=Joݛz>Wmj.;1ouEk~3I|*#U4uc̀&hi'Zve=+S2⩀ .z_%Zvej=ik6dS\LP˴羧]z<ӭhOQU5
gĺf]߃J-Գ5ˎt,~__ngd@*FۂkF_YQ\0m!o.H[6}Ū򾭇b9s.r4&V5K}BOzu*Z.$M-ɴWz'ݢ_׵Yqvo֧rRfDxcn	_xOgkSD!Z-$Q|kud~Ûs2nƺÂ=Joݛz>Wmj.;1ouEk~3I|*#U4uc̀&hi'Zve=+S2⩀ .z_%Zvej=ik6dS\LP˴羧]z<ӭhOQU5
(wmtҋrL
(wmtҋrL
Mp37^nTQJN=Z#~M fR?hCZ>mH2=|g^]l')ʼU͵W]oՕ# O@|;`;{P8IO|)?W;mczUYѲ)RZ>`-S OC|`{{      R8,/| Sm:}"u ~?`E#Vi8s9=>kK%V~Zb?-r&?Zj7ihYwBkwٿj#ekˬlH	rG6JEE
F~m=	,͝y`f̷?[WQ3?,
_R$LR"}HRx%,6G+KͫAfB<05f?_9ù9¹CL|-kO}4#;KXWľ3\쯆mCN 6
Mp37^nTQJN=Z#~M fR?hCZ>mH2=|g^]l')ʼU͵W]oՕ# O@|;`;{P8IO|)?W;mczUYѲ)RZ>`-S OC|`{{      R8,/| Sm:}"u ~?`E#Vi8s9=>kK%V~Zb?-r&?Zj7ihYwBkwٿj#ekˬlH	rG6JEE
F~m=	,͝y`f̷?[WQ3?,
_R$LR"}HRx%,6G+KͫAfB<05f?_9ù9¹CL|-kO}4#;KXWľ3\쯆mCN 6
s;ŞFIJXO{"vbW"v>b>R]9!X2b  vb/x][
s;ŞFIJXO{"vbW"v>b>R]9!X2b  vb/x][
Cq{%MEbl>.w]XĎ0{[X*b?gȯjefcVMU[jv-6ӯ3+3K9j9^-8L}}U@LzsLEǸ6%d
Cq{%MEbl>.w]XĎ0{[X*b?gȯjefcVMU[jv-6ӯ3+3K9j9^-8L}}U@LzsLEǸ6%d
ha5){"wNiP
ha5){"wNiP


/̅"
/̅"
G9,s*oTDryf[p(v]{b!v+bVʑr.?%ϗwȷ;{A69JY#sO|B(WKU T"#߀4|sFςt7B\ȗE9q]Hrlbو%#hB}ԪUJȏ_)Ri)}/Lp2ƈ3,S#+5=M9Ǟ\2WکJ=^/߳.6?
G9,s*oTDryf[p(v]{b!v+bVʑr.?%ϗwȷ;{A69JY#sO|B(WKU T"#߀4|sFςt7B\ȗE9q]Hrlbو%#hB}ԪUJȏ_)Ri)}/Lp2ƈ3,S#+5=M9Ǟ\2WکJ=^/߳.6?
G8//~;z9_88ih>_p}=q~
G8//~;z9_88ih>_p}=q~


#A"26f0:]+]Wo_76Ȃ`!6f0:]+]Wo_7DB(
Sw;No6x|TڸO2L&ꢴEtR
#A"26f0:]+]Wo_76Ȃ`!6f0:]+]Wo_7DB(
Sw;No6x|TڸO2L&ꢴEtR
XTP-r)
XTP-r)
EP
EP
?-,)hE>u*^ve).,$o3/2-mB!˄D߿dx~EEEb*tXk}hyj*Մo}aXv+2q}a'={68-`HSqT,W!?9ɱ'
?-,)hE>u*^ve).,$o3/2-mB!˄D߿dx~EEEb*tXk}hyj*Մo}aXv+2q}a'={68-`HSqT,W!?9ɱ'

߫;xXocoҶ|:󣘟"0bqRo*d>?̯g~3yIuP[;1ߛLs271"b^uP-P'1+2y/WB}K2/Ø3_|!3yUV|:󣘟"0bqnVݬ3ߓ2/3Q%+V|o3a~6˘n拘yUc_cdf~(oa~?ʿ2/Ø3_|!3yʿ?ݙOg~ә_3C̟a>``g0?`s2/X|'{3|_&w3_O̫~V3e~1-a 'b+we^1?gBgVcXg;̏b~:_v33Ų?=`~,O12e^c?;1ߛLs271"b^g?擙Ob9W2=d+Vc~

߫;xXocoҶ|:󣘟"0bqRo*d>?̯g~3yIuP[;1ߛLs271"b^uP-P'1+2y/WB}K2/Ø3_|!3yUV|:󣘟"0bqnVݬ3ߓ2/3Q%+V|o3a~6˘n拘yUc_cdf~(oa~?ʿ2/Ø3_|!3yʿ?ݙOg~ә_3C̟a>``g0?`s2/X|'{3|_&w3_O̫~V3e~1-a 'b+we^1?gBgVcXg;̏b~:_v33Ų?=`~,O12e^c?;1ߛLs271"b^g?擙Ob9W2=d+Vc~
SKI>bόP_L泙|1߄XO=6W3ȉd?ݘo|>拽;ow_|'3|]o|C5kk-fW0,1?wf9W?    <~_,'0?T;2|mGܬYg~󋙟|6|;0i1Oc~$|k1_;̯b~>b>.̷`!]Xg~3+~Ja/o|}Ň~_,'0?T;2|mGBgq=1g3?̷c      ̟
?ĆOj2?gO`|qL.&;̯b~>b>.̷`!kk
SKI>bόP_L泙|1߄XO=6W3ȉd?ݘo|>拽;ow_|'3|]o|C5kk-fW0,1?wf9W?    <~_,'0?T;2|mGܬYg~󋙟|6|;0i1Oc~$|k1_;̯b~>b>.̷`!]Xg~3+~Ja/o|}Ň~_,'0?T;2|mGBgq=1g3?̷c      ̟
?ĆOj2?gO`|qL.&;̯b~>b>.̷`!kk
e10ߗ7g>
e10ߗ7g>
Yg~#K1|G擘ͼ`+̯c~13f~=o|c?mo6W3ȉd?ݘo|>uVuVUg~2Y̧1߅7d^c/+of~:|}?+W XWe
a՗7g>
Yg~#K1|G擘ͼ`+̯c~13f~=o|c?mo6W3ȉd?ݘo|>uVuVUg~2Y̧1߅7d^c/+of~:|}?+W XWe
a՗7g>
4VWh`~#K1|G擘ͼ`VW0d>`MenVW0/d~#|7[3b*+Ug~2Y̧1߅7d^c
4VWh`~#K1|G擘ͼ`VW0d>`MenVW0/d~#|7[3b*+Ug~2Y̧1߅7d^c
of~2C|g3_yc.V]3b~Oe#If^0Df_fu/f~&`o|,%V%Vj2?gO`|`_;̯b~>b>.̷`>Kоco0.2P;0'/aMw2?2RC}=5_a~0203fq1+0O0?טPg>3?\0:f~`?h20?'7O?Y^V3'/aMw2?2YYgf0?GW31X7XgVa`~162-'7|%}(Mvv.oHaˎÂB2F7|zspVZp
>l>jzֱe
{jĬxyn!2;msإP6Ǒ쟻~c?[rO@B-w¾u!ۆbnựwsQL}C1Pϩg[1Ժ'~
of~2C|g3_yc.V]3b~Oe#If^0Df_fu/f~&`o|,%V%Vj2?gO`|`_;̯b~>b>.̷`>Kоco0.2P;0'/aMw2?2RC}=5_a~0203fq1+0O0?טPg>3?\0:f~`?h20?'7O?Y^V3'/aMw2?2YYgf0?GW31X7XgVa`~162-'7|%}(Mvv.oHaˎÂB2F7|zspVZp
>l>jzֱe
{jĬxyn!2;msإP6Ǒ쟻~c?[rO@B-w¾u!ۆbnựwsQL}C1Pϩg[1Ժ'~
u#(2p:OY{H_l7cdsVFxby[{g%o10˾h~ϠqCc?yygյ>c#fu.~ZWA(qWL|:JQ%18HooGl{?vR\>
vid=nzpK~'0q"Uy/ރ=OLc^ZWd|LƉ9d'aɪ22^'ۊ<8qUbq6G>T^>8\  :v8m|c|cpH⻬|˕\VUm2GJGjhC7G|%`8>Rô0dl~Amia8$)0C;z'EOq`N
u#(2p:OY{H_l7cdsVFxby[{g%o10˾h~ϠqCc?yygյ>c#fu.~ZWA(qWL|:JQ%18HooGl{?vR\>
vid=nzpK~'0q"Uy/ރ=OLc^ZWd|LƉ9d'aɪ22^'ۊ<8qUbq6G>T^>8\  :v8m|c|cpH⻬|˕\VUm2GJGjhC7G|%`8>Rô0dl~Amia8$)0C;z'EOq`N
7>_HuU?jf8Ǐwg|g袵>;imo7NgQ=unewjegx
X}[-}{nj1jA٪t0FIݪl"^zpIlRKRϞmVQBWnza}0ޫfj볈
7>_HuU?jf8Ǐwg|g袵>;imo7NgQ=unewjegx
X}[-}{nj1jA٪t0FIݪl"^zpIlRKRϞmVQBWnza}0ޫfj볈
0
0
\:u1[q|h
|dU1խ۶m[^       ID{ROph]^u$<_]`X=5`|#)z/ȣ#m^\O\5˼]7:ۊ|{_ζ"
7{|Gm+^x[3l+Y>PšȍCgVۊ'P>]6`|#fT\Hj/V%Rϰ/3tZMQc]g7ޘo^>}./I^[>wCYE]CV3PK8ܹ[$FJIrR_"@rg{0
\:u1[q|h
|dU1խ۶m[^       ID{ROph]^u$<_]`X=5`|#)z/ȣ#m^\O\5˼]7:ۊ|{_ζ"
7{|Gm+^x[3l+Y>PšȍCgVۊ'P>]6`|#fT\Hj/V%Rϰ/3tZMQc]g7ޘo^>}./I^[>wCYE]CV3PK8ܹ[$FJIrR_"@rg{0
cah~2`|#f;b[Ñ6K^Sw駤]zI_j^8:}.Zg>:}.Zg7ޘo>Ck%浉q%&V~n¯MǾ1BYwa㋕qJax2v/f}dYX*DzޑoSɿ
J!13|i
cah~2`|#f;b[Ñ6K^Sw駤]zI_j^8:}.Zg>:}.Zg7ޘo>Ck%浉q%&V~n¯MǾ1BYwa㋕qJax2v/f}dYX*DzޑoSɿ
J!13|i
mծ>'k}p;ֽ<}e}V2gE8꣺m	yz\/mpc8x>p6a\`&dm:~ώpߦ	^Aqr-$/~Yb}eqtЌkKDua#̇C,NAKU滟j{zn'˷nltͣ5q)/xnbuq|3ÍK9=bnK{Izo
^l0I
ؤkt#_4^+ 8\c2        㽐|?}0^~'̇_e>žz>uاx}dz=ihO1̓i<yǁ,σB/_̓g|8O~?|TOnK翮Ue\om[t)7dY:f~eV\o<76:~#3T6ͬRM
mծ>'k}p;ֽ<}e}V2gE8꣺m	yz\/mpc8x>p6a\`&dm:~ώpߦ	^Aqr-$/~Yb}eqtЌkKDua#̇C,NAKU滟j{zn'˷nltͣ5q)/xnbuq|3ÍK9=bnK{Izo
^l0I
ؤkt#_4^+ 8\c2        㽐|?}0^~'̇_e>žz>uاx}dz=ihO1̓i<yǁ,σB/_̓g|8O~?|TOnK翮Ue\om[t)7dY:f~eV\o<76:~#3T6ͬRM
hjNN
Ĩy0_QA|L
Tr`<
hjNN
Ĩy0_QA|L
Tr`<
Y#f55V7> 6>Vlzqbߏrz^{v>Ky[     s\bo꠴XQ_ߙ}Ůnۧh(UJhԇq,
:xCtSӥw|]"޾59-??ND9yΫTrg[4ΈtCϨ+ti47Aqt008gǺf9xڰp
{KD[>c!mMcaiti0}:̗q<~~U#Yo"*Nj/Vm4g~$.%flз?fB~c>$ꟉKS_ϒYߚ3ǔ?S}cpHw
>p۳~_{n)sUag}NvF0p[?|@X#=^/ʨ
Y#f55V7> 6>Vlzqbߏrz^{v>Ky[     s\bo꠴XQ_ߙ}Ůnۧh(UJhԇq,
:xCtSӥw|]"޾59-??ND9yΫTrg[4ΈtCϨ+ti47Aqt008gǺf9xڰp
{KD[>c!mMcaiti0}:̗q<~~U#Yo"*Nj/Vm4g~$.%flз?fB~c>$ꟉKS_ϒYߚ3ǔ?S}cpHw
>p۳~_{n)sUag}NvF0p[?|@X#=^/ʨ
{07L
SieO7gMjI=_95Wz:k\
0mHeζA3|N&t׸n_w_uҗZ/x6Jw8
ӥ0_yYU!04N[9G7KRJ:㲦̡!#3l$>H|ts|ƇcqmQ7-??fygZ޷-~O9op۾Yv[1v^_wF$7qkֲıa'N(Yfk^@[aco>ȹx~*1~4k2@%]gXޝf Evub>6/{o?_FVLbml?˶ۏ}gg~Vb,yX
{07L
SieO7gMjI=_95Wz:k\
0mHeζA3|N&t׸n_w_uҗZ/x6Jw8
ӥ0_yYU!04N[9G7KRJ:㲦̡!#3l$>H|ts|ƇcqmQ7-??fygZ޷-~O9op۾Yv[1v^_wF$7qkֲıa'N(Yfk^@[aco>ȹx~*1~4k2@%]gXޝf Evub>6/{o?_FVLbml?˶ۏ}gg~Vb,yX
bLg,0biH#C,= AL
cϢOb*+mq0c^mgO/gO!u`_|Tǡ>ӥ0y]/¼:Y.0^H}`D(.=|J];%oG
bLg,0biH#C,= AL
cϢOb*+mq0c^mgO/gO!u`_|Tǡ>ӥ0y]/¼:Y.0^H}`D(.=|J];%oG
{t|Vyk$ﶝ'$9:`X}tn#Xۻ+l{_B?wcאw5m/`[ӹ(_}㝹)ZnԂq4z
v0}ylsRz|?Gs19Ap\{l7|o^5<NE0!b|I{=-5ݾl?;.ۚv{     5u[;%                ~~ϋFW +P9zs~}[a^_\
{t|Vyk$ﶝ'$9:`X}tn#Xۻ+l{_B?wcאw5m/`[ӹ(_}㝹)ZnԂq4z
v0}ylsRz|?Gs19Ap\{l7|o^5<NE0!b|I{=-5ݾl?;.ۚv{     5u[;%                ~~ϋFW +P9zs~}[a^_\
8)Zc8A>z}p%+Ŋ8+%zR3tnߚW;|dosRo%}8ߕ>Á
8)Zc8A>z}p%+Ŋ8+%zR3tnߚW;|dosRo%}8ߕ>Á
RFR7Y e*
RFR7Y e*
rO<υ/l
rO<υ/l
ӭ|˽ͪ:VexatuR^gencǒlG_eXTį<_Ne^@B\t=(uAYB0>)a15pHxwUEX|
ӭ|˽ͪ:VexatuR^gencǒlG_eXTį<_Ne^@B\t=(uAYB0>)a15pHxwUEX|
k+$\3p*ijyzY|k5\~x.-[<­ηe[nkeYg;IBZ+ľVQΗ8`2U=Xo`k䊼+<"i@*rӕQ3>{*Ro@#}*(G`0JisD73|~>/|>Ek}ϡQ3tZap{cy},u^2[Wk=       v"u)N<eLp\-E]BsՇq,
:xC$An[|Io+6xx,cektqc'e>舘~ޓڤ讵J+_z
$A\[0}w|8bQ>
-;|3o9.y῿UsCMۏ1Ygf|\'zE-Y|-Fz<9[76_9m7V?3BPߊۘOeV?f|-%_6̏f~/202P#q170Wݡ;7c&b!'2?    ҟ96HH'={=v@zc_ ßUiT~
Hv~1=3߇z̻{̾cJ+
k+$\3p*ijyzY|k5\~x.-[<­ηe[nkeYg;IBZ+ľVQΗ8`2U=Xo`k䊼+<"i@*rӕQ3>{*Ro@#}*(G`0JisD73|~>/|>Ek}ϡQ3tZap{cy},u^2[Wk=       v"u)N<eLp\-E]BsՇq,
:xC$An[|Io+6xx,cektqc'e>舘~ޓڤ讵J+_z
$A\[0}w|8bQ>
-;|3o9.y῿UsCMۏ1Ygf|\'zE-Y|-Fz<9[76_9m7V?3BPߊۘOeV?f|-%_6̏f~/202P#q170Wݡ;7c&b!'2?    ҟ96HH'={=v@zc_ ßUiT~
Hv~1=3߇z̻{̾cJ+
8R%?x2'X:i7u+D>靎Cz
4rczWEhlp8/wV9g2ߛN:KUCjz_f)2|O3ߔ8(35/b~:Og;70ȼSP+2_|>3?a|W[29^Oȡ6Ht?B:ߑ~ү;OC~:zzÏG1HHrY:~G}Do`;̏b~:_v33ɡ3ߓ:(|cy,;>uxL;E?rh:ҫ:c?ˡmmDh]w=xacCT=_i@ ~7zV{7rsރh/۾q{*Dөp2
vWof]/I_\Hie͋AX}b/ۮO`''F%Ɖa6xmBBRyM!\
8R%?x2'X:i7u+D>靎Cz
4rczWEhlp8/wV9g2ߛN:KUCjz_f)2|O3ߔ8(35/b~:Og;70ȼSP+2_|>3?a|W[29^Oȡ6Ht?B:ߑ~ү;OC~:zzÏG1HHrY:~G}Do`;̏b~:_v33ɡ3ߓ:(|cy,;>uxL;E?rh:ҫ:c?ˡmmDh]w=xacCT=_i@ ~7zV{7rsރh/۾q{*Dөp2
vWof]/I_\Hie͋AX}b/ۮO`''F%Ɖa6xmBBRyM!\
i<4TLPĵ0dTCn(kiˌ~?,D0Λ
ߋ޺'5qeD';8͟2J[sd|g8>'yy#XXmX3ƦK҂璍`<'SY8eI67+YO
i<4TLPĵ0dTCn(kiˌ~?,D0Λ
ߋ޺'5qeD';8͟2J[sd|g8>'yy#XXmX3ƦK҂璍`<'SY8eI67+YO
}O1JRN,(bӉ-"vb"vXMG'bc=Eeb 9$şX'be!62b&VD'bFQK&v7&{Jb[!v      b^/şXWbFl
}O1JRN,(bӉ-"vb"vXMG'bc=Eeb 9$şX'be!62b&VD'bFQK&v7&{Jb[!v      b^/şXWbFl
+ VH{bu?XwbFNl5ĶO3?XOb{AsbGI>?Nz$Cl6e6MOT?şX2
%6sVBlN֢EG+{
#6+$=S11ĺK'6tb!~b!KKG'bc=Eeb 9Ĥ88?b&I,lbˈm"XĒMl(IĞ#b{$v7@#֕ؽĆBlIXjG}f=b-&6X6zkG	Xbubۈ&4b#'֍Xkb	|Ċ6kCl&"Fӈlfm&س#6X_b5'VBf<6El#f@lTb%ML;sS[Gl1IJ
 փX;bM;RĶ[Ml!iFO+
+ VH{bu?XwbFNl5ĶO3?XOb{AsbGI>?Nz$Cl6e6MOT?şX2
%6sVBlN֢EG+{
#6+$=S11ĺK'6tb!~b!KKG'bc=Eeb 9Ĥ88?b&I,lbˈm"XĒMl(IĞ#b{$v7@#֕ؽĆBlIXjG}f=b-&6X6zkG	Xbubۈ&4b#'֍Xkb	|Ċ6kCl&"Fӈlfm&س#6X_b5'VBf<6El#f@lTb%ML;sS[Gl1IJ
 փX;bM;RĶ[Ml!iFO+
w"6dbY҈u!ւXCb.?V{1˾B/ĚOL!v,fmFbK"6 b:K"V v$f=b-&6X6zkG	XbcmC>!jbM#6Xb݈&@G8f#b[El>IJB4bkZ6fb+=K1bC%֙Xsb)Ď)6[Jl	K%֑X#>?uI,b=#քX,şAGlFl$ĺkM,XNS{*bM&E,Xb-5$;RLlg=Fl:kN>11O#RbM 6X*Ē&&Py(#LbA&bvS)m#Bbӈ$֟X7b%+V)T?b[El>IJB4b?fb+=K1bC%֙Xsb)Ď(\6[Jl	K%֑X#2şLGlf&6Xb5!KD'QFl5ĦI?nZK #V,(w"6dbY҈u!ւ}%Sm
babg]ج;
$6Ė{Nb_KY=fXb=Jb{ľ"ob~Jb{%=zbbz}:\.Xf=gǞf?탡$M)Çs; K.
gޛpl    ɣfwֻ'K|e1ٙ7BI+;0a*C5oR=ip%E=A*Wm]wBȲv-K-^p|ds^2=LJQzmGuxXS25ZyTI2R4"4
-Z嵀[y+nY5mԗ846Pp({F-Թ
/]@)s(ubз*F>4D=%9ӻS.=7PvU^[ W^nY5#rW~nšݞ/VǕ+y#=C];~g8
w"6dbY҈u!ւXCb.?V{1˾B/ĚOL!v,fmFbK"6 b:K"V v$f=b-&6X6zkG	XbcmC>!jbM#6Xb݈&@G8f#b[El>IJB4bkZ6fb+=K1bC%֙Xsb)Ď)6[Jl	K%֑X#>?uI,b=#քX,şAGlFl$ĺkM,XNS{*bM&E,Xb-5$;RLlg=Fl:kN>11O#RbM 6X*Ē&&Py(#LbA&bvS)m#Bbӈ$֟X7b%+V)T?b[El>IJB4b?fb+=K1bC%֙Xsb)Ď(\6[Jl	K%֑X#2şLGlf&6Xb5!KD'QFl5ĦI?nZK #V,(w"6dbY҈u!ւ}%Sm
babg]ج;
$6Ė{Nb_KY=fXb=Jb{ľ"ob~Jb{%=zbbz}:\.Xf=gǞf?탡$M)Çs; K.
gޛpl    ɣfwֻ'K|e1ٙ7BI+;0a*C5oR=ip%E=A*Wm]wBȲv-K-^p|ds^2=LJQzmGuxXS25ZyTI2R4"4
-Z嵀[y+nY5mԗ846Pp({F-Թ
/]@)s(ubз*F>4D=%9ӻS.=7PvU^[ W^nY5#rW~nšݞ/VǕ+y#=C];~g8
*u0
*u0
j|#gg+t>O8'bKZ4˚,s}m^4?GJ^KA%k|vȅ}25cS*)C)i,g$g       y^
j|#gg+t>O8'bKZ4˚,s}m^4?GJ^KA%k|vȅ}25cS*)C)i,g$g       y^
/!\Tt?q&WV[VuDl/J<>+?`~`XWvWVv+~|^Y`m޵M|5|H?||gw'Bzt{a0.%ymdrpG~EOE?gOr?O`</_߹]
/sݍ!)/~LчѲ0/~)z5,|~*^4cn+k8H?<تL7vx/~L Cx0S(ϘI3F{ҍaLaq~xn̂
/!\Tt?q&WV[VuDl/J<>+?`~`XWvWVv+~|^Y`m޵M|5|H?||gw'Bzt{a0.%ymdrpG~EOE?gOr?O`</_߹]
/sݍ!)/~LчѲ0/~)z5,|~*^4cn+k8H?<تL7vx/~L Cx0S(ϘI3F{ҍaLaq~xn̂
Ӿ`_F>\埧-~-Na[o|mZ7oƐDRH/>OnT6*}ܶMab^Q-ZN`65M˃\H/RH/>\nL[ZTMaտm
Ӿ`_F>\埧-~-Na[o|mZ7oƐDRH/>OnT6*}ܶMab^Q-ZN`65M˃\H/RH/>\nL[ZTMaտm
hjNN
Ĩy0_QA|L
Tr`<
hjNN
Ĩy0_QA|L
Tr`<
YZ޶ 6/j򘗂pg/F~s>.ѳN;!j&楍h(UJhԇq,
:xCtSӥw|]\іl'*3,XdgDHi^gԅRX46Aqt008gʓ\j^w7@ZBޚ\#QL78pZ_ӥ0_f۷*~
YZ޶ 6/j򘗂pg/F~s>.ѳN;!j&楍h(UJhԇq,
:xCtSӥw|]\іl'*3,XdgDHi^gԅRX46Aqt008gʓ\j^w7@ZBޚ\#QL78pZ_ӥ0_f۷*~
]%#>C@lgw0o223;nCbpܕ-P>s,wq
z$!9\3ߥ_#cQJݽIM7_yI׸|e9|^%erBƳ!=dW+iNt.
Oο.叡Yڐx;nvU6![&cJo6ǶFAi(ܔ϶PM8Wೀ[7o-%cr|`؈Ac2Jd7/>')#]˗8`:4k?4a40gH}`o%	߰^(p
ң_9:Jg
]%#>C@lgw0o223;nCbpܕ-P>s,wq
z$!9\3ߥ_#cQJݽIM7_yI׸|e9|^%erBƳ!=dW+iNt.
Oο.叡Yڐx;nvU6![&cJo6ǶFAi(ܔ϶PM8Wೀ[7o-%cr|`؈Ac2Jd7/>')#]˗8`:4k?4a40gH}`o%	߰^(p
ң_9:Jg
sa0]=#7ߖK"2GU 5PJ"Y
w.(ÇBvYywg$(Eӝ!Uwt:=||췴Wֶ-ExoW/}?[+U~XN+ړ՞lmXM!>-]SQu멨e`S@CfbGEGf_H6IMbK=Ml<$ց
sa0]=#7ߖK"2GU 5PJ"Y
w.(ÇBvYywg$(Eӝ!Uwt:=||췴Wֶ-ExoW/}?[+U~XN+ړ՞lmXM!>-]SQu멨e`S@CfbGEGf_H6IMbK=Ml<$ց
KktXL,NqV[am\+bV{/"6YvXfb6bzDUmj{S ֓X{bM;bĶ[ClFK'֝
r{
KktXL,NqV[am\+bV{/"6YvXfb6bzDUmj{S ֓X{bM;bĶ[ClFK'֝
r{
'<)ĆXWb-]NKlҧ=])X,_xղ+O[OZvxbx߅|Sbń4>Ֆ@;tbM'bۉ'vbq͚6kO'bc=%:Xgٵ]_ٟ
'<)ĆXWb-]NKlҧ=])X,_xղ+O[OZvxbx߅|Sbń4>Ֆ@;tbM'bۉ'vbq͚6kO'bc=%:Xgٵ]_ٟ
-?+ڲްםk7ߖ\#k95xƠY^J5TUֲ5x+kY?v
-?+ڲްםk7ߖ\#k95xƠY^J5TUֲ5x+kY?v
,/D
,/D
mZ硖d͔}r2z3G?Pֈ׍K6!{1  e
y-Hi2G$Ь9D{,:pue9>'aD'eJ2dkD?ٲ9/.^cWp;?i}DyK_Ref536333881}DyK_Ref536333881Dd9&FF>
mZ硖d͔}r2z3G?Pֈ׍K6!{1  e
y-Hi2G$Ь9D{,:pue9>'aD'eJ2dkD?ٲ9/.^cWp;?i}DyK_Ref536333881}DyK_Ref536333881Dd9&FF>


#A"2uęG{~L}7Q!`!IęG{~L}701(O^x=tUU
n4LhX1j8G!g
#A"2uęG{~L}7Q!`!IęG{~L}701(O^x=tUU
n4LhX1j8G!g
"4|uIF&3̙3Qwg1
"4|uIF&3̙3Qwg1
oAYY{TWWtJ497Uzy^Ս(; CNdFW.؅YEvƫ  {1z'^ILJN&EɃg/r)>eJdcp_@A"        ?8}@!U+ LBd3'
F9TN1ҳOp_Dhgf=y`j(OB]
|)a
oAYY{TWWtJ497Uzy^Ս(; CNdFW.؅YEvƫ  {1z'^ILJN&EɃg/r)>eJdcp_@A"        ?8}@!U+ LBd3'
F9TN1ҳOp_Dhgf=y`j(OB]
|)a
OӬ,;anS˒?~R\hi\
OӬ,;anS˒?~R\hi\
7/ԃ6j)?Qsh?<TYLg}w	w7/K\XgT9<58>
z\(rt(Mm/^QVy|sJ۩He"_S{Ff5߁PΧ
}w/ʻ#n-rzoh%a!$J!<U+$fLrC|	u1 e |B~c'@8G؍>Ř5M?)Mˌ@xPG㉦b%*I2yA'_O4y5*žݫzƒba7m^L؋R@Ғ^VHtKACva$y0@zBHT O6u
`-FIu*u*
M좙~ƏE*(
7/ԃ6j)?Qsh?<TYLg}w	w7/K\XgT9<58>
z\(rt(Mm/^QVy|sJ۩He"_S{Ff5߁PΧ
}w/ʻ#n-rzoh%a!$J!<U+$fLrC|	u1 e |B~c'@8G؍>Ř5M?)Mˌ@xPG㉦b%*I2yA'_O4y5*žݫzƒba7m^L؋R@Ғ^VHtKACva$y0@zBHT O6u
`-FIu*u*
M좙~ƏE*(
AZ"?NIÏ[h} a7aQO\Aʿ"Zfʫ\ˌXҟ(T>U-Y3v|
GY"Al8z'!(:
AZ"?NIÏ[h} a7aQO\Aʿ"Zfʫ\ˌXҟ(T>U-Y3v|
GY"Al8z'!(:

.e

.e
`\0?W}\?cR?]OՏ?Pa܏}g(??[xV7i
:}O9}fc"4qeqg+Y݌5lx>p}@        CeuD_Ot;> n>`=W/^p߈x2K[{Mˤj瀅,VVGnK4WˍJR2n^+1ż"-__cʝ2Q5b^L냑òb        $L)!NqG_\?qq!u07XFr?EgWC\@~1,Md=49F`XYWWZlzg̾hǯL2ݏD!c(7g{]T>X1H<        p?MϿV6s@kNgY)/zd2\[!s@q
q!D'٣߀]/,ĽӺSDF m\
`\0?W}\?cR?]OՏ?Pa܏}g(??[xV7i
:}O9}fc"4qeqg+Y݌5lx>p}@        CeuD_Ot;> n>`=W/^p߈x2K[{Mˤj瀅,VVGnK4WˍJR2n^+1ż"-__cʝ2Q5b^L냑òb        $L)!NqG_\?qq!u07XFr?EgWC\@~1,Md=49F`XYWWZlzg̾hǯL2ݏD!c(7g{]T>X1H<        p?MϿV6s@kNgY)/zd2\[!s@q
q!D'٣߀]/,ĽӺSDF m\
:]m      Agуqb'ʻD>MbHąDDy RyNL>q[ʱu1y_~O]oGE|DK
:]m      Agуqb'ʻD>MbHąDDy RyNL>q[ʱu1y_~O]oGE|DK
a%\k!
퐾6x^xn(.`\̓
a%\k!
퐾6x^xn(.`\̓
׋ tkkg~-!
׋ tkkg~-!
X5FbMNދEesE{_3=FwO]3c1dQ/~$:!G|'ρ^4zUB`@/6f=tHGYte/}7[VsUCp8Bqt
X5FbMNދEesE{_3=FwO]3c1dQ/~$:!G|'ρ^4zUB`@/6f=tHGYte/}7[VsUCp8Bqt
q4d\J`=9kr@yX
_`]襺R3Ge6oad'igL"ߠ]uq(SvLuC* bO?TZ hOUݼ:ݪK3rKL!̯i(0glS?
Mҷ&/c,8HkTT;w~P=0?/<e>xcxwHTf=V_wJNs*[RNi*g:ǷY){|=?#!~"372CyNgAn1>#yyN8)"">M8<9 sGeϳcg/=I$BKdCMV(M=
q4d\J`=9kr@yX
_`]襺R3Ge6oad'igL"ߠ]uq(SvLuC* bO?TZ hOUݼ:ݪK3rKL!̯i(0glS?
Mҷ&/c,8HkTT;w~P=0?/<e>xcxwHTf=V_wJNs*[RNi*g:ǷY){|=?#!~"372CyNgAn1>#yyN8)"">M8<9 sGeϳcg/=I$BKdCMV(M=
x"#Txxv7=Q䳛Oߜݤ;wnݦonҟݠ/g7V_qsv3t{\e{ąiT_&_~svJwjT2yyDyШz=Ms*=XeEKERYu@] ZH!~1x=(B&`TԖ
x"#Txxv7=Q䳛Oߜݤ;wnݦonҟݠ/g7V_qsv3t{\e{ąiT_&_~svJwjT2yyDyШz=Ms*=XeEKERYu@] ZH!~1x=(B&`TԖ
L[     ZH!:oZ(w:Fۄ6kYB:%טOП߂_c5c h[
}ikDjtJ@D* t<!OBDsad*lbS\*t\bVg]JW){|A}? >S'ӌ߂_c5N
L[     ZH!:oZ(w:Fۄ6kYB:%טOП߂_c5c h[
}ikDjtJ@D* t<!OBDsad*lbS\*t\bVg]JW){|A}? >S'ӌ߂_c5N
+l|Ɣ@2=R[>V7Y0N`ZaS
+l|Ɣ@2=R[>V7Y0N`ZaS
hc>Gg<ƩSH>QwK_Jnqtm4G)uI
eZ;\ m#P
ʷC=XhtF;
hc>Gg<ƩSH>QwK_Jnqtm4G)uI
eZ;\ m#P
ʷC=XhtF;
ji'"鐶y
}\fV
ji'"鐶y
}\fV
]'뱨Q=~k_x`wP[Txl?𮖶z#RC}`7A&_~өQ`awbJ@:؝ tr}OArX.
]'뱨Q=~k_x`wP[Txl?𮖶z#RC}`7A&_~өQ`awbJ@:؝ tr}OArX.
ZP&P
ʯ2C?\bd~~\,yO(}e5%)Sp魐˽:|F,IO"O"˂_kϳ?Sh	6I*ОTQTE;N!JCD!
}?nVKfݬ͓:%&Ni4OHHRn
ZP&P
ʯ2C?\bd~~\,yO(}e5%)Sp魐˽:|F,IO"O"˂_kϳ?Sh	6I*ОTQTE;N!JCD!
}?nVKfݬ͓:%&Ni4OHHRn
̿BP(DŽkBm'W'1em"wweb5>Tp魐.~W2Q:]XЯ'ec2hG_gS{~       ^?)#~(2L;
/_ \98to)ݻ
̿BP(DŽkBm'W'1em"wweb5>Tp魐.~W2Q:]XЯ'ec2hG_gS{~       ^?)#~(2L;
/_ \98to)ݻ

{2%JTt?!daZv&su{\7|.

{2%JTt?!daZv&su{\7|.
Bp
^%k?/[o5oZ{ny4~{vKo}kY1     Wݱ,0guGhpбܙQ[%=|v),̎ONp
^1?O;7|N܈iwExW`p`v3ڣhae@㋜Zb:!cOEC>HQh}%왘rqLJ~dzG0jv~Гp`/+xwV{w0$ǂ@ƂFb&>sXQy1hg]n?nN{hpdϞezO8.Fm=ɱY>L^+fN~%ib|c5R
Bp
^%k?/[o5oZ{ny4~{vKo}kY1     Wݱ,0guGhpбܙQ[%=|v),̎ONp
^1?O;7|N܈iwExW`p`v3ڣhae@㋜Zb:!cOEC>HQh}%왘rqLJ~dzG0jv~Гp`/+xwV{w0$ǂ@ƂFb&>sXQy1hg]n?nN{hpdϞezO8.Fm=ɱY>L^+fN~%ib|c5R
P^RBZtğ㒲-rvFhm2d]H{kml*FJT&=t8eum-Ɔh5_R,m
 GBmkׅ7͡MQhL4o)ã?wz=4Gy!_?	yjN`>|N7ګ`ܧV܈>X,1bx5}F]{~;NntOΩxYqUs}ݍAtk#%^K5AR&\N٢	0ͲmFcgj{#tvrMM_[֯Fu]/J9B
NTKo@YM՛"#挳Iy|>)7oUR%9.aHKFwV#PC]K|%J7w{oi dyY;@x._kteim%}o&d'/m
'nOyĝs
P^RBZtğ㒲-rvFhm2d]H{kml*FJT&=t8eum-Ɔh5_R,m
 GBmkׅ7͡MQhL4o)ã?wz=4Gy!_?	yjN`>|N7ګ`ܧV܈>X,1bx5}F]{~;NntOΩxYqUs}ݍAtk#%^K5AR&\N٢	0ͲmFcgj{#tvrMM_[֯Fu]/J9B
NTKo@YM՛"#挳Iy|>)7oUR%9.aHKFwV#PC]K|%J7w{oi dyY;@x._kteim%}o&d'/m
'nOyĝs
X<Ѓq2`h6mZ%\OOn)96赝,SC]}Nv-YkIN\M+Rw]Lyr|wnnzhd#e'l$b?kqqlivN:x,[ϛ
X<Ѓq2`h6mZ%\OOn)96赝,SC]}Nv-YkIN\M+Rw]Lyr|wnnzhd#e'l$b?kqqlivN:x,[ϛ
ӗrSr=2Evpmros)!?}gɨJʽO19~ɟ{|gy|/ڝyyx%/S`þvJؗ)a_;?]~I}_:?S~/5?J}ݕTaow[+e}!o.ww+fojRb9Q]aQ?Y9C&y}mUvm݊]mgL,ϘݷVU,rጩxs9K'(}DyK_Ref536267832}DyK_Ref536370713}DyK_Ref536370734}DyK_Ref536515790}DyK_Ref536515837}DyK_Ref536514856}DyK_Ref536514856}DyK_Ref536519039}DyK_Ref536519405}DyK_Ref536519039}DyK_Ref536519405}DyK_Ref536519039}DyK_Ref5365194056Dd
ӗrSr=2Evpmros)!?}gɨJʽO19~ɟ{|gy|/ڝyyx%/S`þvJؗ)a_;?]~I}_:?S~/5?J}ݕTaow[+e}!o.ww+fojRb9Q]aQ?Y9C&y}mUvm݊]mgL,ϘݷVU,rጩxs9K'(}DyK_Ref536267832}DyK_Ref536370713}DyK_Ref536370734}DyK_Ref536515790}DyK_Ref536515837}DyK_Ref536514856}DyK_Ref536514856}DyK_Ref536519039}DyK_Ref536519405}DyK_Ref536519039}DyK_Ref536519405}DyK_Ref536519039}DyK_Ref5365194056Dd
#a
#a




s|-A      P?http://www.opencores.org/logos/jng3.gif"@@b4&0n_a
zn&0n_a
zPNG
s|-A      P?http://www.opencores.org/logos/jng3.gif"@@b4&0n_a
zn&0n_a
zPNG



IHDR'PLTEymhcmPPJCmp0712OmIDATxM(5ls        G`|T/Y8)3P:T؍~Bp3l\3&~ JM-_WMK ֕Xj]p

IHDR'PLTEymhcmPPJCmp0712OmIDATxM(5ls        G`|T/Y8)3P:T؍~Bp3l\3&~ JM-_WMK ֕Xj]p
[MI ,hB@G@('J!x:!@B&ʥAOMH ȅɅ@_#|B
[MI ,hB@G@('J!x:!@B&ʥAOMH ȅɅ@_#|B
!M4{#OR#oɊ@H^BRY%>͒B8!XD!::\*㷏'ȏPBON0LÄpN"ҁs;hrQB:%X 49 !\BN        `.        kr!B8_Ga%X:O𰴇:AZ_rLz?!=   C1AW!(]_BX,xp\X3|'kTeB
!M4{#OR#oɊ@H^BRY%>͒B8!XD!::\*㷏'ȏPBON0LÄpN"ҁs;hrQB:%X 49 !\BN        `.        kr!B8_Ga%X:O𰴇:AZ_rLz?!=   C1AW!(]_BX,xp\X3|'kTeB
r9b}HP$AwtgnBPYB@Wa]?kwoOuw­o n㝅,Bx0.x_=ƘWZi~     P_P|m`͘sT_ Ɯy
r9b}HP$AwtgnBPYB@Wa]?kwoOuw­o n㝅,Bx0.x_=ƘWZi~     P_P|m`͘sT_ Ɯy
 5˖$B=5]y9~dZozێltPZ&v;mLʗZ2]@?/J1{w&)#Ter+	C'JկL7BjO_팯  Z      qEɗ"s$RpaONU]uXnGiLꆀz&TA(IyYW@\XrH,ҴCۉ_hhҰw]\,.%S#(&A       v@+rƛ+ݍ`ˎ.&{A✠כ+ŭ'2[N2@epBlA?uB[\2⊓A~ov'K#@F2TQ1$$Sc'oy++UehׁFScF
 5˖$B=5]y9~dZozێltPZ&v;mLʗZ2]@?/J1{w&)#Ter+	C'JկL7BjO_팯  Z      qEɗ"s$RpaONU]uXnGiLꆀz&TA(IyYW@\XrH,ҴCۉ_hhҰw]\,.%S#(&A       v@+rƛ+ݍ`ˎ.&{A✠כ+ŭ'2[N2@epBlA?uB[\2⊓A~ov'K#@F2TQ1$$Sc'oy++UehׁFScF
}`W/
4MAφ=B źŝņtj8|Ҩe   K>fi bQS?S+ȟ-L|egLs5>y=@tIENDB`DyKhttp://www.opencores.orgyK4http://www.opencores.org/6Dd
}`W/
4MAφ=B źŝņtj8|Ҩe   K>fi bQS?S+ȟ-L|egLs5>y=@tIENDB`DyKhttp://www.opencores.orgyK4http://www.opencores.org/6Dd
#a
#a
   
   
s|-A      P?http://www.opencores.org/logos/jng3.gif"@@b4&0n_a
zn&0n_a
zPNG
s|-A      P?http://www.opencores.org/logos/jng3.gif"@@b4&0n_a
zn&0n_a
zPNG



IHDR'PLTEymhcmPPJCmp0712OmIDATxM(5ls        G`|T/Y8)3P:T؍~Bp3l\3&~ JM-_WMK ֕Xj]p

IHDR'PLTEymhcmPPJCmp0712OmIDATxM(5ls        G`|T/Y8)3P:T؍~Bp3l\3&~ JM-_WMK ֕Xj]p
[MI ,hB@G@('J!x:!@B&ʥAOMH ȅɅ@_#|B
[MI ,hB@G@('J!x:!@B&ʥAOMH ȅɅ@_#|B
!M4{#OR#oɊ@H^BRY%>͒B8!XD!::\*㷏'ȏPBON0LÄpN"ҁs;hrQB:%X 49 !\BN        `.        kr!B8_Ga%X:O𰴇:AZ_rLz?!=   C1AW!(]_BX,xp\X3|'kTeB
!M4{#OR#oɊ@H^BRY%>͒B8!XD!::\*㷏'ȏPBON0LÄpN"ҁs;hrQB:%X 49 !\BN        `.        kr!B8_Ga%X:O𰴇:AZ_rLz?!=   C1AW!(]_BX,xp\X3|'kTeB
r9b}HP$AwtgnBPYB@Wa]?kwoOuw­o n㝅,Bx0.x_=ƘWZi~     P_P|m`͘sT_ Ɯy
r9b}HP$AwtgnBPYB@Wa]?kwoOuw­o n㝅,Bx0.x_=ƘWZi~     P_P|m`͘sT_ Ɯy
 5˖$B=5]y9~dZozێltPZ&v;mLʗZ2]@?/J1{w&)#Ter+	C'JկL7BjO_팯  Z      qEɗ"s$RpaONU]uXnGiLꆀz&TA(IyYW@\XrH,ҴCۉ_hhҰw]\,.%S#(&A       v@+rƛ+ݍ`ˎ.&{A✠כ+ŭ'2[N2@epBlA?uB[\2⊓A~ov'K#@F2TQ1$$Sc'oy++UehׁFScF
 5˖$B=5]y9~dZozێltPZ&v;mLʗZ2]@?/J1{w&)#Ter+	C'JկL7BjO_팯  Z      qEɗ"s$RpaONU]uXnGiLꆀz&TA(IyYW@\XrH,ҴCۉ_hhҰw]\,.%S#(&A       v@+rƛ+ݍ`ˎ.&{A✠כ+ŭ'2[N2@epBlA?uB[\2⊓A~ov'K#@F2TQ1$$Sc'oy++UehׁFScF
}`W/
4MAφ=B źŝņtj8|Ҩe   K>fi bQS?S+ȟ-L|egLs5>y=@tIENDB`q
}`W/
4MAφ=B źŝņtj8|Ҩe   K>fi bQS?S+ȟ-L|egLs5>y=@tIENDB`q
i>@>Normal$xa$CJ_HmH sH     tH     f@Bf   Heading 11$$$
i>@>Normal$xa$CJ_HmH sH     tH     f@Bf   Heading 11$$$
&F
f!&d0@&P0a$5CJ`OJQJR@R       Heading 2$$
&F
f!&d0@&P0a$5CJ`OJQJR@R       Heading 2$$
&F@&a$5CJ OJQJ\@\       Heading 3%$$
&F@&a$5CJ OJQJ\@\       Heading 3%$$
&F
f!h@&a$56CJOJQJX@X
       Heading 4%$$
&F
f!h@&a$56CJOJQJX@X
       Heading 4%$$
&F
f!@&a$56OJQJD@D
       Heading 5$$
f!@&a$
&F
f!@&a$56OJQJD@D
       Heading 5$$
f!@&a$
6B*CJ F@F Heading 6$$
3@&a$6CJ F@F
 Heading 7$$X@&a$5CJ$OJQJX@X Heading 80$$
6B*CJ F@F Heading 6$$
3@&a$6CJ F@F
 Heading 7$$X@&a$5CJ$OJQJX@X Heading 80$$
&F<*$5$7$8$9D@&H$a$6j       @Bj       Heading 9= $$
&F<*$5$7$8$9D@&H$a$6j       @Bj       Heading 9= $$
&F&d*$5$7$8$9D@&H$Pa$5CJ`<A@<Default Paragraph Font<@<
Header

!5CJOJQJ< @<
Footer
!<CJOJQJ(U@(	Hyperlink>*B*&)@!&Page NumberN>@NTitle$<a$"5CJ`KH_HmHnHsH   tH     uPOPHeadeing 1 Name$@&a$5CJHOJQJ8Y@R8Document Map-D OJQJ,@,
TOC 1x
&F&d*$5$7$8$9D@&H$Pa$5CJ`<A@<Default Paragraph Font<@<
Header

!5CJOJQJ< @<
Footer
!<CJOJQJ(U@(	Hyperlink>*B*&)@!&Page NumberN>@NTitle$<a$"5CJ`KH_HmHnHsH   tH     uPOPHeadeing 1 Name$@&a$5CJHOJQJ8Y@R8Document Map-D OJQJ,@,
TOC 1x
5;CJ2@2
TOC 2^:CJ2@2
TOC 3^6CJ.@.
TOC 4^CJ.@.
TOC 5^CJ.@.
TOC 6^CJ.@.
TOC 7^CJ.@.
TOC 8^CJ.@.
TOC 9^CJ8V@8FollowedHyperlink>*B*4"@4Caption $xa$5CJ:Oa:Contents!
!
5;CJ2@2
TOC 2^:CJ2@2
TOC 3^6CJ.@.
TOC 4^CJ.@.
TOC 5^CJ.@.
TOC 6^CJ.@.
TOC 7^CJ.@.
TOC 8^CJ.@.
TOC 9^CJ8V@8FollowedHyperlink>*B*4"@4Caption $xa$5CJ:Oa:Contents!
!
:;CJ(O"(Table"$a$dO2dIndex"#$$$
:;CJ(O"(Table"$a$dO2dIndex"#$$$
&Fx&d0@&a$&5CJ`OJQJ_HmHnHsH       tH     u.OAB.
Appendix Name$8OR8        subtitles%$xa$5CJNONHeading"&$$*$5$7$8$9DH$a$CJOJQJLOrLStyle1'$a$&5CJ`OJQJ_HmHnHsH      tH     u&B@&        Body Text(jOjAppendix")$$$
&Fx&d0@&a$&5CJ`OJQJ_HmHnHsH       tH     u.OAB.
Appendix Name$8OR8        subtitles%$xa$5CJNONHeading"&$$*$5$7$8$9DH$a$CJOJQJLOrLStyle1'$a$&5CJ`OJQJ_HmHnHsH      tH     u&B@&        Body Text(jOjAppendix")$$$
&Fx&d0@&a$&5CJ`OJQJ_HmHnHsH       tH     uDP@DBody Text 2*$*$H$5$7$8$9DBOBWW-Default Paragraph Font<O<Bullet SymbolsCJOJQJkH*.J@a.Subtitle-$a$6XOXTable Contents%.$$$*$5$7$8$9DH$a$CJ4O4
Table Heading/56d#@dTable of Figures20$$ *$5$7$8$9DH$^` a$X^@XNormal (Web)1$$dda$B*OJPJQJmH     sH     uNQ@"NBody Text 3"2$$*$5$7$8$9DH$a$B*TT@2T
&Fx&d0@&a$&5CJ`OJQJ_HmHnHsH       tH     uDP@DBody Text 2*$*$H$5$7$8$9DBOBWW-Default Paragraph Font<O<Bullet SymbolsCJOJQJkH*.J@a.Subtitle-$a$6XOXTable Contents%.$$$*$5$7$8$9DH$a$CJ4O4
Table Heading/56d#@dTable of Figures20$$ *$5$7$8$9DH$^` a$X^@XNormal (Web)1$$dda$B*OJPJQJmH     sH     uNQ@"NBody Text 3"2$$*$5$7$8$9DH$a$B*TT@2T
Block Text.3$$*$5$7$8$9DH$]^a$lOBl
Heading 1 appendix24$$
Block Text.3$$*$5$7$8$9DH$]^a$lOBl
Heading 1 appendix24$$
&F<&d*$5$7$8$9D@&H$a$CJ`O
Heading 2 appendixG5$$
&F<&d*$5$7$8$9D@&H$a$CJ`O
Heading 2 appendixG5$$
&F<
0j!`*$5$7$8$9D@&H$^``a$5CJ(`O`
Heading 1 title(6$$&d*$5$7$8$9DH$a$5CJ`dM@rdBody Text First Indent&7$$*$5$7$8$9DH$`a$XC@XBody Text Indent&8$$h*$5$7$8$9DH$^ha$LN@LBody Text First Indent 2
&F<
0j!`*$5$7$8$9D@&H$^``a$5CJ(`O`
Heading 1 title(6$$&d*$5$7$8$9DH$a$5CJ`dM@rdBody Text First Indent&7$$*$5$7$8$9DH$`a$XC@XBody Text Indent&8$$h*$5$7$8$9DH$^ha$LN@LBody Text First Indent 2
9`bR@bBody Text Indent 2,:$$hd*$5$7$8$9DH$^ha$`S@`Body Text Indent 3&;$$h*$5$7$8$9DH$^ha$CJJ?@JClosing*<$$*$5$7$8$9DH$^a$P@PComment Text"=$$*$5$7$8$9DH$a$CJ<L@<Date">$$*$5$7$8$9DH$a$T[@TE-mail Signature"?$$*$5$7$8$9DH$a$P+@PEndnote Text"@$$*$5$7$8$9DH$a$CJ|$@|Envelope AddressAA$$@&*$+D/5$7$8$9DH$^@a$OJQJ^%@"^Envelope Return"B$$*$5$7$8$9DH$a$CJOJQJR@2R
Footnote Text"C$$*$5$7$8$9DH$a$CJP`@BPHTML Address"D$$*$5$7$8$9DH$a$6be@RbHTML Preformatted"E$$*$5$7$8$9DH$a$CJOJ  QJ     R
9`bR@bBody Text Indent 2,:$$hd*$5$7$8$9DH$^ha$`S@`Body Text Indent 3&;$$h*$5$7$8$9DH$^ha$CJJ?@JClosing*<$$*$5$7$8$9DH$^a$P@PComment Text"=$$*$5$7$8$9DH$a$CJ<L@<Date">$$*$5$7$8$9DH$a$T[@TE-mail Signature"?$$*$5$7$8$9DH$a$P+@PEndnote Text"@$$*$5$7$8$9DH$a$CJ|$@|Envelope AddressAA$$@&*$+D/5$7$8$9DH$^@a$OJQJ^%@"^Envelope Return"B$$*$5$7$8$9DH$a$CJOJQJR@2R
Footnote Text"C$$*$5$7$8$9DH$a$CJP`@BPHTML Address"D$$*$5$7$8$9DH$a$6be@RbHTML Preformatted"E$$*$5$7$8$9DH$a$CJOJ  QJ     R
@R
Index 12F$$*$5$7$8$9DH$^`a$R@R
Index 22G$$*$5$7$8$9DH$^`a$R@R
Index 32H$$*$5$7$8$9DH$^`a$R
@R
Index 42I$$*$5$7$8$9DH$^`a$R@R
Index 52J$$*$5$7$8$9DH$^`a$R@R
Index 62K$$*$5$7$8$9DH$^`a$R@R
Index 72L$$*$5$7$8$9DH$^`a$R@R
Index 82M$$*$5$7$8$9DH$^`a$R@R
Index 92N$$p*$5$7$8$9DH$^p`a$Z!@bZ
Index Heading"O$$*$5$7$8$9DH$a$5OJQJL/@LList2P$$h*$5$7$8$9DH$^h`a$P2@PList 22Q$$*$5$7$8$9DH$^`a$P3@"PList 32R$$8*$5$7$8$9DH$^8`a$P4@2PList 42S$$*$5$7$8$9DH$^`a$P5@BPList 52T$$*$5$7$8$9DH$^`a$R0@RR
List Bullet)U$$
@R
Index 12F$$*$5$7$8$9DH$^`a$R@R
Index 22G$$*$5$7$8$9DH$^`a$R@R
Index 32H$$*$5$7$8$9DH$^`a$R
@R
Index 42I$$*$5$7$8$9DH$^`a$R@R
Index 52J$$*$5$7$8$9DH$^`a$R@R
Index 62K$$*$5$7$8$9DH$^`a$R@R
Index 72L$$*$5$7$8$9DH$^`a$R@R
Index 82M$$*$5$7$8$9DH$^`a$R@R
Index 92N$$p*$5$7$8$9DH$^p`a$Z!@bZ
Index Heading"O$$*$5$7$8$9DH$a$5OJQJL/@LList2P$$h*$5$7$8$9DH$^h`a$P2@PList 22Q$$*$5$7$8$9DH$^`a$P3@"PList 32R$$8*$5$7$8$9DH$^8`a$P4@2PList 42S$$*$5$7$8$9DH$^`a$P5@BPList 52T$$*$5$7$8$9DH$^`a$R0@RR
List Bullet)U$$
&F*$5$7$8$9DH$a$V6@bV

List Bullet 2)V$$
&F*$5$7$8$9DH$a$V6@bV

List Bullet 2)V$$
&F*$5$7$8$9DH$a$V7@rV

List Bullet 3)W$$
&F*$5$7$8$9DH$a$V7@rV

List Bullet 3)W$$
&F*$5$7$8$9DH$a$V8@V

List Bullet 4)X$$
&F*$5$7$8$9DH$a$V8@V

List Bullet 4)X$$
&F *$5$7$8$9DH$a$V9@V

List Bullet 5)Y$$
&F *$5$7$8$9DH$a$V9@V

List Bullet 5)Y$$
&F!*$5$7$8$9DH$a$RD@R
List Continue&Z$$h*$5$7$8$9DH$^ha$VE@VList Continue 2&[$$*$5$7$8$9DH$^a$VF@VList Continue 3&\$$8*$5$7$8$9DH$^8a$VG@VList Continue 4&]$$*$5$7$8$9DH$^a$VH@VList Continue 5&^$$*$5$7$8$9DH$^a$R1@RList Number)_$$
&F!*$5$7$8$9DH$a$RD@R
List Continue&Z$$h*$5$7$8$9DH$^ha$VE@VList Continue 2&[$$*$5$7$8$9DH$^a$VF@VList Continue 3&\$$8*$5$7$8$9DH$^8a$VG@VList Continue 4&]$$*$5$7$8$9DH$^a$VH@VList Continue 5&^$$*$5$7$8$9DH$^a$R1@RList Number)_$$
&F"*$5$7$8$9DH$a$V:@V
List Number 2)`$$
&F"*$5$7$8$9DH$a$V:@V
List Number 2)`$$
&F#*$5$7$8$9DH$a$V;@V
List Number 3)a$$
&F#*$5$7$8$9DH$a$V;@V
List Number 3)a$$
&F$*$5$7$8$9DH$a$V<@"V
List Number 4)b$$
&F$*$5$7$8$9DH$a$V<@"V
List Number 4)b$$
&F%*$5$7$8$9DH$a$V=@2V
List Number 5)c$$
&F%*$5$7$8$9DH$a$V=@2V
List Number 5)c$$
&F&*$5$7$8$9DH$a$t-@Bt
&F&*$5$7$8$9DH$a$t-@Bt
Macro Text5d*$H$5$7$8$9D
      `       @ 
OJ  QJ     _HmH sH     tH     I@RMessage HeaderNe$$8$d%d&d'd*$-D5$7$8$9DH$^8`a$OJQJV@bV
Normal Indent*f$$*$5$7$8$9DH$^a$LO@LNote Heading"g$$*$5$7$8$9DH$a$TZ@T
Macro Text5d*$H$5$7$8$9D
      `       @ 
OJ  QJ     _HmH sH     tH     I@RMessage HeaderNe$$8$d%d&d'd*$-D5$7$8$9DH$^8`a$OJQJV@bV
Normal Indent*f$$*$5$7$8$9DH$^a$LO@LNote Heading"g$$*$5$7$8$9DH$a$TZ@T
Plain Text"h$$*$5$7$8$9DH$a$CJOJ     QJ     HK@H
Plain Text"h$$*$5$7$8$9DH$a$CJOJ     QJ     HK@H
Salutation"i$$*$5$7$8$9DH$a$N@@N       Signature*j$$*$5$7$8$9DH$^a$l,@lTable of Authorities2k$$*$5$7$8$9DH$^`a$Z.@ZTOA Heading&l$$x*$5$7$8$9DH$a$5OJQJ6'@6Comment ReferenceCJ8&@8Footnote ReferenceH*>O>Body Text Keepo$d&X@&Emphasis6]hMiha Dolenc &hmd?h:j !"H\pqr{ /;<@IUdr3._*L#y-                  K
Salutation"i$$*$5$7$8$9DH$a$N@@N       Signature*j$$*$5$7$8$9DH$^a$l,@lTable of Authorities2k$$*$5$7$8$9DH$^`a$Z.@ZTOA Heading&l$$x*$5$7$8$9DH$a$5OJQJ6'@6Comment ReferenceCJ8&@8Footnote ReferenceH*>O>Body Text Keepo$d&X@&Emphasis6]hMiha Dolenc &hmd?h:j !"H\pqr{ /;<@IUdr3._*L#y-                  K
G
|

F
G
|

F
}I<lOj4g4g4]]  !!!!"P"|"""""##&#4#]###7$Q$l$$$$$%2%P%%%&`&b&
}I<lOj4g4g4]]  !!!!"P"|"""""##&#4#]###7$Q$l$$$$$%2%P%%%&`&b&
))+?,,7--c..o/2222245555566666666     7#767J7`7~7777778%8?8Z8r8888888 9959S9q999999:-:I:^:|::::::;;';8;L;];q;;;;P<>@@BBBBECGCCCCIDJDLDDDDEyEGGHIIrKhMNOOQQT&TwTX[]5`acfgiigjDkpu6vxz{S{{{|)|\}g}~@ơɯ4H+'q";iPo      7Cm/=w        V
))+?,,7--c..o/2222245555566666666     7#767J7`7~7777778%8?8Z8r8888888 9959S9q999999:-:I:^:|::::::;;';8;L;];q;;;;P<>@@BBBBECGCCCCIDJDLDDDDEyEGGHIIrKhMNOOQQT&TwTX[]5`acfgiigjDkpu6vxz{S{{{|)|\}g}~@ơɯ4H+'q";iPo      7Cm/=w        V
>Yfs5& !^#5$%~&(9))Z***X++\,[9e::;\;;;;r>uGMM:NRVVrXZ[\^_h``a[aaBbbcaccc8dddweeffgRgggnhh+iiisjjk;kk;lllpmmn6nnorooo]pp
q[qstqtttuuuu.vwwx2x]xx!{m|}}~B\/5ZٔԕOPRƗǗSg*LmߛRa7
>Yfs5& !^#5$%~&(9))Z***X++\,[9e::;\;;;;r>uGMM:NRVVrXZ[\^_h``a[aaBbbcaccc8dddweeffgRgggnhh+iiisjjk;kk;lllpmmn6nnorooo]pp
q[qstqtttuuuu.vwwx2x]xx!{m|}}~B\/5ZٔԕOPRƗǗSg*LmߛRa7
ɤ|Z
,K̬|pVԷ"Zv4'-PeD,&(wHs,G+,E!"+3G`r ?cdRSnJKM!;)IA J,q
?UV&Yjk     U#[|^h!Lx#NO6_+Tx7m!`+        ,               T
ɤ|Z
,K̬|pVԷ"Zv4'-PeD,&(wHs,G+,E!"+3G`r ?cdRSnJKM!;)IA J,q
?UV&Yjk     U#[|^h!Lx#NO6_+Tx7m!`+        ,               T
y
y




&Nc

,U2cd6t'W7f;|U2Z,g#yI|%`M<7 c   2!~!!"W"""!#b##$R$$$&%g%%%?&&&3'd'''7((()R)))
&Nc

,U2cd6t'W7f;|U2Z,g#yI|%`M<7 c   2!~!!"W"""!#b##$R$$$&%g%%%?&&&3'd'''7((()R)))
*N***4+++,G,,,-c--...e./1/0000
*N***4+++,G,,,-c--...e./1/0000
1112?22222p3333A4f44444$54555556*6+6667'7(77788888999*:+::6;;;<l<<=u==5>>>:?l???J@@@@AA&BtBBC^CCCODDDEEEEEeFFFGXGGGH.H/HH"I#IIJPJJJ
1112?22222p3333A4f44444$54555556*6+6667'7(77788888999*:+::6;;;<l<<=u==5>>>:?l???J@@@@AA&BtBBC^CCCODDDEEEEEeFFFGXGGGH.H/HH"I#IIJPJJJ
 0 0 0
 0 00 0 0000 0 0 0 000000 0 0000 0 0( 0(0 0( 0( 0( 0(00 0 0 0      0
 0 0 0
 0 00 0 0000 0 0 0 000000 0 0000 0 0( 0(0 0( 0( 0( 0(00 0 0 0      0
08 00;0;0;8 00M0M0M( 0DD0V0V0V0V0V0V0V0V 0V 0V 0V 0V 0V 0V 0V0V 0V 0V 0       V 0
08 00;0;0;8 00M0M0M( 0DD0V0V0V0V0V0V0V0V 0V 0V 0V 0V 0V 0V 0V0V 0V 0V 0       V 0
V 0V0V0V0V 0V 0
V 0V 0V 0V0V0V0V0V 0V 0V 0V0V 0V 0V 0V0V 0V 0V 0V0V 0V 0V 0V 0V0V 0V 0V 0 V 0!V0V 0"V 0#V 0$V 0%V 0&V 0'V 0(V 0)V 0*Vo0Vo0V o0+V o0,V o0-Vo0V o0.V o0/V o00V o01Vo0Vo0V o02V o03V o04V o05V o06V o07V o08V o09V o0:V o0;V o0<V o0=Vo0Vo0Vo0Vo0Vo0Vo0V0V 00R 02R0Ǘ( 0ǗǗ0S 0S 0S 0S 0S( 0ǗǗ0L0L 0L 0L 0L 0L 0L 0L( 0ǗǗ0 0 00( 0ǗǗ 0| 0|0|( 0ǗǗ0
( 0ǗǗ 0 0( 0ǗǗ0 0 0 0 0 0 0 0 0 ( 0ǗǗ0Է 0Է 0
V 0V0V0V0V 0V 0
V 0V 0V 0V0V0V0V0V 0V 0V 0V0V 0V 0V 0V0V 0V 0V 0V0V 0V 0V 0V 0V0V 0V 0V 0 V 0!V0V 0"V 0#V 0$V 0%V 0&V 0'V 0(V 0)V 0*Vo0Vo0V o0+V o0,V o0-Vo0V o0.V o0/V o00V o01Vo0Vo0V o02V o03V o04V o05V o06V o07V o08V o09V o0:V o0;V o0<V o0=Vo0Vo0Vo0Vo0Vo0Vo0V0V 00R 02R0Ǘ( 0ǗǗ0S 0S 0S 0S 0S( 0ǗǗ0L0L 0L 0L 0L 0L 0L 0L( 0ǗǗ0 0 00( 0ǗǗ 0| 0|0|( 0ǗǗ0
( 0ǗǗ 0 0( 0ǗǗ0 0 0 0 0 0 0 0 0 ( 0ǗǗ0Է 0Է 0
Է 0Է 0Է 0Է( 0ǗǗ 0 0 0( 0 ǗǗ 0 0 0 0( 0
Է 0Է 0Է 0Է( 0ǗǗ 0 0 0( 0 ǗǗ 0 0 0 0( 0
ǗǗ 0- 0- 02R0 0 0 0 0 0 0 0 0 02R0( 0 0  0
ǗǗ 0- 0- 02R0 0 0 0 0 0 0 0 0 02R0( 0 0  0
 0 0 0
( 0 0( 0 0H( 0 0,0, 00 000 00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,( 0,,0S0S0S 0 0M00( 08 00!0!8 0008 00)0)0)0)8 008 00 0 0 ( 08 008 008 000 0M0000( 000008 0000000000000000000000000000008 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008 0000000000000000000000000000000000000000000000000000000000000000000( 00.0.8 0..0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/8 0..08080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808088 0..0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K 0M0S0S0S( 0SS0fV0fV 0fV0fV 0fV0fV0fV 0
fV0fV0fV 0fV0fV0fV 0fV0fV0fV 0fV 0fV 0fV 0fV0fV( 0SS0ud0ud0ud #00ee@0@0@0@0@0@0@0@0@0@0@0
 0 0 0
( 0 0( 0 0H( 0 0,0, 00 000 00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,( 0,,0S0S0S 0 0M00( 08 00!0!8 0008 00)0)0)0)8 008 00 0 0 ( 08 008 008 000 0M0000( 000008 0000000000000000000000000000008 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008 0000000000000000000000000000000000000000000000000000000000000000000( 00.0.8 0..0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/8 0..08080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808088 0..0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K0K 0M0S0S0S( 0SS0fV0fV 0fV0fV 0fV0fV0fV 0
fV0fV0fV 0fV0fV0fV 0fV0fV0fV 0fV 0fV 0fV 0fV0fV( 0SS0ud0ud0ud #00ee@0@0@0@0@0@0@0@0@0@0@0
0@=0
0@=0
0000M         
0000M         
j
Fg{h>B` 1!!!*F>cGY@"<W[$hqېskGM_jlkrtuvwxyz{|}~;"%|&&&'4'7(l((()6#;=FU)Hs?8hr2|Z&Mk y$,4+:5BJdRB\eilllnopqslm{3Qmopr.013Sd
)+,.Nk=Y\]_$'(*Ji*FIJLl !#CWsvwy '     *     +     -     M     j                                                  
j
Fg{h>B` 1!!!*F>cGY@"<W[$hqېskGM_jlkrtuvwxyz{|}~;"%|&&&'4'7(l((()6#;=FU)Hs?8hr2|Z&Mk y$,4+:5BJdRB\eilllnopqslm{3Qmopr.013Sd
)+,.Nk=Y\]_$'(*Ji*FIJLl !#CWsvwy '     *     +     -     M     j                                                  
)
)
E
E
H
H
I
I
K
K
k
k
;q%ADEGg



?
Z
v
y
z
|






$@CDFf=z
;q%ADEGg



?
Z
v
y
z
|






$@CDFf=z
*[wz{}'CFGIi?`|69:<\4Jfijl<^z}~-ILMOo:cHdghj.124T|'Eadeg.124Tx Eadeg.124Tx;WZ[]}BBBBBBBBBNC^C`CbC~CCCCCCCCSDcDeDgDDDH5H~H|}X}>WVWWzz{?Ҍ5MYikm
*[wz{}'CFGIi?`|69:<\4Jfijl<^z}~-ILMOo:cHdghj.124T|'Eadeg.124Tx Eadeg.124Tx;WZ[]}BBBBBBBBBNC^C`CbC~CCCCCCCCSDcDeDgDDDH5H~H|}X}>WVWWzz{?Ҍ5MYikm

%FTdfh>UYU_UaUyUUUUUUV"V[-[3[5[M[r[]]]]]^i``````h 
tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%t̕t

%FTdfh>UYU_UaUyUUUUUUV"V[-[3[5[M[r[]]]]]^i``````h 
tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%t̕t
tt
tt
tt
tt
tt
tt
tttttttttttt
tttttttttttt
tttt
tttt
tttttttttttttttNPwDFmCX!tC! )'2$
&H&Ob+2$ęG{~L}7Q+2$G3zZ|>Gnv<+2$f'|Pln'Xk,+2$}'4xT5)+2$E/|dh+2$,5!4+2$ǪKڧBD7Z.+2$#|u-(S;3+2$Ms9       *VH>+@ &0(   
tttttttttttttttNPwDFmCX!tC! )'2$
&H&Ob+2$ęG{~L}7Q+2$G3zZ|>Gnv<+2$f'|Pln'Xk,+2$}'4xT5)+2$E/|dh+2$,5!4+2$ǪKڧBD7Z.+2$#|u-(S;3+2$Ms9       *VH>+@ &0(   
B
B
S       ?H0(        
S       ?H0(        
hk
_Ref536333905
_Toc536594626
_Toc514628321
_Toc536594627
_Toc507263424
_Toc508330758
_Toc512410441
_Toc512410802
_Toc512410924
_Toc514628322
_Toc536594628
_Toc536594629
_Toc536594630
_Toc514628324
_Toc536594631
_Toc536594632
_Toc536594633
_Toc514628376
_Ref531366460
_Ref532098758
_Hlt533559963
_Toc508330760
_Toc512410444
_Toc512410805
_Toc514628329
_Ref532098719
_Ref531365462
_Toc536594634
_Toc536594635
_Toc536594636
_Toc536594637
_Toc536594638
_Toc536594639
_Toc536594640
_Toc536594641
_Toc536594642
_Toc536594643
_Toc536594644
_Toc536594645
_Toc536594646
_Toc536594647
_Toc536594648
_Toc536594649
_Toc536594650
_Toc536594651
_Toc536594652
_Toc536594653
_Toc536594654
_Ref531586771
_Toc536594655
_Toc536594656
_Toc536594657
_Toc536594658
_Toc536594659
_Toc536594660
_Toc536594661
_Ref536519039
_Ref536519405
_Toc536594662
_Toc536594663
_Toc536594664
_Toc536594665
_Toc536594666
_Toc536594667
_Toc536594668
_Toc536594669
_Toc536594670
_Toc536594671
_Toc536594672 Operation
_Toc536594673
_Toc536594674
_Toc536594675
_Toc513532498
_Toc536594676
_Ref536259530
_Ref536333881
_Toc536594677
_Toc536594678
_Toc536594679
_Toc536594680
_Toc536594681
_Toc536594682
_Toc536594683
_Toc536594684
_Toc536594685
_Toc536594686
_Toc536594687
_Ref536267832
_Toc536594688
_Ref536370713
_Toc536594689
_Toc536594690
_Toc536594691
_Toc536594692
_Ref536370734
_Toc536594693
_Toc536594694
_Toc536594695
_Toc536594696
_Toc536594697
_Ref536514856
_Toc536594698
_Ref536515790
_Ref536515837
_Toc536594699
_Hlt518979689"!!!!!!!%2225@GCGCCCLDLDLDLDLDDDDGIOQTi|\}4;MVRǗSL|
Է-H,,ESM!) ../8KSfVfVudududnfh
hk
_Ref536333905
_Toc536594626
_Toc514628321
_Toc536594627
_Toc507263424
_Toc508330758
_Toc512410441
_Toc512410802
_Toc512410924
_Toc514628322
_Toc536594628
_Toc536594629
_Toc536594630
_Toc514628324
_Toc536594631
_Toc536594632
_Toc536594633
_Toc514628376
_Ref531366460
_Ref532098758
_Hlt533559963
_Toc508330760
_Toc512410444
_Toc512410805
_Toc514628329
_Ref532098719
_Ref531365462
_Toc536594634
_Toc536594635
_Toc536594636
_Toc536594637
_Toc536594638
_Toc536594639
_Toc536594640
_Toc536594641
_Toc536594642
_Toc536594643
_Toc536594644
_Toc536594645
_Toc536594646
_Toc536594647
_Toc536594648
_Toc536594649
_Toc536594650
_Toc536594651
_Toc536594652
_Toc536594653
_Toc536594654
_Ref531586771
_Toc536594655
_Toc536594656
_Toc536594657
_Toc536594658
_Toc536594659
_Toc536594660
_Toc536594661
_Ref536519039
_Ref536519405
_Toc536594662
_Toc536594663
_Toc536594664
_Toc536594665
_Toc536594666
_Toc536594667
_Toc536594668
_Toc536594669
_Toc536594670
_Toc536594671
_Toc536594672 Operation
_Toc536594673
_Toc536594674
_Toc536594675
_Toc513532498
_Toc536594676
_Ref536259530
_Ref536333881
_Toc536594677
_Toc536594678
_Toc536594679
_Toc536594680
_Toc536594681
_Toc536594682
_Toc536594683
_Toc536594684
_Toc536594685
_Toc536594686
_Toc536594687
_Ref536267832
_Toc536594688
_Ref536370713
_Toc536594689
_Toc536594690
_Toc536594691
_Toc536594692
_Ref536370734
_Toc536594693
_Toc536594694
_Toc536594695
_Toc536594696
_Toc536594697
_Ref536514856
_Toc536594698
_Ref536515790
_Ref536515837
_Toc536594699
_Hlt518979689"!!!!!!!%2225@GCGCCCLDLDLDLDLDDDDGIOQTi|\}4;MVRǗSL|
Է-H,,ESM!) ../8KSfVfVudududnfh

@ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHiIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjG!!!!!!!&2225@CCCHDDDDDDDDEGIOQ%Ti(|f}ȯG;MVŗfl  +ˬˬˬ3OrFDm :HI..0/9K2SVVddddepfh

@ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHiIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjG!!!!!!!&2225@CCCHDDDDDDDDEGIOQ%Ti(|f}ȯG;MVŗfl  +ˬˬˬ3OrFDm :HI..0/9K2SVVddddepfh
?&e &e+/069>?G;<dm9<!!*!Q!Z!w!!Y%\%%%&&&&&&&&4'='''''7(:(((((3)6)))****++++++q,v,=-C-E-K-P-U-:.D.F.O.g.o...../ /B/I////000\1t111110232K2R2d225	5m6|6666666666666677"7(757=7F7O7]7g7z777777777777
88$8,8>8F8Y8a8q8y8888888888888999$929<9O9x99 :,:2:E:N:[:e:x::::::::::::;;;;&;,;7;=;L;Q;];b;q;t;;;;;;;;<<#<2<7<H<<<<<<<<<===)=a=n====>>!>4>=>M>Y>>>2?9????@DEEE=EDEEEEEEEGGIIIIIIgJrJJJJJLLMMMNkOOOOOOOOOOOOOOOOPPQQQQQQRRRRMSOS]SeSSSSSTTT%T1T>TVWZZR\^\bbhhiiiiiijjoooottu&uwwxx
yyzz{*{S{a{{{{{|(|)|8|\}f}y
?&e &e+/069>?G;<dm9<!!*!Q!Z!w!!Y%\%%%&&&&&&&&4'='''''7(:(((((3)6)))****++++++q,v,=-C-E-K-P-U-:.D.F.O.g.o...../ /B/I////000\1t111110232K2R2d225	5m6|6666666666666677"7(757=7F7O7]7g7z777777777777
88$8,8>8F8Y8a8q8y8888888888888999$929<9O9x99 :,:2:E:N:[:e:x::::::::::::;;;;&;,;7;=;L;Q;];b;q;t;;;;;;;;<<#<2<7<H<<<<<<<<<===)=a=n====>>!>4>=>M>Y>>>2?9????@DEEE=EDEEEEEEEGGIIIIIIgJrJJJJJLLMMMNkOOOOOOOOOOOOOOOOPPQQQQQQRRRRMSOS]SeSSSSSTTT%T1T>TVWZZR\^\bbhhiiiiiijjoooottu&uwwxx
yyzz{*{S{a{{{{{|(|)|8|\}f}y
‡*8!15Wdvzqu^bݐђՒȓ̓Yclz(,/@DUžȞמ5CRVYjn*7Ȧ9GosvKOPTǫ
ȯ=AKOrwcgұ۱'+ó`d˵59>Buy37\`>B=Oֽܽ QU 4GAIWavz",0izPbwo CPSWdjm~/A=Rw*;=UZo,9L`ex.?Yb$ EIlpG K ""s%%%%''O'`'^)p)))**+++++,,",/,>,..0033+3<33344	44+5/5m5x55555566667I7R7788*8x8|8[9e9;;(<,<6<:<]<b<l<s<<<<<J=N=v=z=====j>o>>>>>??????????A*AIAMAtAxAAA B$B5B@BBB C$CiC|CCCZE^E|EEEEFFAFEFFFGGGGHH_HcHHHIIIIIIJ JKKKKKKYL]LLLLLMMMNN!NeNiN[O_OiPrPCQSQXQmQQQRRRRSSSS1U:U}VVV]W^WaWcWhWiWpWqWrWsWyWzWWWWWWWWWWWWWWWWWWWzzzzzzzzzz{{       {
‡*8!15Wdvzqu^bݐђՒȓ̓Yclz(,/@DUžȞמ5CRVYjn*7Ȧ9GosvKOPTǫ
ȯ=AKOrwcgұ۱'+ó`d˵59>Buy37\`>B=Oֽܽ QU 4GAIWavz",0izPbwo CPSWdjm~/A=Rw*;=UZo,9L`ex.?Yb$ EIlpG K ""s%%%%''O'`'^)p)))**+++++,,",/,>,..0033+3<33344	44+5/5m5x55555566667I7R7788*8x8|8[9e9;;(<,<6<:<]<b<l<s<<<<<J=N=v=z=====j>o>>>>>??????????A*AIAMAtAxAAA B$B5B@BBB C$CiC|CCCZE^E|EEEEFFAFEFFFGGGGHH_HcHHHIIIIIIJ JKKKKKKYL]LLLLLMMMNN!NeNiN[O_OiPrPCQSQXQmQQQRRRRSSSS1U:U}VVV]W^WaWcWhWiWpWqWrWsWyWzWWWWWWWWWWWWWWWWWWWzzzzzzzzzz{{       {
{{{{{{!{%{&{'{({ƃǃփ׃ڃۃ&'*+12;<@BFGٌڌ݌ߌ     TUXZ]^abhixy|}Ǒȑˑ͑БёԑՑۑܑ
{{{{{{!{%{&{'{({ƃǃփ׃ڃۃ&'*+12;<@BFGٌڌ݌ߌ     TUXZ]^abhixy|}Ǒȑˑ͑БёԑՑۑܑ
Ylm&1245>?GKLMTgh`UzUUUUUUUUUUVVVVV$V&V)V*V4[N[Q[R[Y[Z[h[i[s[v[|[}[]]]]]]]]^^^^````````````4addddddee.f/f2f3fKfkfmfpfffffffAgagdggghggggggggggggggggggggggggggggggggggghhhhhhh`:Jj^~-McHh2|Ee2xEe2x;[BBBBBBNCaCbCCCCCCSDfDgDDHH|Y}>WWz{@5Ylm
GTgh>U`UaUUUUU#V[4[5[s[]]]^i````ee#f#f$f$fKfkfmfpfffffffffAgagdggghgghhhh`:Jj^~-McHh2|Ee2xEe2x;[BBBBBBNCaCbCCCCCCSDfDgDDHH|Y}>WWz{@5Ylm
GTgh>U`UaUUUUU#V[4[5[s[]]]^i````ee#f#f$f$fKfkfpfffffAgaggghgghhTadej#A:\pci_design_document_25_1_11h.docTadej#E:\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadejmC:\Documents and Settings\tadejm\Application Data\Microsoft\Word\AutoRecovery save of pci_design_document.asdTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.doc|4c}db~jafC`۬YcPX|n>Wj>V]$_.jXUDدyvgc     /zt\x('Ш]l4_%ZH{iy$hL
Ylm&1245>?GKLMTgh`UzUUUUUUUUUUVVVVV$V&V)V*V4[N[Q[R[Y[Z[h[i[s[v[|[}[]]]]]]]]^^^^````````````4addddddee.f/f2f3fKfkfmfpfffffffAgagdggghggggggggggggggggggggggggggggggggggghhhhhhh`:Jj^~-McHh2|Ee2xEe2x;[BBBBBBNCaCbCCCCCCSDfDgDDHH|Y}>WWz{@5Ylm
GTgh>U`UaUUUUU#V[4[5[s[]]]^i````ee#f#f$f$fKfkfmfpfffffffffAgagdggghgghhhh`:Jj^~-McHh2|Ee2xEe2x;[BBBBBBNCaCbCCCCCCSDfDgDDHH|Y}>WWz{@5Ylm
GTgh>U`UaUUUUU#V[4[5[s[]]]^i````ee#f#f$f$fKfkfpfffffAgaggghgghhTadej#A:\pci_design_document_25_1_11h.docTadej#E:\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.docTadejmC:\Documents and Settings\tadejm\Application Data\Microsoft\Word\AutoRecovery save of pci_design_document.asdTadej8C:\Flextronics\Projects\pci\docs\pci_design_document.doc|4c}db~jafC`۬YcPX|n>Wj>V]$_.jXUDدyvgc     /zt\x('Ш]l4_%ZH{iy$hL
(aC        kY     pOz?t^K      5tlvxqe/
I^pH6=Z&ztRsڄp].K5s	x7c;r\Mv::lBf6`>7QRdZ[t04;|Xtʡ4%     _ʕzs@Z:OfUjtkyJe sfhc#T"^.h9"yV"#t6aa$tiq%R1%t>%tM&Rf37(3X*p>9*ڭG*	T+	3K+&-"K+ҙ)-J48CK/lBf6;/       <f0	gGv1lBf6z1p>rw3mlRdJ3$
(aC        kY     pOz?t^K      5tlvxqe/
I^pH6=Z&ztRsڄp].K5s	x7c;r\Mv::lBf6`>7QRdZ[t04;|Xtʡ4%     _ʕzs@Z:OfUjtkyJe sfhc#T"^.h9"yV"#t6aa$tiq%R1%t>%tM&Rf37(3X*p>9*ڭG*	T+	3K+&-"K+ҙ)-J48CK/lBf6;/       <f0	gGv1lBf6z1p>rw3mlRdJ3$
N'l4V*,l5\CFH!6О088*ZN?8Լn:tU;Ds l<ڄpg?=^!nN=lBTu>t>>>@:MAB  /ojC     fC̚H"Ffʧ       ]F       BGjJxV1HШ{eH,՞|H&at%@!uJtxZKfTe^KlBf6WkM,]wM#
=M
N'l4V*,l5\CFH!6О088*ZN?8Լn:tU;Ds l<ڄpg?=^!nN=lBTu>t>>>@:MAB  /ojC     fC̚H"Ffʧ       ]F       BGjJxV1HШ{eH,՞|H&at%@!uJtxZKfTe^KlBf6WkM,]wM#
=M
Mv<|OVig7	Ptc&EP|mXx_GQK&]QlBf6QtS@~$Tc.rU`"8Ux>W?WtPfXB    Kv.Yp@XZ~c[܉pzF[@~@x\lBf6]p>'],AuZ5^V}^$FRV^B2?_~[a@Zab3b((`c=Ab&d@ZeKdړ[^d	u9e@3	f@~FvmR@@%njT\Gnt/;o     LpM.Y%qdrtg"r6'6sֱ2(&tҠgv<45]vRx$)Cwyxt:y9^z	zt»H$d{\;v{@~E{    yT|v|,(|x[f3}t)`f~     \     Qc     ^`.^`.88^8`.^`.^`OJQJo(^`OJQJo(88^8`OJQJo(^`OJQJo(hh^h`.hh^h`OJQJo(^`o(`^``o(.`p^``o(..`@^``o(...^`o(^`o(^`o(^`o(^`o(*h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
Mv<|OVig7	Ptc&EP|mXx_GQK&]QlBf6QtS@~$Tc.rU`"8Ux>W?WtPfXB    Kv.Yp@XZ~c[܉pzF[@~@x\lBf6]p>'],AuZ5^V}^$FRV^B2?_~[a@Zab3b((`c=Ab&d@ZeKdړ[^d	u9e@3	f@~FvmR@@%njT\Gnt/;o     LpM.Y%qdrtg"r6'6sֱ2(&tҠgv<45]vRx$)Cwyxt:y9^z	zt»H$d{\;v{@~E{    yT|v|,(|x[f3}t)`f~     \     Qc     ^`.^`.88^8`.^`.^`OJQJo(^`OJQJo(88^8`OJQJo(^`OJQJo(hh^h`.hh^h`OJQJo(^`o(`^``o(.`p^``o(..`@^``o(...^`o(^`o(^`o(^`o(^`o(*h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(.^`.pLp^p`L.@@^@`.^`.L^`L.^`.^`.PLP^P`L.h^`OJQJo(h^`OJ  QJ     o(ohpp^p`OJ
o(^`o(.^`.pLp^p`L.@@^@`.^`.L^`L.^`.^`.PLP^P`L.h^`OJQJo(h^`OJ  QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o( ^ `o(`^``o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(hh^h`B*CJOJQJo(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
o( ^ `o(`^``o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(hh^h`B*CJOJQJo(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(hh^h`OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(hh^h`OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`56CJ`OJQJo(Appendixh^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(h^`56CJ`OJQJo(Appendixh^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo( 0^`0o(-h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo( 0^`0o(-h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(hh^h`OJQJo(" ^`OJ    QJ     o(opp^p`OJ
o(hh^h`OJQJo(hh^h`OJQJo(" ^`OJ    QJ     o(opp^p`OJ
QJ
QJ
o(@@^@`OJQJo(^`OJ       QJ     o(o^`OJ
o(@@^@`OJQJo(^`OJ       QJ     o(o^`OJ
QJ
QJ
o(^`OJQJo(^`OJ       QJ     o(oPP^P`OJ
o(^`OJQJo(^`OJ       QJ     o(oPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`o(.P^`Po(..^`o(...x^`xo(....   ^`o(
o(hh^h`o(.P^`Po(..^`o(...x^`xo(....   ^`o(
..... 
..... 
X@^
X@^
`Xo(......     
^`o(.......    
8x^`8o(........        
`H^``o(.........h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.h^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
`Xo(......     
^`o(.......    
8x^`8o(........        
`H^``o(.........h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.h^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(T^T`o(.p^`o(..^`o(^`o(^`o(^`o(^`o(^`o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
o(^`o(T^T`o(.p^`o(..^`o(^`o(^`o(^`o(^`o(^`o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(808^8`0OJPJQJ^Jo(-^`OJ       QJ     o(opp^p`OJ
o(808^8`0OJPJQJ^Jo(-^`OJ       QJ     o(opp^p`OJ
QJ
QJ
o(@@^@`OJQJo(^`OJ       QJ     o(o^`OJ
o(@@^@`OJQJo(^`OJ       QJ     o(o^`OJ
QJ
QJ
o(^`OJQJo(^`OJ       QJ     o(oPP^P`OJ
o(^`OJQJo(^`OJ       QJ     o(oPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.P      ^`Po(..0^0`o(...(x   ^(`xo(....        
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.P      ^`Po(..0^0`o(...(x   ^(`xo(....        
^
^
`o(
`o(
..... X^`Xo(......        
^`o(.......    
8^`8o(........        
H`^H``o(.........h^`B*OJQJo(phh^`OJ    QJ     o(ohpp^p`OJ
..... X^`Xo(......        
^`o(.......    
8^`8o(........        
H`^H``o(.........h^`B*OJQJo(phh^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(hh^h`B*CJOJQJo(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(hh^h`B*OJQJo(hh^h`B*CJOJQJo(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*CJOJQJo(hh^h`B*OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
o(hh^h`B*CJOJQJo(hh^h`B*OJQJo(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hpp^p`.h@@^@`.hL^`L.h^`.h^`.hL^`L.hPP^P`.h  ^ `.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(hpp^p`.h@@^@`.hL^`L.h^`.h^`.hL^`L.hPP^P`.h  ^ `.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`.hh^h`OJQJo(^`o(.^`.pLp^p`L.@@^@`.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
o(hh^h`.hh^h`OJQJo(^`o(.^`.pLp^p`L.@@^@`.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`OJQJo(hh^h`OJQJo(h^`OJQJo(h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`OJQJo(hh^h`OJQJo(h^`OJQJo(h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(T^T`o(.p^`o(..^`o(^`o(^`o(^`o(^`o(^`o(hh^h`.P^`P..^`...x ^`x....   ^`
o(^`o(T^T`o(.p^`o(..^`o(^`o(^`o(^`o(^`o(^`o(hh^h`.P^`P..^`...x ^`x....   ^`
..... 
..... 
X^
X^
`X......        
^`.......       
8^`8........   
`^``.........h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
`X......        
^`.......       
8^`8........   
`^``.........h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L. 0^`0o(-h^`B*OJQJo(phh^`OJ   QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L. 0^`0o(-h^`B*OJQJo(phh^`OJ   QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o( 0^`0o(-hh^h`B*OJQJo(hh^h`h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
o( 0^`0o(-hh^h`B*OJQJo(hh^h`h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(.HP^H`Po(..        ^`o(...x^`xo(....   p^`o(
o(^`o(.HP^H`Po(..        ^`o(...x^`xo(....   p^`o(
..... X ^`Xo(......        
    ^ `o(....... 
8x^`8o(........        
`^``o(.........hh^h`.hh^h`OJQJo(h^h`OJQJo(P8^`Po(^`o(.80  ^8`0o(..^`o(...       XX^X`o(    ....   ^`o(.....  
xx^x`o(
......      
`^``o(.......  
^`o(........hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
..... X ^`Xo(......        
    ^ `o(....... 
8x^`8o(........        
`^``o(.........hh^h`.hh^h`OJQJo(h^h`OJQJo(P8^`Po(^`o(.80  ^8`0o(..^`o(...       XX^X`o(    ....   ^`o(.....  
xx^x`o(
......      
`^``o(.......  
^`o(........hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.^`CJOJQJo(^`CJOJ     QJ     o(opp^p`CJOJ
o(h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.^`CJOJQJo(^`CJOJ     QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`56CJ`OJQJo(Indexh^`OJQJo(h^`OJ  QJ     o(ohpp^p`OJ
o(h^`56CJ`OJQJo(Indexh^`OJQJo(h^`OJ  QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hhh^h`OJQJo(h88^8`OJ       QJ     o(oh^`OJ
o(hhh^h`OJQJo(h88^8`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h       ^    `OJQJo(h^`OJ       QJ     o(ohxx^x`OJ
o(h       ^    `OJQJo(h^`OJ       QJ     o(ohxx^x`OJ
QJ
QJ
o(hHH^H`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(hHH^H`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`B*OJQJo(hh^h`.^`o(h^h`o(.HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`B*OJQJo(hh^h`.^`o(h^h`o(.HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo( ^ `o(`^``o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hL^`L.h||^|`.hLL^L`.hL^`L.h^`.h^`.hL^`L.hh^h`B*OJQJo( ^ `o(`^``o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(@@^@`o(h^`OJQJo(h^`OJ        QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`CJOJQJo(^`CJOJ  QJ     o(opp^p`CJOJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`CJOJQJo(^`CJOJ  QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(hh^h`B*OJQJo(hh^h`OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
o(hh^h`B*OJQJo(hh^h`OJQJo(h^`OJQJo(h^`OJ      QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
o(^`CJOJQJo(^`CJOJ       QJ     o(opp^p`CJOJ
QJ
QJ
o(@@^@`CJOJ
o(@@^@`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(^`CJOJ
o(^`CJOJ
QJ
QJ
o(PP^P`CJOJ
o(PP^P`CJOJ
QJ
QJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJQJo(h@@^@`OJQJo(h^`OJ    QJ     o(oh^`OJ
o(hh^h`B*OJQJo(h^`OJQJo(h^`OJ QJ     o(ohpp^p`OJQJo(h@@^@`OJQJo(h^`OJ    QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(h^h`o(.HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(h^`56CJ`OJQJo(Appendixh^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
o(^`o(h^h`o(.HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(HH^H`o(h^`56CJ`OJQJo(Appendixh^`OJQJo(h^`OJ   QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(" h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
o(hh^h`OJQJo(h^`OJQJo(h^`OJ    QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
o(h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(h^`OJ     QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.hh^h`OJQJo(" h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.hh^h`OJQJo(" h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohpp^p`OJ
QJ
QJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
o(h@@^@`OJQJo(h^`OJ       QJ     o(oh^`OJ
QJ
QJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
o(h^`OJQJo(h^`OJ       QJ     o(ohPP^P`OJ
QJ
QJ
o(^`o(`^``o(.`p^``o(..`@^``o(...^`o(^`o(^`o(^`o(
o(^`o(`^``o(.`p^``o(..`@^``o(...^`o(^`o(^`o(^`o(
^`o(hh^h`OJQJo(hh^h`OJQJo(hh^h`OJQJo(>,l5c&EP9^zE{Ae/
wM[f3}dJ30;/gcnN=<f0'V1H]3X*<Rsz1xyT|>%|Hg7      P9*~}|@+\{eH"8U
=Miq%d{083be @%nKv.YWkMFRV^.Y%qt:yc.rU']_GQvFvm@Lpc#T"l9"2(&t].K-"K+e^KU;Orw3`>72?_]l4$Tdc;BGz[aF[u9eV"]FaC     x7iy3K+|XuZ5^CwPfXc[1%\MveKdM6s:O"F7((|aFH!6g"rtN?8XZ_kY M&(`cg?=@+ @^`OJQJo(																																																				
^`o(hh^h`OJQJo(hh^h`OJQJo(hh^h`OJQJo(>,l5c&EP9^zE{Ae/
wM[f3}dJ30;/gcnN=<f0'V1H]3X*<Rsz1xyT|>%|Hg7      P9*~}|@+\{eH"8U
=Miq%d{083be @%nKv.YWkMFRV^.Y%qt:yc.rU']_GQvFvm@Lpc#T"l9"2(&t].K-"K+e^KU;Orw3`>72?_]l4$Tdc;BGz[aF[u9eV"]FaC     x7iy3K+|XuZ5^CwPfXc[1%\MveKdM6s:O"F7((|aFH!6g"rtN?8XZ_kY M&(`cg?=@+ @^`OJQJo(																																																				
p|
Specifications Template#Template for Core's SpecificationssTadejteadeadeSpecifications Template.dotTadejic8deMicrosoft Word 9.0l@B@V@?@&UX#՜.+,D՜.+,l(
px
Flextronics Semiconductorr7m
p|
Specifications Template#Template for Core's SpecificationssTadejteadeadeSpecifications Template.dotTadejic8deMicrosoft Word 9.0l@B@V@?@&UX#՜.+,D՜.+,l(
px
Flextronics Semiconductorr7m
        Specifications TemplateTitle@ 8@_PID_HLINKSA<_Toc536594699<_Toc536594698<_Toc536594697<_Toc536594696<_Toc536594695<_Toc536594694<_Toc536594693<_Toc536594692<_Toc536594691<_Toc536594690<_Toc536594689<y_Toc536594688<s_Toc536594687<m_Toc536594686<g_Toc536594685<a_Toc536594684<[_Toc536594683<U_Toc536594682<O_Toc536594681<I_Toc536594680<C_Toc536594679<=_Toc536594678<7_Toc536594677<1_Toc536594676<+_Toc536594675<%_Toc536594674<_Toc536594673<_Toc536594672<_Toc536594671<
_Toc536594670<_Toc536594669<_Toc536594668<_Toc536594667<_Toc536594666<_Toc536594665<_Toc536594664<_Toc536594663<_Toc536594662<_Toc536594661<_Toc536594660<_Toc536594659<_Toc536594658<_Toc536594657<_Toc536594656<_Toc536594655<_Toc536594654<_Toc536594653<_Toc536594652<_Toc536594651<_Toc536594650<_Toc536594649<_Toc536594648<_Toc536594647<}_Toc536594646<w_Toc536594645<q_Toc536594644<k_Toc536594643<e_Toc536594642<__Toc536594641<Y_Toc536594640<S_Toc536594639<M_Toc536594638<G_Toc536594637<A_Toc536594636<;_Toc536594635<5_Toc536594634</_Toc536594633<)_Toc536594632<#_Toc536594631<_Toc536594630<_Toc536594629<_Toc536594628<_Toc536594627<_Toc536594626Khttp://www.opencores.org/\&9wishbone_compatible.gif"y#j
        Specifications TemplateTitle@ 8@_PID_HLINKSA<_Toc536594699<_Toc536594698<_Toc536594697<_Toc536594696<_Toc536594695<_Toc536594694<_Toc536594693<_Toc536594692<_Toc536594691<_Toc536594690<_Toc536594689<y_Toc536594688<s_Toc536594687<m_Toc536594686<g_Toc536594685<a_Toc536594684<[_Toc536594683<U_Toc536594682<O_Toc536594681<I_Toc536594680<C_Toc536594679<=_Toc536594678<7_Toc536594677<1_Toc536594676<+_Toc536594675<%_Toc536594674<_Toc536594673<_Toc536594672<_Toc536594671<
_Toc536594670<_Toc536594669<_Toc536594668<_Toc536594667<_Toc536594666<_Toc536594665<_Toc536594664<_Toc536594663<_Toc536594662<_Toc536594661<_Toc536594660<_Toc536594659<_Toc536594658<_Toc536594657<_Toc536594656<_Toc536594655<_Toc536594654<_Toc536594653<_Toc536594652<_Toc536594651<_Toc536594650<_Toc536594649<_Toc536594648<_Toc536594647<}_Toc536594646<w_Toc536594645<q_Toc536594644<k_Toc536594643<e_Toc536594642<__Toc536594641<Y_Toc536594640<S_Toc536594639<M_Toc536594638<G_Toc536594637<A_Toc536594636<;_Toc536594635<5_Toc536594634</_Toc536594633<)_Toc536594632<#_Toc536594631<_Toc536594630<_Toc536594629<_Toc536594628<_Toc536594627<_Toc536594626Khttp://www.opencores.org/\&9wishbone_compatible.gif"y#j
(http://www.opencores.org/logos/jng3.gif"yk     (http://www.opencores.org/logos/jng3.gif
(http://www.opencores.org/logos/jng3.gif"yk     (http://www.opencores.org/logos/jng3.gif

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry FpData

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry FpData
1TableWordDocumentSummaryInformation(DocumentSummaryInformation8CompObjjObjectPoolpp
1TableWordDocumentSummaryInformation(DocumentSummaryInformation8CompObjjObjectPoolpp
 FMicrosoft Word Document
 FMicrosoft Word Document
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.