Commit 94c99edd authored by Mike Lyons's avatar Mike Lyons

SPI adapter working, but occasionally buggy, in xps/xsdk

parent 928419df
Net Reset LOC=N4 | IOSTANDARD=LVCMOS18;
Net SysClk LOC=L15 | IOSTANDARD=LVCMOS33;
# SPI Port
Net spi_miso LOC=U16 | IOSTANDARD=LVCMOS33;
Net spi_mosi LOC=U15 | IOSTANDARD=LVCMOS33;
Net spi_clk LOC=R10 | IOSTANDARD=LVCMOS33;
Net spi_ss LOC=M11 | IOSTANDARD=LVCMOS33;
# LEDs
Net leds<0> LOC=U18 | IOSTANDARD=LVCMOS33;
Net leds<1> LOC=M14 | IOSTANDARD=LVCMOS33;
Net leds<2> LOC=N14 | IOSTANDARD=LVCMOS33;
Net leds<3> LOC=L14 | IOSTANDARD=LVCMOS33;
Net leds<4> LOC=M13 | IOSTANDARD=LVCMOS33;
Net leds<5> LOC=D4 | IOSTANDARD=LVCMOS33;
Net leds<6> LOC=P16 | IOSTANDARD=LVCMOS33;
Net leds<7> LOC=N12 | IOSTANDARD=LVCMOS33;
<EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Wed Feb 29 10:59:16 2012"> <EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Tue Mar 06 16:45:32 2012">
<SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/> <SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/>
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/> <PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/>
<PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/> <PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/>
<PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/> <PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/>
<PORT CLKFREQUENCY="50000000" DIR="I" MHS_INDEX="5" NAME="spiifc_0_SPI_CLK_pin" SIGIS="CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT DIR="O" MHS_INDEX="6" NAME="spiifc_0_SPI_MISO_pin" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT DIR="I" MHS_INDEX="7" NAME="spiifc_0_SPI_MOSI_pin" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT DIR="I" MHS_INDEX="8" NAME="spiifc_0_SPI_SS_pin" SIGNAME="spiifc_0_SPI_SS"/>
</EXTERNALPORTS> </EXTERNALPORTS>
<MODULES> <MODULES>
...@@ -4592,49 +4596,53 @@ ...@@ -4592,49 +4596,53 @@
<PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/> <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/>
</PARAMETERS> </PARAMETERS>
<PORTS> <PORTS>
<PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPI_CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="1" MPD_INDEX="1" NAME="SPI_MOSI" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="2" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/> <PORT DIR="O" IS_INSTANTIATED="TRUE" MHS_INDEX="2" MPD_INDEX="2" NAME="SPI_MISO" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="3" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="3" MPD_INDEX="3" NAME="SPI_SS" SIGNAME="spiifc_0_SPI_SS"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/> <PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="4" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="5" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="6" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="7" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="8" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="8" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="9" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="10" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="11" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="12" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="12" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="13" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="13" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="14" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="14" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="15" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="15" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="16" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="17" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="17" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="18" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="19" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="20" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="21" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="22" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="22" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="23" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="23" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="24" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="24" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="25" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="25" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="26" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="28" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="29" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="30" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="31" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="32" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="33" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="33" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="34" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="34" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="35" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="36" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="37" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="38" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="38" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="39" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="39" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="40" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="40" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="41" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="41" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/>
<PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="42" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="43" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="44" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="45" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT DIR="O" MPD_INDEX="46" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
</PORTS> </PORTS>
<BUSINTERFACES> <BUSINTERFACES>
<BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE"> <BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE">
......
...@@ -21,38 +21,38 @@ ADDRESS_MAP microblaze_0 MICROBLAZE 100 ...@@ -21,38 +21,38 @@ ADDRESS_MAP microblaze_0 MICROBLAZE 100
ADDRESS_SPACE lmb_bram_combined RAMB16 [0x00000000:0x0000FFFF] ADDRESS_SPACE lmb_bram_combined RAMB16 [0x00000000:0x0000FFFF]
BUS_BLOCK BUS_BLOCK
lmb_bram/lmb_bram/ramb16bwer_0 [31:31] INPUT = lmb_bram_combined_0.mem PLACED = X2Y46; lmb_bram/lmb_bram/ramb16bwer_0 [31:31] INPUT = lmb_bram_combined_0.mem PLACED = X2Y44;
lmb_bram/lmb_bram/ramb16bwer_1 [30:30] INPUT = lmb_bram_combined_1.mem PLACED = X2Y44; lmb_bram/lmb_bram/ramb16bwer_1 [30:30] INPUT = lmb_bram_combined_1.mem PLACED = X3Y42;
lmb_bram/lmb_bram/ramb16bwer_2 [29:29] INPUT = lmb_bram_combined_2.mem PLACED = X2Y42; lmb_bram/lmb_bram/ramb16bwer_2 [29:29] INPUT = lmb_bram_combined_2.mem PLACED = X2Y48;
lmb_bram/lmb_bram/ramb16bwer_3 [28:28] INPUT = lmb_bram_combined_3.mem PLACED = X3Y42; lmb_bram/lmb_bram/ramb16bwer_3 [28:28] INPUT = lmb_bram_combined_3.mem PLACED = X2Y40;
lmb_bram/lmb_bram/ramb16bwer_4 [27:27] INPUT = lmb_bram_combined_4.mem PLACED = X2Y40; lmb_bram/lmb_bram/ramb16bwer_4 [27:27] INPUT = lmb_bram_combined_4.mem PLACED = X3Y40;
lmb_bram/lmb_bram/ramb16bwer_5 [26:26] INPUT = lmb_bram_combined_5.mem PLACED = X2Y38; lmb_bram/lmb_bram/ramb16bwer_5 [26:26] INPUT = lmb_bram_combined_5.mem PLACED = X2Y46;
lmb_bram/lmb_bram/ramb16bwer_6 [25:25] INPUT = lmb_bram_combined_6.mem PLACED = X2Y32; lmb_bram/lmb_bram/ramb16bwer_6 [25:25] INPUT = lmb_bram_combined_6.mem PLACED = X2Y42;
lmb_bram/lmb_bram/ramb16bwer_7 [24:24] INPUT = lmb_bram_combined_7.mem PLACED = X3Y40; lmb_bram/lmb_bram/ramb16bwer_7 [24:24] INPUT = lmb_bram_combined_7.mem PLACED = X3Y38;
lmb_bram/lmb_bram/ramb16bwer_8 [23:23] INPUT = lmb_bram_combined_8.mem PLACED = X3Y38; lmb_bram/lmb_bram/ramb16bwer_8 [23:23] INPUT = lmb_bram_combined_8.mem PLACED = X1Y38;
lmb_bram/lmb_bram/ramb16bwer_9 [22:22] INPUT = lmb_bram_combined_9.mem PLACED = X3Y36; lmb_bram/lmb_bram/ramb16bwer_9 [22:22] INPUT = lmb_bram_combined_9.mem PLACED = X2Y38;
lmb_bram/lmb_bram/ramb16bwer_10 [21:21] INPUT = lmb_bram_combined_10.mem PLACED = X2Y36; lmb_bram/lmb_bram/ramb16bwer_10 [21:21] INPUT = lmb_bram_combined_10.mem PLACED = X3Y36;
lmb_bram/lmb_bram/ramb16bwer_11 [20:20] INPUT = lmb_bram_combined_11.mem PLACED = X2Y34; lmb_bram/lmb_bram/ramb16bwer_11 [20:20] INPUT = lmb_bram_combined_11.mem PLACED = X3Y34;
lmb_bram/lmb_bram/ramb16bwer_12 [19:19] INPUT = lmb_bram_combined_12.mem PLACED = X1Y30; lmb_bram/lmb_bram/ramb16bwer_12 [19:19] INPUT = lmb_bram_combined_12.mem PLACED = X2Y26;
lmb_bram/lmb_bram/ramb16bwer_13 [18:18] INPUT = lmb_bram_combined_13.mem PLACED = X3Y24; lmb_bram/lmb_bram/ramb16bwer_13 [18:18] INPUT = lmb_bram_combined_13.mem PLACED = X3Y28;
lmb_bram/lmb_bram/ramb16bwer_14 [17:17] INPUT = lmb_bram_combined_14.mem PLACED = X2Y26; lmb_bram/lmb_bram/ramb16bwer_14 [17:17] INPUT = lmb_bram_combined_14.mem PLACED = X2Y30;
lmb_bram/lmb_bram/ramb16bwer_15 [16:16] INPUT = lmb_bram_combined_15.mem PLACED = X1Y26; lmb_bram/lmb_bram/ramb16bwer_15 [16:16] INPUT = lmb_bram_combined_15.mem PLACED = X2Y28;
lmb_bram/lmb_bram/ramb16bwer_16 [15:15] INPUT = lmb_bram_combined_16.mem PLACED = X3Y32; lmb_bram/lmb_bram/ramb16bwer_16 [15:15] INPUT = lmb_bram_combined_16.mem PLACED = X2Y32;
lmb_bram/lmb_bram/ramb16bwer_17 [14:14] INPUT = lmb_bram_combined_17.mem PLACED = X1Y32; lmb_bram/lmb_bram/ramb16bwer_17 [14:14] INPUT = lmb_bram_combined_17.mem PLACED = X0Y32;
lmb_bram/lmb_bram/ramb16bwer_18 [13:13] INPUT = lmb_bram_combined_18.mem PLACED = X1Y28; lmb_bram/lmb_bram/ramb16bwer_18 [13:13] INPUT = lmb_bram_combined_18.mem PLACED = X1Y32;
lmb_bram/lmb_bram/ramb16bwer_19 [12:12] INPUT = lmb_bram_combined_19.mem PLACED = X3Y34; lmb_bram/lmb_bram/ramb16bwer_19 [12:12] INPUT = lmb_bram_combined_19.mem PLACED = X1Y34;
lmb_bram/lmb_bram/ramb16bwer_20 [11:11] INPUT = lmb_bram_combined_20.mem PLACED = X2Y24; lmb_bram/lmb_bram/ramb16bwer_20 [11:11] INPUT = lmb_bram_combined_20.mem PLACED = X2Y22;
lmb_bram/lmb_bram/ramb16bwer_21 [10:10] INPUT = lmb_bram_combined_21.mem PLACED = X2Y18; lmb_bram/lmb_bram/ramb16bwer_21 [10:10] INPUT = lmb_bram_combined_21.mem PLACED = X2Y24;
lmb_bram/lmb_bram/ramb16bwer_22 [9:9] INPUT = lmb_bram_combined_22.mem PLACED = X2Y20; lmb_bram/lmb_bram/ramb16bwer_22 [9:9] INPUT = lmb_bram_combined_22.mem PLACED = X1Y28;
lmb_bram/lmb_bram/ramb16bwer_23 [8:8] INPUT = lmb_bram_combined_23.mem PLACED = X2Y22; lmb_bram/lmb_bram/ramb16bwer_23 [8:8] INPUT = lmb_bram_combined_23.mem PLACED = X3Y24;
lmb_bram/lmb_bram/ramb16bwer_24 [7:7] INPUT = lmb_bram_combined_24.mem PLACED = X3Y26; lmb_bram/lmb_bram/ramb16bwer_24 [7:7] INPUT = lmb_bram_combined_24.mem PLACED = X3Y32;
lmb_bram/lmb_bram/ramb16bwer_25 [6:6] INPUT = lmb_bram_combined_25.mem PLACED = X3Y30; lmb_bram/lmb_bram/ramb16bwer_25 [6:6] INPUT = lmb_bram_combined_25.mem PLACED = X1Y36;
lmb_bram/lmb_bram/ramb16bwer_26 [5:5] INPUT = lmb_bram_combined_26.mem PLACED = X2Y28; lmb_bram/lmb_bram/ramb16bwer_26 [5:5] INPUT = lmb_bram_combined_26.mem PLACED = X2Y36;
lmb_bram/lmb_bram/ramb16bwer_27 [4:4] INPUT = lmb_bram_combined_27.mem PLACED = X3Y28; lmb_bram/lmb_bram/ramb16bwer_27 [4:4] INPUT = lmb_bram_combined_27.mem PLACED = X2Y34;
lmb_bram/lmb_bram/ramb16bwer_28 [3:3] INPUT = lmb_bram_combined_28.mem PLACED = X3Y22; lmb_bram/lmb_bram/ramb16bwer_28 [3:3] INPUT = lmb_bram_combined_28.mem PLACED = X3Y30;
lmb_bram/lmb_bram/ramb16bwer_29 [2:2] INPUT = lmb_bram_combined_29.mem PLACED = X2Y30; lmb_bram/lmb_bram/ramb16bwer_29 [2:2] INPUT = lmb_bram_combined_29.mem PLACED = X3Y26;
lmb_bram/lmb_bram/ramb16bwer_30 [1:1] INPUT = lmb_bram_combined_30.mem PLACED = X2Y14; lmb_bram/lmb_bram/ramb16bwer_30 [1:1] INPUT = lmb_bram_combined_30.mem PLACED = X1Y26;
lmb_bram/lmb_bram/ramb16bwer_31 [0:0] INPUT = lmb_bram_combined_31.mem PLACED = X2Y16; lmb_bram/lmb_bram/ramb16bwer_31 [0:0] INPUT = lmb_bram_combined_31.mem PLACED = X1Y30;
END_BUS_BLOCK; END_BUS_BLOCK;
END_ADDRESS_SPACE; END_ADDRESS_SPACE;
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<option id="xilinx.gnu.mb.compiler.inferred.usepcmp.2025998320" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.2025998320" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.compiler.inferred.mul.759631855" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.compiler.inferred.mul.759631855" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.compiler.inferred.swplatform.includes.8831996" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath"> <option id="xilinx.gnu.compiler.inferred.swplatform.includes.8831996" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/include"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/include"/>
</option> </option>
<inputType id="xilinx.gnu.compiler.input.347712346" name="C source files" superClass="xilinx.gnu.compiler.input"/> <inputType id="xilinx.gnu.compiler.input.347712346" name="C source files" superClass="xilinx.gnu.compiler.input"/>
</tool> </tool>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1786658605" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1786658605" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.compiler.inferred.mul.1923590513" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.compiler.inferred.mul.1923590513" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.compiler.inferred.swplatform.includes.807993403" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath"> <option id="xilinx.gnu.compiler.inferred.swplatform.includes.807993403" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/include"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/include"/>
</option> </option>
<inputType id="xilinx.gnu.mb.cxx.compiler.input.648873885" name="C++ source files" superClass="xilinx.gnu.mb.cxx.compiler.input"/> <inputType id="xilinx.gnu.mb.cxx.compiler.input.648873885" name="C++ source files" superClass="xilinx.gnu.mb.cxx.compiler.input"/>
</tool> </tool>
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<option id="xilinx.gnu.mb.linker.inferred.usepcmp.1889097504" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.linker.inferred.usepcmp.1889097504" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.linker.inferred.mul.1038478631" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.linker.inferred.mul.1038478631" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.linker.inferred.swplatform.lpath.1046693538" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths"> <option id="xilinx.gnu.linker.inferred.swplatform.lpath.1046693538" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/lib"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/lib"/>
</option> </option>
<inputType id="xilinx.gnu.linker.input.59786092" superClass="xilinx.gnu.linker.input"> <inputType id="xilinx.gnu.linker.input.59786092" superClass="xilinx.gnu.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<option id="xilinx.gnu.mb.linker.inferred.usepcmp.683225781" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.linker.inferred.usepcmp.683225781" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.linker.inferred.mul.1665375810" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.linker.inferred.mul.1665375810" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.linker.inferred.swplatform.lpath.648441665" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths"> <option id="xilinx.gnu.linker.inferred.swplatform.lpath.648441665" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/lib"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/lib"/>
</option> </option>
<inputType id="xilinx.gnu.linker.input.308356398" superClass="xilinx.gnu.linker.input"> <inputType id="xilinx.gnu.linker.input.308356398" superClass="xilinx.gnu.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
...@@ -702,6 +702,9 @@ ...@@ -702,6 +702,9 @@
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration> </cconfiguration>
<cconfiguration id="xilinx.gnu.mb.exe.release.1874379234"> <cconfiguration id="xilinx.gnu.mb.exe.release.1874379234">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="xilinx.gnu.mb.exe.release.1874379234" moduleId="org.eclipse.cdt.core.settings" name="Release"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="xilinx.gnu.mb.exe.release.1874379234" moduleId="org.eclipse.cdt.core.settings" name="Release">
...@@ -732,7 +735,7 @@ ...@@ -732,7 +735,7 @@
<option id="xilinx.gnu.mb.compiler.inferred.usepcmp.2117022726" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.2117022726" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.compiler.inferred.mul.1935521183" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.compiler.inferred.mul.1935521183" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.compiler.inferred.swplatform.includes.866562977" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath"> <option id="xilinx.gnu.compiler.inferred.swplatform.includes.866562977" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/include"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/include"/>
</option> </option>
<inputType id="xilinx.gnu.compiler.input.794413244" name="C source files" superClass="xilinx.gnu.compiler.input"/> <inputType id="xilinx.gnu.compiler.input.794413244" name="C source files" superClass="xilinx.gnu.compiler.input"/>
</tool> </tool>
...@@ -744,7 +747,7 @@ ...@@ -744,7 +747,7 @@
<option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1558683552" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1558683552" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.compiler.inferred.mul.13660006" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.compiler.inferred.mul.13660006" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.compiler.inferred.swplatform.includes.1802910256" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath"> <option id="xilinx.gnu.compiler.inferred.swplatform.includes.1802910256" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/include"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/include"/>
</option> </option>
<inputType id="xilinx.gnu.mb.cxx.compiler.input.2035748458" name="C++ source files" superClass="xilinx.gnu.mb.cxx.compiler.input"/> <inputType id="xilinx.gnu.mb.cxx.compiler.input.2035748458" name="C++ source files" superClass="xilinx.gnu.mb.cxx.compiler.input"/>
</tool> </tool>
...@@ -755,7 +758,7 @@ ...@@ -755,7 +758,7 @@
<option id="xilinx.gnu.mb.linker.inferred.usepcmp.2060796612" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.linker.inferred.usepcmp.2060796612" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.linker.inferred.mul.1077867032" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.linker.inferred.mul.1077867032" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.linker.inferred.swplatform.lpath.1203525340" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths"> <option id="xilinx.gnu.linker.inferred.swplatform.lpath.1203525340" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/lib"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/lib"/>
</option> </option>
<inputType id="xilinx.gnu.linker.input.1104704384" superClass="xilinx.gnu.linker.input"> <inputType id="xilinx.gnu.linker.input.1104704384" superClass="xilinx.gnu.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
...@@ -769,7 +772,7 @@ ...@@ -769,7 +772,7 @@
<option id="xilinx.gnu.mb.linker.inferred.usepcmp.1468747866" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/> <option id="xilinx.gnu.mb.linker.inferred.usepcmp.1468747866" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>
<option id="xilinx.gnu.mb.linker.inferred.mul.1150761071" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/> <option id="xilinx.gnu.mb.linker.inferred.mul.1150761071" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>
<option id="xilinx.gnu.linker.inferred.swplatform.lpath.1133642997" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths"> <option id="xilinx.gnu.linker.inferred.swplatform.lpath.1133642997" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">
<listOptionValue builtIn="false" value="../../demobsp/microblaze_0/lib"/> <listOptionValue builtIn="false" value="../../standalone_bsp_0/microblaze_0/lib"/>
</option> </option>
<inputType id="xilinx.gnu.linker.input.300985381" superClass="xilinx.gnu.linker.input"> <inputType id="xilinx.gnu.linker.input.300985381" superClass="xilinx.gnu.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
...@@ -1402,6 +1405,9 @@ ...@@ -1402,6 +1405,9 @@
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration> </cconfiguration>
</storageModule> </storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> <storageModule moduleId="cdtBuildSystem" version="4.0.0">
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>demo</name> <name>demo</name>
<comment>demobsp - microblaze_0</comment> <comment></comment>
<projects> <projects>
<project>standalone_bsp_0</project>
<project>demobsp</project> <project>demobsp</project>
</projects> </projects>
<buildSpec> <buildSpec>
......
...@@ -50,7 +50,7 @@ all: demo.elf secondary-outputs ...@@ -50,7 +50,7 @@ all: demo.elf secondary-outputs
demo.elf: $(OBJS) $(USER_OBJS) demo.elf: $(OBJS) $(USER_OBJS)
@echo Building target: $@ @echo Building target: $@
@echo Invoking: MicroBlaze g++ linker @echo Invoking: MicroBlaze g++ linker
mb-g++ -L../../demobsp/microblaze_0/lib -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.a -mno-xl-soft-mul -o"demo.elf" $(OBJS) $(USER_OBJS) $(LIBS) mb-g++ -L../../standalone_bsp_0/microblaze_0/lib -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.a -mno-xl-soft-mul -o"demo.elf" $(OBJS) $(USER_OBJS) $(LIBS)
@echo Finished building target: $@ @echo Finished building target: $@
@echo ' ' @echo ' '
......
...@@ -17,7 +17,7 @@ CC_DEPS += \ ...@@ -17,7 +17,7 @@ CC_DEPS += \
src/%.o: ../src/%.cc src/%.o: ../src/%.cc
@echo Building file: $< @echo Building file: $<
@echo Invoking: MicroBlaze g++ compiler @echo Invoking: MicroBlaze g++ compiler
mb-g++ -Wall -O0 -g3 -c -fmessage-length=0 -I../../demobsp/microblaze_0/include -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.a -mno-xl-soft-mul -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" mb-g++ -Wall -O0 -g3 -c -fmessage-length=0 -I../../standalone_bsp_0/microblaze_0/include -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.a -mno-xl-soft-mul -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"
@echo Finished building: $< @echo Finished building: $<
@echo ' ' @echo ' '
......
...@@ -85,7 +85,7 @@ int DmaCopy(void * pSrc, void * pDest, size_t byteCount) ...@@ -85,7 +85,7 @@ int DmaCopy(void * pSrc, void * pDest, size_t byteCount)
int main() int main()
{ {
int status; int status, i;
// Initialize system // Initialize system
if (XST_SUCCESS != (status = InitDma())) { if (XST_SUCCESS != (status = InitDma())) {
...@@ -99,6 +99,42 @@ int main() ...@@ -99,6 +99,42 @@ int main()
// Test DMA // Test DMA
SpiifcDmaTest(); SpiifcDmaTest();
// Spiifc loopback: anything sent to spiifc is sent back
while (1) {
/*
for (i = 0; i < 1024; i++) {
pMisoBase[i] = pMosiBase[i];
}
*/
xil_printf(
"pMosiBase = [ 0x%08x 0x%08x 0x%08x ... ]\n"
"pMisoBase = [ 0x%08x 0x%08x 0x%08x ... ]\n"
"\n",
pMosiBase[0], pMosiBase[1], pMosiBase[2],
pMisoBase[0], pMisoBase[1], pMisoBase[2]);
DmaCopy(pMosiBase, pMisoBase, DMA_BUFFER_BYTE_SIZE);
//xil_printf("debug_out: 0x%08X\n", pSpiifcBase[0]);
/*
xil_printf("pMosiBase = [ 0x%02X 0x%02X 0x%02X 0x%02X ]\n",
pMosiBase[0] & 0xFF, (pMosiBase[0] >> 8) & 0xFF,
(pMosiBase[0] >> 16) & 0xFF, (pMosiBase[0] >> 24) & 0xFF);
xil_printf("pMisoBase = [ 0x%02X 0x%02X 0x%02X 0x%02X ]\n",
pMisoBase[0] & 0xFF, (pMisoBase[0] >> 8) & 0xFF,
(pMisoBase[0] >> 16) & 0xFF, (pMisoBase[0] >> 24) & 0xFF);
*/
}
/*
int i = 0;
for (i = 0; i < 40000000; i++) { ; }
for (i = 0; i < 1024; i++) {
xil_printf("pMOSI[i] = 0x%08X\n", pMosiBase[i]);
}
*/
} }
void SpiifcPioTest() void SpiifcPioTest()
...@@ -142,10 +178,14 @@ void SpiifcDmaTest() ...@@ -142,10 +178,14 @@ void SpiifcDmaTest()
// Pattern DMA memory buffer // Pattern DMA memory buffer
for(i = 0; i < DMA_BUFFER_BYTE_SIZE/4; i++) { for(i = 0; i < DMA_BUFFER_BYTE_SIZE/4; i++) {
pMosiBase[i] = ((i*4) & 0xFF) << 24 |
((i*4+1) & 0xFF) << 16 | pMosiBase[i] = ((i*4+3) & 0xFF) << 24 |
((i*4+2) & 0xFF) << 8 | ((i*4+2) & 0xFF) << 16 |
((i*4+3) & 0xFF); ((i*4+1) & 0xFF) << 8 |
((i*4+0) & 0xFF);
//pMosiBase[i] = 0xAABBCCDD;
//xil_printf("0x%08X\n", pMosiBase[i]);
} }
// DMA buffer to Spiifc.MISO buffer // DMA buffer to Spiifc.MISO buffer
...@@ -158,14 +198,15 @@ void SpiifcDmaTest() ...@@ -158,14 +198,15 @@ void SpiifcDmaTest()
u32 expectedDmaWord = 0; u32 expectedDmaWord = 0;
int failWords = 0; int failWords = 0;
for (i = 0; i < (DMA_BUFFER_BYTE_SIZE/4); i++) { for (i = 0; i < (DMA_BUFFER_BYTE_SIZE/4); i++) {
expectedDmaWord = ((i*4+0) & 0xFF) << 24 | expectedDmaWord = ((i*4+3) & 0xFF) << 24 |
((i*4+1) & 0xFF) << 16 | ((i*4+2) & 0xFF) << 16 |
((i*4+2) & 0xFF) << 8 | ((i*4+1) & 0xFF) << 8 |
((i*4+3) & 0xFF) << 0; ((i*4+0) & 0xFF) << 0;
if (pMisoBase[i] != expectedDmaWord) { if (pMisoBase[i] != expectedDmaWord) {
xil_printf( xil_printf(
"[FAIL] DMA mem word [i]: expected=0x%08X, actual=0x%08X\n", "[FAIL] DMA mem word [i]: expected=0x%08X, actual=0x%08X\n",
expectedDmaWord, pMisoBase); expectedDmaWord, pMisoBase[i]);
} }
} }
if (0 == failWords) { if (0 == failWords) {
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> <cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings"> <storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="org.eclipse.cdt.core.default.config.948582058"> <cconfiguration id="org.eclipse.cdt.core.default.config.1065451617">
<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.948582058" moduleId="org.eclipse.cdt.core.settings" name="Configuration"> <storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.1065451617" moduleId="org.eclipse.cdt.core.settings" name="Configuration">
<externalSettings/> <externalSettings/>
<extensions/> <extensions/>
</storageModule> </storageModule>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>demobsp</name> <name>standalone_bsp_0</name>
<comment></comment> <comment></comment>
<projects> <projects>
<project>xps_hw_platform</project> <project>xps_hw_platform</project>
......
Release 13.2 - libgen Xilinx EDK 13.2 Build EDK_O.61xd
(nt64)
Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved.
Command Line: libgen -hw ../xps_hw_platform/system.xml -pe microblaze_0 -log
libgen.log system.mss
Staging source files.
Running DRCs.
Running generate.
Running post_generate.
Running include - 'make -s include "COMPILER=mb-gcc" "ARCHIVER=mb-ar"
"COMPILER_FLAGS=-mno-xl-soft-mul -mxl-barrel-shift -mxl-pattern-compare
-mcpu=v8.20.a -O2 -c" "EXTRA_COMPILER_FLAGS=-g"'.
Running libs - 'make -s libs "COMPILER=mb-gcc" "ARCHIVER=mb-ar"
"COMPILER_FLAGS=-mno-xl-soft-mul -mxl-barrel-shift -mxl-pattern-compare
-mcpu=v8.20.a -O2 -c" "EXTRA_COMPILER_FLAGS=-g"'.
Running execs_generate.
<EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Wed Feb 29 10:59:16 2012"> <EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Tue Mar 06 16:45:32 2012">
<SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/> <SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/>
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/> <PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/>
<PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/> <PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/>
<PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/> <PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/>
<PORT CLKFREQUENCY="50000000" DIR="I" MHS_INDEX="5" NAME="spiifc_0_SPI_CLK_pin" SIGIS="CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT DIR="O" MHS_INDEX="6" NAME="spiifc_0_SPI_MISO_pin" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT DIR="I" MHS_INDEX="7" NAME="spiifc_0_SPI_MOSI_pin" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT DIR="I" MHS_INDEX="8" NAME="spiifc_0_SPI_SS_pin" SIGNAME="spiifc_0_SPI_SS"/>
</EXTERNALPORTS> </EXTERNALPORTS>
<MODULES> <MODULES>
...@@ -4592,49 +4596,53 @@ ...@@ -4592,49 +4596,53 @@
<PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/> <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/>
</PARAMETERS> </PARAMETERS>
<PORTS> <PORTS>
<PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPI_CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="1" MPD_INDEX="1" NAME="SPI_MOSI" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="2" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/> <PORT DIR="O" IS_INSTANTIATED="TRUE" MHS_INDEX="2" MPD_INDEX="2" NAME="SPI_MISO" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="3" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="3" MPD_INDEX="3" NAME="SPI_SS" SIGNAME="spiifc_0_SPI_SS"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/> <PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="4" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="5" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="6" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="7" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="8" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="8" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="9" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="10" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="11" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="12" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="12" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="13" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="13" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="14" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="14" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="15" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="15" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="16" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="17" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="17" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="18" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="19" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="20" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="21" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="22" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="22" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="23" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="23" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="24" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="24" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="25" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="25" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="26" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="28" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="29" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="30" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="31" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="32" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="33" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="33" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="34" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="34" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="35" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="36" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="37" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="38" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="38" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="39" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="39" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="40" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="40" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="41" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="41" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/>
<PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="42" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="43" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="44" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="45" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT DIR="O" MPD_INDEX="46" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
</PORTS> </PORTS>
<BUSINTERFACES> <BUSINTERFACES>
<BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE"> <BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE">
......
...@@ -21,38 +21,38 @@ ADDRESS_MAP microblaze_0 MICROBLAZE 100 ...@@ -21,38 +21,38 @@ ADDRESS_MAP microblaze_0 MICROBLAZE 100
ADDRESS_SPACE lmb_bram_combined RAMB16 [0x00000000:0x0000FFFF] ADDRESS_SPACE lmb_bram_combined RAMB16 [0x00000000:0x0000FFFF]
BUS_BLOCK BUS_BLOCK
lmb_bram/lmb_bram/ramb16bwer_0 [31:31] INPUT = lmb_bram_combined_0.mem PLACED = X2Y46; lmb_bram/lmb_bram/ramb16bwer_0 [31:31] INPUT = lmb_bram_combined_0.mem PLACED = X2Y44;
lmb_bram/lmb_bram/ramb16bwer_1 [30:30] INPUT = lmb_bram_combined_1.mem PLACED = X2Y44; lmb_bram/lmb_bram/ramb16bwer_1 [30:30] INPUT = lmb_bram_combined_1.mem PLACED = X3Y42;
lmb_bram/lmb_bram/ramb16bwer_2 [29:29] INPUT = lmb_bram_combined_2.mem PLACED = X2Y42; lmb_bram/lmb_bram/ramb16bwer_2 [29:29] INPUT = lmb_bram_combined_2.mem PLACED = X2Y48;
lmb_bram/lmb_bram/ramb16bwer_3 [28:28] INPUT = lmb_bram_combined_3.mem PLACED = X3Y42; lmb_bram/lmb_bram/ramb16bwer_3 [28:28] INPUT = lmb_bram_combined_3.mem PLACED = X2Y40;
lmb_bram/lmb_bram/ramb16bwer_4 [27:27] INPUT = lmb_bram_combined_4.mem PLACED = X2Y40; lmb_bram/lmb_bram/ramb16bwer_4 [27:27] INPUT = lmb_bram_combined_4.mem PLACED = X3Y40;
lmb_bram/lmb_bram/ramb16bwer_5 [26:26] INPUT = lmb_bram_combined_5.mem PLACED = X2Y38; lmb_bram/lmb_bram/ramb16bwer_5 [26:26] INPUT = lmb_bram_combined_5.mem PLACED = X2Y46;
lmb_bram/lmb_bram/ramb16bwer_6 [25:25] INPUT = lmb_bram_combined_6.mem PLACED = X2Y32; lmb_bram/lmb_bram/ramb16bwer_6 [25:25] INPUT = lmb_bram_combined_6.mem PLACED = X2Y42;
lmb_bram/lmb_bram/ramb16bwer_7 [24:24] INPUT = lmb_bram_combined_7.mem PLACED = X3Y40; lmb_bram/lmb_bram/ramb16bwer_7 [24:24] INPUT = lmb_bram_combined_7.mem PLACED = X3Y38;
lmb_bram/lmb_bram/ramb16bwer_8 [23:23] INPUT = lmb_bram_combined_8.mem PLACED = X3Y38; lmb_bram/lmb_bram/ramb16bwer_8 [23:23] INPUT = lmb_bram_combined_8.mem PLACED = X1Y38;
lmb_bram/lmb_bram/ramb16bwer_9 [22:22] INPUT = lmb_bram_combined_9.mem PLACED = X3Y36; lmb_bram/lmb_bram/ramb16bwer_9 [22:22] INPUT = lmb_bram_combined_9.mem PLACED = X2Y38;
lmb_bram/lmb_bram/ramb16bwer_10 [21:21] INPUT = lmb_bram_combined_10.mem PLACED = X2Y36; lmb_bram/lmb_bram/ramb16bwer_10 [21:21] INPUT = lmb_bram_combined_10.mem PLACED = X3Y36;
lmb_bram/lmb_bram/ramb16bwer_11 [20:20] INPUT = lmb_bram_combined_11.mem PLACED = X2Y34; lmb_bram/lmb_bram/ramb16bwer_11 [20:20] INPUT = lmb_bram_combined_11.mem PLACED = X3Y34;
lmb_bram/lmb_bram/ramb16bwer_12 [19:19] INPUT = lmb_bram_combined_12.mem PLACED = X1Y30; lmb_bram/lmb_bram/ramb16bwer_12 [19:19] INPUT = lmb_bram_combined_12.mem PLACED = X2Y26;
lmb_bram/lmb_bram/ramb16bwer_13 [18:18] INPUT = lmb_bram_combined_13.mem PLACED = X3Y24; lmb_bram/lmb_bram/ramb16bwer_13 [18:18] INPUT = lmb_bram_combined_13.mem PLACED = X3Y28;
lmb_bram/lmb_bram/ramb16bwer_14 [17:17] INPUT = lmb_bram_combined_14.mem PLACED = X2Y26; lmb_bram/lmb_bram/ramb16bwer_14 [17:17] INPUT = lmb_bram_combined_14.mem PLACED = X2Y30;
lmb_bram/lmb_bram/ramb16bwer_15 [16:16] INPUT = lmb_bram_combined_15.mem PLACED = X1Y26; lmb_bram/lmb_bram/ramb16bwer_15 [16:16] INPUT = lmb_bram_combined_15.mem PLACED = X2Y28;
lmb_bram/lmb_bram/ramb16bwer_16 [15:15] INPUT = lmb_bram_combined_16.mem PLACED = X3Y32; lmb_bram/lmb_bram/ramb16bwer_16 [15:15] INPUT = lmb_bram_combined_16.mem PLACED = X2Y32;
lmb_bram/lmb_bram/ramb16bwer_17 [14:14] INPUT = lmb_bram_combined_17.mem PLACED = X1Y32; lmb_bram/lmb_bram/ramb16bwer_17 [14:14] INPUT = lmb_bram_combined_17.mem PLACED = X0Y32;
lmb_bram/lmb_bram/ramb16bwer_18 [13:13] INPUT = lmb_bram_combined_18.mem PLACED = X1Y28; lmb_bram/lmb_bram/ramb16bwer_18 [13:13] INPUT = lmb_bram_combined_18.mem PLACED = X1Y32;
lmb_bram/lmb_bram/ramb16bwer_19 [12:12] INPUT = lmb_bram_combined_19.mem PLACED = X3Y34; lmb_bram/lmb_bram/ramb16bwer_19 [12:12] INPUT = lmb_bram_combined_19.mem PLACED = X1Y34;
lmb_bram/lmb_bram/ramb16bwer_20 [11:11] INPUT = lmb_bram_combined_20.mem PLACED = X2Y24; lmb_bram/lmb_bram/ramb16bwer_20 [11:11] INPUT = lmb_bram_combined_20.mem PLACED = X2Y22;
lmb_bram/lmb_bram/ramb16bwer_21 [10:10] INPUT = lmb_bram_combined_21.mem PLACED = X2Y18; lmb_bram/lmb_bram/ramb16bwer_21 [10:10] INPUT = lmb_bram_combined_21.mem PLACED = X2Y24;
lmb_bram/lmb_bram/ramb16bwer_22 [9:9] INPUT = lmb_bram_combined_22.mem PLACED = X2Y20; lmb_bram/lmb_bram/ramb16bwer_22 [9:9] INPUT = lmb_bram_combined_22.mem PLACED = X1Y28;
lmb_bram/lmb_bram/ramb16bwer_23 [8:8] INPUT = lmb_bram_combined_23.mem PLACED = X2Y22; lmb_bram/lmb_bram/ramb16bwer_23 [8:8] INPUT = lmb_bram_combined_23.mem PLACED = X3Y24;
lmb_bram/lmb_bram/ramb16bwer_24 [7:7] INPUT = lmb_bram_combined_24.mem PLACED = X3Y26; lmb_bram/lmb_bram/ramb16bwer_24 [7:7] INPUT = lmb_bram_combined_24.mem PLACED = X3Y32;
lmb_bram/lmb_bram/ramb16bwer_25 [6:6] INPUT = lmb_bram_combined_25.mem PLACED = X3Y30; lmb_bram/lmb_bram/ramb16bwer_25 [6:6] INPUT = lmb_bram_combined_25.mem PLACED = X1Y36;
lmb_bram/lmb_bram/ramb16bwer_26 [5:5] INPUT = lmb_bram_combined_26.mem PLACED = X2Y28; lmb_bram/lmb_bram/ramb16bwer_26 [5:5] INPUT = lmb_bram_combined_26.mem PLACED = X2Y36;
lmb_bram/lmb_bram/ramb16bwer_27 [4:4] INPUT = lmb_bram_combined_27.mem PLACED = X3Y28; lmb_bram/lmb_bram/ramb16bwer_27 [4:4] INPUT = lmb_bram_combined_27.mem PLACED = X2Y34;
lmb_bram/lmb_bram/ramb16bwer_28 [3:3] INPUT = lmb_bram_combined_28.mem PLACED = X3Y22; lmb_bram/lmb_bram/ramb16bwer_28 [3:3] INPUT = lmb_bram_combined_28.mem PLACED = X3Y30;
lmb_bram/lmb_bram/ramb16bwer_29 [2:2] INPUT = lmb_bram_combined_29.mem PLACED = X2Y30; lmb_bram/lmb_bram/ramb16bwer_29 [2:2] INPUT = lmb_bram_combined_29.mem PLACED = X3Y26;
lmb_bram/lmb_bram/ramb16bwer_30 [1:1] INPUT = lmb_bram_combined_30.mem PLACED = X2Y14; lmb_bram/lmb_bram/ramb16bwer_30 [1:1] INPUT = lmb_bram_combined_30.mem PLACED = X1Y26;
lmb_bram/lmb_bram/ramb16bwer_31 [0:0] INPUT = lmb_bram_combined_31.mem PLACED = X2Y16; lmb_bram/lmb_bram/ramb16bwer_31 [0:0] INPUT = lmb_bram_combined_31.mem PLACED = X1Y30;
END_BUS_BLOCK; END_BUS_BLOCK;
END_ADDRESS_SPACE; END_ADDRESS_SPACE;
......
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" > <report-views version="2.0" >
<header> <header>
<DateModified>2012-03-01T09:28:38</DateModified> <DateModified>2012-03-06T18:05:57</DateModified>
<ModuleName>system</ModuleName> <ModuleName>system</ModuleName>
<SummaryTimeStamp>2012-03-01T09:28:36</SummaryTimeStamp> <SummaryTimeStamp>2012-03-06T18:05:56</SummaryTimeStamp>
<SavedFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/__xps/ise/system.xreport</SavedFilePath> <SavedFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/__xps/ise/system.xreport</SavedFilePath>
<FilterFile>filter.filter</FilterFile> <FilterFile>filter.filter</FilterFile>
<SavedFilterFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/__xps/ise</SavedFilterFilePath> <SavedFilterFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/__xps/ise</SavedFilterFilePath>
......
<EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Thu Mar 01 09:28:39 2012"> <EDKSYSTEM EDKVERSION="13.2" EDWVERSION="1.2" TIMESTAMP="Tue Mar 06 18:05:58 2012">
<SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/> <SYSTEMINFO ARCH="spartan6" DEVICE="xc6slx45" PACKAGE="csg324" PART="xc6slx45csg324-2" SOURCE="C:/Users/mjlyons/workspace/vSPI/projnav/xps/system.xmp" SPEEDGRADE="-2"/>
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/> <PORT DIR="I" ENDIAN="BIG" LEFT="0" LSB="4" MHS_INDEX="2" MSB="0" NAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin" RIGHT="4" SIGNAME="fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin"/>
<PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/> <PORT CLKFREQUENCY="100000000" DIR="I" MHS_INDEX="3" NAME="fpga_0_clk_1_sys_clk_pin" SIGIS="CLK" SIGNAME="CLK_S"/>
<PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/> <PORT DIR="I" MHS_INDEX="4" NAME="fpga_0_rst_1_sys_rst_pin" RSTPOLARITY="0" SIGIS="RST" SIGNAME="sys_rst_s"/>
<PORT CLKFREQUENCY="50000000" DIR="I" MHS_INDEX="5" NAME="spiifc_0_SPI_CLK_pin" SIGIS="CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT DIR="O" MHS_INDEX="6" NAME="spiifc_0_SPI_MISO_pin" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT DIR="I" MHS_INDEX="7" NAME="spiifc_0_SPI_MOSI_pin" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT DIR="I" MHS_INDEX="8" NAME="spiifc_0_SPI_SS_pin" SIGNAME="spiifc_0_SPI_SS"/>
</EXTERNALPORTS> </EXTERNALPORTS>
<MODULES> <MODULES>
...@@ -3919,49 +3923,53 @@ ...@@ -3919,49 +3923,53 @@
<PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/> <PARAMETER ADDRESS="HIGH" ADDR_TYPE="MEMORY" CHANGEDBY="USER" IS_INSTANTIATED="TRUE" MHS_INDEX="7" MPD_INDEX="16" NAME="C_MEM1_HIGHADDR" TYPE="std_logic_vector" VALUE="0x85011FFF"/>
</PARAMETERS> </PARAMETERS>
<PORTS> <PORTS>
<PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="0" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPI_CLK" SIGNAME="spiifc_0_SPI_CLK"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="1" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="1" MPD_INDEX="1" NAME="SPI_MOSI" SIGNAME="spiifc_0_SPI_MOSI"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="2" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/> <PORT DIR="O" IS_INSTANTIATED="TRUE" MHS_INDEX="2" MPD_INDEX="2" NAME="SPI_MISO" SIGNAME="spiifc_0_SPI_MISO"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="3" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/> <PORT DIR="I" IS_INSTANTIATED="TRUE" MHS_INDEX="3" MPD_INDEX="3" NAME="SPI_SS" SIGNAME="spiifc_0_SPI_SS"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="4" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/> <PORT BUS="SPLB" CLKFREQUENCY="66666666" DEF_SIGNAME="clk_66_6667MHz" DIR="I" MPD_INDEX="4" NAME="SPLB_Clk" SIGIS="CLK" SIGNAME="clk_66_6667MHz"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="5" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_SPLB_Rst" DIR="I" MPD_INDEX="5" NAME="SPLB_Rst" SIGIS="RST" SIGNAME="mb_plb_SPLB_Rst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="6" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_ABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="6" MSB="0" NAME="PLB_ABus" RIGHT="31" SIGNAME="mb_plb_PLB_ABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="7" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_UABus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="7" MSB="0" NAME="PLB_UABus" RIGHT="31" SIGNAME="mb_plb_PLB_UABus" VECFORMULA="[0:31]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="8" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_PAValid" DIR="I" MPD_INDEX="8" NAME="PLB_PAValid" SIGNAME="mb_plb_PLB_PAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="9" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_SAValid" DIR="I" MPD_INDEX="9" NAME="PLB_SAValid" SIGNAME="mb_plb_PLB_SAValid"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="10" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPrim" DIR="I" MPD_INDEX="10" NAME="PLB_rdPrim" SIGNAME="mb_plb_PLB_rdPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="11" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPrim" DIR="I" MPD_INDEX="11" NAME="PLB_wrPrim" SIGNAME="mb_plb_PLB_wrPrim"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="12" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_masterID" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="12" MSB="0" NAME="PLB_masterID" RIGHT="1" SIGNAME="mb_plb_PLB_masterID" VECFORMULA="[0:(C_SPLB_MID_WIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="13" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_abort" DIR="I" MPD_INDEX="13" NAME="PLB_abort" SIGNAME="mb_plb_PLB_abort"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="14" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_busLock" DIR="I" MPD_INDEX="14" NAME="PLB_busLock" SIGNAME="mb_plb_PLB_busLock"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="15" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_RNW" DIR="I" MPD_INDEX="15" NAME="PLB_RNW" SIGNAME="mb_plb_PLB_RNW"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="16" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_BE" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="16" MSB="0" NAME="PLB_BE" RIGHT="3" SIGNAME="mb_plb_PLB_BE" VECFORMULA="[0:((C_SPLB_DWIDTH/8)-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="17" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_MSize" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="17" MSB="0" NAME="PLB_MSize" RIGHT="1" SIGNAME="mb_plb_PLB_MSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="18" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_size" DIR="I" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="18" MSB="0" NAME="PLB_size" RIGHT="3" SIGNAME="mb_plb_PLB_size" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="19" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_type" DIR="I" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="19" MSB="0" NAME="PLB_type" RIGHT="2" SIGNAME="mb_plb_PLB_type" VECFORMULA="[0:2]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="20" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_lockErr" DIR="I" MPD_INDEX="20" NAME="PLB_lockErr" SIGNAME="mb_plb_PLB_lockErr"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="21" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrDBus" DIR="I" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="21" MSB="0" NAME="PLB_wrDBus" RIGHT="31" SIGNAME="mb_plb_PLB_wrDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="22" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrBurst" DIR="I" MPD_INDEX="22" NAME="PLB_wrBurst" SIGNAME="mb_plb_PLB_wrBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="23" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdBurst" DIR="I" MPD_INDEX="23" NAME="PLB_rdBurst" SIGNAME="mb_plb_PLB_rdBurst"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="24" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendReq" DIR="I" MPD_INDEX="24" NAME="PLB_wrPendReq" SIGNAME="mb_plb_PLB_wrPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="25" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendReq" DIR="I" MPD_INDEX="25" NAME="PLB_rdPendReq" SIGNAME="mb_plb_PLB_rdPendReq"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="26" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_wrPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="26" MSB="0" NAME="PLB_wrPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_wrPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_rdPendPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="27" MSB="0" NAME="PLB_rdPendPri" RIGHT="1" SIGNAME="mb_plb_PLB_rdPendPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="28" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_reqPri" DIR="I" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="28" MSB="0" NAME="PLB_reqPri" RIGHT="1" SIGNAME="mb_plb_PLB_reqPri" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="29" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_PLB_TAttribute" DIR="I" ENDIAN="BIG" LEFT="0" LSB="15" MPD_INDEX="29" MSB="0" NAME="PLB_TAttribute" RIGHT="15" SIGNAME="mb_plb_PLB_TAttribute" VECFORMULA="[0:15]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="30" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_addrAck" DIR="O" MPD_INDEX="30" NAME="Sl_addrAck" SIGNAME="mb_plb_Sl_addrAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="31" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_SSize" DIR="O" ENDIAN="BIG" LEFT="0" LSB="1" MPD_INDEX="31" MSB="0" NAME="Sl_SSize" RIGHT="1" SIGNAME="mb_plb_Sl_SSize" VECFORMULA="[0:1]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="32" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wait" DIR="O" MPD_INDEX="32" NAME="Sl_wait" SIGNAME="mb_plb_Sl_wait"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="33" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rearbitrate" DIR="O" MPD_INDEX="33" NAME="Sl_rearbitrate" SIGNAME="mb_plb_Sl_rearbitrate"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="34" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrDAck" DIR="O" MPD_INDEX="34" NAME="Sl_wrDAck" SIGNAME="mb_plb_Sl_wrDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="35" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrComp" DIR="O" MPD_INDEX="35" NAME="Sl_wrComp" SIGNAME="mb_plb_Sl_wrComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="36" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_wrBTerm" DIR="O" MPD_INDEX="36" NAME="Sl_wrBTerm" SIGNAME="mb_plb_Sl_wrBTerm"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="37" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDBus" DIR="O" ENDIAN="BIG" LEFT="0" LSB="31" MPD_INDEX="37" MSB="0" NAME="Sl_rdDBus" RIGHT="31" SIGNAME="mb_plb_Sl_rdDBus" VECFORMULA="[0:(C_SPLB_DWIDTH-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="38" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdWdAddr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="3" MPD_INDEX="38" MSB="0" NAME="Sl_rdWdAddr" RIGHT="3" SIGNAME="mb_plb_Sl_rdWdAddr" VECFORMULA="[0:3]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="39" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdDAck" DIR="O" MPD_INDEX="39" NAME="Sl_rdDAck" SIGNAME="mb_plb_Sl_rdDAck"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="40" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdComp" DIR="O" MPD_INDEX="40" NAME="Sl_rdComp" SIGNAME="mb_plb_Sl_rdComp"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="41" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_rdBTerm" DIR="O" MPD_INDEX="41" NAME="Sl_rdBTerm" SIGNAME="mb_plb_Sl_rdBTerm"/>
<PORT DIR="O" MPD_INDEX="42" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/> <PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MBusy" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="42" MSB="0" NAME="Sl_MBusy" RIGHT="2" SIGNAME="mb_plb_Sl_MBusy" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MWrErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="43" MSB="0" NAME="Sl_MWrErr" RIGHT="2" SIGNAME="mb_plb_Sl_MWrErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MRdErr" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="44" MSB="0" NAME="Sl_MRdErr" RIGHT="2" SIGNAME="mb_plb_Sl_MRdErr" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT BUS="SPLB" DEF_SIGNAME="mb_plb_Sl_MIRQ" DIR="O" ENDIAN="BIG" LEFT="0" LSB="2" MPD_INDEX="45" MSB="0" NAME="Sl_MIRQ" RIGHT="2" SIGNAME="mb_plb_Sl_MIRQ" VECFORMULA="[0:(C_SPLB_NUM_MASTERS-1)]"/>
<PORT DIR="O" MPD_INDEX="46" NAME="IP2INTC_Irpt" SENSITIVITY="LEVEL_HIGH" SIGIS="INTERRUPT" SIGNAME="__NOC__"/>
</PORTS> </PORTS>
<BUSINTERFACES> <BUSINTERFACES>
<BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE"> <BUSINTERFACE BUSNAME="mb_plb" BUSSTD="PLBV46" BUSSTD_PSF="PLBV46" IS_INSTANTIATED="TRUE" MHS_INDEX="0" MPD_INDEX="0" NAME="SPLB" TYPE="SLAVE">
......
...@@ -25,3 +25,9 @@ TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz; ...@@ -25,3 +25,9 @@ TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;
Net fpga_0_clk_1_sys_clk_pin LOC=L15 | IOSTANDARD=LVCMOS33; Net fpga_0_clk_1_sys_clk_pin LOC=L15 | IOSTANDARD=LVCMOS33;
Net fpga_0_rst_1_sys_rst_pin TIG; Net fpga_0_rst_1_sys_rst_pin TIG;
Net fpga_0_rst_1_sys_rst_pin LOC=T15 | IOSTANDARD=LVCMOS33; Net fpga_0_rst_1_sys_rst_pin LOC=T15 | IOSTANDARD=LVCMOS33;
# SPI
NET "spiifc_0_SPI_CLK_pin" LOC = R10 | IOSTANDARD = LVCMOS33;
NET "spiifc_0_SPI_MISO_pin" LOC = U16 | IOSTANDARD = LVCMOS33;
NET "spiifc_0_SPI_MOSI_pin" LOC = U15 | IOSTANDARD = LVCMOS33;
NET "spiifc_0_SPI_SS_pin" LOC = M11 | IOSTANDARD = LVCMOS33;
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="2" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="813" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="4" COL_WIDTH="726" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="5" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/>
</HEADERS> </HEADERS>
...@@ -81,26 +81,26 @@ ...@@ -81,26 +81,26 @@
<SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="PORT"> <SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="PORT">
<HEADERS HSCROLL="0" VSCROLL="0"> <HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="0" COL_WIDTH="201" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="1" COL_WIDTH="180" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="2" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="4" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="5" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="6" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" COL_WIDTH="413" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="7" COL_WIDTH="413" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" COL_WIDTH="213" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="8" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="9" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/> <VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
</HEADERS> </HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/> <SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
<SET ID="ExternalPorts" IS_EXPANDED="TRUE"/>
<SET ID="spiifc_0" IS_EXPANDED="TRUE"/> <SET ID="spiifc_0" IS_EXPANDED="TRUE"/>
<SET ID="xps_central_dma_0" IS_EXPANDED="TRUE"/>
<STATUS> <STATUS>
<SELECTIONS/> <SELECTIONS/>
</STATUS> </STATUS>
<SEQUENCES IS_DEF_SEQUENCES="TRUE"> <SEQUENCES IS_DEF_SEQUENCES="TRUE">
<VARIABLE ID="ExternalPorts" ROW_INDEX="0"/> <VARIABLE ID="ExternalPorts" IS_EXPANDED="TRUE" ROW_INDEX="0"/>
<VARIABLE ID="microblaze_0" ROW_INDEX="4"/> <VARIABLE ID="microblaze_0" ROW_INDEX="4"/>
<VARIABLE ID="mb_plb" ROW_INDEX="3"/> <VARIABLE ID="mb_plb" ROW_INDEX="3"/>
<VARIABLE ID="ilmb" ROW_INDEX="2"/> <VARIABLE ID="ilmb" ROW_INDEX="2"/>
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
<VARIABLE ID="mdm_0" ROW_INDEX="9"/> <VARIABLE ID="mdm_0" ROW_INDEX="9"/>
<VARIABLE ID="proc_sys_reset_0" ROW_INDEX="15"/> <VARIABLE ID="proc_sys_reset_0" ROW_INDEX="15"/>
<VARIABLE ID="spiifc_0" IS_EXPANDED="TRUE" ROW_INDEX="8"/> <VARIABLE ID="spiifc_0" IS_EXPANDED="TRUE" ROW_INDEX="8"/>
<VARIABLE ID="xps_central_dma_0" IS_EXPANDED="TRUE" ROW_INDEX="10"/> <VARIABLE ID="xps_central_dma_0" ROW_INDEX="10"/>
</SEQUENCES> </SEQUENCES>
</SET> </SET>
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<TR ALIGN=LEFT><TD>Platgen Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR> <TR ALIGN=LEFT><TD>Platgen Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR>
<TR ALIGN=LEFT><TD>Simgen Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR> <TR ALIGN=LEFT><TD>Simgen Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR>
<TR ALIGN=LEFT><TD>BitInit Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR> <TR ALIGN=LEFT><TD>BitInit Log File</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR>
<TR ALIGN=LEFT><TD><A HREF_DISABLED='C:/Users/mjlyons/workspace/vSPI/projnav/xps\system.log'>System Log File</A></TD><TD>Thu Mar 1 09:29:13 2012</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR> <TR ALIGN=LEFT><TD><A HREF_DISABLED='C:/Users/mjlyons/workspace/vSPI/projnav/xps\system.log'>System Log File</A></TD><TD>Wed Mar 7 09:21:12 2012</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD COLSPAN='2'>&nbsp;</TD></TR>
</TABLE> </TABLE>
...@@ -57,5 +57,5 @@ ...@@ -57,5 +57,5 @@
</TABLE> </TABLE>
<br><center><b>Date Generated:</b> 03/01/2012 - 09:29:13</center> <br><center><b>Date Generated:</b> 03/07/2012 - 09:21:12</center>
</BODY></HTML> </BODY></HTML>
\ No newline at end of file
...@@ -13,6 +13,7 @@ vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPL ...@@ -13,6 +13,7 @@ vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPL
vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\addr_reg_cntr_brst_flex.vhd" vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\addr_reg_cntr_brst_flex.vhd"
vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\plb_slave_attachment.vhd" vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\plb_slave_attachment.vhd"
vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\data_mirror_128.vhd" vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\data_mirror_128.vhd"
verilog spiifc_v1_00_a "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v"
verilog spiifc_v1_00_a "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\ipcore_dir\buffermem.v" verilog spiifc_v1_00_a "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\ipcore_dir\buffermem.v"
vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\plbv46_slave_burst.vhd" vhdl plbv46_slave_burst_v1_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\hdl\vhdl\plbv46_slave_burst.vhd"
vhdl interrupt_control_v2_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\interrupt_control_v2_01_a\hdl\vhdl\interrupt_control.vhd" vhdl interrupt_control_v2_01_a "C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\interrupt_control_v2_01_a\hdl\vhdl\interrupt_control.vhd"
......
############################################################################## ##############################################################################
## Filename: C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores/spiifc_v1_00_a/data/spiifc_v2_1_0.bbd ## Filename: C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores/spiifc_v1_00_a/data/spiifc_v2_1_0.bbd
## Description: Black Box Definition ## Description: Black Box Definition
## Date: Tue Feb 28 16:31:09 2012 (by Create and Import Peripheral Wizard) ## Date: Tue Mar 06 14:12:58 2012 (by Create and Import Peripheral Wizard)
############################################################################## ##############################################################################
Files Files
......
...@@ -40,6 +40,10 @@ PARAMETER C_MEM1_BASEADDR = 0xffffffff, DT = std_logic_vector, PAIR = C_MEM1_HIG ...@@ -40,6 +40,10 @@ PARAMETER C_MEM1_BASEADDR = 0xffffffff, DT = std_logic_vector, PAIR = C_MEM1_HIG
PARAMETER C_MEM1_HIGHADDR = 0x00000000, DT = std_logic_vector, PAIR = C_MEM1_BASEADDR, ADDRESS = HIGH, BUS = SPLB, ADDR_TYPE = MEMORY PARAMETER C_MEM1_HIGHADDR = 0x00000000, DT = std_logic_vector, PAIR = C_MEM1_BASEADDR, ADDRESS = HIGH, BUS = SPLB, ADDR_TYPE = MEMORY
## Ports ## Ports
PORT SPI_CLK = "", DIR = I
PORT SPI_MOSI = "", DIR = I
PORT SPI_MISO = "", DIR = O
PORT SPI_SS = "", DIR = I
PORT SPLB_Clk = "", DIR = I, SIGIS = CLK, BUS = SPLB PORT SPLB_Clk = "", DIR = I, SIGIS = CLK, BUS = SPLB
PORT SPLB_Rst = SPLB_Rst, DIR = I, SIGIS = RST, BUS = SPLB PORT SPLB_Rst = SPLB_Rst, DIR = I, SIGIS = RST, BUS = SPLB
PORT PLB_ABus = PLB_ABus, DIR = I, VEC = [0:31], BUS = SPLB PORT PLB_ABus = PLB_ABus, DIR = I, VEC = [0:31], BUS = SPLB
......
############################################################################## ##############################################################################
## Filename: C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores/spiifc_v1_00_a/data/spiifc_v2_1_0.pao ## Filename: C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores/spiifc_v1_00_a/data/spiifc_v2_1_0.pao
## Description: Peripheral Analysis Order ## Description: Peripheral Analysis Order
## Date: Tue Feb 28 16:31:09 2012 (by Create and Import Peripheral Wizard) ## Date: Tue Mar 06 14:12:58 2012 (by Create and Import Peripheral Wizard)
############################################################################## ##############################################################################
lib proc_common_v3_00_a proc_common_pkg vhdl lib proc_common_v3_00_a proc_common_pkg vhdl
...@@ -19,6 +19,7 @@ lib plbv46_slave_burst_v1_01_a be_reset_gen vhdl ...@@ -19,6 +19,7 @@ lib plbv46_slave_burst_v1_01_a be_reset_gen vhdl
lib plbv46_slave_burst_v1_01_a addr_reg_cntr_brst_flex vhdl lib plbv46_slave_burst_v1_01_a addr_reg_cntr_brst_flex vhdl
lib plbv46_slave_burst_v1_01_a plb_slave_attachment vhdl lib plbv46_slave_burst_v1_01_a plb_slave_attachment vhdl
lib plbv46_slave_burst_v1_01_a data_mirror_128 vhdl lib plbv46_slave_burst_v1_01_a data_mirror_128 vhdl
lib spiifc_v1_00_a spiifc verilog
lib spiifc_v1_00_a buffermem verilog lib spiifc_v1_00_a buffermem verilog
lib plbv46_slave_burst_v1_01_a plbv46_slave_burst vhdl lib plbv46_slave_burst_v1_01_a plbv46_slave_burst vhdl
lib interrupt_control_v2_01_a interrupt_control vhdl lib interrupt_control_v2_01_a interrupt_control vhdl
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- IMPORTANT: This is an internal file that has been generated
by the Xilinx ISE software. Any direct editing or
changes made to this file may result in unpredictable
behavior or data corruption. It is strongly advised that
users do not edit the contents of this file. -->
<messages>
</messages>
-intstyle "ise" -incremental -lib "unisims_ver" -lib "unimacro_ver" -lib "xilinxcorelib_ver" -lib "secureip" -o "C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/spiifc_tb_isim_beh.exe" -prj "C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/spiifc_tb_beh.prj" "work.spiifc_tb" "work.glbl"
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<b>
<xsl:text>Current iMPACT Usage Statistics.</xsl:text>
<br></br>
<xsl:text>Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved.</xsl:text>
</b>
<br></br>
<br></br>
<xsl:text>This page displays the current iMPACT device usage statistics that will be sent to Xilinx using WebTalk.</xsl:text>
<table width = "100%" border="1" CELLSPACING="0" cols="50% 50%">
<xsl:for-each select="document/application/section">
<tr>
<th COLSPAN="2" BGCOLOR="#99CCFF"><xsl:value-of select="@name"/></th>
</tr>
<xsl:for-each select="property">
<tr>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="@value"/></td>
</tr>
</xsl:for-each>
<xsl:for-each select="item">
<tr>
<td COLSPAN="2" BGCOLOR="#FFFF99"><b><xsl:value-of select="@name"/></b></td>
</tr>
<xsl:value-of select="@value"/>
<xsl:for-each select="property">
<tr>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="@value"/>&#x20;</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
<!--
<xsl:if test="position() != last()"> <h1><xsl:text> </xsl:text></h1></xsl:if>
-->
INTSTYLE=impact
INFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\impact.xsl
OUTFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\impact.xsl
FAMILY=Single
PART=Single
WORKINGDIR=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav
LICENSE=iMPACT
USER_INFO=iMPACT
...@@ -11,13 +11,13 @@ ...@@ -11,13 +11,13 @@
<ClosedNode>/spiifc - IMP C:|Users|mjlyons|workspace|vSPI|projnav|xps|pcores|spiifc_v1_00_a|hdl|vhdl|spiifc.vhd/PLBV46_SLAVE_BURST_I - plbv46_slave_burst - implementation/I_SLAVE_ATTACHMENT - plb_slave_attachment - implementation</ClosedNode> <ClosedNode>/spiifc - IMP C:|Users|mjlyons|workspace|vSPI|projnav|xps|pcores|spiifc_v1_00_a|hdl|vhdl|spiifc.vhd/PLBV46_SLAVE_BURST_I - plbv46_slave_burst - implementation/I_SLAVE_ATTACHMENT - plb_slave_attachment - implementation</ClosedNode>
</ClosedNodes> </ClosedNodes>
<SelectedItems> <SelectedItems>
<SelectedItem>USER_LOGIC_I - user_logic (C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/hdl/verilog/user_logic.v)</SelectedItem> <SelectedItem>spiifc_tb2 (C:/Users/mjlyons/workspace/vSPI/test/spi_base/spiifc_tb2.v)</SelectedItem>
</SelectedItems> </SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000020200000001000000010000006400000225000000020000000000000000000000000200000064ffffffff000000810000000300000002000002250000000100000003000000000000000100000003</ViewHeaderState> <ViewHeaderState orientation="horizontal" >000000ff00000000000000010000000100000000000000000000000000000000020200000001000000010000006400000225000000020000000000000000000000000200000064ffffffff000000810000000300000002000002250000000100000003000000000000000100000003</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >true</UserChangedColumnWidths> <UserChangedColumnWidths orientation="horizontal" >true</UserChangedColumnWidths>
<CurrentItem>USER_LOGIC_I - user_logic (C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/hdl/verilog/user_logic.v)</CurrentItem> <CurrentItem>spiifc_tb2 (C:/Users/mjlyons/workspace/vSPI/test/spi_base/spiifc_tb2.v)</CurrentItem>
</ItemView> </ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" > <ItemView engineview="SynthesisOnly" sourcetype="DESUT_VHDL_ARCHITECTURE" guiview="Process" >
<ClosedNodes> <ClosedNodes>
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
<ClosedNode>User Constraints</ClosedNode> <ClosedNode>User Constraints</ClosedNode>
</ClosedNodes> </ClosedNodes>
<SelectedItems> <SelectedItems>
<SelectedItem></SelectedItem> <SelectedItem>Synthesize - XST</SelectedItem>
</SelectedItems> </SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState> <ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem></CurrentItem> <CurrentItem>Synthesize - XST</CurrentItem>
</ItemView> </ItemView>
<ItemView guiview="File" > <ItemView guiview="File" >
<ClosedNodes> <ClosedNodes>
...@@ -81,6 +81,11 @@ ...@@ -81,6 +81,11 @@
<ClosedNodes> <ClosedNodes>
<ClosedNodesVersion>1</ClosedNodesVersion> <ClosedNodesVersion>1</ClosedNodesVersion>
<ClosedNode>Design Utilities</ClosedNode> <ClosedNode>Design Utilities</ClosedNode>
<ClosedNode>Implement Design/Map</ClosedNode>
<ClosedNode>Implement Design/Place &amp; Route</ClosedNode>
<ClosedNode>Implement Design/Translate</ClosedNode>
<ClosedNode>Synthesize - XST</ClosedNode>
<ClosedNode>User Constraints</ClosedNode>
</ClosedNodes> </ClosedNodes>
<SelectedItems> <SelectedItems>
<SelectedItem></SelectedItem> <SelectedItem></SelectedItem>
...@@ -106,4 +111,62 @@ ...@@ -106,4 +111,62 @@
</ItemView> </ItemView>
<SourceProcessView>000000ff00000000000000020000011b0000011b01000000050100000002</SourceProcessView> <SourceProcessView>000000ff00000000000000020000011b0000011b01000000050100000002</SourceProcessView>
<CurrentView>Implementation</CurrentView> <CurrentView>Implementation</CurrentView>
<ItemView engineview="BehavioralSim" guiview="Source" compilemode="AutoCompile" >
<ClosedNodes>
<ClosedNodesVersion>2</ClosedNodesVersion>
<ClosedNode>/spiifc - IMP C:|Users|mjlyons|workspace|vSPI|projnav|xps|pcores|spiifc_v1_00_a|hdl|vhdl|spiifc.vhd</ClosedNode>
<ClosedNode>/spiifc_tb C:|Users|mjlyons|workspace|vSPI|test|spi_base|spiifc_tb.v</ClosedNode>
<ClosedNode>/spiifc_tb2 C:|Users|mjlyons|workspace|vSPI|test|spi_base|spiifc_tb2.v</ClosedNode>
<ClosedNode>/spiwrap C:|Users|mjlyons|workspace|vSPI|src|spi_base|spiwrap.v</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem>spiifc_tb (C:/Users/mjlyons/workspace/vSPI/test/spi_base/spiifc_tb.v)</SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000000be000000020000000000000000000000000200000064ffffffff000000810000000300000002000000be0000000100000003000000000000000100000003</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem>spiifc_tb (C:/Users/mjlyons/workspace/vSPI/test/spi_base/spiifc_tb.v)</CurrentItem>
</ItemView>
<ItemView engineview="BehavioralSim" sourcetype="" guiview="Process" >
<ClosedNodes>
<ClosedNodesVersion>1</ClosedNodesVersion>
<ClosedNode>Design Utilities</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem/>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem/>
</ItemView>
<ItemView engineview="BehavioralSim" sourcetype="DESUT_VERILOG" guiview="Process" >
<ClosedNodes>
<ClosedNodesVersion>1</ClosedNodesVersion>
</ClosedNodes>
<SelectedItems>
<SelectedItem>Simulate Behavioral Model</SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem>Simulate Behavioral Model</CurrentItem>
</ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="DESUT_UCF" guiview="Process" >
<ClosedNodes>
<ClosedNodesVersion>1</ClosedNodesVersion>
<ClosedNode>User Constraints</ClosedNode>
</ClosedNodes>
<SelectedItems>
<SelectedItem></SelectedItem>
</SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000f8000000010000000100000000000000000000000064ffffffff000000810000000000000001000000f80000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem></CurrentItem>
</ItemView>
</Project> </Project>
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" > <report-views version="2.0" >
<header> <header>
<DateModified>2012-03-01T09:27:04</DateModified> <DateModified>2012-03-07T09:22:38</DateModified>
<ModuleName>spiifc</ModuleName> <ModuleName>spiifc</ModuleName>
<SummaryTimeStamp>2012-02-29T17:29:17</SummaryTimeStamp> <SummaryTimeStamp>2012-03-06T18:02:57</SummaryTimeStamp>
<SavedFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/iseconfig/spiifc.xreport</SavedFilePath> <SavedFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/iseconfig/spiifc.xreport</SavedFilePath>
<ImplementationReportsDirectory>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav\</ImplementationReportsDirectory> <ImplementationReportsDirectory>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav\</ImplementationReportsDirectory>
<DateInitialized>2012-02-29T17:30:10</DateInitialized> <DateInitialized>2012-03-06T14:46:14</DateInitialized>
<EnableMessageFiltering>false</EnableMessageFiltering> <EnableMessageFiltering>false</EnableMessageFiltering>
</header> </header>
<body> <body>
<viewgroup label="Design Overview" > <viewgroup label="Design Overview" >
<view inputState="Unknown" program="implementation" ShowPartitionData="false" type="FPGASummary" file="spiifc_summary.html" label="Summary" > <view inputState="Unknown" program="implementation" ShowPartitionData="false" type="FPGASummary" file="spiwrap_summary.html" label="Summary" >
<toc-item title="Design Overview" target="Design Overview" /> <toc-item title="Design Overview" target="Design Overview" />
<toc-item title="Design Utilization Summary" target="Design Utilization Summary" /> <toc-item title="Design Utilization Summary" target="Design Utilization Summary" />
<toc-item title="Performance Summary" target="Performance Summary" /> <toc-item title="Performance Summary" target="Performance Summary" />
<toc-item title="Failing Constraints" target="Failing Constraints" /> <toc-item title="Failing Constraints" target="Failing Constraints" />
<toc-item title="Detailed Reports" target="Detailed Reports" /> <toc-item title="Detailed Reports" target="Detailed Reports" />
</view> </view>
<view inputState="Unknown" program="implementation" contextTags="FPGA_ONLY" hidden="true" type="HTML" file="spiifc_envsettings.html" label="System Settings" /> <view inputState="Unknown" program="implementation" contextTags="FPGA_ONLY" hidden="true" type="HTML" file="spiwrap_envsettings.html" label="System Settings" />
<view inputState="Translated" program="map" locator="MAP_IOB_TABLE" contextTags="FPGA_ONLY" type="IOBProperties" file="spiifc_map.xrpt" label="IOB Properties" /> <view inputState="Translated" program="map" locator="MAP_IOB_TABLE" contextTags="FPGA_ONLY" type="IOBProperties" file="spiwrap_map.xrpt" label="IOB Properties" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Control_Sets" file="spiifc_map.xrpt" label="Control Set Information" /> <view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Control_Sets" file="spiwrap_map.xrpt" label="Control Set Information" />
<view inputState="Translated" program="map" locator="MAP_MODULE_HIERARCHY" contextTags="FPGA_ONLY" type="Module_Utilization" file="spiifc_map.xrpt" label="Module Level Utilization" /> <view inputState="Translated" program="map" locator="MAP_MODULE_HIERARCHY" contextTags="FPGA_ONLY" type="Module_Utilization" file="spiwrap_map.xrpt" label="Module Level Utilization" />
<view inputState="Mapped" program="par" locator="CONSTRAINT_TABLE" contextTags="FPGA_ONLY" type="ConstraintsData" file="spiifc.ptwx" label="Timing Constraints" translator="ptwxToTableXML.xslt" /> <view inputState="Mapped" program="par" locator="CONSTRAINT_TABLE" contextTags="FPGA_ONLY" type="ConstraintsData" file="spiwrap.ptwx" label="Timing Constraints" translator="ptwxToTableXML.xslt" />
<view inputState="Mapped" program="par" locator="PAR_PINOUT_BY_PIN_NUMBER" contextTags="FPGA_ONLY" type="PinoutData" file="spiifc_par.xrpt" label="Pinout Report" /> <view inputState="Mapped" program="par" locator="PAR_PINOUT_BY_PIN_NUMBER" contextTags="FPGA_ONLY" type="PinoutData" file="spiwrap_par.xrpt" label="Pinout Report" />
<view inputState="Mapped" program="par" locator="PAR_CLOCK_TABLE" contextTags="FPGA_ONLY" type="ClocksData" file="spiifc_par.xrpt" label="Clock Report" /> <view inputState="Mapped" program="par" locator="PAR_CLOCK_TABLE" contextTags="FPGA_ONLY" type="ClocksData" file="spiwrap_par.xrpt" label="Clock Report" />
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY,EDK_OFF" type="Timing_Analyzer" file="spiifc.twx" label="Static Timing" /> <view inputState="Mapped" program="par" contextTags="FPGA_ONLY,EDK_OFF" type="Timing_Analyzer" file="spiwrap.twx" label="Static Timing" />
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiifc_html/fit/report.htm" label="CPLD Fitter Report" /> <view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiwrap_html/fit/report.htm" label="CPLD Fitter Report" />
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiifc_html/tim/report.htm" label="CPLD Timing Report" /> <view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiwrap_html/tim/report.htm" label="CPLD Timing Report" />
</viewgroup> </viewgroup>
<viewgroup label="XPS Errors and Warnings" > <viewgroup label="XPS Errors and Warnings" >
<view program="platgen" WrapMessages="true" contextTags="EDK_ON" hidden="true" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/platgen.xmsgs" label="Platgen Messages" /> <view program="platgen" WrapMessages="true" contextTags="EDK_ON" hidden="true" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/platgen.xmsgs" label="Platgen Messages" />
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<view inputState="PreSynthesized" program="platgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="platgen.log" label="Platgen Log File" /> <view inputState="PreSynthesized" program="platgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="platgen.log" label="Platgen Log File" />
<view inputState="PreSynthesized" program="simgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="simgen.log" label="Simgen Log File" /> <view inputState="PreSynthesized" program="simgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="simgen.log" label="Simgen Log File" />
<view inputState="PreSynthesized" program="bitinit" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="bitinit.log" label="BitInit Log File" /> <view inputState="PreSynthesized" program="bitinit" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="bitinit.log" label="BitInit Log File" />
<view inputState="PreSynthesized" program="system" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="spiifc.log" label="System Log File" /> <view inputState="PreSynthesized" program="system" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="spiwrap.log" label="System Log File" />
</viewgroup> </viewgroup>
<viewgroup label="Errors and Warnings" > <viewgroup label="Errors and Warnings" >
<view program="pn" WrapMessages="true" contextTags="EDK_OFF" type="MessageList" hideColumns="Filtered, New" file="_xmsgs/pn_parser.xmsgs" label="Parser Messages" /> <view program="pn" WrapMessages="true" contextTags="EDK_OFF" type="MessageList" hideColumns="Filtered, New" file="_xmsgs/pn_parser.xmsgs" label="Parser Messages" />
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<view inputState="Current" program="fitting" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/cpldfit.xmsgs,_xmsgs/xpwr.xmsgs" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="CPLD_MessageList" hideColumns="Filtered" file="_xmsgs/*.xmsgs" label="All Implementation Messages (CPLD)" /> <view inputState="Current" program="fitting" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/cpldfit.xmsgs,_xmsgs/xpwr.xmsgs" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="CPLD_MessageList" hideColumns="Filtered" file="_xmsgs/*.xmsgs" label="All Implementation Messages (CPLD)" />
</viewgroup> </viewgroup>
<viewgroup label="Detailed Reports" > <viewgroup label="Detailed Reports" >
<view program="xst" contextTags="XST_ONLY,EDK_OFF" hidden="false" type="Report" file="spiifc.syr" label="Synthesis Report" > <view program="xst" contextTags="XST_ONLY,EDK_OFF" hidden="false" type="Report" file="spiwrap.syr" label="Synthesis Report" >
<toc-item title="Top of Report" target="Copyright " searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright " searchDir="Forward" />
<toc-item title="Synthesis Options Summary" target=" Synthesis Options Summary " /> <toc-item title="Synthesis Options Summary" target=" Synthesis Options Summary " />
<toc-item title="HDL Compilation" target=" HDL Compilation " /> <toc-item title="HDL Compilation" target=" HDL Compilation " />
...@@ -80,15 +80,15 @@ ...@@ -80,15 +80,15 @@
<toc-item title="Timing Details" target="Timing Details" subItemLevel="2" /> <toc-item title="Timing Details" target="Timing Details" subItemLevel="2" />
<toc-item title="Cross Clock Domains Report" target="Cross Clock Domains Report:" subItemLevel="2" /> <toc-item title="Cross Clock Domains Report" target="Cross Clock Domains Report:" subItemLevel="2" />
</view> </view>
<view program="synplify" contextTags="SYNPLIFY_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.srr" label="Synplify Report" /> <view program="synplify" contextTags="SYNPLIFY_ONLY,EDK_OFF" hidden="true" type="Report" file="spiwrap.srr" label="Synplify Report" />
<view program="precision" contextTags="PRECISION_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.prec_log" label="Precision Report" /> <view program="precision" contextTags="PRECISION_ONLY,EDK_OFF" hidden="true" type="Report" file="spiwrap.prec_log" label="Precision Report" />
<view inputState="Synthesized" program="ngdbuild" type="Report" file="spiifc.bld" label="Translation Report" > <view inputState="Synthesized" program="ngdbuild" type="Report" file="spiwrap.bld" label="Translation Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Command Line" target="Command Line:" /> <toc-item title="Command Line" target="Command Line:" />
<toc-item title="Partition Status" target="Partition Implementation Status" /> <toc-item title="Partition Status" target="Partition Implementation Status" />
<toc-item title="Final Summary" target="NGDBUILD Design Results Summary:" /> <toc-item title="Final Summary" target="NGDBUILD Design Results Summary:" />
</view> </view>
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" type="Report" file="spiifc_map.mrp" label="Map Report" > <view inputState="Translated" program="map" contextTags="FPGA_ONLY" type="Report" file="spiwrap_map.mrp" label="Map Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Section 1: Errors" target="Section 1 -" searchDir="Backward" /> <toc-item title="Section 1: Errors" target="Section 1 -" searchDir="Backward" />
<toc-item title="Section 2: Warnings" target="Section 2 -" searchDir="Backward" /> <toc-item title="Section 2: Warnings" target="Section 2 -" searchDir="Backward" />
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
<toc-item title="Section 12: Control Set Information" target="Section 12 -" searchDir="Backward" /> <toc-item title="Section 12: Control Set Information" target="Section 12 -" searchDir="Backward" />
<toc-item title="Section 13: Utilization by Hierarchy" target="Section 13 -" searchDir="Backward" /> <toc-item title="Section 13: Utilization by Hierarchy" target="Section 13 -" searchDir="Backward" />
</view> </view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" type="Report" file="spiifc.par" label="Place and Route Report" > <view inputState="Mapped" program="par" contextTags="FPGA_ONLY" type="Report" file="spiwrap.par" label="Place and Route Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Device Utilization" target="Device Utilization Summary:" /> <toc-item title="Device Utilization" target="Device Utilization Summary:" />
<toc-item title="Router Information" target="Starting Router" /> <toc-item title="Router Information" target="Starting Router" />
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
<toc-item title="Timing Results" target="Timing Score:" /> <toc-item title="Timing Results" target="Timing Score:" />
<toc-item title="Final Summary" target="Peak Memory Usage:" /> <toc-item title="Final Summary" target="Peak Memory Usage:" />
</view> </view>
<view inputState="Routed" program="trce" contextTags="FPGA_ONLY" type="Report" file="spiifc.twr" label="Post-PAR Static Timing Report" > <view inputState="Routed" program="trce" contextTags="FPGA_ONLY" type="Report" file="spiwrap.twr" label="Post-PAR Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" /> <toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" /> <toc-item title="Informational Messages" target="INFO:" />
...@@ -124,22 +124,22 @@ ...@@ -124,22 +124,22 @@
<toc-item title="Timing Summary" target="Timing summary:" /> <toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" /> <toc-item title="Trace Settings" target="Trace Settings:" />
</view> </view>
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.rpt" label="CPLD Fitter Report (Text)" > <view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiwrap.rpt" label="CPLD Fitter Report (Text)" >
<toc-item title="Top of Report" target="cpldfit:" searchDir="Forward" /> <toc-item title="Top of Report" target="cpldfit:" searchDir="Forward" />
<toc-item title="Resources Summary" target="** Mapped Resource Summary **" /> <toc-item title="Resources Summary" target="** Mapped Resource Summary **" />
<toc-item title="Pin Resources" target="** Pin Resources **" /> <toc-item title="Pin Resources" target="** Pin Resources **" />
<toc-item title="Global Resources" target="** Global Control Resources **" /> <toc-item title="Global Resources" target="** Global Control Resources **" />
</view> </view>
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.tim" label="CPLD Timing Report (Text)" > <view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiwrap.tim" label="CPLD Timing Report (Text)" >
<toc-item title="Top of Report" target="Performance Summary Report" searchDir="Forward" /> <toc-item title="Top of Report" target="Performance Summary Report" searchDir="Forward" />
<toc-item title="Performance Summary" target="Performance Summary:" /> <toc-item title="Performance Summary" target="Performance Summary:" />
</view> </view>
<view inputState="Routed" program="xpwr" contextTags="EDK_OFF" type="Report" file="spiifc.pwr" label="Power Report" > <view inputState="Routed" program="xpwr" contextTags="EDK_OFF" type="Report" file="spiwrap.pwr" label="Power Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Power summary" target="Power summary" /> <toc-item title="Power summary" target="Power summary" />
<toc-item title="Thermal summary" target="Thermal summary" /> <toc-item title="Thermal summary" target="Thermal summary" />
</view> </view>
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" type="Report" file="spiifc.bgn" label="Bitgen Report" > <view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" type="Report" file="spiwrap.bgn" label="Bitgen Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Bitgen Options" target="Summary of Bitgen Options:" /> <toc-item title="Bitgen Options" target="Summary of Bitgen Options:" />
<toc-item title="Final Summary" target="DRC detected" /> <toc-item title="Final Summary" target="DRC detected" />
...@@ -147,20 +147,20 @@ ...@@ -147,20 +147,20 @@
</viewgroup> </viewgroup>
<viewgroup label="Secondary Reports" > <viewgroup label="Secondary Reports" >
<view inputState="PreSynthesized" program="isim" hidden="if_missing" type="Secondary_Report" file="isim.log" label="ISIM Simulator Log" /> <view inputState="PreSynthesized" program="isim" hidden="if_missing" type="Secondary_Report" file="isim.log" label="ISIM Simulator Log" />
<view inputState="Synthesized" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/synthesis/spiifc_synthesis.nlf" label="Post-Synthesis Simulation Model Report" > <view inputState="Synthesized" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/synthesis/spiwrap_synthesis.nlf" label="Post-Synthesis Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view> </view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/translate/spiifc_translate.nlf" label="Post-Translate Simulation Model Report" > <view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/translate/spiwrap_translate.nlf" label="Post-Translate Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view> </view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_tran_fecn.nlf" label="Post-Translate Formality Netlist Report" /> <view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiwrap_tran_fecn.nlf" label="Post-Translate Formality Netlist Report" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiifc_map.map" label="Map Log File" > <view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiwrap_map.map" label="Map Log File" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Design Information" target="Design Information" /> <toc-item title="Design Information" target="Design Information" />
<toc-item title="Design Summary" target="Design Summary" /> <toc-item title="Design Summary" target="Design Summary" />
</view> </view>
<view inputState="Routed" program="smartxplorer" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="smartxplorer_results/smartxplorer.txt" label="SmartXplorer Report" /> <view inputState="Routed" program="smartxplorer" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="smartxplorer_results/smartxplorer.txt" label="SmartXplorer Report" />
<view inputState="Mapped" program="trce" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_preroute.twr" label="Post-Map Static Timing Report" > <view inputState="Mapped" program="trce" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap_preroute.twr" label="Post-Map Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" /> <toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" /> <toc-item title="Informational Messages" target="INFO:" />
...@@ -171,43 +171,43 @@ ...@@ -171,43 +171,43 @@
<toc-item title="Timing Summary" target="Timing summary:" /> <toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" /> <toc-item title="Trace Settings" target="Trace Settings:" />
</view> </view>
<view inputState="Mapped" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/map/spiifc_map.nlf" label="Post-Map Simulation Model Report" /> <view inputState="Mapped" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/map/spiwrap_map.nlf" label="Post-Map Simulation Model Report" />
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_map.psr" label="Physical Synthesis Report" > <view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap_map.psr" label="Physical Synthesis Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view> </view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Pad_Report" file="spiifc_pad.txt" label="Pad Report" > <view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Pad_Report" file="spiwrap_pad.txt" label="Pad Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view> </view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiifc.unroutes" label="Unroutes Report" > <view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiwrap.unroutes" label="Unroutes Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view> </view>
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_preroute.tsi" label="Post-Map Constraints Interaction Report" > <view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap_preroute.tsi" label="Post-Map Constraints Interaction Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view> </view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.grf" label="Guide Results Report" /> <view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.grf" label="Guide Results Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.dly" label="Asynchronous Delay Report" /> <view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.dly" label="Asynchronous Delay Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.clk_rgn" label="Clock Region Report" /> <view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.clk_rgn" label="Clock Region Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.tsi" label="Post-Place and Route Constraints Interaction Report" > <view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.tsi" label="Post-Place and Route Constraints Interaction Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" /> <toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view> </view>
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_par_fecn.nlf" label="Post-Place and Route Formality Netlist Report" /> <view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiwrap_par_fecn.nlf" label="Post-Place and Route Formality Netlist Report" />
<view inputState="Routed" program="netgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="netgen/par/spiifc_timesim.nlf" label="Post-Place and Route Simulation Model Report" /> <view inputState="Routed" program="netgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="netgen/par/spiwrap_timesim.nlf" label="Post-Place and Route Simulation Model Report" />
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_sta.nlf" label="Primetime Netlist Report" > <view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiwrap_sta.nlf" label="Primetime Netlist Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" /> <toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view> </view>
<view inputState="Routed" program="ibiswriter" hidden="if_missing" type="Secondary_Report" file="spiifc.ibs" label="IBIS Model" > <view inputState="Routed" program="ibiswriter" hidden="if_missing" type="Secondary_Report" file="spiwrap.ibs" label="IBIS Model" >
<toc-item title="Top of Report" target="IBIS Models for" searchDir="Forward" /> <toc-item title="Top of Report" target="IBIS Models for" searchDir="Forward" />
<toc-item title="Component" target="Component " /> <toc-item title="Component" target="Component " />
</view> </view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.lck" label="Back-annotate Pin Report" > <view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.lck" label="Back-annotate Pin Report" >
<toc-item title="Top of Report" target="pin2ucf Report File" searchDir="Forward" /> <toc-item title="Top of Report" target="pin2ucf Report File" searchDir="Forward" />
<toc-item title="Constraint Conflicts Information" target="Constraint Conflicts Information" /> <toc-item title="Constraint Conflicts Information" target="Constraint Conflicts Information" />
</view> </view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.lpc" label="Locked Pin Constraints" > <view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiwrap.lpc" label="Locked Pin Constraints" >
<toc-item title="Top of Report" target="top.lpc" searchDir="Forward" /> <toc-item title="Top of Report" target="top.lpc" searchDir="Forward" />
<toc-item title="Newly Added Constraints" target="The following constraints were newly added" /> <toc-item title="Newly Added Constraints" target="The following constraints were newly added" />
</view> </view>
<view inputState="Translated" program="netgen" contextTags="CPLD_ONLY,EDK_OFF" hidden="if_missing" type="Secondary_Report" file="netgen/fit/spiifc_timesim.nlf" label="Post-Fit Simulation Model Report" /> <view inputState="Translated" program="netgen" contextTags="CPLD_ONLY,EDK_OFF" hidden="if_missing" type="Secondary_Report" file="netgen/fit/spiwrap_timesim.nlf" label="Post-Fit Simulation Model Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="HTML" file="usage_statistics_webtalk.html" label="WebTalk Report" /> <view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="HTML" file="usage_statistics_webtalk.html" label="WebTalk Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="webtalk.log" label="WebTalk Log File" /> <view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="webtalk.log" label="WebTalk Log File" />
</viewgroup> </viewgroup>
......
<?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" >
<header>
<DateModified>2012-03-06T15:48:54</DateModified>
<ModuleName>spiifc</ModuleName>
<SummaryTimeStamp>Unknown</SummaryTimeStamp>
<SavedFilePath>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/iseconfig/spiwrap.xreport</SavedFilePath>
<ImplementationReportsDirectory>C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav\</ImplementationReportsDirectory>
<DateInitialized>2012-03-06T15:48:54</DateInitialized>
<EnableMessageFiltering>false</EnableMessageFiltering>
</header>
<body>
<viewgroup label="Design Overview" >
<view inputState="Unknown" program="implementation" ShowPartitionData="false" type="FPGASummary" file="spiifc_summary.html" label="Summary" >
<toc-item title="Design Overview" target="Design Overview" />
<toc-item title="Design Utilization Summary" target="Design Utilization Summary" />
<toc-item title="Performance Summary" target="Performance Summary" />
<toc-item title="Failing Constraints" target="Failing Constraints" />
<toc-item title="Detailed Reports" target="Detailed Reports" />
</view>
<view inputState="Unknown" program="implementation" contextTags="FPGA_ONLY" hidden="true" type="HTML" file="spiifc_envsettings.html" label="System Settings" />
<view inputState="Translated" program="map" locator="MAP_IOB_TABLE" contextTags="FPGA_ONLY" type="IOBProperties" file="spiifc_map.xrpt" label="IOB Properties" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Control_Sets" file="spiifc_map.xrpt" label="Control Set Information" />
<view inputState="Translated" program="map" locator="MAP_MODULE_HIERARCHY" contextTags="FPGA_ONLY" type="Module_Utilization" file="spiifc_map.xrpt" label="Module Level Utilization" />
<view inputState="Mapped" program="par" locator="CONSTRAINT_TABLE" contextTags="FPGA_ONLY" type="ConstraintsData" file="spiifc.ptwx" label="Timing Constraints" translator="ptwxToTableXML.xslt" />
<view inputState="Mapped" program="par" locator="PAR_PINOUT_BY_PIN_NUMBER" contextTags="FPGA_ONLY" type="PinoutData" file="spiifc_par.xrpt" label="Pinout Report" />
<view inputState="Mapped" program="par" locator="PAR_CLOCK_TABLE" contextTags="FPGA_ONLY" type="ClocksData" file="spiifc_par.xrpt" label="Clock Report" />
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY,EDK_OFF" type="Timing_Analyzer" file="spiifc.twx" label="Static Timing" />
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiifc_html/fit/report.htm" label="CPLD Fitter Report" />
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="spiifc_html/tim/report.htm" label="CPLD Timing Report" />
</viewgroup>
<viewgroup label="XPS Errors and Warnings" >
<view program="platgen" WrapMessages="true" contextTags="EDK_ON" hidden="true" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/platgen.xmsgs" label="Platgen Messages" />
<view program="simgen" WrapMessages="true" contextTags="EDK_ON" hidden="true" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/simgen.xmsgs" label="Simgen Messages" />
<view program="bitinit" WrapMessages="true" contextTags="EDK_ON" hidden="true" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/bitinit.xmsgs" label="BitInit Messages" />
</viewgroup>
<viewgroup label="XPS Reports" >
<view inputState="PreSynthesized" program="platgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="platgen.log" label="Platgen Log File" />
<view inputState="PreSynthesized" program="simgen" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="simgen.log" label="Simgen Log File" />
<view inputState="PreSynthesized" program="bitinit" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="bitinit.log" label="BitInit Log File" />
<view inputState="PreSynthesized" program="system" contextTags="EDK_ON" hidden="true" type="Secondary_Report" file="spiifc.log" label="System Log File" />
</viewgroup>
<viewgroup label="Errors and Warnings" >
<view program="pn" WrapMessages="true" contextTags="EDK_OFF" type="MessageList" hideColumns="Filtered, New" file="_xmsgs/pn_parser.xmsgs" label="Parser Messages" />
<view program="xst" WrapMessages="true" contextTags="XST_ONLY,EDK_OFF" hidden="false" type="MessageList" hideColumns="Filtered" file="_xmsgs/xst.xmsgs" label="Synthesis Messages" />
<view inputState="Synthesized" program="ngdbuild" WrapMessages="true" type="MessageList" hideColumns="Filtered" file="_xmsgs/ngdbuild.xmsgs" label="Translation Messages" />
<view inputState="Translated" program="map" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="_xmsgs/map.xmsgs" label="Map Messages" />
<view inputState="Mapped" program="par" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="_xmsgs/par.xmsgs" label="Place and Route Messages" />
<view inputState="Routed" program="trce" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="_xmsgs/trce.xmsgs" label="Timing Messages" />
<view inputState="Routed" program="xpwr" WrapMessages="true" contextTags="EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered" file="_xmsgs/xpwr.xmsgs" label="Power Messages" />
<view inputState="Routed" program="bitgen" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="_xmsgs/bitgen.xmsgs" label="Bitgen Messages" />
<view inputState="Translated" program="cpldfit" WrapMessages="true" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered" file="_xmsgs/cpldfit.xmsgs" label="Fitter Messages" />
<view inputState="Current" program="implementation" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/map.xmsgs,_xmsgs/par.xmsgs,_xmsgs/trce.xmsgs,_xmsgs/xpwr.xmsgs,_xmsgs/bitgen.xmsgs" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="_xmsgs/*.xmsgs" label="All Implementation Messages" />
<view inputState="Current" program="fitting" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/cpldfit.xmsgs,_xmsgs/xpwr.xmsgs" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="CPLD_MessageList" hideColumns="Filtered" file="_xmsgs/*.xmsgs" label="All Implementation Messages (CPLD)" />
</viewgroup>
<viewgroup label="Detailed Reports" >
<view program="xst" contextTags="XST_ONLY,EDK_OFF" hidden="false" type="Report" file="spiifc.syr" label="Synthesis Report" >
<toc-item title="Top of Report" target="Copyright " searchDir="Forward" />
<toc-item title="Synthesis Options Summary" target=" Synthesis Options Summary " />
<toc-item title="HDL Compilation" target=" HDL Compilation " />
<toc-item title="Design Hierarchy Analysis" target=" Design Hierarchy Analysis " />
<toc-item title="HDL Analysis" target=" HDL Analysis " />
<toc-item title="HDL Parsing" target=" HDL Parsing " />
<toc-item title="HDL Elaboration" target=" HDL Elaboration " />
<toc-item title="HDL Synthesis" target=" HDL Synthesis " />
<toc-item title="HDL Synthesis Report" target="HDL Synthesis Report" searchCnt="2" searchDir="Backward" subItemLevel="1" />
<toc-item title="Advanced HDL Synthesis" target=" Advanced HDL Synthesis " searchDir="Backward" />
<toc-item title="Advanced HDL Synthesis Report" target="Advanced HDL Synthesis Report" subItemLevel="1" />
<toc-item title="Low Level Synthesis" target=" Low Level Synthesis " />
<toc-item title="Partition Report" target=" Partition Report " />
<toc-item title="Final Report" target=" Final Report " />
<toc-item title="Design Summary" target=" Design Summary " />
<toc-item title="Primitive and Black Box Usage" target="Primitive and Black Box Usage:" subItemLevel="1" />
<toc-item title="Device Utilization Summary" target="Device utilization summary:" subItemLevel="1" />
<toc-item title="Partition Resource Summary" target="Partition Resource Summary:" subItemLevel="1" />
<toc-item title="Timing Report" target="Timing Report" subItemLevel="1" />
<toc-item title="Clock Information" target="Clock Information" subItemLevel="2" />
<toc-item title="Asynchronous Control Signals Information" target="Asynchronous Control Signals Information" subItemLevel="2" />
<toc-item title="Timing Summary" target="Timing Summary" subItemLevel="2" />
<toc-item title="Timing Details" target="Timing Details" subItemLevel="2" />
<toc-item title="Cross Clock Domains Report" target="Cross Clock Domains Report:" subItemLevel="2" />
</view>
<view program="synplify" contextTags="SYNPLIFY_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.srr" label="Synplify Report" />
<view program="precision" contextTags="PRECISION_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.prec_log" label="Precision Report" />
<view inputState="Synthesized" program="ngdbuild" type="Report" file="spiifc.bld" label="Translation Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Command Line" target="Command Line:" />
<toc-item title="Partition Status" target="Partition Implementation Status" />
<toc-item title="Final Summary" target="NGDBUILD Design Results Summary:" />
</view>
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" type="Report" file="spiifc_map.mrp" label="Map Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Section 1: Errors" target="Section 1 -" searchDir="Backward" />
<toc-item title="Section 2: Warnings" target="Section 2 -" searchDir="Backward" />
<toc-item title="Section 3: Infos" target="Section 3 -" searchDir="Backward" />
<toc-item title="Section 4: Removed Logic Summary" target="Section 4 -" searchDir="Backward" />
<toc-item title="Section 5: Removed Logic" target="Section 5 -" searchDir="Backward" />
<toc-item title="Section 6: IOB Properties" target="Section 6 -" searchDir="Backward" />
<toc-item title="Section 7: RPMs" target="Section 7 -" searchDir="Backward" />
<toc-item title="Section 8: Guide Report" target="Section 8 -" searchDir="Backward" />
<toc-item title="Section 9: Area Group and Partition Summary" target="Section 9 -" searchDir="Backward" />
<toc-item title="Section 10: Timing Report" target="Section 10 -" searchDir="Backward" />
<toc-item title="Section 11: Configuration String Details" target="Section 11 -" searchDir="Backward" />
<toc-item title="Section 12: Control Set Information" target="Section 12 -" searchDir="Backward" />
<toc-item title="Section 13: Utilization by Hierarchy" target="Section 13 -" searchDir="Backward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" type="Report" file="spiifc.par" label="Place and Route Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Device Utilization" target="Device Utilization Summary:" />
<toc-item title="Router Information" target="Starting Router" />
<toc-item title="Partition Status" target="Partition Implementation Status" />
<toc-item title="Clock Report" target="Generating Clock Report" />
<toc-item title="Timing Results" target="Timing Score:" />
<toc-item title="Final Summary" target="Peak Memory Usage:" />
</view>
<view inputState="Routed" program="trce" contextTags="FPGA_ONLY" type="Report" file="spiifc.twr" label="Post-PAR Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" />
<toc-item title="Warning Messages" target="WARNING:" />
<toc-item title="Timing Constraints" target="Timing constraint:" />
<toc-item title="Derived Constraint Report" target="Derived Constraint Report" />
<toc-item title="Data Sheet Report" target="Data Sheet report:" />
<toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" />
</view>
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.rpt" label="CPLD Fitter Report (Text)" >
<toc-item title="Top of Report" target="cpldfit:" searchDir="Forward" />
<toc-item title="Resources Summary" target="** Mapped Resource Summary **" />
<toc-item title="Pin Resources" target="** Pin Resources **" />
<toc-item title="Global Resources" target="** Global Control Resources **" />
</view>
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="spiifc.tim" label="CPLD Timing Report (Text)" >
<toc-item title="Top of Report" target="Performance Summary Report" searchDir="Forward" />
<toc-item title="Performance Summary" target="Performance Summary:" />
</view>
<view inputState="Routed" program="xpwr" contextTags="EDK_OFF" type="Report" file="spiifc.pwr" label="Power Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Power summary" target="Power summary" />
<toc-item title="Thermal summary" target="Thermal summary" />
</view>
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" type="Report" file="spiifc.bgn" label="Bitgen Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Bitgen Options" target="Summary of Bitgen Options:" />
<toc-item title="Final Summary" target="DRC detected" />
</view>
</viewgroup>
<viewgroup label="Secondary Reports" >
<view inputState="PreSynthesized" program="isim" hidden="if_missing" type="Secondary_Report" file="isim.log" label="ISIM Simulator Log" />
<view inputState="Synthesized" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/synthesis/spiifc_synthesis.nlf" label="Post-Synthesis Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/translate/spiifc_translate.nlf" label="Post-Translate Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_tran_fecn.nlf" label="Post-Translate Formality Netlist Report" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiifc_map.map" label="Map Log File" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Design Information" target="Design Information" />
<toc-item title="Design Summary" target="Design Summary" />
</view>
<view inputState="Routed" program="smartxplorer" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="smartxplorer_results/smartxplorer.txt" label="SmartXplorer Report" />
<view inputState="Mapped" program="trce" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_preroute.twr" label="Post-Map Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" />
<toc-item title="Warning Messages" target="WARNING:" />
<toc-item title="Timing Constraints" target="Timing constraint:" />
<toc-item title="Derived Constraint Report" target="Derived Constraint Report" />
<toc-item title="Data Sheet Report" target="Data Sheet report:" />
<toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" />
</view>
<view inputState="Mapped" program="netgen" hidden="if_missing" type="Secondary_Report" file="netgen/map/spiifc_map.nlf" label="Post-Map Simulation Model Report" />
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_map.psr" label="Physical Synthesis Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Pad_Report" file="spiifc_pad.txt" label="Pad Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="spiifc.unroutes" label="Unroutes Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc_preroute.tsi" label="Post-Map Constraints Interaction Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.grf" label="Guide Results Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.dly" label="Asynchronous Delay Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.clk_rgn" label="Clock Region Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.tsi" label="Post-Place and Route Constraints Interaction Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_par_fecn.nlf" label="Post-Place and Route Formality Netlist Report" />
<view inputState="Routed" program="netgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="netgen/par/spiifc_timesim.nlf" label="Post-Place and Route Simulation Model Report" />
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="spiifc_sta.nlf" label="Primetime Netlist Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Routed" program="ibiswriter" hidden="if_missing" type="Secondary_Report" file="spiifc.ibs" label="IBIS Model" >
<toc-item title="Top of Report" target="IBIS Models for" searchDir="Forward" />
<toc-item title="Component" target="Component " />
</view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.lck" label="Back-annotate Pin Report" >
<toc-item title="Top of Report" target="pin2ucf Report File" searchDir="Forward" />
<toc-item title="Constraint Conflicts Information" target="Constraint Conflicts Information" />
</view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="spiifc.lpc" label="Locked Pin Constraints" >
<toc-item title="Top of Report" target="top.lpc" searchDir="Forward" />
<toc-item title="Newly Added Constraints" target="The following constraints were newly added" />
</view>
<view inputState="Translated" program="netgen" contextTags="CPLD_ONLY,EDK_OFF" hidden="if_missing" type="Secondary_Report" file="netgen/fit/spiifc_timesim.nlf" label="Post-Fit Simulation Model Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="HTML" file="usage_statistics_webtalk.html" label="WebTalk Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="webtalk.log" label="WebTalk Log File" />
</viewgroup>
</body>
</report-views>
<TABLE BORDER CELLSPACING=0 WIDTH='100%'>
<xtag-section name="ParStatistics">
<TR ALIGN=CENTER BGCOLOR='#99CCFF'><TD COLSPAN=1><B>Par Statistics</B></TD></TR>
<TR><TD><xtag-par-property-name>Total Non-vccgnd Signals</xtag-par-property-name>=<xtag-par-property-value>152</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Total Non-vccgnd Design Pins</xtag-par-property-name>=<xtag-par-property-value>555</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Total Non-vccgnd Conns</xtag-par-property-name>=<xtag-par-property-value>555</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Total Non-vccgnd Timing Constrained Conns</xtag-par-property-name>=<xtag-par-property-value>412</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 1 CPU</xtag-par-property-name>=<xtag-par-property-value>5.4 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 2 CPU</xtag-par-property-name>=<xtag-par-property-value>6.1 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 3 CPU</xtag-par-property-name>=<xtag-par-property-value>7.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 4 CPU</xtag-par-property-name>=<xtag-par-property-value>8.8 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 5 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 6 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 7 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 8 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 9 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>Phase 10 CPU</xtag-par-property-name>=<xtag-par-property-value>9.0 sec</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 1</xtag-par-property-name>=<xtag-par-property-value>4.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 2</xtag-par-property-name>=<xtag-par-property-value>9.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 3</xtag-par-property-name>=<xtag-par-property-value>3.7</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 4</xtag-par-property-name>=<xtag-par-property-value>1.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 10</xtag-par-property-name>=<xtag-par-property-value>3.2</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 50</xtag-par-property-name>=<xtag-par-property-value>3.9</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 100</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 500</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 5000</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 20000</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 50000</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>AvgWirelenPerPin Fanout 100000</xtag-par-property-name>=<xtag-par-property-value>0.0</xtag-par-property-value></TD></TR>
<TR><TD><xtag-par-property-name>IRR Gamma</xtag-par-property-name>=<xtag-par-property-value>1.0147</xtag-par-property-value></TD></TR>
</xtag-section>
</TABLE>
03
00
00
00
00
00
00
00
00
\ No newline at end of file
01
FF
F0
33
55
12
34
56
78
9A
\ No newline at end of file
...@@ -21,10 +21,13 @@ ...@@ -21,10 +21,13 @@
<sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="spiifc.xise"/> <sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="spiifc.xise"/>
<files xmlns="http://www.xilinx.com/XMLSchema"/> <files xmlns="http://www.xilinx.com/XMLSchema">
<file xil_pn:fileType="FILE_NCD" xil_pn:name="spiifc_guide.ncd" xil_pn:origination="imported"/>
<file xil_pn:fileType="FILE_NCD" xil_pn:name="spiwrap_guide.ncd" xil_pn:origination="imported"/>
</files>
<transforms xmlns="http://www.xilinx.com/XMLSchema"> <transforms xmlns="http://www.xilinx.com/XMLSchema">
<transform xil_pn:name="TRAN_SubProjectAbstractToPreProxy"> <transform xil_pn:end_ts="1331066936" xil_pn:in_ck="-8467753332869629521" xil_pn:name="TRAN_SubProjectAbstractToPreProxy" xil_pn:start_ts="1331066936">
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
</transform> </transform>
......
...@@ -16,101 +16,122 @@ ...@@ -16,101 +16,122 @@
<files> <files>
<file xil_pn:name="../../hdl/vhdl/spiifc.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="../../hdl/vhdl/spiifc.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="21"/>
</file> </file>
<file xil_pn:name="../../hdl/verilog/user_logic.v" xil_pn:type="FILE_VERILOG"> <file xil_pn:name="../../hdl/verilog/user_logic.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="2"/> <association xil_pn:name="Implementation" xil_pn:seqID="20"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/proc_common_pkg.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/proc_common_pkg.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="3"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="1"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/ipif_pkg.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/ipif_pkg.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="4"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="6"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/or_muxcy.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/or_muxcy.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="5"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="2"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/or_gate128.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/or_gate128.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="6"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="5"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/family_support.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/family_support.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="7"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="3"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/pselect_f.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/pselect_f.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="8"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="4"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/counter_f.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/proc_common_v3_00_a/hdl/vhdl/counter_f.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="9"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="7"/>
<library xil_pn:name="proc_common_v3_00_a"/> <library xil_pn:name="proc_common_v3_00_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/flex_addr_cntr.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/flex_addr_cntr.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="10"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="8"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/addr_reg_cntr_brst_flex.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/addr_reg_cntr_brst_flex.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="11"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="13"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plb_address_decoder.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plb_address_decoder.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="12"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="10"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/burst_support.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/burst_support.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="13"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="11"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/wr_buffer.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/wr_buffer.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="14"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="9"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/be_reset_gen.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/be_reset_gen.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="15"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="12"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plb_slave_attachment.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plb_slave_attachment.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="16"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="14"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/data_mirror_128.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/data_mirror_128.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="17"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="15"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plbv46_slave_burst.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_burst_v1_01_a/hdl/vhdl/plbv46_slave_burst.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="18"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="18"/>
<library xil_pn:name="plbv46_slave_burst_v1_01_a"/> <library xil_pn:name="plbv46_slave_burst_v1_01_a"/>
</file> </file>
<file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/interrupt_control_v2_01_a/hdl/vhdl/interrupt_control.vhd" xil_pn:type="FILE_VHDL"> <file xil_pn:name="C:/Xilinx/13.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/interrupt_control_v2_01_a/hdl/vhdl/interrupt_control.vhd" xil_pn:type="FILE_VHDL">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="19"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="19"/>
<library xil_pn:name="interrupt_control_v2_01_a"/> <library xil_pn:name="interrupt_control_v2_01_a"/>
</file> </file>
<file xil_pn:name="ipcore_dir/buffermem.xco" xil_pn:type="FILE_COREGEN"> <file xil_pn:name="ipcore_dir/buffermem.xco" xil_pn:type="FILE_COREGEN">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="20"/> <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="1"/> <association xil_pn:name="Implementation" xil_pn:seqID="17"/>
</file>
<file xil_pn:name="../../../../../../src/spi_base/spiifc.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
<association xil_pn:name="Implementation" xil_pn:seqID="16"/>
</file>
<file xil_pn:name="../../../../../../src/spi_base/spiwrap.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file>
<file xil_pn:name="../../../../../../test/spi_base/spiifc_tb.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
<association xil_pn:name="PostMapSimulation" xil_pn:seqID="92"/>
<association xil_pn:name="PostRouteSimulation" xil_pn:seqID="92"/>
<association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="92"/>
</file>
<file xil_pn:name="../../../../../../test/spi_base/spiifc_tb2.v" xil_pn:type="FILE_VERILOG">
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="0"/>
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file>
<file xil_pn:name="../../../../../ucf/atlys/spiwrap.ucf" xil_pn:type="FILE_UCF">
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file> </file>
<file xil_pn:name="ipcore_dir/buffermem.xise" xil_pn:type="FILE_COREGENISE"> <file xil_pn:name="ipcore_dir/buffermem.xise" xil_pn:type="FILE_COREGENISE">
<association xil_pn:name="Implementation" xil_pn:seqID="0"/> <association xil_pn:name="Implementation" xil_pn:seqID="0"/>
...@@ -174,6 +195,7 @@ ...@@ -174,6 +195,7 @@
<property xil_pn:name="Enable Cyclic Redundancy Checking (CRC) spartan6" xil_pn:value="true" xil_pn:valueState="default"/> <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC) spartan6" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable External Master Clock spartan6" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Enable External Master Clock spartan6" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Hardware Co-Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Enable Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Enable Multi-Pin Wake-Up Suspend Mode spartan6" xil_pn:value="false" xil_pn:valueState="default"/>
...@@ -298,6 +320,7 @@ ...@@ -298,6 +320,7 @@
<property xil_pn:name="Package" xil_pn:value="csg324" xil_pn:valueState="non-default"/> <property xil_pn:name="Package" xil_pn:value="csg324" xil_pn:valueState="non-default"/>
<property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Perform Timing-Driven Packing and Placement" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Place &amp; Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/> <property xil_pn:name="Place &amp; Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/>
<property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/> <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/>
<property xil_pn:name="Place MultiBoot Settings into Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Place MultiBoot Settings into Bitstream spartan6" xil_pn:value="false" xil_pn:valueState="default"/>
...@@ -313,6 +336,7 @@ ...@@ -313,6 +336,7 @@
<property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Power Reduction Xst" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/> <property xil_pn:name="Preferred Language" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Project Description" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/> <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/>
<property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/> <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/> <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
...@@ -349,7 +373,8 @@ ...@@ -349,7 +373,8 @@
<property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/> <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/> <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/>
<property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/> <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="Selected Module Instance Name" xil_pn:value="/spiifc_tb" xil_pn:valueState="non-default"/>
<property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="work.spiifc_tb" xil_pn:valueState="non-default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
...@@ -360,14 +385,14 @@ ...@@ -360,14 +385,14 @@
<property xil_pn:name="Shift Register Minimum Size spartan6" xil_pn:value="2" xil_pn:valueState="default"/> <property xil_pn:name="Shift Register Minimum Size spartan6" xil_pn:value="2" xil_pn:valueState="default"/>
<property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/> <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/> <property xil_pn:name="Simulation Model Target" xil_pn:value="Verilog" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/> <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1s" xil_pn:valueState="non-default"/>
<property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/> <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/> <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/> <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
<property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/> <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/>
<property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/> <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
<property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="Default" xil_pn:valueState="default"/> <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="work.spiifc_tb" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/> <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/> <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/>
<property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/> <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/>
...@@ -418,7 +443,7 @@ ...@@ -418,7 +443,7 @@
<!-- --> <!-- -->
<!-- The following properties are for internal use only. These should not be modified.--> <!-- The following properties are for internal use only. These should not be modified.-->
<!-- --> <!-- -->
<property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="" xil_pn:valueState="default"/> <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="Module|spiifc_tb" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_DesignName" xil_pn:value="spiifc" xil_pn:valueState="non-default"/> <property xil_pn:name="PROP_DesignName" xil_pn:value="spiifc" xil_pn:valueState="non-default"/>
<property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/> <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan6" xil_pn:valueState="default"/>
<property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/> <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/>
...@@ -434,7 +459,9 @@ ...@@ -434,7 +459,9 @@
<property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/> <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/>
</properties> </properties>
<bindings/> <bindings>
<binding xil_pn:location="/spiwrap" xil_pn:name="../../../../../ucf/atlys/spiwrap.ucf"/>
</bindings>
<libraries> <libraries>
<library xil_pn:name="interrupt_control_v2_01_a"/> <library xil_pn:name="interrupt_control_v2_01_a"/>
......
INTSTYLE=ise
INFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\spiifc.ncd
OUTFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\spiifc.bit
FAMILY=Spartan6
PART=xc6slx45-2csg324
WORKINGDIR=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav
LICENSE=ISE
USER_INFO=179841373_174164856_206270303_042
XILINX-XDB 0.1 STUB 0.1 ASCII
XILINX-XDM V1.6
###5028:XlxV32DM 3ff1 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###4884:XlxV32DM 3fff 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###4492:XlxV32DM 3fff 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###4748:XlxV32DM 3fff 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###5032:XlxV32DM 3fff 1390eNq1W12y46gO3swsgD/bkNRspasAQ1W/TD/049Ts/SJASCa2T3Jm7kN3jmVHBgH6pE/Kz6Af4vH8GevHL6VW+PwnaCvLH6b8E3//IdP+UKt//iXz8pDpWQTpYVb3/EM5+/Dr82eQVcuVss1OyjbdleVvKHOzsr0pU+JTZb/1qsof6u8/QWuRPn/EDGLjSBz188cuilRtuUiXIrXiEfTzTzBS/Szza58OPn8EU3VY1GGrjhDrCwVJ6wuDB9XKM9Wyq5ZdteyqZXlagpLNdCXlqarErSBeFInhjc7Xh4dUtIetqw9LEsPDtjxcrCv2h3zI/VHMIf/+Swnx0Hl9VkMvopk1qudPC4b8Q+btoRb/LNeGri1cL3Sd4Loa/KfdSByez1/W1fWwod2N4+6q4Us7XUu4TnS9wHWuX3OCxKqIXV3yX26pd71vH4EeggF59q4M1/SuDd7l2bvKSMc+MlV3aEojzXLbykOxzTLSLDf4brR0DeOOjq5NsUJs81Bt4EGu8PzKdviS2w4vK9d2uN37Djd8KaSUh6WQIh+WQkpzthRSFqv9ksn0A6bgzsKPvugHDM+Xf+984YxgW6lZ59p06uFO+pRcelep9Gay07p1tyK2rrXYtw1VlxkrMkx8Hgwn/GS4hIbr9uriUA2l+/tXeGDj73f4ftPf7za2UGpaKD0tFL1f6tP3S/HsC8fWS65uMsOm+nbxV9vl+DI17RL9PL7VPA/bBQbLt4udlhadu/72dpGrn6cU+5QCTimenwCFhrzY+LMhz6fk5il1iDHfndJvlVLzt7Bctnhhv1dpRql/WFPgBxy5yoZJi2+OywF+ygGtcFMOVf1UHX4Uhx8Ru39XB6CxXInsSmRXIruSATRK0qCLedpjBS1A0crms5X5pIpjltSXuTf97Q8Yh+tvgD9+wH///JZes8kCAts6/ITDPwCzUvRwH5DDATmmpwwoVpgTO5MuRbrVdwqULlXNj7KvwO5sumB37+vDXFqe9aEqDkxaFPtYNSDow7QrMtely2AsXR4uLqvMsb4X5upEVbXQl8pc6lPFy8CtuLMvmv5FGG+1dsVNvLv0u2UsttqqwgreVf2uKndrIBL5kHS/C3HAXofk0fwbDxrUsJtF82/N/FpYulXHABOXLjEpqKn72y5MWpbKbtVITHkdSV3WFJkUZg67OzUFP2A/1YFvELzA5i4BEfzD0GXroYscocuv2A+qO2B3UDWMUCc+B7x1O/aee/ML/OxHrIwYNNbN1fdnIDHuz+JrIgRcGv7hmG0fs6Ixtzjpp/UsCAl9c5wAtTwLhM8jYOVw8xVt5D3iTlJa/zEHEFPQaKSEoNEVLJQRZ+H6LNb3gsZwFTT2a/c8Ro/xNXpkEZvB6LBfQ0h6Giay6LIGijwCbGpvAsUaGPJAMd0Gij0+7K+AId0FittloBhknepZgJgQoKx/K0B8gf4vcBJCA8JJo/Y5SewbUKuP8zrZkOkkmkoYSNiVTer7kziCvXT2InxKI9oO58Y057HGFD612O4q2jYqXeTGWn9uQ+cu4qbkr+ZyEXdemFLdmdJoeZGaa/Nxam404nnZGOAvW7SwryRlyD0QBR5GYJWOSxE1CalAimhpRqhTDleFNtjd1XMbBEOQkDOUjn1jYJvcNZMithmdmBRRzAjHpAMzN8ukiING4VxcD8XA2m18sgdFIKFYyRhF3xiBldyZnhEmSaeZFONQ8OskHcHT5pn0GJ2aZiSIRmFj108tCVdUcOwp2Z+S/SkMO40UaPDEYlejMCx2FpcodRMYSbdGdC139oURo0qnmBTjOSMyk2I8JzfHpD0iLBu9sSS2uCvpEPB8B7ztQ5bkmJHfcSLqC07ETqi3TKinJ9QDSPH2hR6JR3qkgeE+0SfpiIpH1MMQi8Hb+jW8Ffe1XeBall+44kviY7Yuc1biCrz2jx1v29dnVICzyASkcyZAfMEEmC+Sc3mHLs1HLSfgtqNH9uYcVMVnSHCMDFSNe8wJEDlkZhx/7zLN503EYb6ybJ3hK8kzg5S87c6k6G1VwLA8OAYoeuBM0UVJ3+6YdCR9QTApOh+tEilm+GWZFNMtFSKTjvTOcw0IVFkzISKdMYLN7RWLQDqwSDFpRxKBSJcQSThX3LJ6fCdmkAwzZLOcr5m75pZDp6uzQhUsD2/Hpr9vuP8GJShF6JBoe9BAaZVOkSke9EFPEJuUki1pwG+nclKVQL8dut+2lG5tjZClY1rzjdd4qacpM0/Xnfs2Of99yk/S5MlvPLedPDccNld9z3DgbnLgfnLYYUpjGK7sV2nNSzaz/Fe0t32lvVU0kw8dWQ1WiVw+96H6eRrMmnMSd47H5cFjrmEmlbsnB8bxlnxXX5DvX9Cqx3HoVhE6KcAt/4JWnfF1Q8JAjIQtnxPmYYKp/Yow5wT7eiDYiTnPL3lCR6VtoIN/Cx1oLQ9LGK/Y4/3/wh4fsU+rcMEer99mj/WOUBBN88Dq4JejIfTTe2RSRD8k16oQAaJRhChFgGjUIEoRKLVckRIMLMtQlSvXIPbI7wbO7zZv3h9oNHVgCQHR4pElE1kzKaYj4L1JSlyuYlIEAGUtkw42WDENnb8MnT7Og5PcKvn6IywHinWtwPpn5hA/2Nm1RhT1JlHBmRSOCAJhMHPIbIwhmqibkOAwalqO+qUtH6nVwCIJoksDT3kzk2IkwQjXQKEEI2cDxS16BA1F2i3nO/MrNW4Mz6vRu2DzL1vW1xWIlkmRYk9ta0GoUG24NWYU2NySgpZZj1J07GDtCKxfAXCb6LwGcDcAGCYAjGe83jG1MVNqcwaJHPu2ifmzh9SnYWPRntpH4/l0TVG2Ez8pBaYVmz2HRPO8J/4moqc50hsXd0wr1nX2sNgdIpC12sR7ldcZSMI0sHQHJHKdScNB2gvsBnH2LbhuM/4CWnpN5az5xL3PuWvkJUAdK27F4WtyP2PlPtDscaqErM1DxXR0QmuvLWUWCO+KvkRxN3m1tZeVMvOzozQEd3W/S745MI3lXEfDY3YYMpURFEq14ClCZGKqHeaVSUeFNHsmfXGuVTrSsyiYFJ2LjguToiNKW3M5BRfa/JrPKThb21+KhTP6nL37HM+IHTVVJm6InjhVNuxU2UjPq76YA/ljpxRCX6UQ95WO5TVz8JMjZHWPC7d4xfeYl/Rgfd5XPZYrWugZZG1cOssHLDq/ssbvcCofOz9z5/x0khfEkTGfM/abviCOLEaLVn3Lw79QYG/FrkldtP2Z5RtzkxeVlYyG2rZT30wk2NtdMHlOHhEIMiaPm5vs+NEemeGBeClGR+nYOYpsmDvFeDwb8sA6CRKSs5YkxJgVvWI2vJg8gurUWxCTYkF1zR3xrux3R1MH5hKwPiyWXZkU/ayOiUaECDCKw/VRcr6ZSQfvs3uS8oiX6UUMGYwZnHzKO0a5BqSvLQQgHZlL0iRtCJp6kUTvWNFOknc0DEavHMRBbRGjB1KMrfPGhCO01lw6QuvRHQNSavTgLxuhdTIk7YNWOGiEuaRYaD3K8NXUA+cGZQkmGTmi50bFHDEzO2GK+E9QBT/LKgUoa+wd/Rw2f3biPcojPXbAPr0dsU8vR+zT6oh9Wh+xT0NFAgsf+1zVN+LIkul4ZMm0P2KdrmE/pQVmO6YFZj2t8ht9zAaMGbCHBFiIcxKwqGMSsMhTXszkI96ZRHinwj65MG27C8MeSZtvXZj50IXdlg5UnL23kZ3Cx8ja69ta8ly5kJ/UxaWd0d90JMoD/cUXbOAtqXOd8RxGIecYZOmjGB2m+d+M4q2sQ9q5VLX0RteMHRHb8+fWNsSm+5fbVlW1R+PQf1T22XAPOqF/tpIgS+7oYCzE7UsnQ6RnD1dPBfc30CMt14Molx0TDmomaCYd1MwgnWB4w0+NAr5iKUFQTDrKuj6QlAZX0TJkmk4xCPbik3bJUGiwIlYS5sktsXcOeMx8JJhaqDi4NslKSqNwEyWDhFElipIggSo/UbKGvpEAWsXcfuI2IjTemTmRBCQaEaQDYQdhCNJXbhCko0kvMA1ERjEmUp6VtaIciAlJtJhb3lIHmfhly5u4aHmL6YOeN0pWBe95EyRlEUKUJKaeNxWhz9CWsYwGgNwnsVOeOOVHN4nRIIk6PkyUUNDVlgfmoScKcfyGJrIO+osfz9TlW06Im4zVjTUx3kZPvM0ZT4MVdmJlGmN5Vv21mEU4N/H7V3X632Dovok0r/vhRgTDQNMsCHrTbNjpVqNX0jhqEBWH2q9TFZJXqmPGu0u/O8J13Mn17ujTxl1fpcdOmP76sbuSJb6hqq58gyxLfjgKptFWZRel13LkOpEMx3bIYPS8RTBh3vFwuIWZ/SYS4Ekh8e7wguEJZNxISp5gNFzXh7szgd9q2DJJ/1APjxOVfaL5jsp9qWXmI5XbqN4bKnduVtmfdBztVK+cOoKN9hf0644kpxfvERD6vqnjJRZRd6VBFdbZFfTjtWMVz63n63xHbPyWmPXAC9hJE5bErLE+MCmeotG0B7ajdE96S2JCbIT8KqW+icykA2lpD3rehM+fHYhIW9APVC5my7WeEIHbS7gJVduEq5i4vXtKz336C7d/Vfyf27bUJ8V/amXmB+Sm+P9+d9c6HZ/t5VStr1V/+pWbXy7oPSmQ+tr8R5SN+M6v3YS++LWbHrgaPi60+/WiiSCPCrT9b5oIZs8tjpMzF00ERnx7cu2AnrpF+UVRanaL5ovJyk96zmQ9M2e1IDu6CvR5r9t5o8g9KhKx4gSj8BSXjvZaalM7/CSkxg8Qc5RN2H8tZXjtnPWbCRZ2DPKvfK39EMywMJY61wQLYAZn5xfGoiG5WKUjxh/0kl8odxiFmCoducNg/fzCWhAi1zuoqIxxmcq8lOOYdKAAtilX6WATtSLpWf0cDNLNSHynwLgejEv1aYHEnV877Vbud9pN0y3i6WJkQ6KCtmBSgiDJpARXzCz9lRrbDzCcha1AnXeZDZLyqhyZdLQLjoYDv/JfgS1M2tNO4OZrJ9z/AEzBlDo=###6044:XlxV32DM 3fff 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###2916:XlxV32DM 3fff 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###2492:XlxV32DM 3fff 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###2524:XlxV32DM 3fff 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###2740:XlxV32DM 3fff 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###2792:XlxV32DM 3fff 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###2744:XlxV32DM 3fff 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###2864:XlxV32DM 3fff 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###2696:XlxV32DM 3fff a70eNq1W1uy4ygM3RIPyY8765gF5CbxZ//NV2r2PrxMACOQjadudVccSwIEHB2EAk/YYIYVtPn3xg2UnoXAxfzZz1KIf//983qqH/Gzfv7IDX+klH/9Izf4UX/9LTf9o5bHRxtJ/XAWADdczJPE1fyvhYBvCxsigvlKwBueWhr79v1RC6IEOokJpO8bKZ1KHEek9FrVpHp3tADWK+b5CYgLPA9WkjcVbe1bMp+lxiE7S7BjxjRgx4/GvtOldOHXth3vVz8uOWAH3Gj8uKYhO5xx9f2D0Q6UreZ2wj6RpMXvmhpZfX7e6xbeqNw+kVVNP5KjpvU3JpreitvvmbTYpVHjrJWRFlHzKN0cV7CgTnpj75mgkSKMg9q56rLmfNHrbvU53NQGN7eAm+KV4SaA/BhBrOImWn8FBDy3JgpNnAmk9TM7RQk0Vt/FLOxtOblLvQSHd9V2D7O9JiurPttTsmpFbJuS5vgQqLVhVqu2673hFSS8Akm72llqjekrQfeypel6SfQQiB72NTWx9r1PcdcMVhpxPPVEtZ2V106PL3TbkZx2qrO8nlnBwZrKoszrsOds1IBcorofSAuEZrZjXSutSIiMSLjGSDgN2PE44COzHLDDY0AcOxCZywjj8Bjg/aOHmMsU/aMG7Og4X2qoP36WvH/GmBRG/4wxVo5/OAx6jv6RQ3ZE9I+6iEkNdK5ITyTDw4sYP8XTHRiWIoWnKc+CpTx/P6angmIpkQkpYoyi6x15KuoVmjEySNoLzXaA5tYxLqvuGVR3z6ClJ1YyikjbIxdHIKAc5QUr4Xu3s2RFRbnuPK0sL3DiIzFPzR7229GMfXbuDASX14b1J7LXYCHN6CFnbaiKL8WB06jYdtm7ThuEVspA2mOSlYxJ0qZF8s6p2feDsnBHXMabMgEc/iNi3IEhvlHvz3l+OEd+ODauNcZlHLBzXyZpif2BITsyzhcO8aicJ1znURwerm/yj75pPXN4lIr+ATY+rY3zeBNxzG4w77q4szKQK7d3LbrIi9Ha7RbH3NAwN+2J2woZcVvA8rZHY2ac15ke0eycnY/lc4j29azTV4I+rysS3XQX3bz2a19VzlPTj/z5/TgPCe8hrVZ7cTGRFxczvMF+a4yjCabuG0fyGilMWkeSaciz7cCFdvBCO3ihHV1YrS173dWkaJK6qDk1PdnqrSaOV3B5nHB5nHB5nHh5nHh5nMgc53VqtocOjcsQhdnBUA3Z0THVIRt2+pRhiqEVhuzw/AM3+Qdu8o++yT/6Jv/os/5xwWZOwvIzvy2XH3dV3rhSDNTChdPy2V5HhDaWbxsPnbUxve3F0qMxU663zNBPXnIQsrXDxggV91RqCYeVPWW1JqOfcuKztYgPXKCC3NHXaSnHf6lsje6NXdJ/L6pdEtb575H4bzmxQuHECv01bcx70YjKGpHPl22FvPyMyYVzqdO+pm4UcsBN6Ww8fey5boeTzsab0uucmLxE/+DlGSLTWtUCAUyuBusHBgypDtm5cKM5InZSoPVLbkiSmjK53D41vpg4pXl9O/GMjCRmkb52u/eZIMSaI6zmICywELaR4CZk311/tIszxMD6Ft+SnxiJXomf8lj/MHEYST/hLUdwpI7g1UggGTZy6ex7voWatrM6wrCXpDBxX6XvxPvbCRaEt7AgvIkF4UUWtJnRgx+9ykcvt8UG2Dy5YbNYc21jOSjw900lCOqgg+G2SYR7RUpWx/ftGh0rq4papRzqNljNYEsdWYBqzVW6rU/qUPfgKrVm/gyQFxb395mFqG8WhXmXvDXaRgLBJVT61tv6G7beHvOY3/peib3KRXXIyRLrh6juW4zGxKoeXL0koypx7wWjBo/h27b3qvqwuXH4d8rLm3ez8+PXeiZT6thnI+vHNVPzdK6u2ELCS3wBUc4ZJKyPWjiKc8paD7Us/VwFQWClmXb9c8kpntZ00atTsj/Cgf4lv0CrRQ60v28LtJoFtJiA53FRp9ApkxIACg7lDocBmmVyNZxYN8tNOZbhP/0GbeWXaLwqdhsu06YB9J3o1MAUh0DT6zdAz34aBc5go7H9g0QLQFV3wyBru2DykwhRB7u9SBc1uUnmUcBr+dUAlrwAerJ8vgH0sjOv254qAb38rPKYP44E0aCnGKA3M0Fvru/AeMqbyv3WKLsvQly8UquG5Hidphr05oq30585xPzmSydwmP8aSK4ufaRYcNirc8K8yilCp+oBYgBRlXBK3dARCafk8UDX/2RzBSs38UDK+v/FA3V3CyysDbAc/F0u0+DlRlU9aJ4vuLwt0T/wttReClK6fB4GraL+2W0i+ILW8igOb7UUbJwzXvr1ldQGyN+cCT57TLC/IqhAVZerpaV0k9PJG7VqyVHevDnNuEt2+JsS+Cvy2r8PPhuUEaxUdcNgXsIb4e8omYKePvyM5gh6InCB/Mc0mBzgGkAZ4pdgcb+zQHme+10Ay1u4HzB4g2TyBtko+W7p84rDh8C05e8DJ6QAVZXPw4Ba3MS4bZncusq8in3VPcADBuBpJuDp5CRVK4BakhNUWiwlWsyuwfwVUSjLgbclWc87vNmbZQx+xBzeJnW8tluT34gmh1fymLscJCliK2O2UTUrra3s2qg3b9XyNa8rjtKXLjXoWkaV8dpahXbNr4qQPXireWSwb/8D0BndAg==###2624:XlxV32DM 3fff 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###2708:XlxV32DM 305a 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
\ No newline at end of file
INTSTYLE=ise
INFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\spiwrap.ncd
OUTFILE=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\spiwrap.bit
FAMILY=Spartan6
PART=xc6slx45-2csg324
WORKINGDIR=C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav
LICENSE=ISE
USER_INFO=179841373_174164856_206270303_042
XILINX-XDB 0.1 STUB 0.1 ASCII
XILINX-XDM V1.6
###5160:XlxV32DM 3ff2 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###3160:XlxV32DM 3fef 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###5016:XlxV32DM 3fff 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###5200:XlxV32DM 3fff 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###4788:XlxV32DM 3fff 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###6120:XlxV32DM 3fff 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###3020:XlxV32DM 3fff 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###2540:XlxV32DM 3fff 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###2312:XlxV32DM 3fff 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###1420:XlxV32DM 3fff 574eNq9Wm124zAIvJIQ6MPn2U3vf4SVnW7rvkYBNDz9aF8bWwwMaIRjhHNKJQvJX8lMXCWXJqXk8iEih9D4rKc0Pr3uKSxHESk8rpfOmUs5xm+53fEhf+RD2lg77pXHsNrGZ+OvIgasBmLRuMuOVkG04wsrqVgFxOLzbjOagGj3rOloDGfNw2RGmXRgERxZcqAluEbsaAdcIdWMhSqIcDdjNTgue31UOF/2uAocl702BK56e20wzKEdK4edZOpeDjzHNCxdNbr5ZJmemePTMlbx+E0gXrGe0SWZ6qMr2iEOtBwYW1LRcCabAy0FMsnTOmlnhcBZKzdl1LAyXP/JjIVmjBxYCebwO180rQ4a9SHnNTg2duIlmEuDbn3hZbwmXWgZ3m2+6NDsZZNOfuOh2TPs7+t8O+sKr8zDgYZGZsfKhi5c2+MetA7XSHOgNXh/e2KrKJoDq6D16MCSwI5ER4O7LQdWDux+dDQKPE11tATvNHuNEKwi7FBjglVEHHkjWEXq7RzV0WAVMfVA/9EkUP11tByoxxraEaaQGhJ+plUzVgtULA1LAhVEw+LAHa3WIYxlPKnHMy8e2b06dLTIJ1FS0SKZ1NGcJ9poO7LF/vjhYSvDeTJ0ObfvsPJCNMkcDYU9QWjvsDjgua850PC+ppvR8FOEHEziJwk7sFrg3tXRaqAu6WglUHN1NIGZ9FQkB57KOloO7Ot1NFxJPFWCf/tXHW/68SckDxqqJLETE33rxETfODHRt05M9K0TE33rxETfODHRt05M9I0TE33jxETfODHRN05M9I0TE33jxETfODHRN05M9G0TEz10YoKHhVL69XTXrxo+PnvX25WfKOP/c2ed/J/XcumAnXJxe15jyE69ojmvyRs7VbXDF9Z5jSA7Nn5qED81iJ8WxE8L4qe5+bkq/5eNJnXsg8e1u2Y23q9ML1c+o1hZ+eTx98r6BmeWVauVJ6Y9/rocf12Ov4TEP6wULo2zPGOzx3ytPFeNH9Jjvn039lOh30dP9+gXbTTYAl950my84o4mUVXYp3zP6HJcPcAPXuKmTqumL9mjSeXnAK7ZxLU9RjLZuzw6r7/2acmjmT48n1YiWW+hjPFdhQL8ex/tM9+YMllsNNiCpkw8WbeqTBafNGWyxdUD/OBFbnhJmXhaKWvKZOMpheb/ele1YG+mKxxqjVz7liasR2exhdrTdPiYM/Z866h4Q66ON6v913Ex/hC55pCP853ppydkWPn+jBOTDXSHeBmpS/YqEKFHoxrMmN5b6JkrJj8iu7gjUJe81gjZtS/ZOxxZnJ3kYqjT95VQla6Lp98TrFWnxSe9M6CAzkC3UUz8WnWgmJgxq4ojulkGy5I/q32A7hGF+qN3EhTcBVCoAnj9O2K8+wdLPmSN###1948:XlxV32DM 3fff 784eNq9WtuS2yAM/SUuEtjb7+gHpBv7sW99yvTfC9jx4sSAQOrO7Ew2MQhJ5+gCGBZcwVhrZ6VghgUhfkcDGu644mSNRZzDcx2ee3Dh9yX9/wlr+D6DTbOijKkhQV3Owvjg4ndjYVDetXZgjag8FLVWN7QzCR+6PNvw3ibviWdJVyBw4sqWko2qg2OqYJca0gkKOmGTtW2doOnruEaSEJ8X9PAEGfX4QxInebacZXD0oPPGNmMDmnbphk4UGZ4twVpHkEHPQZokr66TaUQUza5JQA875BtXjPhpSJ4u1iMn4CclaqMmyatnnjGvQzHHz8Je96Ieo+USun4ta51AZnLszOQEMpMTzkxOIDM5gczkBDKT6+rNgKSTZGZyApnJdXbbekheKa9YUWm6K251wevSKHpReS0Lseyx0MC1Y88XeIQF65Cgj4cFwnMMc8MI3DXRhJn1GgckGdwI6fWIG5LnGBZK7kdRIPeiwL6IgD5bgu3wRSlbMOLxSh5bI9v0rG8i7Jp6+M7KyNepzTovUPE9+/SkL76R5BlytuiwbmyPX9JntL63NdKi+rQ7BC9c3X3nuZWsfrMsmiR5nNPk3p67zXkneprcKw9FraVVb8nTZPxv+XD0NJlWK5RwVPJrT/s0GQS6JhDI8E7AFiekx+BpcpJiM2Re9h8n3XrnqMs5jjqnchvBm10/jbICdzTIluFIt1ejflBUrAdmK9I9ztja77dAeR7g3fZBswebxdgz6nnNtoJyj41ET4xiOAtoMAlwkIMk5T7SESPpf+uBAnq0eaWE9eAxgxfpnsUuL4CqZ1cZ0vnFyJkk2Q+OlSUca21grQ2DVcazVvVizOVFELKsQAErUMAKEOAPL4aBXSFo96dWYK+jBfY6VmCvowVkWDa2fb1gT4bA8ry/f3/flfpQH/bxW6+3D5h//NHr/GF+/NTr9LGYR7DtdkgN2mIgtzWvtm3PtzvoMNoDYhgDEKzcuHLolVm+IiLEM4Xwa9L/FCHpM8pJ+trw36s/KyNfV8H15eyCMIf4psflLPTxDu18Z5DmweGxbQTa0u1ZRNuGJ4gTfL7Ozp8UZ8dnqWInlHWG8nRGWUmgbKoofw/GvQiP4BvnLOitAfN22vCFzzYi2lN+K1UxEN5mbwi7HWGTIXw7IbziI+R9LsK6irD/FoR9J8J+AGGfxa9uxq+unD4BOfcjK9rx4ILeuWAzLvw6ceG+SES7qnLBfAsXTCcXzAAXTEQaPhMXbJkLaUT5htWx0HUHus+KDQFd2NA19oSuhtvDzgHe64PTN/MiYQIFwh/tyn0fi9srK5ljnkbc39aMBIHziGs9enQGjJQlXmJuYzd4lj2wCQ3bbl/5goZycLjsaaImox6KUyHUgoxNQh5shaDVIWwhPrPndqwY/NIrJtriF21v+EJb/05bKFJg6zbwPS4rFDigxNiuP6kj5QhNcoQRBJu+YmtPsWzhUelVLGUHvvuVFC4ZvpsGS5qpDm1KvVWZDZsMU+mq/J5HdTHnZvISYV1G2OVMWL8+bHTwrbGYeX4Gh4VRTeUux12o6Drc4zK3Uo4yl0K+bFta1xk7dMYsUK+Jk1MuVYT3LVdxO4zVzddECZpqXp+YgT51hrlmprKB9VKA+CxA7ucAcfdngNAgz8l2DXheTnWi6Zb/VSWvbFlfvVSLIpFxwolAZUsm8vPN3vJZgDtGJDoeTZUpk363ymSktx2kH31/aD7X0aIMXoWbO6mo2FV8YMVE/ikj/+eZ/AiR/IpMfpXR2ZbJnzk/z+ctOrcKHr3UqkTW68MPm9HZP8t52i+UyzkeI96DtEnnKhWxp/WpyuDQGbOtMIVcM5PMA+slKs8ZlX+9dObTqTMvnpDnuTbvxdrNRt77lXs49/UO3VCz4S7ewcubDf9eTYqdrj/ZSp63j/0HgoirNQ==###2428:XlxV32DM 3fff 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###2444:XlxV32DM 3fff 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###2764:XlxV32DM 3fff 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###2740:XlxV32DM 3fff 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###2648:XlxV32DM 3fff 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###2516:XlxV32DM 290e 9bceNq1WkuS3DYMvUwOIPBP9saVbLzwIq4kB6B+S1d5kWy65u4BqW7pSU1K6lHiqR6pCRAEHj4EOVZWeSXVqLVWUkjZNGrQQpKa3j1/U3rUjmlCe/6tZw6dOTo1qklG4h15npKmOFOtuGFFLR8rNsV5C4fOHK8ryixbMkVrp7rXVZlLaVrzlHV5R++CJlr6lQwpTZbhD1Ez2ba1DTi7rPl69mSnK2AxyTGHckgyStrxT7bmgiQ52cnvVJSzRNO+nCmaEk1KsevlfTmTZzJCW+3XsXZol5rtYjkfHz96Q6EJ5v6DxhicvP1Now/i9heNLlD0dwZVyrgKLFkNrOyAwrJC2ktK06w0cvcv+gClpkUOjj0Q1YkwExBmpqqRPqERPTSSOfBfUc4FS3U59UQFW9rDZLJXU1UX9NxR+VjCsVwGMjJlKdruWqFfytdBlD3kiZcVj6JzqMxbyrWdSh2Py2rJpne1XTaJnHQCkq5ZJ53tU9KJTdLtVHMe0w+j6iDqB/zHe2RljXmfo8N9jiqgvbVeQYLdS9pHQtLxTnlRC11P1N09Ukh3qVS4OZndheJloXTRlR1pQfzijrTaaXNySE4OOSVHu96RHN15T407W0BCTx0UO/FG+k4lutbjydM9XlP1vTz0/TS7zxiJB0YKMBK7GL16JKEtDrKEXuIc5hd5nzWoitFcg2oYuUsYuQdGYsZIM0bDhFFcx5Ec4p2nbIusmZNRp52qquoWmrPz1E4TqJ+N4vPJxuidVNd7fAUX+eqBqMw7WfLqTlW0tcZ9FpmpMX1dx+Yde5opKj0HfXKm/OQ8VQlxs5k5PDARn9WvoqGBVKKTfdjZmeqz8yoldYvJs0jQJ9fZOyxjBu3ngnsjF9yOJ8s2ljZvUz2M6stbrTl9GBXP4n9JzuYQ+SJHnT6u185R70o6p5H9Dy4QzkqS4DN1wTJobC/po+YrFrGjj718MXLarvlM/9L8bjLrqC0285n+2T4aOFu167PV2KazlT1/tpo3N1VIfwOnq8TxLHElbsbtLLcSWih6QCEfkG7nDZVVzKokLdxDoYA9ud3M8eB+dLtvnJQyTvvz8IRUuwRw763IBh4d5uXutcPRrVzeTk7cvTZvIlVKiOO71xpq4sLdq543BXnQbB7JcfMNpb5wrlTzTafckXPmXCnmQqUehcEuZ6YurgqDN3e2INZPH1OJOThX+urJp8T5zEm5c/E35eTenQ20IAe3D/ZSmV1dnWY0HaDpVmiafLiKB20aHbZp4o02rdaqX7u9n1vKtF1lq/1idRxPWZ3qt5y33/ebU5hf5C15y1e2Zrn9O0119pQ5T6sj3DY0n7D6/duGPav1znHps1aX7qFasJrWVru61diwqwO7ffVwXeJ81dpVW7Dj6HbQ6k43JlIlP9NksZxbJyboZiEohQQHBAKCgRlyQILNhGWgA04xAmc3gAgBhN4AQSMBZ7iFoBTBGgYJHggeCBpndECI3UKION4HetrV5IFxbahq5TITl2rVMm5xXC/jGsfB/AbHwRdofOs3mrVgAoLRbk1A1xCq3NHCSTygCSKHwFea2rVMLQBYgojRQiyEEccBth7HAbYWxwEeapBgt6qA0gMyvugMcdUh47hh1COsDT7TmA4kkQBWk0ECeJ8UEsxmUd+D3xG5DoK7B/fpoQUChJweYYaHGDKNhXSAcQlO6MBg48HgHmd4cE8PSJgRvOFBKdugUgCRJYDIw+LWQ4B7iDHbAVQaXG57yB0DM5wEdTsA1ylwnO6QAJBoCFinQd1uQAKsoaGmONRKQwy4AZJIg5+8gjWMRAKEsAd/eKzgHmdgLHtYPDZYr5BASGiQAP6wsHi0YIdxSICkNxEJELqmQwK41gC6scNgR3UxGHoIn7aBxTUhAUQpWLxFrCyo2xrIG+uQAKIsirIIIkR7O4BWHYDYKYzdxY6Pf/4kl03kn+b+R9qgogjEctL/oxCjCJJE392+khtuP4kTpVUuFZcmcBTdv5Jvbr+Qa4MTt1YOY6Y0QBmDGmaOj1YZKrE4YJGNLbG0yOJkiaVDFlWU0i8s6d+XL7/dB5061JHU6Ace+PXe3mnMAAcReqfDwMX4J43m9sGEXLKCZ8LABApDM/LH8Ts/qedPyx+eJNRzkoipDDCSgZ3AdSrefhFRBWWTQBcfK/HRjLc0xrmDYfI8LrnaeM7UPqkZLNlgOfRtpGD7MThtg3MU3GCDb4cQaeBOVISWs6DlCttGHdrBh3bsQ8cZ3hkZOuv4PMbfPT+j3K4qeVEVBL+6WKJp7sFYfy4qGyKbzXXKcLBZ1iY6/vRDSQKryptaF2eicCkJWGgWLU3PDSEHmEhQyeDH9GT54vZNxNRwf2OL5f2na24/hOfE4kds01ZXJlCNkOOAV3eP1dkojiMbtCysTv/L6hxzv9+/MzbN7TsLIQ6bJn35ydGVvg3cZrr0cBwf/PDTo0tIpZchwcUv3D4wZulFZt/wi062pJds0I1X+henbCWU
\ No newline at end of file
...@@ -74,5 +74,5 @@ ...@@ -74,5 +74,5 @@
</TABLE> </TABLE>
<br><center><b>Date Generated:</b> 03/01/2012 - 09:27:04</center> <br><center><b>Date Generated:</b> 03/07/2012 - 09:22:39</center>
</BODY></HTML> </BODY></HTML>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/spiifc_tb_isim_beh1.wdb" id="1" type="auto">
<top_modules>
<top_module name="glbl" />
<top_module name="spiifc_tb" />
</top_modules>
</db_ref>
</db_ref_list>
<WVObjectSize size="19" />
<wvobject fp_name="/spiifc_tb/SPI_MISO" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_MISO</obj_property>
<obj_property name="ObjectShortName">SPI_MISO</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/txMemAddr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">txMemAddr[11:0]</obj_property>
<obj_property name="ObjectShortName">txMemAddr[11:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/txMemData" type="array" db_ref_id="1">
<obj_property name="ElementShortName">txMemData[7:0]</obj_property>
<obj_property name="ObjectShortName">txMemData[7:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/rcMemAddr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcMemAddr[11:0]</obj_property>
<obj_property name="ObjectShortName">rcMemAddr[11:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/rcMemData" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcMemData[7:0]</obj_property>
<obj_property name="ObjectShortName">rcMemData[7:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/rcMemWE" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">rcMemWE</obj_property>
<obj_property name="ObjectShortName">rcMemWE</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/debug_out" type="array" db_ref_id="1">
<obj_property name="ElementShortName">debug_out[7:0]</obj_property>
<obj_property name="ObjectShortName">debug_out[7:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/Reset" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">Reset</obj_property>
<obj_property name="ObjectShortName">Reset</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/SysClk" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SysClk</obj_property>
<obj_property name="ObjectShortName">SysClk</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/SPI_CLK" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_CLK</obj_property>
<obj_property name="ObjectShortName">SPI_CLK</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/SPI_MOSI" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_MOSI</obj_property>
<obj_property name="ObjectShortName">SPI_MOSI</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/SPI_SS" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_SS</obj_property>
<obj_property name="ObjectShortName">SPI_SS</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/SPI_CLK_en" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_CLK_en</obj_property>
<obj_property name="ObjectShortName">SPI_CLK_en</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/fdRcBytes" type="array" db_ref_id="1">
<obj_property name="ElementShortName">fdRcBytes[31:0]</obj_property>
<obj_property name="ObjectShortName">fdRcBytes[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/fdTxBytes" type="array" db_ref_id="1">
<obj_property name="ElementShortName">fdTxBytes[31:0]</obj_property>
<obj_property name="ObjectShortName">fdTxBytes[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/dummy" type="array" db_ref_id="1">
<obj_property name="ElementShortName">dummy[31:0]</obj_property>
<obj_property name="ObjectShortName">dummy[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/currRcByte" type="array" db_ref_id="1">
<obj_property name="ElementShortName">currRcByte[31:0]</obj_property>
<obj_property name="ObjectShortName">currRcByte[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/rcBytesNotEmpty" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcBytesNotEmpty[31:0]</obj_property>
<obj_property name="ObjectShortName">rcBytesNotEmpty[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb/rcBytesStr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcBytesStr[80:1]</obj_property>
<obj_property name="ObjectShortName">rcBytesStr[80:1]</obj_property>
</wvobject>
</wave_config>
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/spiifc_tb2_isim_beh1.wdb" id="1" type="auto">
<top_modules>
<top_module name="glbl" />
<top_module name="spiifc_tb2" />
</top_modules>
</db_ref>
</db_ref_list>
<WVObjectSize size="19" />
<wvobject fp_name="/spiifc_tb2/SPI_MISO" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_MISO</obj_property>
<obj_property name="ObjectShortName">SPI_MISO</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/txMemAddr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">txMemAddr[11:0]</obj_property>
<obj_property name="ObjectShortName">txMemAddr[11:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/txMemData" type="array" db_ref_id="1">
<obj_property name="ElementShortName">txMemData[7:0]</obj_property>
<obj_property name="ObjectShortName">txMemData[7:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/rcMemAddr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcMemAddr[11:0]</obj_property>
<obj_property name="ObjectShortName">rcMemAddr[11:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/rcMemData" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcMemData[7:0]</obj_property>
<obj_property name="ObjectShortName">rcMemData[7:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/rcMemWE" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">rcMemWE</obj_property>
<obj_property name="ObjectShortName">rcMemWE</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/debug_out" type="array" db_ref_id="1">
<obj_property name="ElementShortName">debug_out[7:0]</obj_property>
<obj_property name="ObjectShortName">debug_out[7:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/Reset" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">Reset</obj_property>
<obj_property name="ObjectShortName">Reset</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/SysClk" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SysClk</obj_property>
<obj_property name="ObjectShortName">SysClk</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/SPI_CLK" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_CLK</obj_property>
<obj_property name="ObjectShortName">SPI_CLK</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/SPI_MOSI" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_MOSI</obj_property>
<obj_property name="ObjectShortName">SPI_MOSI</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/SPI_SS" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_SS</obj_property>
<obj_property name="ObjectShortName">SPI_SS</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/SPI_CLK_en" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">SPI_CLK_en</obj_property>
<obj_property name="ObjectShortName">SPI_CLK_en</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/fdRcBytes" type="array" db_ref_id="1">
<obj_property name="ElementShortName">fdRcBytes[31:0]</obj_property>
<obj_property name="ObjectShortName">fdRcBytes[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/fdTxBytes" type="array" db_ref_id="1">
<obj_property name="ElementShortName">fdTxBytes[31:0]</obj_property>
<obj_property name="ObjectShortName">fdTxBytes[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/dummy" type="array" db_ref_id="1">
<obj_property name="ElementShortName">dummy[31:0]</obj_property>
<obj_property name="ObjectShortName">dummy[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/currRcByte" type="array" db_ref_id="1">
<obj_property name="ElementShortName">currRcByte[31:0]</obj_property>
<obj_property name="ObjectShortName">currRcByte[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/rcBytesNotEmpty" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcBytesNotEmpty[31:0]</obj_property>
<obj_property name="ObjectShortName">rcBytesNotEmpty[31:0]</obj_property>
</wvobject>
<wvobject fp_name="/spiifc_tb2/rcBytesStr" type="array" db_ref_id="1">
<obj_property name="ElementShortName">rcBytesStr[80:1]</obj_property>
<obj_property name="ObjectShortName">rcBytesStr[80:1]</obj_property>
</wvobject>
</wave_config>
xst -intstyle ise -ifn "C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/user_logic.xst" -ofn "C:/Users/mjlyons/workspace/vSPI/projnav/xps/pcores/spiifc_v1_00_a/devl/projnav/user_logic.syr"
This source diff could not be displayed because it is too large. You can view the blob instead.
verilog work "../../../../../../src/spi_base/spiifc.v"
verilog work "ipcore_dir/buffermem.v"
verilog work "../../hdl/verilog/user_logic.v"
Release 13.2 - xst O.61xd (nt64)
Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved.
--> Parameter TMPDIR set to xst/projnav.tmp
Total REAL time to Xst completion: 0.00 secs
Total CPU time to Xst completion: 0.27 secs
--> Parameter xsthdpdir set to xst
Total REAL time to Xst completion: 0.00 secs
Total CPU time to Xst completion: 0.28 secs
--> Reading design: user_logic.prj
TABLE OF CONTENTS
1) Synthesis Options Summary
2) HDL Parsing
3) HDL Elaboration
4) HDL Synthesis
4.1) HDL Synthesis Report
5) Advanced HDL Synthesis
5.1) Advanced HDL Synthesis Report
6) Low Level Synthesis
7) Partition Report
8) Design Summary
8.1) Primitive and Black Box Usage
8.2) Device utilization summary
8.3) Partition Resource Summary
8.4) Timing Report
8.4.1) Clock Information
8.4.2) Asynchronous Control Signals Information
8.4.3) Timing Summary
8.4.4) Timing Details
8.4.5) Cross Clock Domains Report
=========================================================================
* Synthesis Options Summary *
=========================================================================
---- Source Parameters
Input File Name : "user_logic.prj"
Input Format : mixed
Ignore Synthesis Constraint File : NO
---- Target Parameters
Output File Name : "user_logic"
Output Format : NGC
Target Device : xc6slx45-2-csg324
---- Source Options
Top Module Name : user_logic
Automatic FSM Extraction : YES
FSM Encoding Algorithm : Auto
Safe Implementation : No
FSM Style : LUT
RAM Extraction : Yes
RAM Style : Auto
ROM Extraction : Yes
Shift Register Extraction : YES
ROM Style : Auto
Resource Sharing : YES
Asynchronous To Synchronous : NO
Shift Register Minimum Size : 2
Use DSP Block : Auto
Automatic Register Balancing : No
---- Target Options
LUT Combining : Auto
Reduce Control Sets : Auto
Add IO Buffers : YES
Global Maximum Fanout : 100000
Add Generic Clock Buffer(BUFG) : 16
Register Duplication : YES
Optimize Instantiated Primitives : NO
Use Clock Enable : Auto
Use Synchronous Set : Auto
Use Synchronous Reset : Auto
Pack IO Registers into IOBs : Auto
Equivalent register Removal : YES
---- General Options
Optimization Goal : Speed
Optimization Effort : 1
Power Reduction : NO
Keep Hierarchy : No
Netlist Hierarchy : As_Optimized
RTL Output : Yes
Global Optimization : AllClockNets
Read Cores : YES
Write Timing Constraints : NO
Cross Clock Analysis : NO
Hierarchy Separator : /
Bus Delimiter : <>
Case Specifier : Maintain
Slice Utilization Ratio : 100
BRAM Utilization Ratio : 100
DSP48 Utilization Ratio : 100
Auto BRAM Packing : NO
Slice Utilization Ratio Delta : 5
---- Other Options
Cores Search Directories : {"ipcore_dir" }
=========================================================================
=========================================================================
* HDL Parsing *
=========================================================================
Analyzing Verilog file \"C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v\" into library work
Parsing module <spiifc>.
Analyzing Verilog file \"C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\ipcore_dir\buffermem.v\" into library work
Parsing module <buffermem>.
Analyzing Verilog file \"C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\hdl\verilog\user_logic.v\" into library work
Parsing module <user_logic>.
=========================================================================
* HDL Elaboration *
=========================================================================
WARNING:HDLCompiler:1016 - "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\hdl\verilog\user_logic.v" Line 196: Port douta is not connected to this instance
WARNING:HDLCompiler:1016 - "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\hdl\verilog\user_logic.v" Line 212: Port dina is not connected to this instance
WARNING:HDLCompiler:1016 - "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\hdl\verilog\user_logic.v" Line 228: Port debug_out is not connected to this instance
Elaborating module <user_logic>.
Elaborating module <buffermem>.
WARNING:HDLCompiler:1499 - "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\devl\projnav\ipcore_dir\buffermem.v" Line 39: Empty module <buffermem> remains a black box.
Elaborating module <spiifc>.
WARNING:HDLCompiler:413 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 123: Result of 32-bit expression is truncated to fit in 1-bit target.
WARNING:HDLCompiler:413 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 124: Result of 32-bit expression is truncated to fit in 12-bit target.
WARNING:HDLCompiler:1127 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 145: Assignment to ssTurnOnReg ignored, since the identifier is never used
WARNING:HDLCompiler:413 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 190: Result of 13-bit expression is truncated to fit in 12-bit target.
WARNING:HDLCompiler:413 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 192: Result of 32-bit expression is truncated to fit in 3-bit target.
WARNING:HDLCompiler:413 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 218: Result of 13-bit expression is truncated to fit in 12-bit target.
WARNING:HDLCompiler:1127 - "C:\Users\mjlyons\workspace\vSPI\src\spi_base\spiifc.v" Line 164: Assignment to cmd ignored, since the identifier is never used
WARNING:HDLCompiler:552 - "C:\Users\mjlyons\workspace\vSPI\projnav\xps\pcores\spiifc_v1_00_a\hdl\verilog\user_logic.v" Line 212: Input port dina[7] is not connected on this instance
=========================================================================
* HDL Synthesis *
=========================================================================
Synthesizing Unit <user_logic>.
Related source file is "c:/users/mjlyons/workspace/vspi/projnav/xps/pcores/spiifc_v1_00_a/hdl/verilog/user_logic.v".
C_SLV_AWIDTH = 32
C_SLV_DWIDTH = 32
C_NUM_REG = 16
C_NUM_MEM = 2
C_NUM_INTR = 1
WARNING:Xst:647 - Input <Bus2IP_Addr<0:19>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
WARNING:Xst:647 - Input <Bus2IP_Addr<30:31>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
WARNING:Xst:647 - Input <Bus2IP_BurstLength<0:8>> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
WARNING:Xst:647 - Input <Bus2IP_Burst> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
INFO:Xst:3210 - "c:/users/mjlyons/workspace/vspi/projnav/xps/pcores/spiifc_v1_00_a/hdl/verilog/user_logic.v" line 196: Output port <douta> of the instance <mosiMem> is unconnected or connected to loadless signal.
INFO:Xst:3210 - "c:/users/mjlyons/workspace/vspi/projnav/xps/pcores/spiifc_v1_00_a/hdl/verilog/user_logic.v" line 228: Output port <debug_out> of the instance <spi> is unconnected or connected to loadless signal.
Found 1-bit register for signal <slv_reg0<0>>.
Found 1-bit register for signal <slv_reg0<1>>.
Found 1-bit register for signal <slv_reg0<2>>.
Found 1-bit register for signal <slv_reg0<3>>.
Found 1-bit register for signal <slv_reg0<4>>.
Found 1-bit register for signal <slv_reg0<5>>.
Found 1-bit register for signal <slv_reg0<6>>.
Found 1-bit register for signal <slv_reg0<7>>.
Found 1-bit register for signal <slv_reg0<8>>.
Found 1-bit register for signal <slv_reg0<9>>.
Found 1-bit register for signal <slv_reg0<10>>.
Found 1-bit register for signal <slv_reg0<11>>.
Found 1-bit register for signal <slv_reg0<12>>.
Found 1-bit register for signal <slv_reg0<13>>.
Found 1-bit register for signal <slv_reg0<14>>.
Found 1-bit register for signal <slv_reg0<15>>.
Found 1-bit register for signal <slv_reg0<16>>.
Found 1-bit register for signal <slv_reg0<17>>.
Found 1-bit register for signal <slv_reg0<18>>.
Found 1-bit register for signal <slv_reg0<19>>.
Found 1-bit register for signal <slv_reg0<20>>.
Found 1-bit register for signal <slv_reg0<21>>.
Found 1-bit register for signal <slv_reg0<22>>.
Found 1-bit register for signal <slv_reg0<23>>.
Found 1-bit register for signal <slv_reg0<24>>.
Found 1-bit register for signal <slv_reg0<25>>.
Found 1-bit register for signal <slv_reg0<26>>.
Found 1-bit register for signal <slv_reg0<27>>.
Found 1-bit register for signal <slv_reg0<28>>.
Found 1-bit register for signal <slv_reg0<29>>.
Found 1-bit register for signal <slv_reg0<30>>.
Found 1-bit register for signal <slv_reg0<31>>.
Found 1-bit register for signal <slv_reg1<0>>.
Found 1-bit register for signal <slv_reg1<1>>.
Found 1-bit register for signal <slv_reg1<2>>.
Found 1-bit register for signal <slv_reg1<3>>.
Found 1-bit register for signal <slv_reg1<4>>.
Found 1-bit register for signal <slv_reg1<5>>.
Found 1-bit register for signal <slv_reg1<6>>.
Found 1-bit register for signal <slv_reg1<7>>.
Found 1-bit register for signal <slv_reg1<8>>.
Found 1-bit register for signal <slv_reg1<9>>.
Found 1-bit register for signal <slv_reg1<10>>.
Found 1-bit register for signal <slv_reg1<11>>.
Found 1-bit register for signal <slv_reg1<12>>.
Found 1-bit register for signal <slv_reg1<13>>.
Found 1-bit register for signal <slv_reg1<14>>.
Found 1-bit register for signal <slv_reg1<15>>.
Found 1-bit register for signal <slv_reg1<16>>.
Found 1-bit register for signal <slv_reg1<17>>.
Found 1-bit register for signal <slv_reg1<18>>.
Found 1-bit register for signal <slv_reg1<19>>.
Found 1-bit register for signal <slv_reg1<20>>.
Found 1-bit register for signal <slv_reg1<21>>.
Found 1-bit register for signal <slv_reg1<22>>.
Found 1-bit register for signal <slv_reg1<23>>.
Found 1-bit register for signal <slv_reg1<24>>.
Found 1-bit register for signal <slv_reg1<25>>.
Found 1-bit register for signal <slv_reg1<26>>.
Found 1-bit register for signal <slv_reg1<27>>.
Found 1-bit register for signal <slv_reg1<28>>.
Found 1-bit register for signal <slv_reg1<29>>.
Found 1-bit register for signal <slv_reg1<30>>.
Found 1-bit register for signal <slv_reg1<31>>.
Found 1-bit register for signal <slv_reg2<0>>.
Found 1-bit register for signal <slv_reg2<1>>.
Found 1-bit register for signal <slv_reg2<2>>.
Found 1-bit register for signal <slv_reg2<3>>.
Found 1-bit register for signal <slv_reg2<4>>.
Found 1-bit register for signal <slv_reg2<5>>.
Found 1-bit register for signal <slv_reg2<6>>.
Found 1-bit register for signal <slv_reg2<7>>.
Found 1-bit register for signal <slv_reg2<8>>.
Found 1-bit register for signal <slv_reg2<9>>.
Found 1-bit register for signal <slv_reg2<10>>.
Found 1-bit register for signal <slv_reg2<11>>.
Found 1-bit register for signal <slv_reg2<12>>.
Found 1-bit register for signal <slv_reg2<13>>.
Found 1-bit register for signal <slv_reg2<14>>.
Found 1-bit register for signal <slv_reg2<15>>.
Found 1-bit register for signal <slv_reg2<16>>.
Found 1-bit register for signal <slv_reg2<17>>.
Found 1-bit register for signal <slv_reg2<18>>.
Found 1-bit register for signal <slv_reg2<19>>.
Found 1-bit register for signal <slv_reg2<20>>.
Found 1-bit register for signal <slv_reg2<21>>.
Found 1-bit register for signal <slv_reg2<22>>.
Found 1-bit register for signal <slv_reg2<23>>.
Found 1-bit register for signal <slv_reg2<24>>.
Found 1-bit register for signal <slv_reg2<25>>.
Found 1-bit register for signal <slv_reg2<26>>.
Found 1-bit register for signal <slv_reg2<27>>.
Found 1-bit register for signal <slv_reg2<28>>.
Found 1-bit register for signal <slv_reg2<29>>.
Found 1-bit register for signal <slv_reg2<30>>.
Found 1-bit register for signal <slv_reg2<31>>.
Found 1-bit register for signal <slv_reg3<0>>.
Found 1-bit register for signal <slv_reg3<1>>.
Found 1-bit register for signal <slv_reg3<2>>.
Found 1-bit register for signal <slv_reg3<3>>.
Found 1-bit register for signal <slv_reg3<4>>.
Found 1-bit register for signal <slv_reg3<5>>.
Found 1-bit register for signal <slv_reg3<6>>.
Found 1-bit register for signal <slv_reg3<7>>.
Found 1-bit register for signal <slv_reg3<8>>.
Found 1-bit register for signal <slv_reg3<9>>.
Found 1-bit register for signal <slv_reg3<10>>.
Found 1-bit register for signal <slv_reg3<11>>.
Found 1-bit register for signal <slv_reg3<12>>.
Found 1-bit register for signal <slv_reg3<13>>.
Found 1-bit register for signal <slv_reg3<14>>.
Found 1-bit register for signal <slv_reg3<15>>.
Found 1-bit register for signal <slv_reg3<16>>.
Found 1-bit register for signal <slv_reg3<17>>.
Found 1-bit register for signal <slv_reg3<18>>.
Found 1-bit register for signal <slv_reg3<19>>.
Found 1-bit register for signal <slv_reg3<20>>.
Found 1-bit register for signal <slv_reg3<21>>.
Found 1-bit register for signal <slv_reg3<22>>.
Found 1-bit register for signal <slv_reg3<23>>.
Found 1-bit register for signal <slv_reg3<24>>.
Found 1-bit register for signal <slv_reg3<25>>.
Found 1-bit register for signal <slv_reg3<26>>.
Found 1-bit register for signal <slv_reg3<27>>.
Found 1-bit register for signal <slv_reg3<28>>.
Found 1-bit register for signal <slv_reg3<29>>.
Found 1-bit register for signal <slv_reg3<30>>.
Found 1-bit register for signal <slv_reg3<31>>.
Found 1-bit register for signal <slv_reg4<0>>.
Found 1-bit register for signal <slv_reg4<1>>.
Found 1-bit register for signal <slv_reg4<2>>.
Found 1-bit register for signal <slv_reg4<3>>.
Found 1-bit register for signal <slv_reg4<4>>.
Found 1-bit register for signal <slv_reg4<5>>.
Found 1-bit register for signal <slv_reg4<6>>.
Found 1-bit register for signal <slv_reg4<7>>.
Found 1-bit register for signal <slv_reg4<8>>.
Found 1-bit register for signal <slv_reg4<9>>.
Found 1-bit register for signal <slv_reg4<10>>.
Found 1-bit register for signal <slv_reg4<11>>.
Found 1-bit register for signal <slv_reg4<12>>.
Found 1-bit register for signal <slv_reg4<13>>.
Found 1-bit register for signal <slv_reg4<14>>.
Found 1-bit register for signal <slv_reg4<15>>.
Found 1-bit register for signal <slv_reg4<16>>.
Found 1-bit register for signal <slv_reg4<17>>.
Found 1-bit register for signal <slv_reg4<18>>.
Found 1-bit register for signal <slv_reg4<19>>.
Found 1-bit register for signal <slv_reg4<20>>.
Found 1-bit register for signal <slv_reg4<21>>.
Found 1-bit register for signal <slv_reg4<22>>.
Found 1-bit register for signal <slv_reg4<23>>.
Found 1-bit register for signal <slv_reg4<24>>.
Found 1-bit register for signal <slv_reg4<25>>.
Found 1-bit register for signal <slv_reg4<26>>.
Found 1-bit register for signal <slv_reg4<27>>.
Found 1-bit register for signal <slv_reg4<28>>.
Found 1-bit register for signal <slv_reg4<29>>.
Found 1-bit register for signal <slv_reg4<30>>.
Found 1-bit register for signal <slv_reg4<31>>.
Found 1-bit register for signal <slv_reg5<0>>.
Found 1-bit register for signal <slv_reg5<1>>.
Found 1-bit register for signal <slv_reg5<2>>.
Found 1-bit register for signal <slv_reg5<3>>.
Found 1-bit register for signal <slv_reg5<4>>.
Found 1-bit register for signal <slv_reg5<5>>.
Found 1-bit register for signal <slv_reg5<6>>.
Found 1-bit register for signal <slv_reg5<7>>.
Found 1-bit register for signal <slv_reg5<8>>.
Found 1-bit register for signal <slv_reg5<9>>.
Found 1-bit register for signal <slv_reg5<10>>.
Found 1-bit register for signal <slv_reg5<11>>.
Found 1-bit register for signal <slv_reg5<12>>.
Found 1-bit register for signal <slv_reg5<13>>.
Found 1-bit register for signal <slv_reg5<14>>.
Found 1-bit register for signal <slv_reg5<15>>.
Found 1-bit register for signal <slv_reg5<16>>.
Found 1-bit register for signal <slv_reg5<17>>.
Found 1-bit register for signal <slv_reg5<18>>.
Found 1-bit register for signal <slv_reg5<19>>.
Found 1-bit register for signal <slv_reg5<20>>.
Found 1-bit register for signal <slv_reg5<21>>.
Found 1-bit register for signal <slv_reg5<22>>.
Found 1-bit register for signal <slv_reg5<23>>.
Found 1-bit register for signal <slv_reg5<24>>.
Found 1-bit register for signal <slv_reg5<25>>.
Found 1-bit register for signal <slv_reg5<26>>.
Found 1-bit register for signal <slv_reg5<27>>.
Found 1-bit register for signal <slv_reg5<28>>.
Found 1-bit register for signal <slv_reg5<29>>.
Found 1-bit register for signal <slv_reg5<30>>.
Found 1-bit register for signal <slv_reg5<31>>.
Found 1-bit register for signal <slv_reg6<0>>.
Found 1-bit register for signal <slv_reg6<1>>.
Found 1-bit register for signal <slv_reg6<2>>.
Found 1-bit register for signal <slv_reg6<3>>.
Found 1-bit register for signal <slv_reg6<4>>.
Found 1-bit register for signal <slv_reg6<5>>.
Found 1-bit register for signal <slv_reg6<6>>.
Found 1-bit register for signal <slv_reg6<7>>.
Found 1-bit register for signal <slv_reg6<8>>.
Found 1-bit register for signal <slv_reg6<9>>.
Found 1-bit register for signal <slv_reg6<10>>.
Found 1-bit register for signal <slv_reg6<11>>.
Found 1-bit register for signal <slv_reg6<12>>.
Found 1-bit register for signal <slv_reg6<13>>.
Found 1-bit register for signal <slv_reg6<14>>.
Found 1-bit register for signal <slv_reg6<15>>.
Found 1-bit register for signal <slv_reg6<16>>.
Found 1-bit register for signal <slv_reg6<17>>.
Found 1-bit register for signal <slv_reg6<18>>.
Found 1-bit register for signal <slv_reg6<19>>.
Found 1-bit register for signal <slv_reg6<20>>.
Found 1-bit register for signal <slv_reg6<21>>.
Found 1-bit register for signal <slv_reg6<22>>.
Found 1-bit register for signal <slv_reg6<23>>.
Found 1-bit register for signal <slv_reg6<24>>.
Found 1-bit register for signal <slv_reg6<25>>.
Found 1-bit register for signal <slv_reg6<26>>.
Found 1-bit register for signal <slv_reg6<27>>.
Found 1-bit register for signal <slv_reg6<28>>.
Found 1-bit register for signal <slv_reg6<29>>.
Found 1-bit register for signal <slv_reg6<30>>.
Found 1-bit register for signal <slv_reg6<31>>.
Found 1-bit register for signal <slv_reg7<0>>.
Found 1-bit register for signal <slv_reg7<1>>.
Found 1-bit register for signal <slv_reg7<2>>.
Found 1-bit register for signal <slv_reg7<3>>.
Found 1-bit register for signal <slv_reg7<4>>.
Found 1-bit register for signal <slv_reg7<5>>.
Found 1-bit register for signal <slv_reg7<6>>.
Found 1-bit register for signal <slv_reg7<7>>.
Found 1-bit register for signal <slv_reg7<8>>.
Found 1-bit register for signal <slv_reg7<9>>.
Found 1-bit register for signal <slv_reg7<10>>.
Found 1-bit register for signal <slv_reg7<11>>.
Found 1-bit register for signal <slv_reg7<12>>.
Found 1-bit register for signal <slv_reg7<13>>.
Found 1-bit register for signal <slv_reg7<14>>.
Found 1-bit register for signal <slv_reg7<15>>.
Found 1-bit register for signal <slv_reg7<16>>.
Found 1-bit register for signal <slv_reg7<17>>.
Found 1-bit register for signal <slv_reg7<18>>.
Found 1-bit register for signal <slv_reg7<19>>.
Found 1-bit register for signal <slv_reg7<20>>.
Found 1-bit register for signal <slv_reg7<21>>.
Found 1-bit register for signal <slv_reg7<22>>.
Found 1-bit register for signal <slv_reg7<23>>.
Found 1-bit register for signal <slv_reg7<24>>.
Found 1-bit register for signal <slv_reg7<25>>.
Found 1-bit register for signal <slv_reg7<26>>.
Found 1-bit register for signal <slv_reg7<27>>.
Found 1-bit register for signal <slv_reg7<28>>.
Found 1-bit register for signal <slv_reg7<29>>.
Found 1-bit register for signal <slv_reg7<30>>.
Found 1-bit register for signal <slv_reg7<31>>.
Found 1-bit register for signal <slv_reg8<0>>.
Found 1-bit register for signal <slv_reg8<1>>.
Found 1-bit register for signal <slv_reg8<2>>.
Found 1-bit register for signal <slv_reg8<3>>.
Found 1-bit register for signal <slv_reg8<4>>.
Found 1-bit register for signal <slv_reg8<5>>.
Found 1-bit register for signal <slv_reg8<6>>.
Found 1-bit register for signal <slv_reg8<7>>.
Found 1-bit register for signal <slv_reg8<8>>.
Found 1-bit register for signal <slv_reg8<9>>.
Found 1-bit register for signal <slv_reg8<10>>.
Found 1-bit register for signal <slv_reg8<11>>.
Found 1-bit register for signal <slv_reg8<12>>.
Found 1-bit register for signal <slv_reg8<13>>.
Found 1-bit register for signal <slv_reg8<14>>.
Found 1-bit register for signal <slv_reg8<15>>.
Found 1-bit register for signal <slv_reg8<16>>.
Found 1-bit register for signal <slv_reg8<17>>.
Found 1-bit register for signal <slv_reg8<18>>.
Found 1-bit register for signal <slv_reg8<19>>.
Found 1-bit register for signal <slv_reg8<20>>.
Found 1-bit register for signal <slv_reg8<21>>.
Found 1-bit register for signal <slv_reg8<22>>.
Found 1-bit register for signal <slv_reg8<23>>.
Found 1-bit register for signal <slv_reg8<24>>.
Found 1-bit register for signal <slv_reg8<25>>.
Found 1-bit register for signal <slv_reg8<26>>.
Found 1-bit register for signal <slv_reg8<27>>.
Found 1-bit register for signal <slv_reg8<28>>.
Found 1-bit register for signal <slv_reg8<29>>.
Found 1-bit register for signal <slv_reg8<30>>.
Found 1-bit register for signal <slv_reg8<31>>.
Found 1-bit register for signal <slv_reg9<0>>.
Found 1-bit register for signal <slv_reg9<1>>.
Found 1-bit register for signal <slv_reg9<2>>.
Found 1-bit register for signal <slv_reg9<3>>.
Found 1-bit register for signal <slv_reg9<4>>.
Found 1-bit register for signal <slv_reg9<5>>.
Found 1-bit register for signal <slv_reg9<6>>.
Found 1-bit register for signal <slv_reg9<7>>.
Found 1-bit register for signal <slv_reg9<8>>.
Found 1-bit register for signal <slv_reg9<9>>.
Found 1-bit register for signal <slv_reg9<10>>.
Found 1-bit register for signal <slv_reg9<11>>.
Found 1-bit register for signal <slv_reg9<12>>.
Found 1-bit register for signal <slv_reg9<13>>.
Found 1-bit register for signal <slv_reg9<14>>.
Found 1-bit register for signal <slv_reg9<15>>.
Found 1-bit register for signal <slv_reg9<16>>.
Found 1-bit register for signal <slv_reg9<17>>.
Found 1-bit register for signal <slv_reg9<18>>.
Found 1-bit register for signal <slv_reg9<19>>.
Found 1-bit register for signal <slv_reg9<20>>.
Found 1-bit register for signal <slv_reg9<21>>.
Found 1-bit register for signal <slv_reg9<22>>.
Found 1-bit register for signal <slv_reg9<23>>.
Found 1-bit register for signal <slv_reg9<24>>.
Found 1-bit register for signal <slv_reg9<25>>.
Found 1-bit register for signal <slv_reg9<26>>.
Found 1-bit register for signal <slv_reg9<27>>.
Found 1-bit register for signal <slv_reg9<28>>.
Found 1-bit register for signal <slv_reg9<29>>.
Found 1-bit register for signal <slv_reg9<30>>.
Found 1-bit register for signal <slv_reg9<31>>.
Found 1-bit register for signal <slv_reg10<0>>.
Found 1-bit register for signal <slv_reg10<1>>.
Found 1-bit register for signal <slv_reg10<2>>.
Found 1-bit register for signal <slv_reg10<3>>.
Found 1-bit register for signal <slv_reg10<4>>.
Found 1-bit register for signal <slv_reg10<5>>.
Found 1-bit register for signal <slv_reg10<6>>.
Found 1-bit register for signal <slv_reg10<7>>.
Found 1-bit register for signal <slv_reg10<8>>.
Found 1-bit register for signal <slv_reg10<9>>.
Found 1-bit register for signal <slv_reg10<10>>.
Found 1-bit register for signal <slv_reg10<11>>.
Found 1-bit register for signal <slv_reg10<12>>.
Found 1-bit register for signal <slv_reg10<13>>.
Found 1-bit register for signal <slv_reg10<14>>.
Found 1-bit register for signal <slv_reg10<15>>.
Found 1-bit register for signal <slv_reg10<16>>.
Found 1-bit register for signal <slv_reg10<17>>.
Found 1-bit register for signal <slv_reg10<18>>.
Found 1-bit register for signal <slv_reg10<19>>.
Found 1-bit register for signal <slv_reg10<20>>.
Found 1-bit register for signal <slv_reg10<21>>.
Found 1-bit register for signal <slv_reg10<22>>.
Found 1-bit register for signal <slv_reg10<23>>.
Found 1-bit register for signal <slv_reg10<24>>.
Found 1-bit register for signal <slv_reg10<25>>.
Found 1-bit register for signal <slv_reg10<26>>.
Found 1-bit register for signal <slv_reg10<27>>.
Found 1-bit register for signal <slv_reg10<28>>.
Found 1-bit register for signal <slv_reg10<29>>.
Found 1-bit register for signal <slv_reg10<30>>.
Found 1-bit register for signal <slv_reg10<31>>.
Found 1-bit register for signal <slv_reg11<0>>.
Found 1-bit register for signal <slv_reg11<1>>.
Found 1-bit register for signal <slv_reg11<2>>.
Found 1-bit register for signal <slv_reg11<3>>.
Found 1-bit register for signal <slv_reg11<4>>.
Found 1-bit register for signal <slv_reg11<5>>.
Found 1-bit register for signal <slv_reg11<6>>.
Found 1-bit register for signal <slv_reg11<7>>.
Found 1-bit register for signal <slv_reg11<8>>.
Found 1-bit register for signal <slv_reg11<9>>.
Found 1-bit register for signal <slv_reg11<10>>.
Found 1-bit register for signal <slv_reg11<11>>.
Found 1-bit register for signal <slv_reg11<12>>.
Found 1-bit register for signal <slv_reg11<13>>.
Found 1-bit register for signal <slv_reg11<14>>.
Found 1-bit register for signal <slv_reg11<15>>.
Found 1-bit register for signal <slv_reg11<16>>.
Found 1-bit register for signal <slv_reg11<17>>.
Found 1-bit register for signal <slv_reg11<18>>.
Found 1-bit register for signal <slv_reg11<19>>.
Found 1-bit register for signal <slv_reg11<20>>.
Found 1-bit register for signal <slv_reg11<21>>.
Found 1-bit register for signal <slv_reg11<22>>.
Found 1-bit register for signal <slv_reg11<23>>.
Found 1-bit register for signal <slv_reg11<24>>.
Found 1-bit register for signal <slv_reg11<25>>.
Found 1-bit register for signal <slv_reg11<26>>.
Found 1-bit register for signal <slv_reg11<27>>.
Found 1-bit register for signal <slv_reg11<28>>.
Found 1-bit register for signal <slv_reg11<29>>.
Found 1-bit register for signal <slv_reg11<30>>.
Found 1-bit register for signal <slv_reg11<31>>.
Found 1-bit register for signal <slv_reg12<0>>.
Found 1-bit register for signal <slv_reg12<1>>.
Found 1-bit register for signal <slv_reg12<2>>.
Found 1-bit register for signal <slv_reg12<3>>.
Found 1-bit register for signal <slv_reg12<4>>.
Found 1-bit register for signal <slv_reg12<5>>.
Found 1-bit register for signal <slv_reg12<6>>.
Found 1-bit register for signal <slv_reg12<7>>.
Found 1-bit register for signal <slv_reg12<8>>.
Found 1-bit register for signal <slv_reg12<9>>.
Found 1-bit register for signal <slv_reg12<10>>.
Found 1-bit register for signal <slv_reg12<11>>.
Found 1-bit register for signal <slv_reg12<12>>.
Found 1-bit register for signal <slv_reg12<13>>.
Found 1-bit register for signal <slv_reg12<14>>.
Found 1-bit register for signal <slv_reg12<15>>.
Found 1-bit register for signal <slv_reg12<16>>.
Found 1-bit register for signal <slv_reg12<17>>.
Found 1-bit register for signal <slv_reg12<18>>.
Found 1-bit register for signal <slv_reg12<19>>.
Found 1-bit register for signal <slv_reg12<20>>.
Found 1-bit register for signal <slv_reg12<21>>.
Found 1-bit register for signal <slv_reg12<22>>.
Found 1-bit register for signal <slv_reg12<23>>.
Found 1-bit register for signal <slv_reg12<24>>.
Found 1-bit register for signal <slv_reg12<25>>.
Found 1-bit register for signal <slv_reg12<26>>.
Found 1-bit register for signal <slv_reg12<27>>.
Found 1-bit register for signal <slv_reg12<28>>.
Found 1-bit register for signal <slv_reg12<29>>.
Found 1-bit register for signal <slv_reg12<30>>.
Found 1-bit register for signal <slv_reg12<31>>.
Found 1-bit register for signal <slv_reg13<0>>.
Found 1-bit register for signal <slv_reg13<1>>.
Found 1-bit register for signal <slv_reg13<2>>.
Found 1-bit register for signal <slv_reg13<3>>.
Found 1-bit register for signal <slv_reg13<4>>.
Found 1-bit register for signal <slv_reg13<5>>.
Found 1-bit register for signal <slv_reg13<6>>.
Found 1-bit register for signal <slv_reg13<7>>.
Found 1-bit register for signal <slv_reg13<8>>.
Found 1-bit register for signal <slv_reg13<9>>.
Found 1-bit register for signal <slv_reg13<10>>.
Found 1-bit register for signal <slv_reg13<11>>.
Found 1-bit register for signal <slv_reg13<12>>.
Found 1-bit register for signal <slv_reg13<13>>.
Found 1-bit register for signal <slv_reg13<14>>.
Found 1-bit register for signal <slv_reg13<15>>.
Found 1-bit register for signal <slv_reg13<16>>.
Found 1-bit register for signal <slv_reg13<17>>.
Found 1-bit register for signal <slv_reg13<18>>.
Found 1-bit register for signal <slv_reg13<19>>.
Found 1-bit register for signal <slv_reg13<20>>.
Found 1-bit register for signal <slv_reg13<21>>.
Found 1-bit register for signal <slv_reg13<22>>.
Found 1-bit register for signal <slv_reg13<23>>.
Found 1-bit register for signal <slv_reg13<24>>.
Found 1-bit register for signal <slv_reg13<25>>.
Found 1-bit register for signal <slv_reg13<26>>.
Found 1-bit register for signal <slv_reg13<27>>.
Found 1-bit register for signal <slv_reg13<28>>.
Found 1-bit register for signal <slv_reg13<29>>.
Found 1-bit register for signal <slv_reg13<30>>.
Found 1-bit register for signal <slv_reg13<31>>.
Found 1-bit register for signal <slv_reg14<0>>.
Found 1-bit register for signal <slv_reg14<1>>.
Found 1-bit register for signal <slv_reg14<2>>.
Found 1-bit register for signal <slv_reg14<3>>.
Found 1-bit register for signal <slv_reg14<4>>.
Found 1-bit register for signal <slv_reg14<5>>.
Found 1-bit register for signal <slv_reg14<6>>.
Found 1-bit register for signal <slv_reg14<7>>.
Found 1-bit register for signal <slv_reg14<8>>.
Found 1-bit register for signal <slv_reg14<9>>.
Found 1-bit register for signal <slv_reg14<10>>.
Found 1-bit register for signal <slv_reg14<11>>.
Found 1-bit register for signal <slv_reg14<12>>.
Found 1-bit register for signal <slv_reg14<13>>.
Found 1-bit register for signal <slv_reg14<14>>.
Found 1-bit register for signal <slv_reg14<15>>.
Found 1-bit register for signal <slv_reg14<16>>.
Found 1-bit register for signal <slv_reg14<17>>.
Found 1-bit register for signal <slv_reg14<18>>.
Found 1-bit register for signal <slv_reg14<19>>.
Found 1-bit register for signal <slv_reg14<20>>.
Found 1-bit register for signal <slv_reg14<21>>.
Found 1-bit register for signal <slv_reg14<22>>.
Found 1-bit register for signal <slv_reg14<23>>.
Found 1-bit register for signal <slv_reg14<24>>.
Found 1-bit register for signal <slv_reg14<25>>.
Found 1-bit register for signal <slv_reg14<26>>.
Found 1-bit register for signal <slv_reg14<27>>.
Found 1-bit register for signal <slv_reg14<28>>.
Found 1-bit register for signal <slv_reg14<29>>.
Found 1-bit register for signal <slv_reg14<30>>.
Found 1-bit register for signal <slv_reg14<31>>.
Found 1-bit register for signal <slv_reg15<0>>.
Found 1-bit register for signal <slv_reg15<1>>.
Found 1-bit register for signal <slv_reg15<2>>.
Found 1-bit register for signal <slv_reg15<3>>.
Found 1-bit register for signal <slv_reg15<4>>.
Found 1-bit register for signal <slv_reg15<5>>.
Found 1-bit register for signal <slv_reg15<6>>.
Found 1-bit register for signal <slv_reg15<7>>.
Found 1-bit register for signal <slv_reg15<8>>.
Found 1-bit register for signal <slv_reg15<9>>.
Found 1-bit register for signal <slv_reg15<10>>.
Found 1-bit register for signal <slv_reg15<11>>.
Found 1-bit register for signal <slv_reg15<12>>.
Found 1-bit register for signal <slv_reg15<13>>.
Found 1-bit register for signal <slv_reg15<14>>.
Found 1-bit register for signal <slv_reg15<15>>.
Found 1-bit register for signal <slv_reg15<16>>.
Found 1-bit register for signal <slv_reg15<17>>.
Found 1-bit register for signal <slv_reg15<18>>.
Found 1-bit register for signal <slv_reg15<19>>.
Found 1-bit register for signal <slv_reg15<20>>.
Found 1-bit register for signal <slv_reg15<21>>.
Found 1-bit register for signal <slv_reg15<22>>.
Found 1-bit register for signal <slv_reg15<23>>.
Found 1-bit register for signal <slv_reg15<24>>.
Found 1-bit register for signal <slv_reg15<25>>.
Found 1-bit register for signal <slv_reg15<26>>.
Found 1-bit register for signal <slv_reg15<27>>.
Found 1-bit register for signal <slv_reg15<28>>.
Found 1-bit register for signal <slv_reg15<29>>.
Found 1-bit register for signal <slv_reg15<30>>.
Found 1-bit register for signal <slv_reg15<31>>.
Found 2-bit register for signal <mem_read_prev>.
Summary:
inferred 514 D-type flip-flop(s).
inferred 530 Multiplexer(s).
Unit <user_logic> synthesized.
Synthesizing Unit <spiifc>.
Related source file is "c:/users/mjlyons/workspace/vspi/src/spi_base/spiifc.v".
AddrBits = 12
Found 1-bit register for signal <ssFastToggleReg>.
Found 1-bit register for signal <ssSlowToggle>.
Found 8-bit register for signal <rcByteReg>.
Found 1-bit register for signal <rcStarted>.
Found 3-bit register for signal <rcBitIndexReg>.
Found 8-bit register for signal <debug_reg>.
Found 8-bit register for signal <stateReg>.
Found 12-bit register for signal <rcMemAddrReg>.
Found 12-bit register for signal <txMemAddrReg>.
Found 3-bit register for signal <txBitAddr>.
Found 12-bit register for signal <rcMemAddrNext>.
Found 8-bit register for signal <rcMemDataReg>.
Found 1-bit register for signal <rcMemWEReg>.
Found 1-bit register for signal <ssPrev>.
Found 3-bit subtractor for signal <rcBitIndex[2]_GND_3_o_sub_17_OUT> created at line 184.
Found 12-bit adder for signal <txMemAddr[11]_GND_3_o_add_19_OUT> created at line 190.
Found 12-bit adder for signal <rcMemAddr[11]_GND_3_o_add_43_OUT> created at line 218.
Found 3-bit subtractor for signal <GND_3_o_GND_3_o_sub_22_OUT<2:0>> created at line 192.
Found 1-bit 8-to-1 multiplexer for signal <SPI_MISO> created at line 125.
Summary:
inferred 4 Adder/Subtractor(s).
inferred 79 D-type flip-flop(s).
inferred 28 Multiplexer(s).
Unit <spiifc> synthesized.
=========================================================================
HDL Synthesis Report
Macro Statistics
# Adders/Subtractors : 4
12-bit adder : 2
3-bit subtractor : 2
# Registers : 31
1-bit register : 5
12-bit register : 3
2-bit register : 1
3-bit register : 2
32-bit register : 16
8-bit register : 4
# Multiplexers : 558
1-bit 2-to-1 multiplexer : 521
1-bit 8-to-1 multiplexer : 1
12-bit 2-to-1 multiplexer : 6
3-bit 2-to-1 multiplexer : 7
32-bit 2-to-1 multiplexer : 19
8-bit 2-to-1 multiplexer : 4
# Xors : 1
1-bit xor2 : 1
=========================================================================
=========================================================================
* Advanced HDL Synthesis *
=========================================================================
Reading core <ipcore_dir/buffermem.ngc>.
Loading core <buffermem> for timing and area information for instance <mosiMem>.
Loading core <buffermem> for timing and area information for instance <misoMem>.
WARNING:Xst:2677 - Node <rcByteReg_0> of sequential type is unconnected in block <spiifc>.
=========================================================================
Advanced HDL Synthesis Report
Macro Statistics
# Adders/Subtractors : 4
12-bit adder : 2
3-bit subtractor : 2
# Registers : 592
Flip-Flops : 592
# Multiplexers : 557
1-bit 2-to-1 multiplexer : 520
1-bit 8-to-1 multiplexer : 1
12-bit 2-to-1 multiplexer : 6
3-bit 2-to-1 multiplexer : 7
32-bit 2-to-1 multiplexer : 19
8-bit 2-to-1 multiplexer : 4
# Xors : 1
1-bit xor2 : 1
=========================================================================
=========================================================================
* Low Level Synthesis *
=========================================================================
Optimizing unit <user_logic> ...
Optimizing unit <spiifc> ...
WARNING:Xst:1710 - FF/Latch <stateReg_2> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_3> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_4> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_5> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_6> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_7> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1710 - FF/Latch <stateReg_2> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_3> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_4> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_5> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_6> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch <stateReg_7> (without init value) has a constant value of 0 in block <spiifc>. This FF/Latch will be trimmed during the optimization process.
WARNING:Xst:2677 - Node <spi/debug_reg_7> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_6> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_5> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_4> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_3> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_2> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_1> of sequential type is unconnected in block <user_logic>.
WARNING:Xst:2677 - Node <spi/debug_reg_0> of sequential type is unconnected in block <user_logic>.
Mapping all equations...
Building and optimizing final netlist ...
PACKER Warning: Lut spi/Mmux_n010431 is driving XOR and other loads hence can not be packed with the XOR/Carry. This would result in an extra LUT for a feedthrough.
Found area constraint ratio of 100 (+ 5) on block user_logic, actual ratio is 5.
FlipFlop spi/rcByteReg_1 has been replicated 1 time(s)
Final Macro Processing ...
=========================================================================
Final Register Report
Macro Statistics
# Registers : 579
Flip-Flops : 579
=========================================================================
=========================================================================
* Partition Report *
=========================================================================
Partition Implementation Status
-------------------------------
No Partitions were found in this design.
-------------------------------
=========================================================================
* Design Summary *
=========================================================================
Top Level Output File Name : user_logic.ngc
Primitive and Black Box Usage:
------------------------------
# BELS : 1131
# GND : 3
# INV : 3
# LUT1 : 10
# LUT2 : 21
# LUT3 : 12
# LUT4 : 530
# LUT5 : 122
# LUT6 : 382
# MUXCY : 22
# MUXF7 : 1
# VCC : 1
# XORCY : 24
# FlipFlops/Latches : 579
# FD : 16
# FDE : 37
# FDR : 515
# FDRE : 8
# FDSE : 3
# RAMS : 4
# RAMB16BWER : 4
# Clock Buffers : 2
# BUFGP : 2
# IO Buffers : 123
# IBUF : 86
# OBUF : 37
PACKER Warning: Lut spi/Mmux_n010431 is driving XOR and other loads hence can not be packed with the XOR/Carry. This would result in an extra LUT for a feedthrough.
Device utilization summary:
---------------------------
Selected Device : 6slx45csg324-2
Slice Logic Utilization:
Number of Slice Registers: 579 out of 54576 1%
Number of Slice LUTs: 1080 out of 27288 3%
Number used as Logic: 1080 out of 27288 3%
Slice Logic Distribution:
Number of LUT Flip Flop pairs used: 1097
Number with an unused Flip Flop: 518 out of 1097 47%
Number with an unused LUT: 17 out of 1097 1%
Number of fully used LUT-FF pairs: 562 out of 1097 51%
Number of unique control sets: 9
IO Utilization:
Number of IOs: 158
Number of bonded IOBs: 125 out of 218 57%
Specific Feature Utilization:
Number of Block RAM/FIFO: 4 out of 116 3%
Number using Block RAM only: 4
Number of BUFG/BUFGCTRLs: 2 out of 16 12%
---------------------------
Partition Resource Summary:
---------------------------
No Partitions were found in this design.
---------------------------
=========================================================================
Timing Report
NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE.
FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT
GENERATED AFTER PLACE-and-ROUTE.
Clock Information:
------------------
-----------------------------------+------------------------+-------+
Clock Signal | Clock buffer(FF name) | Load |
-----------------------------------+------------------------+-------+
Bus2IP_Clk | BUFGP | 520 |
SPI_CLK | BUFGP | 63 |
-----------------------------------+------------------------+-------+
Asynchronous Control Signals Information:
----------------------------------------
No asynchronous control signals found in this design
Timing Summary:
---------------
Speed Grade: -2
Minimum period: 6.130ns (Maximum Frequency: 163.132MHz)
Minimum input arrival time before clock: 9.060ns
Maximum output required time after clock: 8.612ns
Maximum combinational path delay: 15.761ns
Timing Details:
---------------
All values displayed in nanoseconds (ns)
=========================================================================
Timing constraint: Default period analysis for Clock 'Bus2IP_Clk'
Clock period: 5.714ns (frequency: 175.009MHz)
Total number of paths / destination ports: 562 / 537
-------------------------------------------------------------------------
Delay: 5.714ns (Levels of Logic = 4)
Source: spi/ssPrev (FF)
Destination: misoMem/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/valid.cstr/ramloop[0].ram.r/s6_noinit.ram/TRUE_DP.PRIM18.ram (RAM)
Source Clock: Bus2IP_Clk rising
Destination Clock: Bus2IP_Clk rising
Data Path: spi/ssPrev to misoMem/U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/valid.cstr/ramloop[0].ram.r/s6_noinit.ram/TRUE_DP.PRIM18.ram
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
FD:C->Q 8 0.525 1.052 spi/ssPrev (spi/ssPrev)
LUT3:I1->O 9 0.250 1.204 spi/Mmux_ssFastToggle11 (spi/ssFastToggle)
LUT6:I3->O 12 0.235 1.069 spi/txMemAddrReset1 (spi/txMemAddrReset)
LUT2:I1->O 2 0.254 0.725 spi/Mmux_n010413 (misoMem_addra<11>)
begin scope: 'misoMem:addra<0>'
RAMB16BWER:ADDRA2 0.400 U0/xst_blk_mem_generator/gnativebmg.native_blk_mem_gen/valid.cstr/ramloop[0].ram.r/s6_noinit.ram/TRUE_DP.PRIM18.ram
----------------------------------------
Total 5.714ns (1.664ns logic, 4.050ns route)
(29.1% logic, 70.9% route)
=========================================================================
Timing constraint: Default period analysis for Clock 'SPI_CLK'
Clock period: 6.130ns (frequency: 163.132MHz)
Total number of paths / destination ports: 2786 / 84
-------------------------------------------------------------------------
Delay: 6.130ns (Levels of Logic = 3)
Source: spi/ssSlowToggle (FF)
Destination: spi/txMemAddrReg_11 (FF)
Source Clock: SPI_CLK rising
Destination Clock: SPI_CLK rising
Data Path: spi/ssSlowToggle to spi/txMemAddrReg_11
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
FD:C->Q 14 0.525 1.127 spi/ssSlowToggle (spi/ssSlowToggle)
LUT5:I4->O 6 0.254 1.104 spi/Mmux_state21 (spi/state<1>)
LUT6:I3->O 19 0.235 1.261 spi/Mmux_state[7]_state[7]_mux_55_OUT111 (spi/Mmux_state[7]_state[7]_mux_55_OUT11)
LUT6:I5->O 12 0.254 1.068 spi/_n0491_inv1 (spi/_n0491_inv)
FDE:CE 0.302 spi/txMemAddrReg_0
----------------------------------------
Total 6.130ns (1.570ns logic, 4.560ns route)
(25.6% logic, 74.4% route)
=========================================================================
Timing constraint: Default OFFSET IN BEFORE for Clock 'Bus2IP_Clk'
Total number of paths / destination ports: 9953 / 1179
-------------------------------------------------------------------------
Offset: 9.060ns (Levels of Logic = 6)
Source: Bus2IP_WrCE<10> (PAD)
Destination: slv_reg5_31 (FF)
Destination Clock: Bus2IP_Clk rising
Data Path: Bus2IP_WrCE<10> to slv_reg5_31
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
IBUF:I->O 68 1.328 2.391 Bus2IP_WrCE_10_IBUF (Bus2IP_WrCE_10_IBUF)
LUT6:I1->O 3 0.254 0.766 slv_reg_write_sel[0]_GND_1_o_equal_80_o<0>11 (slv_reg_write_sel[0]_GND_1_o_equal_80_o<0>1)
LUT4:I3->O 5 0.254 0.841 slv_reg_write_sel[0]_GND_1_o_equal_80_o<0>211 (slv_reg_write_sel[0]_GND_1_o_equal_80_o<0>21)
LUT5:I4->O 3 0.254 0.766 slv_reg_write_sel[0]_GND_1_o_equal_84_o<0>11 (slv_reg_write_sel[0]_GND_1_o_equal_84_o<0>1)
LUT4:I3->O 32 0.254 1.628 slv_reg_write_sel[0]_GND_1_o_equal_84_o<0>2 (slv_reg_write_sel[0]_GND_1_o_equal_84_o)
LUT4:I2->O 1 0.250 0.000 Mmux__n2030161 (_n2030<23>)
FDR:D 0.074 slv_reg5_23
----------------------------------------
Total 9.060ns (2.668ns logic, 6.392ns route)
(29.4% logic, 70.6% route)
=========================================================================
Timing constraint: Default OFFSET IN BEFORE for Clock 'SPI_CLK'
Total number of paths / destination ports: 629 / 103
-------------------------------------------------------------------------
Offset: 8.484ns (Levels of Logic = 5)
Source: SPI_SS (PAD)
Destination: spi/txMemAddrReg_11 (FF)
Destination Clock: SPI_CLK rising
Data Path: SPI_SS to spi/txMemAddrReg_11
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
IBUF:I->O 11 1.328 1.267 SPI_SS_IBUF (SPI_SS_IBUF)
LUT3:I0->O 9 0.235 1.431 spi/Mmux_ssFastToggle11 (spi/ssFastToggle)
LUT6:I0->O 2 0.254 0.834 spi/rcByteValid1_1 (spi/rcByteValid1)
LUT6:I4->O 19 0.250 1.261 spi/Mmux_state[7]_state[7]_mux_55_OUT111 (spi/Mmux_state[7]_state[7]_mux_55_OUT11)
LUT6:I5->O 12 0.254 1.068 spi/_n0491_inv1 (spi/_n0491_inv)
FDE:CE 0.302 spi/txMemAddrReg_0
----------------------------------------
Total 8.484ns (2.623ns logic, 5.861ns route)
(30.9% logic, 69.1% route)
=========================================================================
Timing constraint: Default OFFSET OUT AFTER for Clock 'Bus2IP_Clk'
Total number of paths / destination ports: 650 / 34
-------------------------------------------------------------------------
Offset: 8.612ns (Levels of Logic = 5)
Source: slv_reg4_0 (FF)
Destination: IP2Bus_Data<0> (PAD)
Source Clock: Bus2IP_Clk rising
Data Path: slv_reg4_0 to IP2Bus_Data<0>
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
FDR:C->Q 2 0.525 1.156 slv_reg4_0 (slv_reg4_0)
LUT5:I0->O 1 0.254 0.682 Mmux_IP2Bus_Data110 (Mmux_IP2Bus_Data1)
LUT6:I5->O 1 0.254 0.682 Mmux_IP2Bus_Data112 (Mmux_IP2Bus_Data12)
LUT6:I5->O 1 0.254 0.958 Mmux_IP2Bus_Data116 (Mmux_IP2Bus_Data16)
LUT6:I2->O 1 0.254 0.681 Mmux_IP2Bus_Data121 (IP2Bus_Data_0_OBUF)
OBUF:I->O 2.912 IP2Bus_Data_0_OBUF (IP2Bus_Data<0>)
----------------------------------------
Total 8.612ns (4.453ns logic, 4.159ns route)
(51.7% logic, 48.3% route)
=========================================================================
Timing constraint: Default OFFSET OUT AFTER for Clock 'SPI_CLK'
Total number of paths / destination ports: 5 / 1
-------------------------------------------------------------------------
Offset: 5.953ns (Levels of Logic = 3)
Source: spi/txBitAddr_0 (FF)
Destination: SPI_MISO (PAD)
Source Clock: SPI_CLK rising
Data Path: spi/txBitAddr_0 to SPI_MISO
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
FDE:C->Q 9 0.525 1.406 spi/txBitAddr_0 (spi/txBitAddr_0)
LUT6:I1->O 1 0.254 0.000 spi/Mmux_SPI_MISO_3 (spi/Mmux_SPI_MISO_3)
MUXF7:I1->O 1 0.175 0.681 spi/Mmux_SPI_MISO_2_f7 (SPI_MISO_OBUF)
OBUF:I->O 2.912 SPI_MISO_OBUF (SPI_MISO)
----------------------------------------
Total 5.953ns (3.866ns logic, 2.087ns route)
(64.9% logic, 35.1% route)
=========================================================================
Timing constraint: Default path analysis
Total number of paths / destination ports: 4656 / 35
-------------------------------------------------------------------------
Delay: 15.761ns (Levels of Logic = 8)
Source: Bus2IP_RdCE<5> (PAD)
Destination: IP2Bus_Data<0> (PAD)
Data Path: Bus2IP_RdCE<5> to IP2Bus_Data<0>
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
IBUF:I->O 99 1.328 2.429 Bus2IP_RdCE_5_IBUF (Bus2IP_RdCE_5_IBUF)
LUT4:I1->O 33 0.235 1.537 slv_reg_read_sel[0]_GND_1_o_equal_129_o<0>21 (slv_reg_read_sel[0]_GND_1_o_equal_129_o<0>2)
LUT5:I4->O 35 0.254 1.846 slv_reg_read_sel[0]_GND_1_o_equal_136_o<0>11 (slv_reg_read_sel[0]_GND_1_o_equal_136_o<0>1)
LUT4:I0->O 32 0.254 1.950 slv_reg_read_sel[0]_GND_1_o_equal_140_o<0>11 (slv_reg_read_sel[0]_GND_1_o_equal_140_o<0>1)
LUT5:I0->O 1 0.254 0.682 Mmux_IP2Bus_Data119 (Mmux_IP2Bus_Data19)
LUT6:I5->O 1 0.254 0.910 Mmux_IP2Bus_Data120 (Mmux_IP2Bus_Data110)
LUT6:I3->O 1 0.235 0.681 Mmux_IP2Bus_Data121 (IP2Bus_Data_0_OBUF)
OBUF:I->O 2.912 IP2Bus_Data_0_OBUF (IP2Bus_Data<0>)
----------------------------------------
Total 15.761ns (5.726ns logic, 10.035ns route)
(36.3% logic, 63.7% route)
=========================================================================
Cross Clock Domains Report:
--------------------------
Clock to Setup on destination clock Bus2IP_Clk
---------------+---------+---------+---------+---------+
| Src:Rise| Src:Fall| Src:Rise| Src:Fall|
Source Clock |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall|
---------------+---------+---------+---------+---------+
Bus2IP_Clk | 5.714| | | |
SPI_CLK | 5.667| | | |
---------------+---------+---------+---------+---------+
Clock to Setup on destination clock SPI_CLK
---------------+---------+---------+---------+---------+
| Src:Rise| Src:Fall| Src:Rise| Src:Fall|
Source Clock |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall|
---------------+---------+---------+---------+---------+
Bus2IP_Clk | 7.481| | | |
SPI_CLK | 6.130| | | |
---------------+---------+---------+---------+---------+
=========================================================================
Total REAL time to Xst completion: 24.00 secs
Total CPU time to Xst completion: 23.64 secs
-->
Total memory usage is 255080 kilobytes
Number of errors : 0 ( 0 filtered)
Number of warnings : 37 ( 0 filtered)
Number of infos : 2 ( 0 filtered)
set -tmpdir "xst/projnav.tmp"
set -xsthdpdir "xst"
run
-ifn user_logic.prj
-ifmt mixed
-ofn user_logic
-ofmt NGC
-p xc6slx45-2-csg324
-top user_logic
-opt_mode Speed
-opt_level 1
-power NO
-iuc NO
-keep_hierarchy No
-netlist_hierarchy As_Optimized
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-sd {"ipcore_dir" }
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case Maintain
-slice_utilization_ratio 100
-bram_utilization_ratio 100
-dsp_utilization_ratio 100
-lc Auto
-reduce_control_sets Auto
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style LUT
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-shreg_extract YES
-rom_style Auto
-auto_bram_packing NO
-resource_sharing YES
-async_to_sync NO
-shreg_min_size 2
-use_dsp48 Auto
-iobuf YES
-max_fanout 100000
-bufg 16
-register_duplication YES
-register_balancing No
-optimize_primitives NO
-use_clock_enable Auto
-use_sync_set Auto
-use_sync_reset Auto
-iob Auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<document OS="nt64" product="ISE" version="13.2">
<!--The data in this file is primarily intended for consumption by Xilinx tools.
The structure and the elements are likely to change over the next few releases.
This means code written to parse this file will need to be revisited each subsequent release.-->
<application stringID="Xst" timeStamp="Thu Mar 01 10:48:00 2012">
<section stringID="User_Env">
<table stringID="User_EnvVar">
<column stringID="variable"/>
<column stringID="value"/>
<row stringID="row" value="0">
<item stringID="variable" value="Path"/>
<item stringID="value" value="C:\Xilinx\13.2\ISE_DS\ISE\\lib\nt64;C:\Xilinx\13.2\ISE_DS\ISE\\bin\nt64;C:\Xilinx\13.2\ISE_DS\PlanAhead\bin;C:\Xilinx\13.2\ISE_DS\ISE\bin\nt64;C:\Xilinx\13.2\ISE_DS\ISE\lib\nt64;C:\Xilinx\13.2\ISE_DS\EDK\bin\nt64;C:\Xilinx\13.2\ISE_DS\EDK\lib\nt64;C:\Xilinx\13.2\ISE_DS\EDK\gnu\microblaze\nt64\bin;C:\Xilinx\13.2\ISE_DS\EDK\gnu\powerpc-eabi\nt64\bin;C:\Xilinx\13.2\ISE_DS\EDK\gnuwin\bin;C:\Xilinx\13.2\ISE_DS\common\bin\nt64;C:\Xilinx\13.2\ISE_DS\common\lib\nt64;C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Java\jdk1.6.0_26\bin;c:\python27;C:\Python27\Scripts;C:\Program Files\SlikSvn\bin\;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files\Vim\vim73;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files\TortoiseSVN\bin"/>
</row>
<row stringID="row" value="1">
<item stringID="variable" value="PATHEXT"/>
<item stringID="value" value=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"/>
</row>
<row stringID="row" value="2">
<item stringID="variable" value="XILINX"/>
<item stringID="value" value="C:\Xilinx\13.2\ISE_DS\ISE\"/>
</row>
<row stringID="row" value="3">
<item stringID="variable" value="XILINX_DSP"/>
<item stringID="value" value="C:\Xilinx\13.2\ISE_DS\ISE"/>
</row>
<row stringID="row" value="4">
<item stringID="variable" value="XILINX_EDK"/>
<item stringID="value" value="C:\Xilinx\13.2\ISE_DS\EDK"/>
</row>
<row stringID="row" value="5">
<item stringID="variable" value="XILINX_FOR_ALTIUM_OVERRIDE"/>
<item stringID="value" value=" "/>
</row>
<row stringID="row" value="6">
<item stringID="variable" value="XILINX_PLANAHEAD"/>
<item stringID="value" value="C:\Xilinx\13.2\ISE_DS\PlanAhead"/>
</row>
</table>
<item stringID="User_EnvOs" value="OS Information">
<item stringID="User_EnvOsname" value="Microsoft Windows 7 , 64-bit"/>
<item stringID="User_EnvOsrelease" value="Service Pack 1 (build 7601)"/>
</item>
<item stringID="User_EnvHost" value="WIN-MEQROG0RPAS"/>
<table stringID="User_EnvCpu">
<column stringID="arch"/>
<column stringID="speed"/>
<row stringID="row" value="0">
<item stringID="arch" value="Intel(R) Core(TM) i5-2400S CPU @ 2.50GHz"/>
<item stringID="speed" value="2499 MHz"/>
</row>
</table>
</section>
<section stringID="XST_OPTION_SUMMARY">
<item DEFAULT="" label="-ifn" stringID="XST_IFN" value="user_logic.prj"/>
<item DEFAULT="Mixed" label="-ifmt" stringID="XST_IFMT" value="mixed"/>
<item DEFAULT="" label="-ofn" stringID="XST_OFN" value="user_logic"/>
<item DEFAULT="NGC" label="-ofmt" stringID="XST_OFMT" value="NGC"/>
<item DEFAULT="" label="-p" stringID="XST_P" value="xc6slx45-2-csg324"/>
<item DEFAULT="" label="-top" stringID="XST_TOP" value="user_logic"/>
<item DEFAULT="Speed" label="-opt_mode" stringID="XST_OPTMODE" value="Speed"/>
<item DEFAULT="1" label="-opt_level" stringID="XST_OPTLEVEL" value="1"/>
<item DEFAULT="No" label="-power" stringID="XST_POWER" value="NO"/>
<item DEFAULT="No" label="-iuc" stringID="XST_IUC" value="NO"/>
<item DEFAULT="No" label="-keep_hierarchy" stringID="XST_KEEPHIERARCHY" value="No"/>
<item DEFAULT="As_Optimized" label="-netlist_hierarchy" stringID="XST_NETLISTHIERARCHY" value="As_Optimized"/>
<item DEFAULT="No" label="-rtlview" stringID="XST_RTLVIEW" value="Yes"/>
<item DEFAULT="AllClockNets" label="-glob_opt" stringID="XST_GLOBOPT" value="AllClockNets"/>
<item DEFAULT="Yes" label="-read_cores" stringID="XST_READCORES" value="YES"/>
<item DEFAULT="" label="-sd" stringID="XST_SD" value="{&quot;ipcore_dir&quot; }"/>
<item DEFAULT="No" label="-write_timing_constraints" stringID="XST_WRITETIMINGCONSTRAINTS" value="NO"/>
<item DEFAULT="No" label="-cross_clock_analysis" stringID="XST_CROSSCLOCKANALYSIS" value="NO"/>
<item DEFAULT="/" stringID="XST_HIERARCHYSEPARATOR" value="/"/>
<item DEFAULT="&lt;>" label="-bus_delimiter" stringID="XST_BUSDELIMITER" value="&lt;>"/>
<item DEFAULT="Maintain" stringID="XST_CASE" value="Maintain"/>
<item DEFAULT="100" label="-slice_utilization_ratio" stringID="XST_SLICEUTILIZATIONRATIO" value="100"/>
<item DEFAULT="100" label="-bram_utilization_ratio" stringID="XST_BRAMUTILIZATIONRATIO" value="100"/>
<item DEFAULT="100" label="-dsp_utilization_ratio" stringID="XST_DSPUTILIZATIONRATIO" value="100"/>
<item DEFAULT="Auto" stringID="XST_LC" value="Auto"/>
<item DEFAULT="Auto" label="-reduce_control_sets" stringID="XST_REDUCECONTROLSETS" value="Auto"/>
<item DEFAULT="Yes" label="-fsm_extract" stringID="XST_FSMEXTRACT" value="YES"/>
<item DEFAULT="Auto" label="-fsm_encoding" stringID="XST_FSMENCODING" value="Auto"/>
<item DEFAULT="No" label="-safe_implementation" stringID="XST_SAFEIMPLEMENTATION" value="No"/>
<item DEFAULT="LUT" label="-fsm_style" stringID="XST_FSMSTYLE" value="LUT"/>
<item DEFAULT="Yes" label="-ram_extract" stringID="XST_RAMEXTRACT" value="Yes"/>
<item DEFAULT="Auto" label="-ram_style" stringID="XST_RAMSTYLE" value="Auto"/>
<item DEFAULT="Yes" label="-rom_extract" stringID="XST_ROMEXTRACT" value="Yes"/>
<item DEFAULT="Yes" label="-shreg_extract" stringID="XST_SHREGEXTRACT" value="YES"/>
<item DEFAULT="Auto" label="-rom_style" stringID="XST_ROMSTYLE" value="Auto"/>
<item DEFAULT="No" label="-auto_bram_packing" stringID="XST_AUTOBRAMPACKING" value="NO"/>
<item DEFAULT="Yes" label="-resource_sharing" stringID="XST_RESOURCESHARING" value="YES"/>
<item DEFAULT="No" label="-async_to_sync" stringID="XST_ASYNCTOSYNC" value="NO"/>
<item DEFAULT="2" stringID="XST_SHREGMINSIZE" value="2"/>
<item DEFAULT="Auto" label="-use_dsp48" stringID="XST_USEDSP48" value="Auto"/>
<item DEFAULT="Yes" label="-iobuf" stringID="XST_IOBUF" value="YES"/>
<item DEFAULT="100000" label="-max_fanout" stringID="XST_MAXFANOUT" value="100000"/>
<item DEFAULT="16" label="-bufg" stringID="XST_BUFG" value="16"/>
<item DEFAULT="Yes" label="-register_duplication" stringID="XST_REGISTERDUPLICATION" value="YES"/>
<item DEFAULT="No" label="-register_balancing" stringID="XST_REGISTERBALANCING" value="No"/>
<item DEFAULT="No" label="-optimize_primitives" stringID="XST_OPTIMIZEPRIMITIVES" value="NO"/>
<item DEFAULT="Auto" label="-use_clock_enable" stringID="XST_USECLOCKENABLE" value="Auto"/>
<item DEFAULT="Auto" label="-use_sync_set" stringID="XST_USESYNCSET" value="Auto"/>
<item DEFAULT="Auto" label="-use_sync_reset" stringID="XST_USESYNCRESET" value="Auto"/>
<item DEFAULT="Auto" label="-iob" stringID="XST_IOB" value="Auto"/>
<item DEFAULT="Yes" label="-equivalent_register_removal" stringID="XST_EQUIVALENTREGISTERREMOVAL" value="YES"/>
<item DEFAULT="0" label="-slice_utilization_ratio_maxmargin" stringID="XST_SLICEUTILIZATIONRATIOMAXMARGIN" value="5"/>
</section>
<section stringID="XST_HDL_SYNTHESIS_REPORT">
<item dataType="int" stringID="XST_ADDERSSUBTRACTORS" value="4">
<item dataType="int" stringID="XST_3BIT_SUBTRACTOR" value="2"/>
</item>
<item dataType="int" stringID="XST_REGISTERS" value="31">
<item dataType="int" stringID="XST_1BIT_REGISTER" value="5"/>
<item dataType="int" stringID="XST_2BIT_REGISTER" value="1"/>
<item dataType="int" stringID="XST_3BIT_REGISTER" value="2"/>
<item dataType="int" stringID="XST_32BIT_REGISTER" value="16"/>
<item dataType="int" stringID="XST_8BIT_REGISTER" value="4"/>
</item>
<item dataType="int" stringID="XST_MULTIPLEXERS" value="558">
<item dataType="int" stringID="XST_1BIT_2TO1_MULTIPLEXER" value="521"/>
<item dataType="int" stringID="XST_1BIT_8TO1_MULTIPLEXER" value="1"/>
<item dataType="int" stringID="XST_3BIT_2TO1_MULTIPLEXER" value="7"/>
<item dataType="int" stringID="XST_32BIT_2TO1_MULTIPLEXER" value="19"/>
<item dataType="int" stringID="XST_8BIT_2TO1_MULTIPLEXER" value="4"/>
</item>
<item dataType="int" stringID="XST_XORS" value="1">
<item dataType="int" stringID="XST_1BIT_XOR2" value="1"/>
</item>
</section>
<section stringID="XST_ADVANCED_HDL_SYNTHESIS_REPORT">
<item dataType="int" stringID="XST_ADDERSSUBTRACTORS" value="4">
<item dataType="int" stringID="XST_3BIT_SUBTRACTOR" value="2"/>
</item>
<item dataType="int" stringID="XST_REGISTERS" value="592">
<item dataType="int" stringID="XST_FLIPFLOPS" value="592"/>
</item>
<item dataType="int" stringID="XST_MULTIPLEXERS" value="557">
<item dataType="int" stringID="XST_1BIT_2TO1_MULTIPLEXER" value="520"/>
<item dataType="int" stringID="XST_1BIT_8TO1_MULTIPLEXER" value="1"/>
<item dataType="int" stringID="XST_3BIT_2TO1_MULTIPLEXER" value="7"/>
<item dataType="int" stringID="XST_32BIT_2TO1_MULTIPLEXER" value="19"/>
<item dataType="int" stringID="XST_8BIT_2TO1_MULTIPLEXER" value="4"/>
</item>
<item dataType="int" stringID="XST_XORS" value="1">
<item dataType="int" stringID="XST_1BIT_XOR2" value="1"/>
</item>
</section>
<section stringID="XST_FINAL_REGISTER_REPORT">
<item dataType="int" stringID="XST_REGISTERS" value="579">
<item dataType="int" stringID="XST_FLIPFLOPS" value="579"/>
</item>
</section>
<section stringID="XST_PARTITION_REPORT">
<section stringID="XST_PARTITION_IMPLEMENTATION_STATUS">
<section stringID="XST_NO_PARTITIONS_WERE_FOUND_IN_THIS_DESIGN"/>
</section>
</section>
<section stringID="XST_DESIGN_SUMMARY">
<section stringID="XST_">
<item stringID="XST_TOP_LEVEL_OUTPUT_FILE_NAME" value="user_logic.ngc"/>
</section>
<section stringID="XST_PRIMITIVE_AND_BLACK_BOX_USAGE">
<item dataType="int" stringID="XST_BELS" value="1131">
<item dataType="int" stringID="XST_GND" value="3"/>
<item dataType="int" stringID="XST_INV" value="3"/>
<item dataType="int" stringID="XST_LUT1" value="10"/>
<item dataType="int" stringID="XST_LUT2" value="21"/>
<item dataType="int" stringID="XST_LUT3" value="12"/>
<item dataType="int" stringID="XST_LUT4" value="530"/>
<item dataType="int" stringID="XST_LUT5" value="122"/>
<item dataType="int" stringID="XST_LUT6" value="382"/>
<item dataType="int" stringID="XST_MUXCY" value="22"/>
<item dataType="int" stringID="XST_MUXF7" value="1"/>
<item dataType="int" stringID="XST_VCC" value="1"/>
<item dataType="int" stringID="XST_XORCY" value="24"/>
</item>
<item dataType="int" stringID="XST_FLIPFLOPSLATCHES" value="579">
<item dataType="int" stringID="XST_FD" value="16"/>
<item dataType="int" stringID="XST_FDE" value="37"/>
<item dataType="int" stringID="XST_FDR" value="515"/>
<item dataType="int" stringID="XST_FDRE" value="8"/>
<item dataType="int" stringID="XST_FDSE" value="3"/>
</item>
<item dataType="int" stringID="XST_RAMS" value="4">
<item dataType="int" stringID="XST_RAMB16BWER" value="4"/>
</item>
<item dataType="int" stringID="XST_CLOCK_BUFFERS" value="2">
<item dataType="int" stringID="XST_BUFGP" value="2"/>
</item>
<item dataType="int" stringID="XST_IO_BUFFERS" value="123">
<item dataType="int" stringID="XST_IBUF" value="86"/>
<item dataType="int" stringID="XST_OBUF" value="37"/>
</item>
</section>
</section>
<section stringID="XST_DEVICE_UTILIZATION_SUMMARY">
<item stringID="XST_SELECTED_DEVICE" value="6slx45csg324-2"/>
<item AVAILABLE="54576" dataType="int" label="Number of Slice Registers" stringID="XST_NUMBER_OF_SLICE_REGISTERS" value="579"/>
<item AVAILABLE="27288" dataType="int" label="Number of Slice LUTs" stringID="XST_NUMBER_OF_SLICE_LUTS" value="1080"/>
<item AVAILABLE="27288" dataType="int" label="Number used as Logic" stringID="XST_NUMBER_USED_AS_LOGIC" value="1080"/>
<item dataType="int" label="Number of LUT Flip Flop pairs used" stringID="XST_NUMBER_OF_LUT_FLIP_FLOP_PAIRS_USED" value="1097"/>
<item AVAILABLE="1097" dataType="int" label="Number with an unused Flip Flop" stringID="XST_NUMBER_WITH_AN_UNUSED_FLIP_FLOP" value="518"/>
<item AVAILABLE="1097" dataType="int" label="Number with an unused LUT" stringID="XST_NUMBER_WITH_AN_UNUSED_LUT" value="17"/>
<item AVAILABLE="1097" dataType="int" label="Number of fully used LUT-FF pairs" stringID="XST_NUMBER_OF_FULLY_USED_LUTFF_PAIRS" value="562"/>
<item dataType="int" label="Number of unique control sets" stringID="XST_NUMBER_OF_UNIQUE_CONTROL_SETS" value="9"/>
<item dataType="int" label="Number of IOs" stringID="XST_NUMBER_OF_IOS" value="158"/>
<item AVAILABLE="218" dataType="int" label="Number of bonded IOBs" stringID="XST_NUMBER_OF_BONDED_IOBS" value="125"/>
<item AVAILABLE="116" dataType="int" label="Number of Block RAM/FIFO" stringID="XST_NUMBER_OF_BLOCK_RAMFIFO" value="4"/>
<item dataType="int" label="Number using Block RAM only" stringID="XST_NUMBER_USING_BLOCK_RAM_ONLY" value="4"/>
<item AVAILABLE="16" dataType="int" label="Number of BUFG/BUFGCTRLs" stringID="XST_NUMBER_OF_BUFGBUFGCTRLS" value="2"/>
</section>
<section stringID="XST_PARTITION_RESOURCE_SUMMARY">
<section stringID="XST_NO_PARTITIONS_WERE_FOUND_IN_THIS_DESIGN"/>
</section>
<section stringID="XST_ERRORS_STATISTICS">
<item dataType="int" filtered="0" stringID="XST_NUMBER_OF_ERRORS" value="0"/>
<item dataType="int" filtered="0" stringID="XST_NUMBER_OF_WARNINGS" value="37"/>
<item dataType="int" filtered="0" stringID="XST_NUMBER_OF_INFOS" value="2"/>
</section>
</application>
</document>
<?xml version="1.0" encoding="UTF-8" ?>
<document>
<!--The data in this file is primarily intended for consumption by Xilinx tools.
The structure and the elements are likely to change over the next few releases.
This means code written to parse this file will need to be revisited each subsequent release.-->
<application name="impact" timeStamp="Tue Mar 06 15:24:19 2012">
<section name="Project Information" visible="false">
<property name="ProjectID" value="5ea5de4132cd436698ae1e90d83ce606"/>
<property name="ProjectIteration" value="1"/>
</section>
<section name="iMPACT Project Info" visible="true">
<property name="Use Project File" value="Yes"/>
<property name="Project Entry" value="ise"/>
<property name="OS Name" value="Microsoft Windows 7 (64 Bit)"/>
<property name="User Lic. Info" value="179841373_174164856_206270303_042"/>
</section>
<section name="iMPACT One Step SVF File Mode" visible="true">
<item name="Chain Summary">
<property name="Number of device" value="1"/>
<property name="Number of Xilinx device" value="1"/>
<property name="Number of Non-Xilinx device" value="0"/>
</item>
<item name="Chain Description">
<property name="Device1" value="spartan6"/>
<property name="Part1" value="xc6slx45"/>
</item>
<item name="Boundary Scan Operations Statistics">
<property name="BSCAN Operation" value="Program -p 0
"/>
<property name="BSCAN Operation" value="Program -p 0
"/>
<property name="BSCAN Operation" value="Program -p 0
"/>
</item>
<item name="Cable Summary">
<property name="Cable Type" value="Platform Cable USB"/>
<property name="Cable Speed" value="6 MHz"/>
<property name="Port" value="usb-hs"/>
<property name="Local_Server_Mode" value="Local"/>
</item>
</section>
</application>
</document>
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 19:24:33 10/18/2011
// Design Name:
// Module Name: spiifc
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module spiifc(
Reset,
SysClk,
SPI_CLK,
SPI_MISO,
SPI_MOSI,
SPI_SS,
txMemAddr,
txMemData,
rcMemAddr,
rcMemData,
rcMemWE,
debug_out
);
//
// Parameters
//
parameter AddrBits = 12;
// Defines
`define CMD_READ_START 8'd1
`define CMD_READ_MORE 8'd2
`define CMD_WRITE_START 8'd3
`define STATE_GET_CMD 8'd0
`define STATE_READING 8'd1
`define STATE_WRITING 8'd2
//
// Input/Output defs
//
input Reset;
input SysClk;
input SPI_CLK;
output SPI_MISO;
input SPI_MOSI;
input SPI_SS;
output [AddrBits-1:0] txMemAddr;
input [7:0] txMemData;
output [AddrBits-1:0] rcMemAddr;
output [7:0] rcMemData;
output rcMemWE;
output [7:0] debug_out;
//
// Registers
//
reg [ 7: 0] debug_reg;
reg [ 7: 0] rcByteReg;
reg rcStarted;
reg [ 2: 0] rcBitIndexReg;
reg [11: 0] rcMemAddrReg;
reg [11: 0] rcMemAddrNext;
reg [ 7: 0] rcMemDataReg;
reg rcMemWEReg;
reg ssPrev;
reg ssFastToggleReg;
reg ssSlowToggle;
reg ssTurnOnReg;
reg ssTurnOnHandled;
reg [ 7: 0] cmd;
reg [ 7: 0] stateReg;
reg [11: 0] txMemAddrReg;
reg [ 2: 0] txBitAddr;
//
// Wires
//
wire rcByteValid;
wire [ 7: 0] rcByte;
wire rcStarting;
wire [ 2: 0] rcBitIndex;
wire ssTurnOn;
wire ssFastToggle;
wire [ 7: 0] state;
wire txMemAddrReset;
//
// Output assigns
//
assign debug_out = debug_reg;
assign rcMemAddr = rcMemAddrReg;
assign rcMemData = rcMemDataReg;
assign rcMemWE = rcMemWEReg;
assign txMemAddrReset = (rcByteValid && rcByte == `CMD_WRITE_START ? 1 : 0);
assign txMemAddr = (txMemAddrReset ? 0 : txMemAddrReg);
assign SPI_MISO = txMemData[txBitAddr];
assign ssFastToggle =
(ssPrev == 1 && SPI_SS == 0 ? ~ssFastToggleReg : ssFastToggleReg);
//
// Wire assigns
//
assign rcByteValid = rcStarted && rcBitIndex == 0;
assign rcByte = {rcByteReg[7:1], SPI_MOSI};
assign rcStarting = ssTurnOn;
assign rcBitIndex = (rcStarting ? 3'd7 : rcBitIndexReg);
assign ssTurnOn = ssSlowToggle ^ ssFastToggle;
assign state = (rcStarting ? `STATE_GET_CMD : stateReg);
initial begin
ssSlowToggle <= 0;
end
always @(posedge SysClk) begin
ssPrev <= SPI_SS;
if (Reset) begin
ssTurnOnReg <= 0;
ssFastToggleReg <= 0;
end else begin
if (ssPrev & (~SPI_SS)) begin
ssTurnOnReg <= 1;
ssFastToggleReg <= ~ssFastToggleReg;
end else if (ssTurnOnHandled) begin
ssTurnOnReg <= 0;
end
end
end
always @(posedge SPI_CLK) begin
ssSlowToggle <= ssFastToggle;
if (Reset) begin
// Resetting
rcByteReg <= 8'h00;
rcStarted <= 0;
rcBitIndexReg <= 3'd7;
ssTurnOnHandled <= 0;
debug_reg <= 8'hFF;
end else begin
// Not resetting
ssTurnOnHandled <= ssTurnOn;
stateReg <= state;
rcMemAddrReg <= rcMemAddrNext;
if (~SPI_SS) begin
rcByteReg[rcBitIndex] <= SPI_MOSI;
rcBitIndexReg <= rcBitIndex - 3'd1;
rcStarted <= 1;
// Update txBitAddr if writing out
if (`STATE_WRITING == state) begin
if (txBitAddr == 3'd1) begin
txMemAddrReg <= txMemAddr + 1;
end
txBitAddr <= txBitAddr - 1;
end
end
// We've just received a byte (well, currently receiving the last bit)
if (rcByteValid) begin
// For now, just display on LEDs
debug_reg <= rcByte;
if (`STATE_GET_CMD == state) begin
cmd <= rcByte; // Will take effect next cycle
if (`CMD_READ_START == rcByte) begin
rcMemAddrNext <= 0;
stateReg <= `STATE_READING;
end else if (`CMD_READ_MORE == rcByte) begin
stateReg <= `STATE_READING;
end else if (`CMD_WRITE_START == rcByte) begin
txBitAddr <= 3'd7;
stateReg <= `STATE_WRITING;
txMemAddrReg <= txMemAddr; // Keep at 0
end
end else if (`STATE_READING == state) begin
rcMemDataReg <= rcByte;
rcMemAddrNext <= rcMemAddr + 1;
rcMemWEReg <= 1;
// end else if (`STATE_WRITING == state) begin
// txBitAddr <= 3'd7;
// stateReg <= `STATE_WRITING;
end
end else begin
// Not a valid byte
rcMemWEReg <= 0;
end // valid/valid' byte
end // Reset/Reset'
end
/*
reg rcByte_valid;
wire rcClockBridgeEmpty;
wire readRcByte;
assign getRcByte = ~rcClockBridgeEmpty;
wire rcClockBridgeReadValid;
wire rcClockBridgeFull;
wire [7:0] rcByte;
clock_bridge recvClockBridge (
.rst(Reset), // input rst
.wr_clk(~SPI_CLK), // input wr_clk
.rd_clk(SysClk), // input rd_clk
.din(SPI_MOSI), // input [0 : 0] din
.wr_en(~SPI_SS), // input wr_en
.rd_en(getRcByte), // input rd_en
.dout(rcByte), // output [7 : 0] dout
.full(rcClockBridgeFull), // output full
.empty(rcClockBridgeEmpty), // output empty
.valid(rcClockBridgeReadValid) // output valid
);
always @(posedge SysClk) begin
rcByte_valid <= getRcByte;
end
wire txCmdClkBridgeEmpty;
wire txCmdClkBridgeFull;
wire [7:0] txCmd;
wire txCmdValid;
assign txCmdValid = ~txCmdClkBridgeEmpty;
wire postTxCmd;
assign postTxCmd =
fifo_8bit_to_8bit txCmdClkBridge(
.rst(Reset), // input rst
.wr_clk(SysClk), // input wr_clk
.rd_clk(SPI_CLK), // input rd_clk
.din(din), // input [7 : 0] din
.wr_en(post), // input wr_en
.rd_en(txCmdValid), // input rd_en
.dout(txCmd), // output [7 : 0] dout
.full(txCmdClkBridgeFull), // output full
.empty(txCmdClkBridgeEmpty) // output empty
);
//
// TRANSMIT: FPGA TO PC
//
assign SPI_MISO = txMemData[bitIndex];
reg [2:0] bitIndex;
reg [AddrBits-1:0] byteAddr;
assign txMemAddr = byteAddr;
reg [7:0] debug_reg;
assign debug_out = debug_reg;
initial begin
debug_reg <= 8'h00;
//rcState <= 0;
end
//
// Clocked logic
//
always @(posedge SPI_CLK) begin
if (Reset) begin
bitIndex <= 3'd0;
byteAddr <= 0;
end else if (SPI_SS == 1'b0) begin
bitIndex <= bitIndex - 3'd1;
if (bitIndex == 3'd1) begin
byteAddr <= byteAddr + 1;
end
end
end
//
// RECEIVE: PC TO FPGA
//
// Detect start of receive
reg ss_prev;
wire ss_negedge;
always @(posedge SysClk) begin
ss_prev <= SPI_SS;
end
assign ss_negedge = (ss_prev == 1'b1 && SPI_SS == 1'b0 ? 1'b1 : 1'b0);
`define RC_MODE_GET_STATUS 8'd0
`define RC_MODE_GET_BUFFER 8'd1
`define RC_MODE_PUT_BUFFER 8'd2
reg [7:0] rcMode;
`define RC_STATE_CMD 8'd0
`define RC_STATE_SIZE 8'd1
`define RC_STATE_PAYLOAD 8'd2
reg [7:0] rcState;
reg [31:0] rcByteCount;
reg [31:0] rcByteSize;
reg [7:0] rcMemData_reg;
reg [AddrBits-1:0] rcMemAddr_reg;
reg rcMemWE_reg;
assign rcMemData = rcMemData_reg;
assign rcMemAddr = rcMemAddr_reg;
assign rcMemWE = rcMemWE_reg;
always @(posedge SysClk) begin
// // About to receive
// if (ss_negedge) begin
// rcBitIndex <= 3'd7;
// rcState <= `RC_STATE_CMD;
//
// debug_reg[0] <= 1;
// end
//
// // Receiving
// if (receiving) begin
// rcByte[rcBitIndex] <= SPI_MOSI;
// rcBitIndex <= rcBitIndex - 3'd1;
// end
// rcByte_valid <= (receiving && rcBitIndex == 3'd0 ? 1'b1 : 1'b0);
// Handle the complete incoming byte
if (rcByte_valid) begin
debug_reg[7:4] <= rcByte[3:0];
// First byte: the command
if (`RC_STATE_CMD == rcState || ss_negedge) begin
// Disable writing to the read buffer (will be left on if the prev
// cycle was writing to it)
rcMemWE_reg <= 1'b0;
debug_reg[0] <= 1;
// Decode the SPI command
case (rcByte)
`RC_MODE_GET_STATUS: begin end // no status yet
`RC_MODE_GET_BUFFER: begin rcMode <= `RC_MODE_GET_BUFFER; rcState <= `RC_STATE_SIZE; end
`RC_MODE_PUT_BUFFER: begin rcMode <= `RC_MODE_PUT_BUFFER; rcState <= `RC_STATE_SIZE; end
endcase
// Initialize counters
rcByteCount <= 32'd0;
rcByteSize <= 32'd0;
end
// Record size (in bytes) of payload
if (`RC_STATE_SIZE == rcState) begin
debug_reg[1] <= 1;
case (rcByteCount)
32'd0: begin rcByteSize[31:24] <= rcByte; rcByteCount <= 32'd1; end
32'd1: begin rcByteSize[23:16] <= rcByte; rcByteCount <= 32'd2; end
32'd2: begin rcByteSize[15: 8] <= rcByte; rcByteCount <= 32'd3; end
32'd3: begin
rcByteSize[ 7: 0] <= rcByte;
rcByteCount <= 32'd0;
rcState <= `RC_STATE_PAYLOAD;
rcByteCount <= 32'd0;
if (`RC_MODE_GET_BUFFER == rcMode) begin
// TODO: want reset tx byte addr here probably
end
end
endcase
end
// The payload
if (rcState == `RC_STATE_PAYLOAD) begin
debug_reg[2] <= 1;
case (rcMode)
`RC_MODE_GET_BUFFER: begin
// IGNORE EVERYTHING SO STUFF CAN BE READ OUT
end
`RC_MODE_PUT_BUFFER: begin
//debug_reg[4] <= 1;
rcMemWE_reg <= 1'b1;
rcMemData_reg <= rcByte;
rcMemAddr_reg <= rcByteCount[AddrBits-1:0];
end
endcase
if (rcByteCount == rcByteSize - 1) begin
rcState <= `RC_STATE_CMD;
//debug_reg[5] <= 1;
end else begin
rcByteCount <= rcByteCount + 32'd1;
end
end
end
else begin // not valid byte
if (ss_negedge) begin
rcState <= `RC_STATE_CMD;
end
end
end
//reg [7:0] rcByteReg;
//wire [7:0] rcByte;
//assign rcByte = {rcByteReg[7:1], (SPI_SS == 1'b0 && bitIndex ==
// //
// // Receive (GPU to SPI)
// //
// reg SPI_SS_prev_cycle;
//
// // This is the register backing rcByteId. It is always one cycle
// // behind the true value of rcByteId, which we have to do a little
// // work to get instantaneously correct using wire logic.
// reg [31:0] rcByteIdPrev;
// wire [31:0] rcByteId;
// assign rcByteId = (SPI_SS_prev_cycle == 1 && SPI_SS == 0 ? 32'd0 : 32'd1 + rcByteIdPrev);
//
// // 1 if we're receiving from GPC, 0 if not.
// wire isRecv;
// assign isRecv = ~SPI_SS;
//
// // Bits to Byte aggregator
// reg [2:0] rcBitId;
// reg [7:0] rcByte;
//
//
// reg [31:0] rcSizeBytes;
//
// always @(posedge SPI_CLK) begin
// if (1 == isRecv) begin
// case (rcByteId)
// 0: rcSizeBytes[ 7: 0] <=
// end
//
// // Update registers for next cycle
// SPI_SS_prev_cycle <= SPI_SS;
// rcByteId <= rcByteIdPrev;
// end
*/
endmodule
...@@ -52,6 +52,10 @@ module user_logic ...@@ -52,6 +52,10 @@ module user_logic
( (
// -- ADD USER PORTS BELOW THIS LINE --------------- // -- ADD USER PORTS BELOW THIS LINE ---------------
// --USER ports added here // --USER ports added here
SPI_CLK,
SPI_MOSI,
SPI_MISO,
SPI_SS,
// -- ADD USER PORTS ABOVE THIS LINE --------------- // -- ADD USER PORTS ABOVE THIS LINE ---------------
// -- DO NOT EDIT BELOW THIS LINE ------------------ // -- DO NOT EDIT BELOW THIS LINE ------------------
...@@ -93,6 +97,10 @@ parameter C_NUM_INTR = 1; ...@@ -93,6 +97,10 @@ parameter C_NUM_INTR = 1;
// -- ADD USER PORTS BELOW THIS LINE ----------------- // -- ADD USER PORTS BELOW THIS LINE -----------------
// --USER ports added here // --USER ports added here
input SPI_CLK;
input SPI_MOSI;
output SPI_MISO;
input SPI_SS;
// -- ADD USER PORTS ABOVE THIS LINE ----------------- // -- ADD USER PORTS ABOVE THIS LINE -----------------
// -- DO NOT EDIT BELOW THIS LINE -------------------- // -- DO NOT EDIT BELOW THIS LINE --------------------
...@@ -125,7 +133,6 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -125,7 +133,6 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
// --USER nets declarations added here, as needed for user logic // --USER nets declarations added here, as needed for user logic
// Memmap memory logic lines // Memmap memory logic lines
wire [0 : C_NUM_MEM-1 ] mem_ena; // Port A: spiifc
wire [0 : C_NUM_MEM-1 ] mem_enb; // Port B: sysbus/dma wire [0 : C_NUM_MEM-1 ] mem_enb; // Port B: sysbus/dma
wire [0 : C_NUM_MEM-1 ] mem_web; wire [0 : C_NUM_MEM-1 ] mem_web;
wire [0 : C_NUM_MEM-1] mem_write; wire [0 : C_NUM_MEM-1] mem_write;
...@@ -133,6 +140,7 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -133,6 +140,7 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
reg [0 : C_NUM_MEM-1 ] mem_read_prev; reg [0 : C_NUM_MEM-1 ] mem_read_prev;
// mosiMem (mem0): data received from master // mosiMem (mem0): data received from master
wire mosiMem_wea;
wire [0 : 11] mosiMem_addra; wire [0 : 11] mosiMem_addra;
wire [0 : 7 ] mosiMem_dina; wire [0 : 7 ] mosiMem_dina;
wire [0 : 9 ] mosiMem_addrb; wire [0 : 9 ] mosiMem_addrb;
...@@ -172,14 +180,10 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -172,14 +180,10 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
// --USER logic implementation added here // --USER logic implementation added here
// memory interface logic // memory interface logic
assign mem_ena = 2'd0; // TODO: interface with spiifc
assign mem_enb = mem_write | mem_read /*& {C_NUM_MEM{Bus2IP_RdReq | Bus2IP_WrReq}}*/; assign mem_enb = mem_write | mem_read /*& {C_NUM_MEM{Bus2IP_RdReq | Bus2IP_WrReq}}*/;
assign mem_web = mem_write; assign mem_web = mem_write;
assign mosiMem_addra = 12'h000; // TODO: interface with spiifc
assign mosiMem_dina = 8'd00; // TODO: interface with spiifc
assign mosiMem_addrb = Bus2IP_Addr[20:29]; assign mosiMem_addrb = Bus2IP_Addr[20:29];
assign mosiMem_dinb = Bus2IP_Data; assign mosiMem_dinb = Bus2IP_Data;
assign misoMem_addra = 12'h000; // TODO: interface with spiifc
assign misoMem_addrb = Bus2IP_Addr[20:29]; assign misoMem_addrb = Bus2IP_Addr[20:29];
assign misoMem_dinb = Bus2IP_Data; assign misoMem_dinb = Bus2IP_Data;
...@@ -192,9 +196,9 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -192,9 +196,9 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
// Mem0: Memory buffer storing data coming from master // Mem0: Memory buffer storing data coming from master
buffermem mosiMem ( buffermem mosiMem (
.clka(Bus2IP_Clk), // input clka .clka(SPI_CLK), // input clka
.ena(mem_ena[0]), // input ena .ena(1'b1), // input ena
.wea(1'b1), // Always writing, never reading .wea(mosiMem_wea), // Always writing, never reading
.addra({mosiMem_addra}), // input [11 : 0] addra .addra({mosiMem_addra}), // input [11 : 0] addra
.dina({mosiMem_dina}), // input [7 : 0] dina .dina({mosiMem_dina}), // input [7 : 0] dina
// .douta(mosiMem_douta), // NEVER USED: output [7 : 0] douta // .douta(mosiMem_douta), // NEVER USED: output [7 : 0] douta
...@@ -208,8 +212,8 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -208,8 +212,8 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
// Mem1: Memory buffer storing data to send to master // Mem1: Memory buffer storing data to send to master
buffermem misoMem ( buffermem misoMem (
.clka(Bus2IP_Clk), // input clka .clka(SPI_CLK), // input clka
.ena(mem_ena[1]), // input ena .ena(1'b1), // input ena
.wea(1'b0), // Always reading, never writing .wea(1'b0), // Always reading, never writing
.addra({misoMem_addra}), // input [11 : 0] addra .addra({misoMem_addra}), // input [11 : 0] addra
// .dina(dina), // input [7 : 0] dina // .dina(dina), // input [7 : 0] dina
...@@ -221,6 +225,20 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent; ...@@ -221,6 +225,20 @@ output [0 : C_NUM_INTR-1] IP2Bus_IntrEvent;
.dinb({misoMem_dinb}), // input [31 : 0] dinb .dinb({misoMem_dinb}), // input [31 : 0] dinb
.doutb({misoMem_doutb}) // output [31 : 0] doutb .doutb({misoMem_doutb}) // output [31 : 0] doutb
); );
spiifc spi (
.Reset(Bus2IP_Reset),
.SysClk(Bus2IP_Clk),
.SPI_CLK(SPI_CLK),
.SPI_MISO(SPI_MISO),
.SPI_MOSI(SPI_MOSI),
.SPI_SS(SPI_SS),
.txMemAddr(misoMem_addra),
.txMemData(misoMem_douta),
.rcMemAddr(mosiMem_addra),
.rcMemData(mosiMem_dina),
.rcMemWE(mosiMem_wea)
);
// ------------------------------------------------------ // ------------------------------------------------------
// Example code to read/write user logic slave model s/w accessible registers // Example code to read/write user logic slave model s/w accessible registers
......
...@@ -171,7 +171,10 @@ entity spiifc is ...@@ -171,7 +171,10 @@ entity spiifc is
port port
( (
-- ADD USER PORTS BELOW THIS LINE ------------------ -- ADD USER PORTS BELOW THIS LINE ------------------
--USER ports added here SPI_CLK : in std_logic;
SPI_MOSI : in std_logic;
SPI_MISO : out std_logic;
SPI_SS : in std_logic;
-- ADD USER PORTS ABOVE THIS LINE ------------------ -- ADD USER PORTS ABOVE THIS LINE ------------------
-- DO NOT EDIT BELOW THIS LINE --------------------- -- DO NOT EDIT BELOW THIS LINE ---------------------
...@@ -414,7 +417,10 @@ architecture IMP of spiifc is ...@@ -414,7 +417,10 @@ architecture IMP of spiifc is
port port
( (
-- ADD USER PORTS BELOW THIS LINE ------------------ -- ADD USER PORTS BELOW THIS LINE ------------------
--USER ports added here SPI_CLK : in std_logic;
SPI_MOSI : in std_logic;
SPI_MISO : out std_logic;
SPI_SS : in std_logic;
-- ADD USER PORTS ABOVE THIS LINE ------------------ -- ADD USER PORTS ABOVE THIS LINE ------------------
-- DO NOT EDIT BELOW THIS LINE --------------------- -- DO NOT EDIT BELOW THIS LINE ---------------------
...@@ -589,7 +595,10 @@ begin ...@@ -589,7 +595,10 @@ begin
port map port map
( (
-- MAP USER PORTS BELOW THIS LINE ------------------ -- MAP USER PORTS BELOW THIS LINE ------------------
--USER ports mapped here SPI_CLK => SPI_CLK,
SPI_MOSI => SPI_MOSI,
SPI_MISO => SPI_MISO,
SPI_SS => SPI_SS,
-- MAP USER PORTS ABOVE THIS LINE ------------------ -- MAP USER PORTS ABOVE THIS LINE ------------------
Bus2IP_Clk => ipif_Bus2IP_Clk, Bus2IP_Clk => ipif_Bus2IP_Clk,
......
...@@ -20,6 +20,10 @@ ...@@ -20,6 +20,10 @@
PORT fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin = fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin, DIR = I, VEC = [0:4] PORT fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin = fpga_0_Push_Buttons_5Bits_GPIO_IO_I_pin, DIR = I, VEC = [0:4]
PORT fpga_0_clk_1_sys_clk_pin = CLK_S, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000 PORT fpga_0_clk_1_sys_clk_pin = CLK_S, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000
PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST, RST_POLARITY = 0 PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST, RST_POLARITY = 0
PORT spiifc_0_SPI_CLK_pin = spiifc_0_SPI_CLK, DIR = I, SIGIS = CLK, CLK_FREQ = 50000000
PORT spiifc_0_SPI_MISO_pin = spiifc_0_SPI_MISO, DIR = O
PORT spiifc_0_SPI_MOSI_pin = spiifc_0_SPI_MOSI, DIR = I
PORT spiifc_0_SPI_SS_pin = spiifc_0_SPI_SS, DIR = I
BEGIN microblaze BEGIN microblaze
...@@ -170,6 +174,10 @@ BEGIN spiifc ...@@ -170,6 +174,10 @@ BEGIN spiifc
PARAMETER C_MEM1_BASEADDR = 0x85011000 PARAMETER C_MEM1_BASEADDR = 0x85011000
PARAMETER C_MEM1_HIGHADDR = 0x85011FFF PARAMETER C_MEM1_HIGHADDR = 0x85011FFF
BUS_INTERFACE SPLB = mb_plb BUS_INTERFACE SPLB = mb_plb
PORT SPI_CLK = spiifc_0_SPI_CLK
PORT SPI_MOSI = spiifc_0_SPI_MOSI
PORT SPI_MISO = spiifc_0_SPI_MISO
PORT SPI_SS = spiifc_0_SPI_SS
END END
BEGIN xps_central_dma BEGIN xps_central_dma
......
...@@ -218,9 +218,9 @@ module spiifc( ...@@ -218,9 +218,9 @@ module spiifc(
rcMemAddrNext <= rcMemAddr + 1; rcMemAddrNext <= rcMemAddr + 1;
rcMemWEReg <= 1; rcMemWEReg <= 1;
// end else if (`STATE_WRITING == state) begin end else if (`STATE_WRITING == state) begin
// txBitAddr <= 3'd7; txBitAddr <= 3'd7;
// stateReg <= `STATE_WRITING; stateReg <= `STATE_WRITING;
end end
end else begin end else begin
......
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:46:12 03/02/2012
// Design Name:
// Module Name: spiifc
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module spiifc(
Reset,
SysClk,
SPI_CLK,
SPI_MISO,
SPI_MOSI,
SPI_SS,
txMemAddr,
txMemData,
rcMemAddr,
rcMemData,
rcMemWE,
debug_out
);
//
// Parameters
//
parameter AddrBits = 12;
//
// Defines
//
`define CMD_READ_START 8'd1
`define CMD_READ_MORE 8'd2
`define CMD_WRITE_START 8'd3
`define CMD_WRITE_MORE 8'd4
`define CMD_INTERRUPT 8'd5
`define STATE_GET_CMD 8'd0
`define STATE_READING 8'd1
`define STATE_WRITING 8'd2
`define STATE_WRITE_INTR 8'd3
//
// Input/Outputs
//
input Reset;
input SysClk;
input SPI_CLK;
output SPI_MISO; // outgoing (from respect of this module)
input SPI_MOSI; // incoming (from respect of this module)
input SPI_SS;
output [AddrBits-1:0] txMemAddr; // outgoing data
input [7:0] txMemData;
output [AddrBits-1:0] rcMemAddr; // incoming data
output [7:0] rcMemData;
output rcMemWE;
output [7:0] debug_out;
//
// Registers
//
reg prev_spiClk; // Value of SPI_CLK during last SysClk cycle
reg prev_spiSS; // Value of SPI_SS during last SysClk cycle
reg [7:0] state_reg; // Register backing the 'state' wire
reg [7:0] rcByte_reg; // Register backing 'rcByte'
reg [2:0] rcBitIndex_reg; // Register backing 'rcBitIndex'
reg [AddrBits-1:0] rcMemAddr_reg; // Byte addr to write MOSI data to
//
// Wires
//
wire risingSpiClk; // Did the SPI_CLK rise since last SysClk cycle?
wire validSpiBit; // Are the SPI MOSI/MISO bits new and valid?
reg state; // Current state in the module's state machine (always @* effectively wire)
wire rcByteValid; // rcByte is valid and new
wire [7:0] rcByte; // Byte received from master
wire [2:0] rcBitIndex; // Bit of rcByte to write to next
// Detect new valid bit
always @(posedge SysClk) begin
prev_spiClk <= SPI_CLK;
end
assign risingSpiClk = SPI_CLK & (~prev_spiClk);
assign validSpiBit = risingSpiClk & (~SPI_SS);
// Detect new SPI packet (SS dropped low)
always @(posedge SysClk) begin
prev_spiSS <= SPI_SS;
end
assign packetStart = prev_spiSS & (~SPI_SS);
// Build incoming byte
always @(posedge SysClk) begin
if (validSpiBit) begin
rcByte_reg[rcBitIndex] <= SPI_MOSI;
rcBitIndex_reg <= (rcBitIndex > 0 ? rcBitIndex - 1 : 7);
end else begin
rcBitIndex_reg <= rcBitIndex;
end
end
assign rcBitIndex = (Reset || packetStart ? 7 : rcBitIndex_reg);
assign rcByte = {rcByte_reg[7:1], SPI_MOSI};
assign rcByteValid = (validSpiBit && rcBitIndex == 0 ? 1 : 0);
// Incoming MOSI data buffer management
assign rcMemAddr = rcMemAddr_reg;
assign rcMemData = rcByte;
assign rcMemWE = (state == `STATE_READING && rcByteValid ? 1 : 0);
always @(posedge SysClk) begin
if (Reset || (`STATE_GET_CMD == state && rcByteValid)) begin
rcMemAddr_reg <= 0;
end else if (rcMemWE) begin
rcMemAddr_reg <= rcMemAddr + 1;
end else begin
rcMemAddr_reg <= rcMemAddr;
end
end
// State machine
always @(*) begin
if (Reset || packetStart) begin
state <= `STATE_GET_CMD;
end else if (state_reg == `STATE_GET_CMD && rcByteValid) begin
state <= rcByte;
end else begin
state <= state_reg;
end
end
always @(posedge SysClk) begin
if (`STATE_GET_CMD == state && rcByteValid) begin
if (`CMD_READ_START == rcByte) begin
state_reg <= `STATE_READING;
end else if (`CMD_READ_MORE == rcByte) begin
state_reg <= `STATE_READING;
end else if (`CMD_WRITE_START == rcByte) begin
state_reg <= `STATE_WRITING;
end else if (`CMD_WRITE_MORE == rcByte) begin
state_reg <= `STATE_WRITING;
end else if (`CMD_INTERRUPT == rcByte) begin
// TODO: NYI
end
end else begin
state_reg <= state;
end
end
endmodule
...@@ -59,19 +59,19 @@ always @(posedge SysClk) begin ...@@ -59,19 +59,19 @@ always @(posedge SysClk) begin
end end
end end
spimem spiMemTx ( buffermem spiMemTx (
.clka(SysClk), // input clka .clka(spi_clk), // input clkb
.ena(1'b1), // input ena .ena(1'b1), // input enb
.wea(initMem), // input [0 : 0] wea .wea(1'b0), // input [0 : 0] web
.addra(initMemAddr), // input [9 : 0] addra .addra(spi_addr), // input [11 : 0] addrb
.dina(initMemData), // input [31 : 0] dina .dina(8'h00), // input [7 : 0] dinb
.douta(douta_dummy), // output [31 : 0] douta .douta(spi_data), // output [7 : 0] doutb
.clkb(spi_clk), // input clkb .clkb(SysClk), // input clka
.enb(1'b1), // input enb .enb(1'b1), // input ena
.web(1'b0), // input [0 : 0] web .web(initMem), // input [0 : 0] wea
.addrb(spi_addr), // input [11 : 0] addrb .addrb(initMemAddr), // input [9 : 0] addra
.dinb(8'h00), // input [7 : 0] dinb .dinb(initMemData), // input [31 : 0] dina
.doutb(spi_data) // output [7 : 0] doutb .doutb(douta_dummy) // output [31 : 0] douta
); );
wire spi_rcMem_we; wire spi_rcMem_we;
...@@ -79,18 +79,18 @@ wire [11:0] spi_rcMem_addr; ...@@ -79,18 +79,18 @@ wire [11:0] spi_rcMem_addr;
wire [ 7:0] spi_rcMem_data; wire [ 7:0] spi_rcMem_data;
wire [ 7:0] debug_out; wire [ 7:0] debug_out;
wire [ 7:0] spi_rcMem_doutb_dummy; wire [ 7:0] spi_rcMem_doutb_dummy;
spimem spiMemRc ( buffermem spiMemRc (
.clka(SysClk), .clka(spi_clk),
.ena(1'b1), .ena(1'b1),
.wea(1'b0), .wea(spi_rcMem_we),
.addra(10'h001), .addra(spi_rcMem_addr),
.douta(rcMem_douta), .dina(spi_rcMem_data),
.clkb(spi_clk), .douta(spi_rcMem_doutb_dummy),
.clkb(SysClk),
.enb(1'b1), .enb(1'b1),
.web(spi_rcMem_we), .web(1'b0),
.addrb(spi_rcMem_addr), .addrb(10'h001),
.dinb(spi_rcMem_data), .doutb(rcMem_douta)
.doutb(spi_rcMem_doutb_dummy)
); );
spiifc mySpiIfc ( spiifc mySpiIfc (
...@@ -108,8 +108,6 @@ spiifc mySpiIfc ( ...@@ -108,8 +108,6 @@ spiifc mySpiIfc (
.debug_out(debug_out) .debug_out(debug_out)
); );
assign leds = /*rcMem_douta[31:24]*/ debug_out;
assign leds = rcMem_douta[31:24];
endmodule endmodule
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment