| # 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 |
| |
| | Element | CE | CK | D | SR | Q | |
| |----------|----|----|---|-----|---| |
| | FDRE | CE | C | D | R | Q | |
| | FDPE | CE | C | D | PRE | Q | |
| | FDSE | CE | C | D | S | Q | |
| | FDCE | CE | C | D | CLR | Q | |
| | LDPE | GE | G | D | PRE | Q | |
| | LDCE | GE | G | D | CLR | Q | |
| |
| |
| ## Primitive bit map |
| |
| | Prim | FFSYNC | LATCH | ZRST | |
| |------|--------|-------|------| |
| |FDPE | | | | |
| |FDSE | X | | | |
| |FDRE | X | | X | |
| |FDCE | | | X | |
| |LDCE | | X | X | |
| |LDPE | | X | | |
| |
| |
| ### FFSYNC |
| |
| Configures whether a storage element is synchronous or asynchronous. |
| |
| Scope: entire site (not individual FFs) |
| |
| | FFSYNC | Reset | Applicable prims | |
| |--------|--------------|---------------------------| |
| |0 | Asynchronous | FDPE, FDCE, LDCE, LDPE | |
| |1 | Synchronous | FDSE, FDRE | |
| |
| |
| ### LATCH |
| |
| Configures latch vs FF behavior for the CLB |
| |
| | LATCH | Description | Primitives | |
| |-------|-------------|------------| |
| |0 | All storage elements in the CLB are FF's | FDPE, FDSE, FDRE, FDCE | |
| |1 | LUT6 storage elements are latches (LDCE or LDPE). LUT5 storage elements cannot be used | LDCE, LDPE | |
| |
| |
| ### N*FF.ZRST |
| |
| Configures stored value when reset is asserted |
| |
| | Prim |ZRST|On reset| |
| |-----------------------|----|----- | |
| |FDRE, FDCE, and LDCE | 0 | 1 | |
| |FDRE, FDCE, and LDCE | 1 | 0 | |
| |FDPE, FDSE, and LDPE | 0 | 0 | |
| |FDPE, FDSE, and LDPE | 1 | 1 | |
| |
| |
| ## N*FF.ZINI |
| |
| Sets GSR FF or latch value |
| |
| | LATCH | ZINI | Set to | |
| |-------|------|--------| |
| | FF | 0 | 1 | |
| | FF | 1 | 0 | |
| | LATCH | 0 | 0 | |
| | LATCH | 1 | 1 | |
| |
| |
| ## CEUSEDMUX |
| |
| Configures ability to drive clock enable (CE) or always enable clock |
| |
| | CEUSEDMUX | Description | |
| |-----------|-------------------------| |
| | 0 | always on (CE=1) | |
| | 1 | controlled (CE=mywire) | |
| |
| |
| ## SRUSEDMUX |
| |
| Configures ability to reset FF after GSR |
| |
| | SRUSEDMUX | Description | |
| |-----------|-----------------------| |
| | 0 | never reset (R=0) | |
| | 1 | controlled (R=mywire) | |
| |
| TODO: how used when SR? |
| |
| ## CLKINV |
| |
| Configures whether to invert the clock going into a slice. |
| |
| Scope: entire site (not individual FFs) |
| |
| | LATCH | CLKINV | Description | |
| |-------|--------|----------------| |
| | FF | 0 | normal clock | |
| | FF | 1 | invert clock | |
| | LATCH | 0 | invert clock | |
| | LATCH | 1 | normal clock | |
| |