Merge branch 'kittennbfive-annotate-primitives' into master

This commit is contained in:
David Shah 2020-10-01 09:02:39 +01:00
commit b5054f0d77
2 changed files with 49 additions and 45 deletions

View File

@ -9,11 +9,18 @@ The iCE40 architecture supports PCF constraints thus:
set_io led[0] 3
and the ECP5 architecture supports a subset of LPF constraints:
and the ECP5 architecture supports a subset of LPF constraints (for details see Lattice Technical Note "FPGA-TN-02032 1.3"):
LOCATE COMP "led[0]" SITE "E16";
IOBUF PORT "led[0]" IO_TYPE=LVCMOS25;
IOBUF ... DRIVE=4|8|12|16; // currently LVCMOS33 and LVCMOS33D only
IOBUF ... OPENDRAIN=ON|OFF;
IOBUF ... TERMINATION=50|75|150;
IOBUF ... DIFFRESISTOR=100; //for differential IO only
IOBUF ... CLAMP=ON|OFF;
IOBUF ... PULLMODE=UP|DOWN|NONE;
IOBUF ... SLEWRATE=FAST|SLOW; //outputs only
IOBUF ... HYSTERESIS=ON|OFF;
## Absolute Placement Constraints

View File

@ -2,46 +2,43 @@
nextpnr-ecp5 currently supports the following primitives:
- **ALU54B** (limited support, must be manually placed)
- **CCU2C**
- **CLKDIVF**
- **DCUA**
- **DDRDLLA**
- **DELAYF**
- **DELAYG**
- **DP16KD**
- **DQSBUFM**
- **DTR**
- **ECLKSYNCB**
- **EHXPLLL**
- **EXTREFB**
- **GSR**
- **IDDR71B**
- **IDDRX1F**
- **IDDRX2DQA**
- **IDDRX2F**
- **IOLOGIC**
- **JTAGG** (untested)
- **L6MUX21**
- **LUT4**
- **MULT18X18D** (cascade functionality not supported)
- **ODDR71B**
- **ODDRX1F**
- **ODDRX2DQA**
- **ODDRX2DQSB**
- **ODDRX2F**
- **OSCG**
- **OSHX2A**
- **PCSCLKDIV**
- **PFUMX**
- **SEDGA** (untested)
- **SIOLOGIC**
- **TRELLIS_DPR16X4**
- **TRELLIS_ECLKBUF**
- **TRELLIS_FF**
- **TRELLIS_IO**
- **TRELLIS_SLICE**
- **TSHX2DQA**
- **TSHX2DQSA**
- **USRMCLK**
- **ALU54B** - 54-bit ternary adder/subtractor (limited support, must be manually placed)
- **CCU2C** - 2x LUT4 with carry logic
- **CLKDIVF** - clock divider
- **DCUA** - dual channel 3/5Gbps SERDES
- **DDRDLLA** - 90° delay for DQS or clock for DDR interface
- **DELAYF** - configurable signal delay
- **DELAYG** - simple signal delay
- **DP16KD** - true dual port block RAM
- **DQSBUFM** - DQS control for DDR memory
- **DTR** - die temperature readout *notice: The IO-names in the FPGA Libraries Reference Guide 08/16 are wrong*
- **ECLKSYNCB** - edge clock stop/synchronisation
- **EHXPLLL** - phase-locked-loop
- **EXTREFB** - reference clock input buffer for external clock for SERDES
- **GSR** - global set/reset interface
- **IDDR71B** - 7:1 input gearbox
- **IDDRX1F** - generic 1:2 input DDR
- **IDDRX2DQA** - DDR2/3 memory 1:4 input interface
- **IDDRX2F** - generic 1:4 input DDR
- **JTAGG** - JTAG access to fabric
- **L6MUX21** - 2 input multiplexer for LUT6 and above
- **LUT4** - 4 input Look Up Table
- **MULT18X18D** - DSP multiplier (cascade functionality not supported)
- **ODDR71B** - 7:1 ODDR implementation
- **ODDRX1F** - generic 2:1 output DDR
- **ODDRX2DQA** - memory 4:1 output DDR primitive for DQ outputs
- **ODDRX2DQSB** - memory 4:1 output DDR primitive for DQS outputs
- **ODDRX2F** - generic 4:1 output DDR
- **OSCG** - internal oscillator
- **OSHX2A** - memory 4:1 output DDR primitive for address and command
- **PCSCLKDIV** - clock divider for SERDES clock outputs
- **PFUMX** - 2 input multiplexer for LUT5s
- **SEDGA** - allows checking configuration data for soft-errors, see TN1268 (untested)
- **TRELLIS_DPR16X4** - 16x4 LUTRAM
- **TRELLIS_ECLKBUF** - internal edge clock buffer
- **TRELLIS_FF** - SLICE flipflop
- **TRELLIS_IO** - tristate IO, mapped by Yosys from BB, IB, OB, etc
- **TRELLIS_SLICE** - logic SLICE (2x LUT4, 2x FF, 2x MUX2, CCU2 carry)
- **TSHX2DQA** - tristate control for DQ data output for DDR2 and DDR3 memory
- **TSHX2DQSA** - tristate control for DQS output
- **USRMCLK** - provides access to SPI flash clock (MCLK)