2019-01-11 18:52:42 +01:00
|
|
|
# clb-ffconfig Fuzzer
|
|
|
|
|
|
|
|
|
|
Documents FF configuration.
|
2017-11-29 02:38:02 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
Note Vivado GUI is misleading in some cases where it shows configuration per FF, but its actually per SLICE
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
## Primitive pin map
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| 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 |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
|
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
## Primitive bit map
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| Prim | FFSYNC | LATCH | ZRST |
|
|
|
|
|
|------|--------|-------|------|
|
|
|
|
|
|FDPE | | | |
|
|
|
|
|
|FDSE | X | | |
|
|
|
|
|
|FDRE | X | | X |
|
|
|
|
|
|FDCE | | | X |
|
|
|
|
|
|LDCE | | X | X |
|
|
|
|
|
|LDPE | | X | |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
|
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
### FFSYNC
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures whether a storage element is synchronous or asynchronous.
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
Scope: entire site (not individual FFs)
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-10-24 22:51:47 +02:00
|
|
|
| FFSYNC | Reset | Applicable prims |
|
2019-01-11 16:06:49 +01:00
|
|
|
|--------|--------------|---------------------------|
|
|
|
|
|
|0 | Synchronous | FDPE, FDCE, LDCE, LDPE |
|
|
|
|
|
|1 | Asynchronous | FDSE, FDRE |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
|
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
### LATCH
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures latch vs FF behavior for the CLB
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| 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 |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
|
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
### N*FF.ZRST
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures stored value when reset is asserted
|
2019-01-11 16:06:49 +01:00
|
|
|
|
|
|
|
|
| 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 |
|
|
|
|
|
|
|
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
## N*FF.ZINI
|
2019-01-11 16:06:49 +01:00
|
|
|
|
|
|
|
|
Sets GSR FF or latch value
|
|
|
|
|
|
|
|
|
|
| LATCH | ZINI | Set to |
|
|
|
|
|
|-------|------|--------|
|
|
|
|
|
| FF | 0 | 1 |
|
|
|
|
|
| FF | 1 | 0 |
|
|
|
|
|
| LATCH | 0 | 0 |
|
|
|
|
|
| LATCH | 1 | 1 |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
|
|
|
|
|
## CEUSEDMUX
|
|
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures ability to drive clock enable (CE) or always enable clock
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| CEUSEDMUX | Description |
|
|
|
|
|
|-----------|-------------------------|
|
|
|
|
|
| 0 | always on (CE=1) |
|
|
|
|
|
| 1 | controlled (CE=mywire) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## SRUSEDMUX
|
|
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures ability to reset FF after GSR
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| SRUSEDMUX | Description |
|
|
|
|
|
|-----------|-----------------------|
|
|
|
|
|
| 0 | never reset (R=0) |
|
|
|
|
|
| 1 | controlled (R=mywire) |
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
TODO: how used when SR?
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
## CLKINV
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 18:52:42 +01:00
|
|
|
Configures whether to invert the clock going into a slice.
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
Scope: entire site (not individual FFs)
|
2019-01-11 16:06:23 +01:00
|
|
|
|
2019-01-11 16:06:49 +01:00
|
|
|
| LATCH | CLKINV | Description |
|
|
|
|
|
|-------|--------|----------------|
|
|
|
|
|
| FF | 0 | normal clock |
|
|
|
|
|
| FF | 1 | invert clock |
|
|
|
|
|
| LATCH | 0 | invert clock |
|
|
|
|
|
| LATCH | 1 | normal clock |
|
2019-01-11 16:06:23 +01:00
|
|
|
|