Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Logic block

Note

This document describes Spartan 3 and Virtex 4 CLBs, since they are very similar.

The main logic resource in Spartan 3 and Virtex 4 devices is the CLB (Configurable Logic Block). It is based on the Virtex 2 CLB, but has significant changes, particularly to the LUT RAM structures.

A CLB corresponds one-to-one with the INT.CLB interconnect tile (on Spartan 3), or to an INT interconnect tile (on Virtex 4). Every CLB has four SLICEs. The SLICEs come in two kinds:

  • SLICEM: the full-featured version of SLICE, with LUT RAM capability
  • SLICEL: logic-only SLICE, without LUT RAM capability; it is a strict subset of SLICEM

The SLICEs within a CLB are organized as follows (this is different from Virtex 2):

  • SLICE0: SLICEM, on the bottom left of the CLB
  • SLICE1: SLICEL, to the right of SLICE0
  • SLICE2: SLICEM, above SLICE0
  • SLICE3: SLICEL, to the right of SLICE2 and above SLICE1

Every slice has:

  • two 4-input LUTs, named F and G
    • each of them has four inputs, named F[1-4] and G[1-4]
    • in SLICEMs, each LUT can be used as LUT RAM or shift register
  • two “bypass inputs” used for various purposes
    • BX, associated with the F LUT
    • BY, associated with the G LUT
  • two wide multiplexers
    • F5, associated with the F LUT, multiplexing F and G
    • FX, associated with the G LUT, multiplexing F5 and FX outputs of this and other SLICEs
  • carry logic with a carry chain, going vertically upwards through the CLB column
  • two main combinational outputs
    • X, associated with the F LUT
    • Y, associated with the G LUT
  • (Virtex 4 only) two secondary combinational outputs
    • XMUX, associated with the F LUT
    • YMUX, associated with the G LUT
  • two “bypass” combinational outputs, used for long shift registers and carry chains
    • XB, associated with the F LUT
    • YB, associated with the G LUT
  • two registers and their outputs
    • FFX and XQ, associated with the F LUT
    • FFY and YQ, associated with the G LUT
  • shared control inputs:
    • CLK, the clock input
    • SR, the set/reset input (also used as LUT RAM write enable in SLICEM)
    • CE, the clock enable input

In summary, a single SLICE has the following pins:

  • F[1-4] and G[1-4]: general interconnect inputs, used as LUT inputs and LUT RAM write address
  • BX and BY: general interconnect freely-invertible inputs, used for various purposes
  • CLK, SR, CE: general interconnect freely-invertible inputs
  • X, Y, XQ, YQ, XB, YB: general interconnect outputs
  • (Virtex 4 only) XMUX, YMUX: general interconnect outputs
  • COUT: dedicated output (carry output)
  • CIN: dedicated input (carry input), routed from COUT of the slice below
  • SHIFTOUT: dedicated output (shift register output)
  • SHIFTIN: dedicated input (shift register input), routed from SHIFTOUT of the previous slice in sequence
  • F5 and FX: dedicated outputs (wide multiplexer outputs)
  • FXINA and FXINB: dedicated inputs (wide multiplexer inputs), routed from F5 and FX of neighbouring slices
  • DIG: dedicated output (SLICEM only)
  • ALTDIG: dedicated input (SLICEM only)

Additionally, some pins and circuitry are shared between SLICEMs within the same CLB.

Note that on Virtex 4, the CLB tile is interconnect-limitted: only up to 16 out of the [XY]Q, [XY]MUX, and [XY]B outputs within a single CLB can be used at a time due to the OMUX bottleneck. The main [XY] outputs don’t count towards that limit, since they can use other interconnect resources.

The CLK, SR, and CE inputs are invertible on the interconnect level.

The BX and BY inputs are invertible within the CLB. The BXINV attribute, if set, inverts the BX signal from the interconnect. Likewise, BYINV inverts the BY signal.

LUTs

There are two 4-input LUTs in each slice, F and G. The F LUT has inputs F[1-4], with F1 being the LSB and F4 being the MSB. The G LUT likewise has inputs G[1-4].

The initial LUT contents are determined by the F and G attributes in the bitstream.

The LUT outputs go to:

  • (Spartan 3) the FXMUX and GYMUX multiplexers
  • (Virtex 4) the F output goes directly to the X output; the G output goes directly to the Y output
  • (Virtex 4) the FFX and FFY registers, via DXMUX and DYMUX multiplexers
  • the carry logic
  • the F5 wide multiplexer

LUT RAM

This section is only applicable to SLICEM. SLICELs don’t have LUT RAM capability.

The F_RAM and G_RAM attributes, when set, turn F and G (respectively) into LUT RAM mode.

The signals used in RAM mode are:

  • CLK is the write clock
  • SR is the write enable
  • G[1-4] are write address for both the F and G LUTs
  • DIF and DIG are the data input for the F and G LUTs, respectively
  • BX: bit 4 of the write address, when enabled
  • SLICEWE1: bit 5 of the write address, when enabled

The DIF_MUX determines the value of DIF:

  • BX: use the BX pin (used for 16×X single-port RAMs)
  • ALT: use the DIG value (used for dual-port RAMs, 32×X RAMs, or 64×1 RAMs)

The DIG_MUX determines the value of DIG:

  • BY: use the BY pin (used for 16×X and 32×X RAMs and SLICE2 in 64×X RAMs)
  • ALT: use the ALTDIG value (used for SLICE0 in 64×1 RAMs)

ALTDIG is determined as follows:

  • SLICE0.ALTDIG is connected to SLICE2.DIG
  • SLICE2.ALTDIG is indeterminate (and should not be used)

Note that DI[FG]_MUX attributes are also used in the shift register mode, but with different meaning.

On Spartan 3, when SLICEWE0USED is set, the BX signal is used as bit 4 of write address. The F LUT is written when it is 1, the G LUT is written when it is 0. Otherwise, the signal is ignored, and both LUTs are written at the same time.

On Virtex 4, the attribute is replaced with F_SLICEWE0USED and G_SLICEWE0USED, which are per-LUT.

The SLICEWE1 signal is routed as follows:

  • SLICE0.SLICEWE1 = SLICE0.BY
  • SLICE2.SLICEWE1 = !SLICE0.BY

On Spartan 3, if SLICE0.SLICEWE1USED is set, both SLICEMs within the CLB will use their SLICEWE1 signal as a write enable — the LUTs are only written when SLICEWE1 is 1. Otherwise, all SLICEWE1 signals are ignored.

Note that SLICE2 doesn’t have a SLICEWE1USED bit — it is controlled by the same configuration bit as SLICE0.

On Virtex 4, the attribute is replaced with F_SLICEWE1USED and G_SLICEWE1USED, which are per-LUT, and appear in both slices.

Single-port 16×X RAM

Single-port 16×X RAM can be implemented as follows:

  • pick a SLICEM
  • pick a LUT within the slice for each 16×1 subblock
    • G can always be used
    • F can be used if G is also used with the same address
  • connect CLK to write clock
  • connect SR to write enable
  • for the 16×1 slice in F LUT:
    • connect F[1-4] to the read/write address
    • connect BX to write data
    • set DIF_MUX to BX
    • use F output as read data
  • for the 16×1 slice in G LUT:
    • connect G[1-4] to the read/write address
    • connect BY to write data
    • set DIG_MUX to BY
    • use G output as read data

Dual-port 16×X RAM

Dual-port 16×X RAM can be implemented as follows:

  • pick a SLICEM
  • connect CLK to write clock
  • connect SR to write enable
  • connect G[1-4] to the write address
  • connect F[1-4] to the read address
  • connect BY to write data
  • set DIF_MUX to ALT
  • set DIG_MUX to BY
  • use F and G outputs as read data

Single-port 32×X RAM

Single-port 32×X RAM can be implemented as follows:

  • pick a SLICEM
  • connect CLK to write clock
  • connect SR to write enable
  • F LUT corresponds to addresses 0x0X
  • G LUT corresponds to addresses 0x1X
  • connect F[1-4] and G[1-4] to low 4 bits of the read/write address
  • connect BX to bit 4 of read/write address
  • set SLICEWE0USED
  • connect BY to write data
  • set DIF_MUX to ALT
  • set DIG_MUX to BY
  • use F5 output as read data

Single-port 64×1 RAM

Single-port 64×1 RAM can be implemented as follows:

  • use both SLICE0 and SLICE2
  • connect CLK to write clock
  • connect SR to write enable
  • SLICE0.G LUT corresponds to addresses 0x0X
  • SLICE0.F LUT corresponds to addresses 0x1X
  • connect F[1-4] and G[1-4] to low 4 bits of the read/write address
  • connect both BX to bit 4 of read/write address
  • set SLICEWE0USED
  • connect SLICE0.BY to bit 5 of read/write address
  • set SLICE0.SLICEWE1USED
  • connect SLICE2.BY to write data
  • set DIF_MUX to ALT
  • set SLICE2.DIG_MUX to BY
  • set SLICE0.DIG_MUX to ALT
  • use SLICE0.FX output as read data

Shift registers

This section is only applicable to SLICEM. SLICELs don’t have LUT RAM capability.

The F_SHIFT and G_SHIFT attributes, when set, turn F and G (respectively) into shift register mode.

The signals used in shift register mode are:

  • CLK is the write clock
  • SR is the write enable
  • DIF and DIG are the data input for the F and G LUTs, respectively

The LUTs in shift register mode have shift-out outputs, FMC15 and GMC15, which are the next bit to be shifted out. They can be connected to another LUT’s data input to assemble larger shift registers.

The DIF_MUX determines the value of DIF:

  • BX: use the BX pin
  • ALT: use the GMC15 value

The DIG_MUX determines the value of DIG:

  • BY: use the BY pin
  • ALT: use the SHIFTIN pin

SHIFTIN is routed as follows:

  • SLICE0.SHIFTIN = SLICE2.SHIFTOUT = SLICE2.FMC15
  • SLICE2.SHIFTIN is indeterminate.

Note that DI[FG]_MUX attributes are also used in the LUT RAM mode, but with different meaning.

The external write data is written to bit 0 of the LUT. Bit 15 is shifted out.

TODO: do LUT RAM and shift register modes interfere within a SLICE?

Wide multiplexers

Every SLICE has two wide multiplexers: F5 and FX, used to combine smaller LUTs into larger LUTs. Their function is hardwired:

  • F5 = BX ? F : G
  • FX = BY ? FXINA : FXINB

The F5 output goes to the FXMUX multiplexer, and further wide multiplexers. The FX output goes to the GYMUX multiplexer, and further wide multiplexers.

The FXINA and FXINB inputs are routed as follows:

SLICEFXINAFXINBeffective primitive
SLICE0SLICE0.F5SLICE2.F5MUXF6
SLICE1SLICE1.F5SLICE3.F5MUXF6
SLICE2SLICE0.FXSLICE1.FXMUXF7
SLICE3SLICE2.FXSLICE2.FX, from CLB aboveMUXF8

Note

The routing is different from Virtex 2.

The FX output isn’t connected across any interconnect holes — a MUXF8 cannot be made of two CLBs separated by a hole.

Carry logic

The carry logic implements the MUXCY and XORCY primitives described in Xilinx documentation. There are several bitstream attributes controlling carry logic operation.

The CYINIT mux determines the start of the carry chain in the slice:

  • CIN: connected from COUT of the SLICE below
  • BX

On Spartan 3, the CYSELF mux determines the “propagate” (or select) input of the lower MUXCY:

  • F: propagate is connected to F LUT output
  • 1: propagate is connected to const-1 (ie. the MUXCY is effectively skipped from the chain)

On Virtex 4, the CYSELF mux doesn’t exist, and the propagate signal is hardwired to F output.

The CY0F mux determines the “generate” input of the lower MUXCY:

  • 0 (constant)
  • 1 (constant)
  • (Spartan 3) F1
  • F2
  • (Virtex 4) F3
  • BX
  • (Spartan 3) PROD: equal to F1 & F2, implementing the MULT_AND primitive
  • (Virtex 4) PROD: equal to F2 & F3, implementing the MULT_AND primitive

On Spartan 3, the CYSELG mux determines the “propagate” (or select) input of the upper MUXCY:

  • G: propagate is connected to G LUT output
  • 1: propagate is connected to const-1 (ie. the MUXCY is effectively skipped from the chain)

On Virtex 4, the CYSELG mux doesn’t exist, and the propagate signal is hardwired to F output.

The CY0G mux determines the “generate” input of the upper MUXCY:

  • 0 (constant)
  • 1 (constant)
  • (Spartan 3) G1
  • G2
  • (Virtex 4) G3
  • BY
  • (Spartan 3) PROD: equal to G1 & G2, implementing the MULT_AND primitive
  • (Virtex 4) PROD: equal to G2 & G3, implementing the MULT_AND primitive

The hardwired logic implemented is:

  • (Spartan 3) FCY = CYSELF ? CY0F : CIN (lower MUXCY)
  • (Spartan 3) COUT = GCY = CYSELG ? CY0G : FCY (upper MUXCY)
  • (Virtex 4) FCY = F ? CY0F : CIN (lower MUXCY)
  • (Virtex 4) COUT = GCY = G ? CY0G : FCY (upper MUXCY)
  • FXOR = F ^ CIN (lower XORCY)
  • GXOR = G ^ FCY (upper XORCY)

The dedicated CIN input is routed from:

  • SLICE0.CIN: from SLICE2.COUT of CLB below
  • SLICE1.CIN: from SLICE3.COUT of CLB below
  • SLICE2.CIN: from SLICE0.COUT
  • SLICE3.CIN: from SLICE1.COUT

The carry chains are not connected over interconnect holes. The SLICE[01].CIN inputs in the row above bottom IOI or any kind of interconnect hole are indeterminate.

The sum-of-products feature of Virtex 2 no longer exists on Spartan 3 and Virtex 4.

Output multiplexers — Spartan 3

The Spartan 3 output multiplexers are unchanged from Virtex 2, except for SOPOUT removal.

The FXMUX multiplexer controls the X output. It has three inputs:

  • F (the LUT output)
  • F5
  • FXOR

The GYMUX multiplexer controls the Y output. It has three inputs:

  • G (the LUT output)
  • FX
  • GXOR

The XBMUX multiplexer controls the XB output. It has two inputs:

  • FCY
  • FMC15: shift register output of F

The YBMUX multiplexer controls the YB output. It has two inputs:

  • GCY (equal to COUT)
  • GMC15: shift register output of G

The DXMUX mulitplexer controls the FFX data input. It has two inputs:

  • X (the FXMUX output)
  • BX

The DYMUX mulitplexer controls the FFY data input. It has two inputs:

  • Y (the GYMUX output)
  • BY

Output multiplexers — Virtex 4

The FXMUX multiplexer controls the XMUX output. It has two inputs:

  • F5
  • FXOR

The GYMUX multiplexer controls the YMUX output. It has two inputs:

  • FX
  • GXOR

The X output is directly connected to F output and doesn’t have a mux. Likewise, Y output is directly connected to G output.

The XBMUX multiplexer controls the XB output. It has two inputs:

  • FCY
  • FMC15: shift register output of F

The YBMUX multiplexer controls the YB output. It has two inputs:

  • GCY (equal to COUT)
  • GMC15: shift register output of G

The DXMUX mulitplexer controls the FFX data input. It has five inputs:

  • X (the F output)
  • F5
  • FXOR
  • XB
  • BX

The DYMUX mulitplexer controls the FFY data input. It has five inputs:

  • Y (the G output)
  • FX
  • GXOR
  • YB
  • BY

Registers

The registers are unchanged from Virtex 2.

A SLICE contains two registers:

  • FFX, with input determined by DXMUX and output connected to XQ
  • FFY, with input determined by DYMUX and output connected to YQ

Both registers share the same control signals:

  • CLK: posedge-triggered clock in FF mode or active-low gate in latch mode
  • CE: active-high clock or gate enable
  • SR: if FF_SR_EN, the set/reset signal
  • BY: if FF_REV_EN, the alternate set/reset signal

The following attributes determine register function:

  • FF_LATCH: if set, the registers are latches and CLK behaves as active-low gate; otherwise, the registers are flip-flops and CLK is a posedge-triggered clock
  • FF_SYNC: if set, the SR and BY (if enabled) implement synchronous set/reset (with priority over CE); otherwise, they implement asynchronous set/reset; should not be set together with FF_LATCH
  • FF[XY]_INIT: determines the initial or captured value of given register
    • when the global GSR signal is pulsed (for example, as part of the configuration process), the register is set to the value of this bit
    • when the global GCAP signal is pulsed (for example, by the CAPTURE primitive), this bit captures the current state of the register
  • FF[XY]_SRVAL: determines the set/reset value of given register
  • FF_SR_EN: if set, SR is used as the set/reset signal for both registers, setting them to their FF[XY]_SRVAL
  • FF_REV_EN: if set, BY behaves as secondary set/reset signal for both registers, setting them to the opposite of their FF[XY]_SRVAL

Bitstream

The data for a CLB is located in the same bitstream tile as the associated INT_CLB tile.

Tile CLB

Cells: 1

Bels SLICE

spartan3 CLB bel SLICE pins
PinDirectionSLICE[0]SLICE[1]SLICE[2]SLICE[3]
F1inIMUX_DATA[0]IMUX_DATA[1]IMUX_DATA[2]IMUX_DATA[3]
F2inIMUX_DATA[4]IMUX_DATA[5]IMUX_DATA[6]IMUX_DATA[7]
F3inIMUX_DATA[8]IMUX_DATA[9]IMUX_DATA[10]IMUX_DATA[11]
F4inIMUX_DATA[12]IMUX_DATA[13]IMUX_DATA[14]IMUX_DATA[15]
G1inIMUX_DATA[16]IMUX_DATA[17]IMUX_DATA[18]IMUX_DATA[19]
G2inIMUX_DATA[20]IMUX_DATA[21]IMUX_DATA[22]IMUX_DATA[23]
G3inIMUX_DATA[24]IMUX_DATA[25]IMUX_DATA[26]IMUX_DATA[27]
G4inIMUX_DATA[28]IMUX_DATA[29]IMUX_DATA[30]IMUX_DATA[31]
BXinIMUX_FAN_BX[0] invert by MAIN[5][14]IMUX_FAN_BX[1] invert by MAIN[5][28]IMUX_FAN_BX[2] invert by MAIN[5][32]IMUX_FAN_BX[3] invert by MAIN[5][36]
BYinIMUX_FAN_BY[0] invert by MAIN[5][27]IMUX_FAN_BY[1] invert by MAIN[5][31]IMUX_FAN_BY[2] invert by MAIN[5][35]IMUX_FAN_BY[3] invert by MAIN[5][49]
CLKinIMUX_CLK_OPTINV[0]IMUX_CLK_OPTINV[1]IMUX_CLK_OPTINV[2]IMUX_CLK_OPTINV[3]
SRinIMUX_SR_OPTINV[0]IMUX_SR_OPTINV[1]IMUX_SR_OPTINV[2]IMUX_SR_OPTINV[3]
CEinIMUX_CE_OPTINV[0]IMUX_CE_OPTINV[1]IMUX_CE_OPTINV[2]IMUX_CE_OPTINV[3]
XoutOUT_FAN[0]OUT_FAN[1]OUT_FAN[2]OUT_FAN[3]
YoutOUT_FAN[4]OUT_FAN[5]OUT_FAN[6]OUT_FAN[7]
XQoutOUT_SEC[8]OUT_SEC[9]OUT_SEC[10]OUT_SEC[11]
YQoutOUT_SEC[12]OUT_SEC[13]OUT_SEC[14]OUT_SEC[15]
XBoutOUT_SEC[0]OUT_SEC[1]OUT_SEC[2]OUT_SEC[3]
YBoutOUT_SEC[4]OUT_SEC[5]OUT_SEC[6]OUT_SEC[7]
spartan3 CLB bel SLICE attribute bits
AttributeSLICE[0]SLICE[1]SLICE[2]SLICE[3]
F bit 0!MAIN[0][15]!MAIN[3][15]!MAIN[0][47]!MAIN[3][47]
F bit 1!MAIN[0][14]!MAIN[3][14]!MAIN[0][46]!MAIN[3][46]
F bit 2!MAIN[0][13]!MAIN[3][13]!MAIN[0][45]!MAIN[3][45]
F bit 3!MAIN[0][12]!MAIN[3][12]!MAIN[0][44]!MAIN[3][44]
F bit 4!MAIN[0][11]!MAIN[3][11]!MAIN[0][43]!MAIN[3][43]
F bit 5!MAIN[0][10]!MAIN[3][10]!MAIN[0][42]!MAIN[3][42]
F bit 6!MAIN[0][9]!MAIN[3][9]!MAIN[0][41]!MAIN[3][41]
F bit 7!MAIN[0][8]!MAIN[3][8]!MAIN[0][40]!MAIN[3][40]
F bit 8!MAIN[0][7]!MAIN[3][7]!MAIN[0][39]!MAIN[3][39]
F bit 9!MAIN[0][6]!MAIN[3][6]!MAIN[0][38]!MAIN[3][38]
F bit 10!MAIN[0][5]!MAIN[3][5]!MAIN[0][37]!MAIN[3][37]
F bit 11!MAIN[0][4]!MAIN[3][4]!MAIN[0][36]!MAIN[3][36]
F bit 12!MAIN[0][3]!MAIN[3][3]!MAIN[0][35]!MAIN[3][35]
F bit 13!MAIN[0][2]!MAIN[3][2]!MAIN[0][34]!MAIN[3][34]
F bit 14!MAIN[0][1]!MAIN[3][1]!MAIN[0][33]!MAIN[3][33]
F bit 15!MAIN[0][0]!MAIN[3][0]!MAIN[0][32]!MAIN[3][32]
G bit 0!MAIN[0][31]!MAIN[3][31]!MAIN[0][63]!MAIN[3][63]
G bit 1!MAIN[0][30]!MAIN[3][30]!MAIN[0][62]!MAIN[3][62]
G bit 2!MAIN[0][29]!MAIN[3][29]!MAIN[0][61]!MAIN[3][61]
G bit 3!MAIN[0][28]!MAIN[3][28]!MAIN[0][60]!MAIN[3][60]
G bit 4!MAIN[0][27]!MAIN[3][27]!MAIN[0][59]!MAIN[3][59]
G bit 5!MAIN[0][26]!MAIN[3][26]!MAIN[0][58]!MAIN[3][58]
G bit 6!MAIN[0][25]!MAIN[3][25]!MAIN[0][57]!MAIN[3][57]
G bit 7!MAIN[0][24]!MAIN[3][24]!MAIN[0][56]!MAIN[3][56]
G bit 8!MAIN[0][23]!MAIN[3][23]!MAIN[0][55]!MAIN[3][55]
G bit 9!MAIN[0][22]!MAIN[3][22]!MAIN[0][54]!MAIN[3][54]
G bit 10!MAIN[0][21]!MAIN[3][21]!MAIN[0][53]!MAIN[3][53]
G bit 11!MAIN[0][20]!MAIN[3][20]!MAIN[0][52]!MAIN[3][52]
G bit 12!MAIN[0][19]!MAIN[3][19]!MAIN[0][51]!MAIN[3][51]
G bit 13!MAIN[0][18]!MAIN[3][18]!MAIN[0][50]!MAIN[3][50]
G bit 14!MAIN[0][17]!MAIN[3][17]!MAIN[0][49]!MAIN[3][49]
G bit 15!MAIN[0][16]!MAIN[3][16]!MAIN[0][48]!MAIN[3][48]
DIF_MUX[enum: SLICE_DIF_MUX]-[enum: SLICE_DIF_MUX]-
DIG_MUX[enum: SLICE_DIG_MUX]-[enum: SLICE_DIG_MUX]-
F_RAM_ENABLE!MAIN[1][13]-!MAIN[1][45]-
G_RAM_ENABLE!MAIN[1][12]-!MAIN[1][44]-
F_SHIFT_ENABLE!MAIN[1][8]-!MAIN[1][40]-
G_SHIFT_ENABLE!MAIN[1][6]-!MAIN[1][38]-
SLICEWE0USEDMAIN[2][17]-MAIN[2][49]-
SLICEWE1USEDMAIN[1][20]---
CYINIT[enum: SLICE_CYINIT][enum: SLICE_CYINIT][enum: SLICE_CYINIT][enum: SLICE_CYINIT]
CY0F[enum: SLICE_CY0F][enum: SLICE_CY0F][enum: SLICE_CY0F][enum: SLICE_CY0F]
CY0G[enum: SLICE_CY0G][enum: SLICE_CY0G][enum: SLICE_CY0G][enum: SLICE_CY0G]
CYSELF[enum: SLICE_CYSELF][enum: SLICE_CYSELF][enum: SLICE_CYSELF][enum: SLICE_CYSELF]
CYSELG[enum: SLICE_CYSELG][enum: SLICE_CYSELG][enum: SLICE_CYSELG][enum: SLICE_CYSELG]
FFX_INIT bit 0!MAIN[1][18]!MAIN[2][18]!MAIN[1][50]!MAIN[2][50]
FFY_INIT bit 0!MAIN[1][21]!MAIN[2][21]!MAIN[1][53]!MAIN[2][53]
FFX_SRVAL bit 0!MAIN[1][14]!MAIN[2][14]!MAIN[1][46]!MAIN[2][46]
FFY_SRVAL bit 0!MAIN[1][24]!MAIN[2][24]!MAIN[1][56]!MAIN[2][56]
FF_LATCHMAIN[1][22]MAIN[2][22]MAIN[1][54]MAIN[2][54]
FF_REV_ENABLEMAIN[1][23]MAIN[2][23]MAIN[1][55]MAIN[2][55]
FF_SR_SYNCMAIN[1][19]MAIN[2][19]MAIN[1][51]MAIN[2][51]
FF_SR_ENABLE!MAIN[1][17]-!MAIN[1][49]-
FXMUX[enum: SLICE_FXMUX][enum: SLICE_FXMUX][enum: SLICE_FXMUX][enum: SLICE_FXMUX]
GYMUX[enum: SLICE_GYMUX][enum: SLICE_GYMUX][enum: SLICE_GYMUX][enum: SLICE_GYMUX]
DXMUX[enum: SLICE_DXMUX][enum: SLICE_DXMUX][enum: SLICE_DXMUX][enum: SLICE_DXMUX]
DYMUX[enum: SLICE_DYMUX][enum: SLICE_DYMUX][enum: SLICE_DYMUX][enum: SLICE_DYMUX]
XBMUX[enum: SLICE_XBMUX]-[enum: SLICE_XBMUX]-
YBMUX[enum: SLICE_YBMUX]-[enum: SLICE_YBMUX]-
spartan3 CLB enum SLICE_DIF_MUX
SLICE[0].DIF_MUXMAIN[1][15]
SLICE[2].DIF_MUXMAIN[1][47]
ALT0
BX1
spartan3 CLB enum SLICE_DIG_MUX
SLICE[0].DIG_MUXMAIN[1][26]
SLICE[2].DIG_MUXMAIN[1][58]
ALT0
BY1
spartan3 CLB enum SLICE_CYINIT
SLICE[0].CYINITMAIN[1][4]
SLICE[1].CYINITMAIN[2][4]
SLICE[2].CYINITMAIN[1][36]
SLICE[3].CYINITMAIN[2][36]
BX0
CIN1
spartan3 CLB enum SLICE_CY0F
SLICE[0].CY0FMAIN[1][7]MAIN[1][10]MAIN[1][9]
SLICE[1].CY0FMAIN[2][7]MAIN[2][10]MAIN[2][9]
SLICE[2].CY0FMAIN[1][39]MAIN[1][42]MAIN[1][41]
SLICE[3].CY0FMAIN[2][39]MAIN[2][42]MAIN[2][41]
CONST_0111
CONST_1011
BX000
F1101
F2001
PROD010
spartan3 CLB enum SLICE_CY0G
SLICE[0].CY0GMAIN[1][31]MAIN[1][30]MAIN[1][29]
SLICE[1].CY0GMAIN[2][31]MAIN[2][30]MAIN[2][29]
SLICE[2].CY0GMAIN[1][63]MAIN[1][62]MAIN[1][61]
SLICE[3].CY0GMAIN[2][63]MAIN[2][62]MAIN[2][61]
CONST_0111
CONST_1011
BY000
G1101
G2001
PROD010
spartan3 CLB enum SLICE_CYSELF
SLICE[0].CYSELFMAIN[1][0]
SLICE[1].CYSELFMAIN[2][0]
SLICE[2].CYSELFMAIN[1][32]
SLICE[3].CYSELFMAIN[2][32]
CONST_10
F1
spartan3 CLB enum SLICE_CYSELG
SLICE[0].CYSELGMAIN[1][3]
SLICE[1].CYSELGMAIN[2][3]
SLICE[2].CYSELGMAIN[1][35]
SLICE[3].CYSELGMAIN[2][35]
CONST_10
G1
spartan3 CLB enum SLICE_FXMUX
SLICE[0].FXMUXMAIN[1][16]MAIN[1][2]
SLICE[1].FXMUXMAIN[2][16]MAIN[2][2]
SLICE[2].FXMUXMAIN[1][48]MAIN[1][34]
SLICE[3].FXMUXMAIN[2][48]MAIN[2][34]
F00
F501
FXOR11
spartan3 CLB enum SLICE_GYMUX
SLICE[0].GYMUXMAIN[1][28]MAIN[1][25]
SLICE[1].GYMUXMAIN[2][28]MAIN[2][25]
SLICE[2].GYMUXMAIN[1][60]MAIN[1][57]
SLICE[3].GYMUXMAIN[2][60]MAIN[2][57]
G00
FX01
GXOR11
spartan3 CLB enum SLICE_DXMUX
SLICE[0].DXMUXMAIN[1][11]
SLICE[1].DXMUXMAIN[2][11]
SLICE[2].DXMUXMAIN[1][43]
SLICE[3].DXMUXMAIN[2][43]
BX0
X1
spartan3 CLB enum SLICE_DYMUX
SLICE[0].DYMUXMAIN[1][27]
SLICE[1].DYMUXMAIN[2][27]
SLICE[2].DYMUXMAIN[1][59]
SLICE[3].DYMUXMAIN[2][59]
BY0
Y1
spartan3 CLB enum SLICE_XBMUX
SLICE[0].XBMUXMAIN[1][1]
SLICE[2].XBMUXMAIN[1][33]
FCY0
FMC151
spartan3 CLB enum SLICE_YBMUX
SLICE[0].YBMUXMAIN[1][5]
SLICE[2].YBMUXMAIN[1][37]
GCY0
GMC151

Bel wires

spartan3 CLB bel wires
WirePins
IMUX_CLK_OPTINV[0]SLICE[0].CLK
IMUX_CLK_OPTINV[1]SLICE[1].CLK
IMUX_CLK_OPTINV[2]SLICE[2].CLK
IMUX_CLK_OPTINV[3]SLICE[3].CLK
IMUX_SR_OPTINV[0]SLICE[0].SR
IMUX_SR_OPTINV[1]SLICE[1].SR
IMUX_SR_OPTINV[2]SLICE[2].SR
IMUX_SR_OPTINV[3]SLICE[3].SR
IMUX_CE_OPTINV[0]SLICE[0].CE
IMUX_CE_OPTINV[1]SLICE[1].CE
IMUX_CE_OPTINV[2]SLICE[2].CE
IMUX_CE_OPTINV[3]SLICE[3].CE
IMUX_FAN_BX[0]SLICE[0].BX
IMUX_FAN_BX[1]SLICE[1].BX
IMUX_FAN_BX[2]SLICE[2].BX
IMUX_FAN_BX[3]SLICE[3].BX
IMUX_FAN_BY[0]SLICE[0].BY
IMUX_FAN_BY[1]SLICE[1].BY
IMUX_FAN_BY[2]SLICE[2].BY
IMUX_FAN_BY[3]SLICE[3].BY
IMUX_DATA[0]SLICE[0].F1
IMUX_DATA[1]SLICE[1].F1
IMUX_DATA[2]SLICE[2].F1
IMUX_DATA[3]SLICE[3].F1
IMUX_DATA[4]SLICE[0].F2
IMUX_DATA[5]SLICE[1].F2
IMUX_DATA[6]SLICE[2].F2
IMUX_DATA[7]SLICE[3].F2
IMUX_DATA[8]SLICE[0].F3
IMUX_DATA[9]SLICE[1].F3
IMUX_DATA[10]SLICE[2].F3
IMUX_DATA[11]SLICE[3].F3
IMUX_DATA[12]SLICE[0].F4
IMUX_DATA[13]SLICE[1].F4
IMUX_DATA[14]SLICE[2].F4
IMUX_DATA[15]SLICE[3].F4
IMUX_DATA[16]SLICE[0].G1
IMUX_DATA[17]SLICE[1].G1
IMUX_DATA[18]SLICE[2].G1
IMUX_DATA[19]SLICE[3].G1
IMUX_DATA[20]SLICE[0].G2
IMUX_DATA[21]SLICE[1].G2
IMUX_DATA[22]SLICE[2].G2
IMUX_DATA[23]SLICE[3].G2
IMUX_DATA[24]SLICE[0].G3
IMUX_DATA[25]SLICE[1].G3
IMUX_DATA[26]SLICE[2].G3
IMUX_DATA[27]SLICE[3].G3
IMUX_DATA[28]SLICE[0].G4
IMUX_DATA[29]SLICE[1].G4
IMUX_DATA[30]SLICE[2].G4
IMUX_DATA[31]SLICE[3].G4
OUT_FAN[0]SLICE[0].X
OUT_FAN[1]SLICE[1].X
OUT_FAN[2]SLICE[2].X
OUT_FAN[3]SLICE[3].X
OUT_FAN[4]SLICE[0].Y
OUT_FAN[5]SLICE[1].Y
OUT_FAN[6]SLICE[2].Y
OUT_FAN[7]SLICE[3].Y
OUT_SEC[0]SLICE[0].XB
OUT_SEC[1]SLICE[1].XB
OUT_SEC[2]SLICE[2].XB
OUT_SEC[3]SLICE[3].XB
OUT_SEC[4]SLICE[0].YB
OUT_SEC[5]SLICE[1].YB
OUT_SEC[6]SLICE[2].YB
OUT_SEC[7]SLICE[3].YB
OUT_SEC[8]SLICE[0].XQ
OUT_SEC[9]SLICE[1].XQ
OUT_SEC[10]SLICE[2].XQ
OUT_SEC[11]SLICE[3].XQ
OUT_SEC[12]SLICE[0].YQ
OUT_SEC[13]SLICE[1].YQ
OUT_SEC[14]SLICE[2].YQ
OUT_SEC[15]SLICE[3].YQ

Bitstream

spartan3 CLB rect MAIN
BitFrame
F18 F17 F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
B63 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 0 SLICE[3]: CY0G bit 2 SLICE[2]: CY0G bit 2 SLICE[2]: ! G bit 0
B62 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 1 SLICE[3]: CY0G bit 1 SLICE[2]: CY0G bit 1 SLICE[2]: ! G bit 1
B61 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 2 SLICE[3]: CY0G bit 0 SLICE[2]: CY0G bit 0 SLICE[2]: ! G bit 2
B60 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 3 SLICE[3]: GYMUX bit 1 SLICE[2]: GYMUX bit 1 SLICE[2]: ! G bit 3
B59 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 4 SLICE[3]: DYMUX bit 0 SLICE[2]: DYMUX bit 0 SLICE[2]: ! G bit 4
B58 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 5 - SLICE[2]: DIG_MUX bit 0 SLICE[2]: ! G bit 5
B57 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 6 SLICE[3]: GYMUX bit 0 SLICE[2]: GYMUX bit 0 SLICE[2]: ! G bit 6
B56 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 7 SLICE[3]: ! FFY_SRVAL bit 0 SLICE[2]: ! FFY_SRVAL bit 0 SLICE[2]: ! G bit 7
B55 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 8 SLICE[3]: FF_REV_ENABLE SLICE[2]: FF_REV_ENABLE SLICE[2]: ! G bit 8
B54 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 9 SLICE[3]: FF_LATCH SLICE[2]: FF_LATCH SLICE[2]: ! G bit 9
B53 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 10 SLICE[3]: ! FFY_INIT bit 0 SLICE[2]: ! FFY_INIT bit 0 SLICE[2]: ! G bit 10
B52 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 11 - - SLICE[2]: ! G bit 11
B51 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 12 SLICE[3]: FF_SR_SYNC SLICE[2]: FF_SR_SYNC SLICE[2]: ! G bit 12
B50 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 13 SLICE[3]: ! FFX_INIT bit 0 SLICE[2]: ! FFX_INIT bit 0 SLICE[2]: ! G bit 13
B49 - - - - - - - - - - - - - SLICE[3]: invert BY - SLICE[3]: ! G bit 14 SLICE[2]: SLICEWE0USED SLICE[2]: ! FF_SR_ENABLE SLICE[2]: ! G bit 14
B48 - - - - - - - - - - - - - - - SLICE[3]: ! G bit 15 SLICE[3]: FXMUX bit 1 SLICE[2]: FXMUX bit 1 SLICE[2]: ! G bit 15
B47 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 0 - SLICE[2]: DIF_MUX bit 0 SLICE[2]: ! F bit 0
B46 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 1 SLICE[3]: ! FFX_SRVAL bit 0 SLICE[2]: ! FFX_SRVAL bit 0 SLICE[2]: ! F bit 1
B45 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 2 - SLICE[2]: ! F_RAM_ENABLE SLICE[2]: ! F bit 2
B44 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 3 - SLICE[2]: ! G_RAM_ENABLE SLICE[2]: ! F bit 3
B43 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 4 SLICE[3]: DXMUX bit 0 SLICE[2]: DXMUX bit 0 SLICE[2]: ! F bit 4
B42 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 5 SLICE[3]: CY0F bit 1 SLICE[2]: CY0F bit 1 SLICE[2]: ! F bit 5
B41 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 6 SLICE[3]: CY0F bit 0 SLICE[2]: CY0F bit 0 SLICE[2]: ! F bit 6
B40 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 7 - SLICE[2]: ! F_SHIFT_ENABLE SLICE[2]: ! F bit 7
B39 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 8 SLICE[3]: CY0F bit 2 SLICE[2]: CY0F bit 2 SLICE[2]: ! F bit 8
B38 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 9 - SLICE[2]: ! G_SHIFT_ENABLE SLICE[2]: ! F bit 9
B37 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 10 - SLICE[2]: YBMUX bit 0 SLICE[2]: ! F bit 10
B36 - - - - - - - - - - - - - SLICE[3]: invert BX - SLICE[3]: ! F bit 11 SLICE[3]: CYINIT bit 0 SLICE[2]: CYINIT bit 0 SLICE[2]: ! F bit 11
B35 - - - - - - - - - - - - - SLICE[2]: invert BY - SLICE[3]: ! F bit 12 SLICE[3]: CYSELG bit 0 SLICE[2]: CYSELG bit 0 SLICE[2]: ! F bit 12
B34 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 13 SLICE[3]: FXMUX bit 0 SLICE[2]: FXMUX bit 0 SLICE[2]: ! F bit 13
B33 - - - - - - - - - - - - - - - SLICE[3]: ! F bit 14 - SLICE[2]: XBMUX bit 0 SLICE[2]: ! F bit 14
B32 - - - - - - - - - - - - - SLICE[2]: invert BX - SLICE[3]: ! F bit 15 SLICE[3]: CYSELF bit 0 SLICE[2]: CYSELF bit 0 SLICE[2]: ! F bit 15
B31 - - - - - - - - - - - - - SLICE[1]: invert BY - SLICE[1]: ! G bit 0 SLICE[1]: CY0G bit 2 SLICE[0]: CY0G bit 2 SLICE[0]: ! G bit 0
B30 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 1 SLICE[1]: CY0G bit 1 SLICE[0]: CY0G bit 1 SLICE[0]: ! G bit 1
B29 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 2 SLICE[1]: CY0G bit 0 SLICE[0]: CY0G bit 0 SLICE[0]: ! G bit 2
B28 - - - - - - - - - - - - - SLICE[1]: invert BX - SLICE[1]: ! G bit 3 SLICE[1]: GYMUX bit 1 SLICE[0]: GYMUX bit 1 SLICE[0]: ! G bit 3
B27 - - - - - - - - - - - - - SLICE[0]: invert BY - SLICE[1]: ! G bit 4 SLICE[1]: DYMUX bit 0 SLICE[0]: DYMUX bit 0 SLICE[0]: ! G bit 4
B26 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 5 - SLICE[0]: DIG_MUX bit 0 SLICE[0]: ! G bit 5
B25 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 6 SLICE[1]: GYMUX bit 0 SLICE[0]: GYMUX bit 0 SLICE[0]: ! G bit 6
B24 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 7 SLICE[1]: ! FFY_SRVAL bit 0 SLICE[0]: ! FFY_SRVAL bit 0 SLICE[0]: ! G bit 7
B23 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 8 SLICE[1]: FF_REV_ENABLE SLICE[0]: FF_REV_ENABLE SLICE[0]: ! G bit 8
B22 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 9 SLICE[1]: FF_LATCH SLICE[0]: FF_LATCH SLICE[0]: ! G bit 9
B21 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 10 SLICE[1]: ! FFY_INIT bit 0 SLICE[0]: ! FFY_INIT bit 0 SLICE[0]: ! G bit 10
B20 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 11 - SLICE[0]: SLICEWE1USED SLICE[0]: ! G bit 11
B19 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 12 SLICE[1]: FF_SR_SYNC SLICE[0]: FF_SR_SYNC SLICE[0]: ! G bit 12
B18 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 13 SLICE[1]: ! FFX_INIT bit 0 SLICE[0]: ! FFX_INIT bit 0 SLICE[0]: ! G bit 13
B17 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 14 SLICE[0]: SLICEWE0USED SLICE[0]: ! FF_SR_ENABLE SLICE[0]: ! G bit 14
B16 - - - - - - - - - - - - - - - SLICE[1]: ! G bit 15 SLICE[1]: FXMUX bit 1 SLICE[0]: FXMUX bit 1 SLICE[0]: ! G bit 15
B15 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 0 - SLICE[0]: DIF_MUX bit 0 SLICE[0]: ! F bit 0
B14 - - - - - - - - - - - - - SLICE[0]: invert BX - SLICE[1]: ! F bit 1 SLICE[1]: ! FFX_SRVAL bit 0 SLICE[0]: ! FFX_SRVAL bit 0 SLICE[0]: ! F bit 1
B13 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 2 - SLICE[0]: ! F_RAM_ENABLE SLICE[0]: ! F bit 2
B12 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 3 - SLICE[0]: ! G_RAM_ENABLE SLICE[0]: ! F bit 3
B11 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 4 SLICE[1]: DXMUX bit 0 SLICE[0]: DXMUX bit 0 SLICE[0]: ! F bit 4
B10 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 5 SLICE[1]: CY0F bit 1 SLICE[0]: CY0F bit 1 SLICE[0]: ! F bit 5
B9 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 6 SLICE[1]: CY0F bit 0 SLICE[0]: CY0F bit 0 SLICE[0]: ! F bit 6
B8 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 7 - SLICE[0]: ! F_SHIFT_ENABLE SLICE[0]: ! F bit 7
B7 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 8 SLICE[1]: CY0F bit 2 SLICE[0]: CY0F bit 2 SLICE[0]: ! F bit 8
B6 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 9 - SLICE[0]: ! G_SHIFT_ENABLE SLICE[0]: ! F bit 9
B5 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 10 - SLICE[0]: YBMUX bit 0 SLICE[0]: ! F bit 10
B4 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 11 SLICE[1]: CYINIT bit 0 SLICE[0]: CYINIT bit 0 SLICE[0]: ! F bit 11
B3 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 12 SLICE[1]: CYSELG bit 0 SLICE[0]: CYSELG bit 0 SLICE[0]: ! F bit 12
B2 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 13 SLICE[1]: FXMUX bit 0 SLICE[0]: FXMUX bit 0 SLICE[0]: ! F bit 13
B1 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 14 - SLICE[0]: XBMUX bit 0 SLICE[0]: ! F bit 14
B0 - - - - - - - - - - - - - - - SLICE[1]: ! F bit 15 SLICE[1]: CYSELF bit 0 SLICE[0]: CYSELF bit 0 SLICE[0]: ! F bit 15

RESERVED_ANDOR

TODO: wtf is this even

RANDOR

This tile overlaps IOI_*.

Tile RANDOR

Cells: 0

Bels RANDOR

spartan3 RANDOR bel RANDOR pins
PinDirectionRANDOR
spartan3 RANDOR bel RANDOR attribute bits
AttributeRANDOR
MODE[enum: RANDOR_MODE]
spartan3 RANDOR enum RANDOR_MODE
RANDOR.MODEMAIN[3][19]
AND1
OR0

Bitstream

spartan3 RANDOR rect MAIN
BitFrame
F18 F17 F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
B63 - - - - - - - - - - - - - - - - - - -
B62 - - - - - - - - - - - - - - - - - - -
B61 - - - - - - - - - - - - - - - - - - -
B60 - - - - - - - - - - - - - - - - - - -
B59 - - - - - - - - - - - - - - - - - - -
B58 - - - - - - - - - - - - - - - - - - -
B57 - - - - - - - - - - - - - - - - - - -
B56 - - - - - - - - - - - - - - - - - - -
B55 - - - - - - - - - - - - - - - - - - -
B54 - - - - - - - - - - - - - - - - - - -
B53 - - - - - - - - - - - - - - - - - - -
B52 - - - - - - - - - - - - - - - - - - -
B51 - - - - - - - - - - - - - - - - - - -
B50 - - - - - - - - - - - - - - - - - - -
B49 - - - - - - - - - - - - - - - - - - -
B48 - - - - - - - - - - - - - - - - - - -
B47 - - - - - - - - - - - - - - - - - - -
B46 - - - - - - - - - - - - - - - - - - -
B45 - - - - - - - - - - - - - - - - - - -
B44 - - - - - - - - - - - - - - - - - - -
B43 - - - - - - - - - - - - - - - - - - -
B42 - - - - - - - - - - - - - - - - - - -
B41 - - - - - - - - - - - - - - - - - - -
B40 - - - - - - - - - - - - - - - - - - -
B39 - - - - - - - - - - - - - - - - - - -
B38 - - - - - - - - - - - - - - - - - - -
B37 - - - - - - - - - - - - - - - - - - -
B36 - - - - - - - - - - - - - - - - - - -
B35 - - - - - - - - - - - - - - - - - - -
B34 - - - - - - - - - - - - - - - - - - -
B33 - - - - - - - - - - - - - - - - - - -
B32 - - - - - - - - - - - - - - - - - - -
B31 - - - - - - - - - - - - - - - - - - -
B30 - - - - - - - - - - - - - - - - - - -
B29 - - - - - - - - - - - - - - - - - - -
B28 - - - - - - - - - - - - - - - - - - -
B27 - - - - - - - - - - - - - - - - - - -
B26 - - - - - - - - - - - - - - - - - - -
B25 - - - - - - - - - - - - - - - - - - -
B24 - - - - - - - - - - - - - - - - - - -
B23 - - - - - - - - - - - - - - - - - - -
B22 - - - - - - - - - - - - - - - - - - -
B21 - - - - - - - - - - - - - - - - - - -
B20 - - - - - - - - - - - - - - - - - - -
B19 - - - - - - - - - - - - - - - RANDOR: MODE bit 0 - - -
B18 - - - - - - - - - - - - - - - - - - -
B17 - - - - - - - - - - - - - - - - - - -
B16 - - - - - - - - - - - - - - - - - - -
B15 - - - - - - - - - - - - - - - - - - -
B14 - - - - - - - - - - - - - - - - - - -
B13 - - - - - - - - - - - - - - - - - - -
B12 - - - - - - - - - - - - - - - - - - -
B11 - - - - - - - - - - - - - - - - - - -
B10 - - - - - - - - - - - - - - - - - - -
B9 - - - - - - - - - - - - - - - - - - -
B8 - - - - - - - - - - - - - - - - - - -
B7 - - - - - - - - - - - - - - - - - - -
B6 - - - - - - - - - - - - - - - - - - -
B5 - - - - - - - - - - - - - - - - - - -
B4 - - - - - - - - - - - - - - - - - - -
B3 - - - - - - - - - - - - - - - - - - -
B2 - - - - - - - - - - - - - - - - - - -
B1 - - - - - - - - - - - - - - - - - - -
B0 - - - - - - - - - - - - - - - - - - -

Tile RANDOR_FC

Cells: 0

Bels RANDOR

spartan3 RANDOR_FC bel RANDOR pins
PinDirectionRANDOR
spartan3 RANDOR_FC bel RANDOR attribute bits
AttributeRANDOR
MODE[enum: RANDOR_MODE]
spartan3 RANDOR_FC enum RANDOR_MODE
RANDOR.MODETERM[1][4]
AND1
OR0

Bitstream

spartan3 RANDOR_FC rect TERM
BitFrame
F18 F17 F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
B4 - - - - - - - - - - - - - - - - - RANDOR: MODE bit 0 -
B3 - - - - - - - - - - - - - - - - - - -
B2 - - - - - - - - - - - - - - - - - - -
B1 - - - - - - - - - - - - - - - - - - -
B0 - - - - - - - - - - - - - - - - - - -

RANDOR_INIT

This tile overlaps top-left interconnect tile.

Tile RANDOR_INIT

Cells: 0

Bels RANDOR_INIT

spartan3 RANDOR_INIT bel RANDOR_INIT pins
PinDirectionRANDOR_INIT
spartan3 RANDOR_INIT bel RANDOR_INIT attribute bits
AttributeRANDOR_INIT
MODE[enum: RANDOR_MODE]
spartan3 RANDOR_INIT enum RANDOR_MODE
RANDOR_INIT.MODEMAIN[0][0]
AND1
OR0

Bitstream

spartan3 RANDOR_INIT rect MAIN
BitFrame
F18 F17 F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
B63 - - - - - - - - - - - - - - - - - - -
B62 - - - - - - - - - - - - - - - - - - -
B61 - - - - - - - - - - - - - - - - - - -
B60 - - - - - - - - - - - - - - - - - - -
B59 - - - - - - - - - - - - - - - - - - -
B58 - - - - - - - - - - - - - - - - - - -
B57 - - - - - - - - - - - - - - - - - - -
B56 - - - - - - - - - - - - - - - - - - -
B55 - - - - - - - - - - - - - - - - - - -
B54 - - - - - - - - - - - - - - - - - - -
B53 - - - - - - - - - - - - - - - - - - -
B52 - - - - - - - - - - - - - - - - - - -
B51 - - - - - - - - - - - - - - - - - - -
B50 - - - - - - - - - - - - - - - - - - -
B49 - - - - - - - - - - - - - - - - - - -
B48 - - - - - - - - - - - - - - - - - - -
B47 - - - - - - - - - - - - - - - - - - -
B46 - - - - - - - - - - - - - - - - - - -
B45 - - - - - - - - - - - - - - - - - - -
B44 - - - - - - - - - - - - - - - - - - -
B43 - - - - - - - - - - - - - - - - - - -
B42 - - - - - - - - - - - - - - - - - - -
B41 - - - - - - - - - - - - - - - - - - -
B40 - - - - - - - - - - - - - - - - - - -
B39 - - - - - - - - - - - - - - - - - - -
B38 - - - - - - - - - - - - - - - - - - -
B37 - - - - - - - - - - - - - - - - - - -
B36 - - - - - - - - - - - - - - - - - - -
B35 - - - - - - - - - - - - - - - - - - -
B34 - - - - - - - - - - - - - - - - - - -
B33 - - - - - - - - - - - - - - - - - - -
B32 - - - - - - - - - - - - - - - - - - -
B31 - - - - - - - - - - - - - - - - - - -
B30 - - - - - - - - - - - - - - - - - - -
B29 - - - - - - - - - - - - - - - - - - -
B28 - - - - - - - - - - - - - - - - - - -
B27 - - - - - - - - - - - - - - - - - - -
B26 - - - - - - - - - - - - - - - - - - -
B25 - - - - - - - - - - - - - - - - - - -
B24 - - - - - - - - - - - - - - - - - - -
B23 - - - - - - - - - - - - - - - - - - -
B22 - - - - - - - - - - - - - - - - - - -
B21 - - - - - - - - - - - - - - - - - - -
B20 - - - - - - - - - - - - - - - - - - -
B19 - - - - - - - - - - - - - - - - - - -
B18 - - - - - - - - - - - - - - - - - - -
B17 - - - - - - - - - - - - - - - - - - -
B16 - - - - - - - - - - - - - - - - - - -
B15 - - - - - - - - - - - - - - - - - - -
B14 - - - - - - - - - - - - - - - - - - -
B13 - - - - - - - - - - - - - - - - - - -
B12 - - - - - - - - - - - - - - - - - - -
B11 - - - - - - - - - - - - - - - - - - -
B10 - - - - - - - - - - - - - - - - - - -
B9 - - - - - - - - - - - - - - - - - - -
B8 - - - - - - - - - - - - - - - - - - -
B7 - - - - - - - - - - - - - - - - - - -
B6 - - - - - - - - - - - - - - - - - - -
B5 - - - - - - - - - - - - - - - - - - -
B4 - - - - - - - - - - - - - - - - - - -
B3 - - - - - - - - - - - - - - - - - - -
B2 - - - - - - - - - - - - - - - - - - -
B1 - - - - - - - - - - - - - - - - - - -
B0 - - - - - - - - - - - - - - - - - - RANDOR_INIT: MODE bit 0

Tile RANDOR_INIT_FC

Cells: 0

Bels RANDOR_INIT

spartan3 RANDOR_INIT_FC bel RANDOR_INIT pins
PinDirectionRANDOR_INIT
spartan3 RANDOR_INIT_FC bel RANDOR_INIT attribute bits
AttributeRANDOR_INIT
MODE[enum: RANDOR_MODE]
spartan3 RANDOR_INIT_FC enum RANDOR_MODE
RANDOR_INIT.MODEMAIN[0][63]
AND1
OR0

Bitstream

spartan3 RANDOR_INIT_FC rect MAIN
BitFrame
F18 F17 F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
B63 - - - - - - - - - - - - - - - - - - RANDOR_INIT: MODE bit 0
B62 - - - - - - - - - - - - - - - - - - -
B61 - - - - - - - - - - - - - - - - - - -
B60 - - - - - - - - - - - - - - - - - - -
B59 - - - - - - - - - - - - - - - - - - -
B58 - - - - - - - - - - - - - - - - - - -
B57 - - - - - - - - - - - - - - - - - - -
B56 - - - - - - - - - - - - - - - - - - -
B55 - - - - - - - - - - - - - - - - - - -
B54 - - - - - - - - - - - - - - - - - - -
B53 - - - - - - - - - - - - - - - - - - -
B52 - - - - - - - - - - - - - - - - - - -
B51 - - - - - - - - - - - - - - - - - - -
B50 - - - - - - - - - - - - - - - - - - -
B49 - - - - - - - - - - - - - - - - - - -
B48 - - - - - - - - - - - - - - - - - - -
B47 - - - - - - - - - - - - - - - - - - -
B46 - - - - - - - - - - - - - - - - - - -
B45 - - - - - - - - - - - - - - - - - - -
B44 - - - - - - - - - - - - - - - - - - -
B43 - - - - - - - - - - - - - - - - - - -
B42 - - - - - - - - - - - - - - - - - - -
B41 - - - - - - - - - - - - - - - - - - -
B40 - - - - - - - - - - - - - - - - - - -
B39 - - - - - - - - - - - - - - - - - - -
B38 - - - - - - - - - - - - - - - - - - -
B37 - - - - - - - - - - - - - - - - - - -
B36 - - - - - - - - - - - - - - - - - - -
B35 - - - - - - - - - - - - - - - - - - -
B34 - - - - - - - - - - - - - - - - - - -
B33 - - - - - - - - - - - - - - - - - - -
B32 - - - - - - - - - - - - - - - - - - -
B31 - - - - - - - - - - - - - - - - - - -
B30 - - - - - - - - - - - - - - - - - - -
B29 - - - - - - - - - - - - - - - - - - -
B28 - - - - - - - - - - - - - - - - - - -
B27 - - - - - - - - - - - - - - - - - - -
B26 - - - - - - - - - - - - - - - - - - -
B25 - - - - - - - - - - - - - - - - - - -
B24 - - - - - - - - - - - - - - - - - - -
B23 - - - - - - - - - - - - - - - - - - -
B22 - - - - - - - - - - - - - - - - - - -
B21 - - - - - - - - - - - - - - - - - - -
B20 - - - - - - - - - - - - - - - - - - -
B19 - - - - - - - - - - - - - - - - - - -
B18 - - - - - - - - - - - - - - - - - - -
B17 - - - - - - - - - - - - - - - - - - -
B16 - - - - - - - - - - - - - - - - - - -
B15 - - - - - - - - - - - - - - - - - - -
B14 - - - - - - - - - - - - - - - - - - -
B13 - - - - - - - - - - - - - - - - - - -
B12 - - - - - - - - - - - - - - - - - - -
B11 - - - - - - - - - - - - - - - - - - -
B10 - - - - - - - - - - - - - - - - - - -
B9 - - - - - - - - - - - - - - - - - - -
B8 - - - - - - - - - - - - - - - - - - -
B7 - - - - - - - - - - - - - - - - - - -
B6 - - - - - - - - - - - - - - - - - - -
B5 - - - - - - - - - - - - - - - - - - -
B4 - - - - - - - - - - - - - - - - - - -
B3 - - - - - - - - - - - - - - - - - - -
B2 - - - - - - - - - - - - - - - - - - -
B1 - - - - - - - - - - - - - - - - - - -
B0 - - - - - - - - - - - - - - - - - - -