aboutsummaryrefslogtreecommitdiffstats
path: root/gowin
Commit message (Collapse)AuthorAgeFilesLines
...
* gowin: Use speed from chip base.YRabbit2021-11-053-20/+27
| | | | | | | Another simplification of the input regular expression, now the speed is taken from the base. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Add partnumbers and packages to the chipdbYRabbit2021-11-043-6/+29
| | | | | | | | | | Instead of parsing the partnumber with a regular expression, a simple table is used. This is done because the structure of the partnumber changes as new features appear (e.g., ES instead of C6/I5) This commit does not yet disable the very first regular expression check. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Explicitly initialize the y in the clusterYRabbit2021-10-221-0/+5
| | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Add ALU support.YRabbit2021-10-223-6/+221
| | | | | | | | - Both the mode used by yosys and all Gowin primitive modes are supported. - The ALU always starts with a zero slice. - The maximum length of the ALU chain is limited to one line of the chip. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* Gowin: more clearly mark dummy pipsPepijn de Vos2021-10-101-2/+2
|
* gowin: Replace the zero delays with reasonable values.YRabbit2021-10-093-12/+40
| | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: add support for wide LUTs.YRabbit2021-10-077-9/+434
| | | | | | | | | * A hardwired MUX within each logical cell is used. * The delay is equal 0. * No user placement constraints. * The output route contains dummy PIPs. They are ignored by gowin_pack, but it may be worth removing them. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Place DFFs of different types in the slice.YRabbit2021-08-311-2/+26
| | | | | | | | | | | | | | | | | Allow the registers of the same type or pairs shown below to be placed in the same slide: |--------|--------| | DFFS | DFFR | | DFFSE | DFFRE | | DFFP | DFFC | | DFFPE | DFFCE | | DFFNS | DFFNR | | DFFNSE | DFFNRE | | DFFNP | DFFNC | | DFFNPE | DFFNCE | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Add constraints on primitive placement.YRabbit2021-08-313-14/+48
| | | | | | | | | | Added support for the INS_LOC instruction in the constraints file (.CST), which is used to specify object placement. Expanded treatment of IO_LOC/IO_PORT constraints, which now can be applied to both ports and IO buffers. Port constraints have priority. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Add the IO[TRBL]style placement recognitionYRabbit2021-08-231-5/+37
| | | | | | | | | Specifying pin placement with this notation (e.g. IOR4B) allows to use the same constraint file without changes for different packages and even different families. The vendor router also understands this notation. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* gowin: Change the constraint parser to support multiple options per line. ↵YRabbit2021-08-062-7/+14
| | | | | | Add support for IOBUF and TBUF I/O modes. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* clangformatgatecat2021-07-211-1/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* remove generic leftover in gowinPepijn de Vos2021-07-171-2/+0
|
* GW1NR is not a seperate family, but GW1NS isPepijn de Vos2021-07-111-1/+8
|
* Merge pull request #755 from yrabbit/io_portgatecat2021-07-081-16/+24
|\ | | | | Pin modes parser
| * Fix the boolean.YRabbit2021-07-081-1/+1
| | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * Fix formatingYRabbit2021-07-071-24/+24
| | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * Fix boolean value.YRabbit2021-07-071-1/+1
| | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * Merge branch 'master' into io_portYRabbit2021-07-072-6/+7
| |\
| * | Wip parserYRabbit2021-07-071-16/+4
| | | | | | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * | ParserYRabbit2021-07-051-0/+9
| | | | | | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * | Fix parser. Comments and IO_PORTYRabbit2021-07-031-11/+9
| | | | | | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * | SyntaxYRabbit2021-07-021-3/+3
| | | | | | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
| * | Add IO_PORT parsingYRabbit2021-07-021-14/+27
| | | | | | | | | | | | Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
* | | clangformatgatecat2021-07-081-2/+1
| |/ |/| | | | | Signed-off-by: gatecat <gatecat@ds0.me>
* | add support for GW1NS-2 familyGwenhael Goavec-Merou2021-07-062-6/+7
|/ | | | Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
* Fixing old emails and names in copyrightsgatecat2021-06-129-11/+11
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib in most remaining codegatecat2021-06-021-2/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Using hashlib in archesgatecat2021-06-024-32/+18
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib for core netlist structuresgatecat2021-06-023-16/+19
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add stub cluster API impl for remaining archesgatecat2021-05-061-1/+2
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add default base implementation of cluster APIgatecat2021-05-061-0/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Split nextpnr.h to allow for linear inclusion.Keith Rothman2021-03-152-7/+22
| | | | | | | | | | | | | | | | | | | "nextpnr.h" is no longer the god header. Important improvements: - Functions in log.h can be used without including BaseCtx/Arch/Context. This means that log_X functions can be called without included "nextpnr.h" - NPNR_ASSERT can be used without including "nextpnr.h" by including "nextpnr_assertions.h". This allows NPNR_ASSERT to be used safely in any header file. - Types defined in "archdefs.h" are now available without including BaseCtx/Arch/Context. This means that utility classes that will be used inside of BaseCtx/Arch/Context can be defined safely in a self-contained header. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* only one type of dff per slicePepijn de Vos2021-02-282-1/+9
|
* Fix compiler warnings introduced by -Wextragatecat2021-02-253-27/+27
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Change CellInfo in getBelPinsForCellPin to be const.Keith Rothman2021-02-232-2/+2
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Replace DelayInfo with DelayPair/DelayQuadgatecat2021-02-194-83/+36
| | | | | | | | | | | | | | | | | This replaces the arch-specific DelayInfo structure with new DelayPair (min/max only) and DelayQuad (min/max for both rise and fall) structures that form part of common code. This further reduces the amount of arch-specific code; and also provides useful data structures for timing analysis which will need to delay with pairs/quads of delays as it is improved. While there may be a small performance cost to arches that didn't separate the rise/fall cases (arches that aren't currently separating the min/max cases just need to be fixed...) in DelayInfo, my expectation is that inlining will mean this doesn't make much difference. Signed-off-by: gatecat <gatecat@ds0.me>
* gowin: Fix archcheck errors and add to CIgatecat2021-02-171-1/+11
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* gowin: Use base bel bucket/cell type methodsgatecat2021-02-171-5/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* gowin: Fix IdStrings being overwritten by wireToGlobalgatecat2021-02-171-8/+8
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Remove isValidBelForCellgatecat2021-02-162-16/+0
| | | | | | | | | | | | | | | | | This Arch API dates from when we were first working out how to implement placement validity checking, and in practice is little used by the core parts of placer1/HeAP and the Arch implementation involves a lot of duplication with isBelLocationValid. In the short term; placement validity checking is better served by the combination of checkBelAvail and isValidBelForCellType before placement; followed by isBelLocationValid after placement (potentially after moving/swapping multiple cells). Longer term, removing this API makes things a bit cleaner for a new validity checking API. Signed-off-by: gatecat <gatecat@ds0.me>
* Add getBelPinsForCellPin to Arch APIgatecat2021-02-102-0/+4
| | | | | | | | | | | | This is a basic implementation, without considering "M of N" arrangements (e.g. for LUT permuation where you only want to route to 1 out of 4/6 sinks) or using a type other than IdString to identify bel pins. But this is also enough to start working out where in nextpnr will break due to removing the 1:1 cell:bel pin cardinality, as a next step. Signed-off-by: gatecat <gatecat@ds0.me>
* Use 'T' postfix to disambiguate LHS and RHS of usingD. Shah2021-02-081-21/+21
| | | | | | | Arches might otherwise have range types named ambigiously with the entry in ArchRanges. Signed-off-by: D. Shah <dave@ds0.me>
* Add archArgs and archArgsToId to Arch APID. Shah2021-02-051-2/+3
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* gowin: Switch to BaseArchD. Shah2021-02-052-150/+107
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* Mark IdString and IdStringList single argument constructors explicit.Keith Rothman2021-02-041-19/+18
| | | | | | | | | Single argument constructors will silently convert to that type. This is typically not the right thing to do. For example, the nexus and ice40 arch_pybindings.h files were incorrectly parsing bel name strings, etc. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* gowin: Stub implementation of IdStringListD. Shah2021-02-022-23/+26
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* arch: Add getNameDelimiter API for string listsD. Shah2021-02-021-0/+1
| | | | Signed-off-by: D. Shah <dave@ds0.me>
* Run "make clangformat".Keith Rothman2021-02-022-26/+13
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
* Rename Partition -> BelBucket.Keith Rothman2021-02-022-9/+9
| | | | Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>