mirror of https://github.com/openXC7/prjxray.git
clb: clean up README files
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
f4f2a79cf9
commit
5f8c46a795
|
|
@ -0,0 +1,7 @@
|
||||||
|
# clb-lutinit Fuzzer
|
||||||
|
|
||||||
|
## NLUT.INIT
|
||||||
|
|
||||||
|
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
||||||
|
|
||||||
|
Sets the LUT6 INIT property
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# FFConfig Fuzzer
|
# 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
|
Note Vivado GUI is misleading in some cases where it shows configuration per FF, but its actually per SLICE
|
||||||
|
|
||||||
|
|
@ -28,7 +30,7 @@ Note Vivado GUI is misleading in some cases where it shows configuration per FF,
|
||||||
|
|
||||||
### FFSYNC
|
### FFSYNC
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures whether a storage element is synchronous or asynchronous.
|
||||||
|
|
||||||
Scope: entire site (not individual FFs)
|
Scope: entire site (not individual FFs)
|
||||||
|
|
||||||
|
|
@ -40,9 +42,7 @@ Scope: entire site (not individual FFs)
|
||||||
|
|
||||||
### LATCH
|
### LATCH
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures latch vs FF behavior for the CLB
|
||||||
|
|
||||||
Controls latch vs FF behavior for the CLB
|
|
||||||
|
|
||||||
| LATCH | Description | Primitives |
|
| LATCH | Description | Primitives |
|
||||||
|-------|-------------|------------|
|
|-------|-------------|------------|
|
||||||
|
|
@ -50,11 +50,9 @@ Controls latch vs FF behavior for the CLB
|
||||||
|1 | LUT6 storage elements are latches (LDCE or LDPE). LUT5 storage elements cannot be used | LDCE, LDPE |
|
|1 | LUT6 storage elements are latches (LDCE or LDPE). LUT5 storage elements cannot be used | LDCE, LDPE |
|
||||||
|
|
||||||
|
|
||||||
### [ABCD]*FF.ZRST
|
### N*FF.ZRST
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures stored value when reset is asserted
|
||||||
|
|
||||||
Configured stored value when reset is asserted
|
|
||||||
|
|
||||||
| Prim |ZRST|On reset|
|
| Prim |ZRST|On reset|
|
||||||
|-----------------------|----|----- |
|
|-----------------------|----|----- |
|
||||||
|
|
@ -64,12 +62,10 @@ Configured stored value when reset is asserted
|
||||||
|FDPE, FDSE, and LDPE | 1 | 1 |
|
|FDPE, FDSE, and LDPE | 1 | 1 |
|
||||||
|
|
||||||
|
|
||||||
## [ABCD]*FF.ZINI
|
## N*FF.ZINI
|
||||||
|
|
||||||
Sets GSR FF or latch value
|
Sets GSR FF or latch value
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
|
||||||
|
|
||||||
| LATCH | ZINI | Set to |
|
| LATCH | ZINI | Set to |
|
||||||
|-------|------|--------|
|
|-------|------|--------|
|
||||||
| FF | 0 | 1 |
|
| FF | 0 | 1 |
|
||||||
|
|
@ -80,9 +76,7 @@ Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
||||||
|
|
||||||
## CEUSEDMUX
|
## CEUSEDMUX
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures ability to drive clock enable (CE) or always enable clock
|
||||||
|
|
||||||
Configure ability to drive clock enable (CE) or always enable clock
|
|
||||||
|
|
||||||
| CEUSEDMUX | Description |
|
| CEUSEDMUX | Description |
|
||||||
|-----------|-------------------------|
|
|-----------|-------------------------|
|
||||||
|
|
@ -92,9 +86,7 @@ Configure ability to drive clock enable (CE) or always enable clock
|
||||||
|
|
||||||
## SRUSEDMUX
|
## SRUSEDMUX
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures ability to reset FF after GSR
|
||||||
|
|
||||||
Configure ability to reset FF after GSR
|
|
||||||
|
|
||||||
| SRUSEDMUX | Description |
|
| SRUSEDMUX | Description |
|
||||||
|-----------|-----------------------|
|
|-----------|-----------------------|
|
||||||
|
|
@ -105,12 +97,10 @@ TODO: how used when SR?
|
||||||
|
|
||||||
## CLKINV
|
## CLKINV
|
||||||
|
|
||||||
Sites: CLBL[LM]_[LR].SLICE[LM]_X[01] (all CLB)
|
Configures whether to invert the clock going into a slice.
|
||||||
|
|
||||||
Scope: entire site (not individual FFs)
|
Scope: entire site (not individual FFs)
|
||||||
|
|
||||||
Whether to invert the clock going into a slice.
|
|
||||||
|
|
||||||
| LATCH | CLKINV | Description |
|
| LATCH | CLKINV | Description |
|
||||||
|-------|--------|----------------|
|
|-------|--------|----------------|
|
||||||
| FF | 0 | normal clock |
|
| FF | 0 | normal clock |
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,11 @@
|
||||||
# CLBn5FFMUX Fuzzer
|
# clb-n5ffmux Fuzzer
|
||||||
|
|
||||||
## Purpose
|
## N5FFMUX
|
||||||
Document A5FFMUX family of CLB muxes
|
|
||||||
|
|
||||||
## Algorithm
|
The A5FFMUX family of CLB muxes feed the D input of A5FF family of FFs
|
||||||
5FFMUX
|
|
||||||
Inputs can come from either the LUT6_2 NO5 output or the CLB NX input
|
|
||||||
To perturb the CLB the smallest, want LUT6 always instantiated
|
|
||||||
However, some routing congestion that would require putting FFs in bypass
|
|
||||||
(which turns out is actually okay, but didn't realize that at the time)
|
|
||||||
Decided instead ot instantiate LUT8, but not use the output
|
|
||||||
Turns out this is okay and won't optimize things away
|
|
||||||
So then, the 5FF D input is switched between the O5 output and an external CLB input
|
|
||||||
|
|
||||||
## Outcome
|
| N5FFMUX | N5FFMUX.D |
|
||||||
Bits are one hot encoded per mux position
|
|--------|-----------------|
|
||||||
|
| IN_A | N5LUT.O5 |
|
||||||
|
| IN_B | NX |
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
# CLBnCY0 Fuzzer
|
# clb-ncy0 Fuzzer
|
||||||
|
|
||||||
## Purpose
|
## CARRY4.NCY0
|
||||||
Document ACY0 family of CLB muxes
|
|
||||||
|
|
||||||
## Algorithm
|
The ACY0 family of CLB muxes feeds the CARRY4.DI0 family
|
||||||
|
|
||||||
|
| NCY0 | CARRY4.DIN |
|
||||||
|
|--------|------------------|
|
||||||
|
| 0 | NX |
|
||||||
|
| 1 | O5 |
|
||||||
|
|
||||||
## Outcome
|
|
||||||
|
|
@ -1,23 +1,23 @@
|
||||||
# FFSRCEMUX Fuzzer
|
# clb-ffsrcemux Fuzzer
|
||||||
|
|
||||||
## Purpose
|
## CEUSEDMUX
|
||||||
Document CEUSEDMUX, SRUSEDMUX muxes
|
|
||||||
|
|
||||||
## Algorithm
|
Configures whether clock enable (CE) is used or clock always on
|
||||||
|
|
||||||
## Results
|
| CEUSEDMUX | CE |
|
||||||
|
|------------|------------------|
|
||||||
### CEUSEDMUX: whether clock enable (CE) is used or clock always on
|
| 0 | Always on |
|
||||||
0: always on
|
| 1 | Controlled |
|
||||||
1: controlled
|
|
||||||
CLB.SLICE_X0.CEUSEDMUX 00_39
|
|
||||||
CLB.SLICE_X1.CEUSEDMUX <0 candidates>
|
|
||||||
|
|
||||||
|
|
||||||
### SRUSEDMUX: whether FF can be reset or simply uses D value
|
### SRUSEDMUX
|
||||||
(How used when SR?)
|
|
||||||
0: never reset
|
Configures whether FF can be reset or simply uses D value
|
||||||
1: controlled
|
|
||||||
CLB.SLICE_X0.SRUSEDMUX 00_35
|
| SRUSEDMUX | Resettable? |
|
||||||
CLB.SLICE_X1.SRUSEDMUX <0 candidates>
|
|------------|------------------|
|
||||||
|
| 0 | No |
|
||||||
|
| 1 | Controlled |
|
||||||
|
|
||||||
|
XXX: How used when SR?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,41 +1,8 @@
|
||||||
# CLBnFFMUX Fuzzer
|
# clb-nffmux Fuzzer
|
||||||
|
|
||||||
|
## NFFMUX
|
||||||
|
|
||||||
|
Configures the AFFMUX family of CLB muxes which feed the D input of the AFF series of FFs.
|
||||||
|
|
||||||
|
Availible selections varies by A/B/C/D, see db for details.
|
||||||
|
|
||||||
## Purpose
|
|
||||||
Document nFFMUX family of CLB muxes
|
|
||||||
## Algorithm
|
|
||||||
|
|
||||||
## Outcome
|
|
||||||
```
|
|
||||||
CLB.SLICE_X0.AFFMUX.B0 30_00
|
|
||||||
CLB.SLICE_X0.AFFMUX.B1 30_01
|
|
||||||
CLB.SLICE_X0.AFFMUX.B2 30_02
|
|
||||||
CLB.SLICE_X0.AFFMUX.B3 30_03
|
|
||||||
CLB.SLICE_X0.BFFMUX.B0 30_27
|
|
||||||
CLB.SLICE_X0.BFFMUX.B1 30_26
|
|
||||||
CLB.SLICE_X0.BFFMUX.B2 30_25
|
|
||||||
CLB.SLICE_X0.BFFMUX.B3 30_24
|
|
||||||
CLB.SLICE_X0.CFFMUX.B0 30_35
|
|
||||||
CLB.SLICE_X0.CFFMUX.B1 30_36
|
|
||||||
CLB.SLICE_X0.CFFMUX.B2 30_37
|
|
||||||
CLB.SLICE_X0.CFFMUX.B3 30_38
|
|
||||||
CLB.SLICE_X0.DFFMUX.B0 30_62
|
|
||||||
CLB.SLICE_X0.DFFMUX.B1 30_61
|
|
||||||
CLB.SLICE_X0.DFFMUX.B2 30_60
|
|
||||||
CLB.SLICE_X0.DFFMUX.B3 30_59
|
|
||||||
CLB.SLICE_X1.AFFMUX.B0 31_00
|
|
||||||
CLB.SLICE_X1.AFFMUX.B1 31_01
|
|
||||||
CLB.SLICE_X1.AFFMUX.B2 31_02
|
|
||||||
CLB.SLICE_X1.AFFMUX.B3 30_04
|
|
||||||
CLB.SLICE_X1.BFFMUX.B0 31_25
|
|
||||||
CLB.SLICE_X1.BFFMUX.B1 31_27
|
|
||||||
CLB.SLICE_X1.BFFMUX.B2 31_26
|
|
||||||
CLB.SLICE_X1.BFFMUX.B3 31_24
|
|
||||||
CLB.SLICE_X1.CFFMUX.B0 31_35
|
|
||||||
CLB.SLICE_X1.CFFMUX.B1 31_38
|
|
||||||
CLB.SLICE_X1.CFFMUX.B2 31_37
|
|
||||||
CLB.SLICE_X1.CFFMUX.B3 31_36
|
|
||||||
CLB.SLICE_X1.DFFMUX.B0 30_58
|
|
||||||
CLB.SLICE_X1.DFFMUX.B1 31_61
|
|
||||||
CLB.SLICE_X1.DFFMUX.B2 31_62
|
|
||||||
CLB.SLICE_X1.DFFMUX.B3 31_60
|
|
||||||
```
|
|
||||||
|
|
@ -1,52 +1,8 @@
|
||||||
# CLBnOUTMUX Fuzzer
|
# clb-noutmux Fuzzer
|
||||||
|
|
||||||
|
## [A-D]FFMUX
|
||||||
|
|
||||||
|
Configures the AOUTMUX family of CLB muxes which feed the AMUX family of CLB outputs
|
||||||
|
|
||||||
|
Availible selections varies by A/B/C/D, see db for details.
|
||||||
|
|
||||||
## Purpose
|
|
||||||
Document nOUTMUX family of CLB muxes
|
|
||||||
## Algorithm
|
|
||||||
|
|
||||||
## Outcome
|
|
||||||
```
|
|
||||||
CLB.SLICE_X0.AOUTMUX.B0 30_11
|
|
||||||
CLB.SLICE_X0.AOUTMUX.B1 30_08
|
|
||||||
CLB.SLICE_X0.AOUTMUX.B2 30_06
|
|
||||||
CLB.SLICE_X0.AOUTMUX.B3 30_07
|
|
||||||
CLB.SLICE_X0.BOUTMUX.B0 30_20
|
|
||||||
CLB.SLICE_X0.BOUTMUX.B1 30_21
|
|
||||||
CLB.SLICE_X0.BOUTMUX.B2 30_22
|
|
||||||
CLB.SLICE_X0.BOUTMUX.B3 30_23
|
|
||||||
CLB.SLICE_X0.COUTMUX.B0 30_45
|
|
||||||
CLB.SLICE_X0.COUTMUX.B1 30_44
|
|
||||||
CLB.SLICE_X0.COUTMUX.B2 30_40
|
|
||||||
CLB.SLICE_X0.COUTMUX.B3 30_43
|
|
||||||
CLB.SLICE_X0.DOUTMUX.B0 30_56
|
|
||||||
CLB.SLICE_X0.DOUTMUX.B1 30_51
|
|
||||||
CLB.SLICE_X0.DOUTMUX.B2 30_52
|
|
||||||
CLB.SLICE_X0.DOUTMUX.B3 30_57
|
|
||||||
CLB.SLICE_X1.AOUTMUX.B0 31_09
|
|
||||||
CLB.SLICE_X1.AOUTMUX.B1 31_07
|
|
||||||
CLB.SLICE_X1.AOUTMUX.B2 31_10
|
|
||||||
CLB.SLICE_X1.AOUTMUX.B3 30_05
|
|
||||||
CLB.SLICE_X1.BOUTMUX.B0 31_20
|
|
||||||
CLB.SLICE_X1.BOUTMUX.B1 30_28
|
|
||||||
CLB.SLICE_X1.BOUTMUX.B2 31_21
|
|
||||||
CLB.SLICE_X1.BOUTMUX.B3 30_29
|
|
||||||
CLB.SLICE_X1.COUTMUX.B0 31_43
|
|
||||||
CLB.SLICE_X1.COUTMUX.B1 30_42
|
|
||||||
CLB.SLICE_X1.COUTMUX.B2 31_40
|
|
||||||
CLB.SLICE_X1.COUTMUX.B3 30_41
|
|
||||||
CLB.SLICE_X1.DOUTMUX.B0 31_56
|
|
||||||
CLB.SLICE_X1.DOUTMUX.B1 30_53
|
|
||||||
CLB.SLICE_X1.DOUTMUX.B2 31_57
|
|
||||||
CLB.SLICE_X1.DOUTMUX.B3 31_53
|
|
||||||
```
|
|
||||||
From manual O6 testing
|
|
||||||
```
|
|
||||||
30_11 X0 AOUTMUX O6
|
|
||||||
30_20 X0 BOUTMUX O6
|
|
||||||
30_45 X0 COUTMUX O6
|
|
||||||
30_56 X0 DOUTMUX O6
|
|
||||||
31_09 X1 AOUTMUX O6
|
|
||||||
31_20 X1 BOUTMUX O6
|
|
||||||
31_43 X1 COUTMUX O6
|
|
||||||
31_56 X1 DOUTMUX O6
|
|
||||||
```
|
|
||||||
|
|
@ -1,19 +1,13 @@
|
||||||
# CLBPRECYINIT Fuzzer
|
# clb-precyinit Fuzzer
|
||||||
|
|
||||||
## Purpose
|
## PRECYINIT
|
||||||
Document PRECYINIT mux
|
|
||||||
|
|
||||||
## Algorithm
|
Configures the PRECYINIT mux which provides CARRY4's first carry chain input
|
||||||
|
|
||||||
## Outcome
|
| PRECYINIT | Value |
|
||||||
|
|------------|---------------------------------|
|
||||||
|
| C0 | Logic 0 |
|
||||||
|
| C1 | Logic 1 |
|
||||||
|
| AX | AX CLB input |
|
||||||
|
| CIN | Carry in from adjacent CLB COUT |
|
||||||
|
|
||||||
```
|
|
||||||
CLB.SLICE_X0.PRECYINIT.0 <0 candidates>
|
|
||||||
CLB.SLICE_X0.PRECYINIT.1 00_12
|
|
||||||
CLB.SLICE_X0.PRECYINIT.AX 30_14
|
|
||||||
CLB.SLICE_X0.PRECYINIT.CIN 30_13
|
|
||||||
CLB.SLICE_X1.PRECYINIT.0 <0 candidates>
|
|
||||||
CLB.SLICE_X1.PRECYINIT.1 01_11
|
|
||||||
CLB.SLICE_X1.PRECYINIT.AX 31_13
|
|
||||||
CLB.SLICE_X1.PRECYINIT.CIN 31_12
|
|
||||||
```
|
|
||||||
|
|
@ -1,29 +1,50 @@
|
||||||
# CLBRAM Fuzzer
|
# clb-ram Fuzzer
|
||||||
|
|
||||||
## Purpose
|
| Primitive | RAM | SMALL | SRL |
|
||||||
Solves SLICEM specific bits:
|
|------------|-----|-------|-----|
|
||||||
- Shift register LUT (SRL)
|
| LUT6 | | | |
|
||||||
- Memory size
|
| SRL16E | | X | X |
|
||||||
- RAM vs LUT
|
| SRLC32E | | | X |
|
||||||
- Related muxes
|
| RAM32X1S | X | X | |
|
||||||
|
| RAM64X1S | X | | |
|
||||||
|
| RAM32M | X | X | |
|
||||||
|
| RAM32X1D | X | X | |
|
||||||
|
| RAM64M | X | | |
|
||||||
|
| RAM64X1D | X | | |
|
||||||
|
| RAM128X1D | X | | |
|
||||||
|
| RAM256X1S | X | | |
|
||||||
|
| RAM128X1S | X | | |
|
||||||
|
|
||||||
|
|
||||||
|
## NLUT.RAM
|
||||||
|
|
||||||
|
Set to make a RAM* family primitive, otherwise is a SRL or LUT function generator.
|
||||||
|
|
||||||
|
|
||||||
|
## NLUT.SMALL
|
||||||
|
|
||||||
|
Seems to be set on smaller primitives.
|
||||||
|
|
||||||
|
|
||||||
|
## NLUT.SRL
|
||||||
|
|
||||||
|
Whether to make a shift register LUT (SRL). Set when using SRL16E or SRLC32E
|
||||||
|
|
||||||
|
|
||||||
|
## WA7USED
|
||||||
|
|
||||||
|
Set to 1 to propagate CLB's CX input to WA7
|
||||||
|
|
||||||
|
|
||||||
|
## WA8USED
|
||||||
|
|
||||||
|
Set to 1 to propagate CLB's BX input to WA8
|
||||||
|
|
||||||
|
|
||||||
|
## WEMUX.CE
|
||||||
|
|
||||||
|
| WEMUX.CE | CLB RAM write enable |
|
||||||
|
|-----------|----------------------|
|
||||||
|
| 0 | CLB WE input |
|
||||||
|
| 1 | CLB CE input |
|
||||||
|
|
||||||
## Algorithm
|
|
||||||
|
|
||||||
## Outcome
|
|
||||||
```
|
|
||||||
CLB.SLICE_X0.ALUT.RAM 31_16
|
|
||||||
CLB.SLICE_X0.ALUT.SMALL 00_04
|
|
||||||
CLB.SLICE_X0.ALUT.SRL 30_16
|
|
||||||
CLB.SLICE_X0.BLUT.RAM 31_17
|
|
||||||
CLB.SLICE_X0.BLUT.SMALL 00_24
|
|
||||||
CLB.SLICE_X0.BLUT.SRL 30_17
|
|
||||||
CLB.SLICE_X0.CLUT.RAM 31_46
|
|
||||||
CLB.SLICE_X0.CLUT.SMALL 00_28
|
|
||||||
CLB.SLICE_X0.CLUT.SRL 30_46
|
|
||||||
CLB.SLICE_X0.DLUT.RAM 31_47
|
|
||||||
CLB.SLICE_X0.DLUT.SMALL 01_59
|
|
||||||
CLB.SLICE_X0.DLUT.SRL 30_47
|
|
||||||
CLB.SLICE_X0.WA7USED 00_40
|
|
||||||
CLB.SLICE_X0.WA8USED 01_27
|
|
||||||
CLB.SLICE_X0.WEMUX.CE 01_23
|
|
||||||
```
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# NDI1MUX Fuzzer
|
# clb-ndi1mux Fuzzer
|
||||||
|
|
||||||
See minitest for DI notes
|
See minitest for DI notes
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue