aboutsummaryrefslogtreecommitdiffstats
path: root/machxo2
Commit message (Collapse)AuthorAgeFilesLines
* Switch to potentially-sparse net users arraygatecat2022-02-271-1/+1
| | | | | | | | This uses a new data structure for net.users that allows gaps, so removing a port from a net is no longer an O(n) operation on the number of users the net has. Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: New member functions to replace design_utilsgatecat2022-02-182-10/+10
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: Use constids instead of id("..")gatecat2022-02-167-64/+81
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: Use cell member functions to add portsgatecat2022-02-161-72/+59
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* refactor: New NetInfo and CellInfo constructorsgatecat2022-02-162-16/+9
|
* archapi: Use arbitrary rather than actual placement in predictDelaygatecat2021-12-192-7/+8
| | | | | | | | | | | | This makes predictDelay be based on an arbitrary belpin pair rather than a arc of a net based on cell placement. This way 'what-if' decisions can be evaluated without actually changing placement; potentially useful for parallel placement. A new helper predictArcDelay behaves like the old predictDelay to minimise the impact on existing passes; only arches need be updated. Signed-off-by: gatecat <gatecat@ds0.me>
* clangformat.William D. Jones2021-12-162-9/+12
|
* machxo2: Remove no-iobs option. It was always enabled and should remain an ↵William D. Jones2021-12-166-8/+5
| | | | implementation detail.
* machxo2: Remove -noiopad option when generating miters for post-pnr ↵William D. Jones2021-12-161-1/+2
| | | | verification.
* machxo2: Add packing logic to forbid designs lacking FACADE_IO top-level ports.William D. Jones2021-12-161-0/+46
|
* machxo2: Correct which PIO wires get adjusted when writing text bitstream. ↵William D. Jones2021-12-161-9/+26
| | | | Add verbose logging for adjustments.
* machxo2: Fix packing for directly-connected DFFs.William D. Jones2021-07-013-9/+28
|
* machxo2: Add VHDL primitives, demo, and script.William D. Jones2021-07-014-0/+81
|
* machxo2: Add a special case for pips whose config bits are in multipleWilliam D. Jones2021-07-011-0/+12
| | | | tiles.
* machxo2: Hardcode a rule for emitting U_/D_ or G_ prefixes in ASCII output.William D. Jones2021-07-011-2/+17
|
* machxo2: Set Pip and Wire delays to reasonable fake values mirroringWilliam D. Jones2021-07-011-2/+2
| | | | estimateDelay.
* Fixing old emails and names in copyrightsgatecat2021-06-1213-15/+15
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Remove redundant code after hashlib movegatecat2021-06-021-43/+0
| | | | 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-9/+8
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Use hashlib for core netlist structuresgatecat2021-06-023-17/+19
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add hash() member functionsgatecat2021-06-021-0/+5
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add stub cluster API impl for remaining archesgatecat2021-05-061-1/+3
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Add same fix as in issue #373Miodrag Milanovic2021-04-081-0/+4
|
* Split nextpnr.h to allow for linear inclusion.Keith Rothman2021-03-152-7/+18
| | | | | | | | | | | | | | | | | | | "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>
* Fix compiler warnings introduced by -Wextragatecat2021-02-253-15/+1
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* Replace DelayInfo with DelayPair/DelayQuadgatecat2021-02-192-36/+3
| | | | | | | | | | | | | | | | | 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>
* Remove isValidBelForCellgatecat2021-02-163-12/+1
| | | | | | | | | | | | | | | | | 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>
* machxo2: Misc tidying upgatecat2021-02-122-8/+4
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* machxo2: Python bindings and stub GUIgatecat2021-02-125-6/+188
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* machxo2: Use snake_case for non-ArchAPI functionsgatecat2021-02-124-63/+63
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* machxo2: Use IdStringLists in earnestgatecat2021-02-122-76/+70
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* machxo2: Update with Arch API changesgatecat2021-02-127-464/+115
| | | | Signed-off-by: gatecat <gatecat@ds0.me>
* machxo2: Prepare README.md for first PR.William D. Jones2021-02-121-4/+36
|
* machxo2: Add prefix parameter to simtest.sh. Remove show command fromWilliam D. Jones2021-02-123-40/+43
| | | | simtest.sh. Update README.md.
* machxo2: Add prefix parameter to simple.sh. Update README.md.William D. Jones2021-02-122-14/+14
|
* machxo2: Fill in more about mitertest.sh in README.md and clean up a bit.William D. Jones2021-02-121-4/+27
|
* machxo2: Add two new examples: blinky_ext and aforementioned UART.William D. Jones2021-02-123-0/+238
|
* machxo2: auto-top does not work for smt miter either.William D. Jones2021-02-121-1/+1
|
* machxo2: Fix unhelpful comment in mitertest.sh.William D. Jones2021-02-121-1/+0
|
* machxo2: Verilog examples using OSCH cannot be simulated in mitertest.sh. ↵William D. Jones2021-02-121-3/+7
| | | | Remove show from mitertest.sh.
* machxo2: Add prefix parameter to mitertest.sh. All Verilog files top modules ↵William D. Jones2021-02-123-37/+37
| | | | named "top".
* machxo2: Add prefix paramter to demo.sh.William D. Jones2021-02-124-22/+37
|
* Add demo with RGB LEDmtnrbq2021-02-122-0/+43
|
* machxo2: Fix packing when FF is driven by a constant; UART test core working ↵William D. Jones2021-02-122-1/+3
| | | | on silicon, fails post-synth sim.
* machxo2: Add packing logic to handle FFs fed with constant value; UART test ↵William D. Jones2021-02-123-5/+39
| | | | core routes.
* machxo2: Add additional packing phase to pack remaining FFs.William D. Jones2021-02-121-0/+38
|
* machxo2: Don't write out config bits for cells without location info.William D. Jones2021-02-121-1/+2
|
* machxo2: Special-case left and right I/O wire names in ASCII generation.William D. Jones2021-02-121-1/+35
|
* machxo2: Add quickstart README.md.William D. Jones2021-02-121-0/+73
|