tree: 21037cf8d2b2cd246efcf65038cc4d459645df32 [path history] [tgz]
  1. minitest/
  2. bits.dbf
  3. generate.py
  4. generate.sh
  5. generate.tcl
  6. Makefile
  7. prims.py
  8. README.md
  9. top.py
fuzzers/011-clb-ffconfig/README.md

clb-ffconfig Fuzzer

Documents FF configuration.

Note Vivado GUI is misleading in some cases where it shows configuration per FF, but its actually per SLICE

Primitive pin map

ElementCECKDSRQ
FDRECECDRQ
FDPECECDPREQ
FDSECECDSQ
FDCECECDCLRQ
LDPEGEGDPREQ
LDCEGEGDCLRQ

Primitive bit map

PrimFFSYNCLATCHZRST
FDPE
FDSEX
FDREXX
FDCEX
LDCEXX
LDPEX

FFSYNC

Configures whether a storage element is synchronous or asynchronous.

Scope: entire site (not individual FFs)

FFSYNCResetApplicable prims
0AsynchronousFDPE, FDCE, LDCE, LDPE
1SynchronousFDSE, FDRE

LATCH

Configures latch vs FF behavior for the CLB

LATCHDescriptionPrimitives
0All storage elements in the CLB are FF'sFDPE, FDSE, FDRE, FDCE
1LUT6 storage elements are latches (LDCE or LDPE). LUT5 storage elements cannot be usedLDCE, LDPE

N*FF.ZRST

Configures stored value when reset is asserted

PrimZRSTOn reset
FDRE, FDCE, and LDCE01
FDRE, FDCE, and LDCE10
FDPE, FDSE, and LDPE00
FDPE, FDSE, and LDPE11

N*FF.ZINI

Sets GSR FF or latch value

LATCHZINISet to
FF01
FF10
LATCH00
LATCH11

CEUSEDMUX

Configures ability to drive clock enable (CE) or always enable clock

CEUSEDMUXDescription
0always on (CE=1)
1controlled (CE=mywire)

SRUSEDMUX

Configures ability to reset FF after GSR

SRUSEDMUXDescription
0never reset (R=0)
1controlled (R=mywire)

TODO: how used when SR?

CLKINV

Configures whether to invert the clock going into a slice.

Scope: entire site (not individual FFs)

LATCHCLKINVDescription
FF0normal clock
FF1invert clock
LATCH0invert clock
LATCH1normal clock