Commit Graph

4663 Commits

Author SHA1 Message Date
SpaceCat-Chan
0f9cf8775c move special casing out of partitioner 2023-12-06 17:45:20 +00:00
Lofty
c13e840e41 awooter: significantly speed up partitioner
Co-authored-by: SpaceCat-Chan <49094338+SpaceCat-Chan@users.noreply.github.com>
2023-12-06 17:45:20 +00:00
SpaceCat-Chan
838efaf2f1 make slight improvement to partitioner 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
6f940d29b9 make a theoretically correct partitioner 2023-12-06 17:45:20 +00:00
Lofty
483e42d5e7 awooter: retry partitioning if there are overused wires 2023-12-06 17:45:20 +00:00
Lofty
ac3ef9b0bb awooter: multithreaded routing 2023-12-06 17:45:20 +00:00
Lofty
290291cca6 awooter: fix multithreaded partitioning 2023-12-06 17:45:20 +00:00
Lofty
d9161d9142 awooter: single-thread pathfinding 2023-12-06 17:45:20 +00:00
Lofty
3408f532ec awooter: cargo fmt 2023-12-06 17:45:20 +00:00
Lofty
522dd3da7c awooter: partitioner improvements 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
8fd983af15 make pip exploration not cursed 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
035247ebbf add uphill pips iter 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
afaaff6b00 make find_best_pip take an arc instead of wires 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
f7fc239f75 improve partition sanity check quality of life 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
3694632aa4 use new arc type in partitioner 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
908d7ef69a only search pips inside partition bounds 2023-12-06 17:45:20 +00:00
Lofty
6213b13277 awooter: wip 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
b333080715 finalize downhill iterator 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
2ff491c717 create downhill iter wrapper 2023-12-06 17:45:20 +00:00
Lofty
bc7f7845d2 awooter: further clean up 2023-12-06 17:45:20 +00:00
Lofty
a16247d512 awooter: add Arc struct 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
319d1c4620 split partitioning code into seperate file 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
9b4c6966be split arc extraction into function 2023-12-06 17:45:20 +00:00
Lofty
2c1a9d18ed awooter: clean up unused code 2023-12-06 17:45:20 +00:00
Lofty
cb7dba6dd5 awooter: return of the progress bar 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
ae756e2d8c fix bug in split_line_over_x 2023-12-06 17:45:20 +00:00
Lofty
1cc00308dc awooter: simple time measurement 2023-12-06 17:45:20 +00:00
SpaceCat-Chan
2d3c05da85 make partitioner run in parallel over nets 2023-12-06 17:45:20 +00:00
Lofty
ba9067afaf awooter: atomics instead 2023-12-06 17:45:20 +00:00
Lofty
268906819d awooter: better locking 2023-12-06 17:45:20 +00:00
Lofty
1077cd3654 awooter: properly parallelise 2023-12-06 17:45:20 +00:00
Lofty
c00fba75e9 awooter: clamp pip indices 2023-12-06 17:45:20 +00:00
Lofty
2a18fe58c6 awooter: cargo fmt 2023-12-06 17:45:20 +00:00
Lofty
f1a4848c0f awooter: parallelise partitioning 2023-12-06 17:45:20 +00:00
Lofty
873a70ddd0 awooter: refactor and bugfix
Co-authored-by: Spacecat-Chan <49094338+SpaceCat-Chan@users.noreply.github.com>
2023-12-06 17:45:20 +00:00
Lofty
c8a2b842d6 awooter: further prettify 2023-12-06 17:45:20 +00:00
Lofty
e64cd668b2 awooter: prettify 2023-12-06 17:45:20 +00:00
Lofty
d50ab6139c awooter: net-based partitioner 2023-12-06 17:45:20 +00:00
Lofty
f64caaae24 awooter: wire storage and some cleanup 2023-12-06 17:45:20 +00:00
Lofty
4a0406420b awooter: 'better' FFI API 2023-12-06 17:45:20 +00:00
Lofty
b92a1bf52d awooter: fix an API soundness issue 2023-12-06 17:45:20 +00:00
Lofty
0cc3245d4b awooter: partition experiment code 2023-12-06 17:45:20 +00:00
Lofty
60cc6b7765 awooter: add net import code 2023-12-06 17:45:20 +00:00
Jubilee
195d344d9a Specify PROFILE when importing awooter
Otherwise CMake and Corrosion get confused about how to put things together.
2023-12-06 17:45:20 +00:00
Lofty
d5d6a07c34 awooter: highly, highly WIP 2023-12-06 17:45:20 +00:00
gatecat
6d9322457e static: Reduce stddev of initial solution
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-26 16:51:47 +01:00
YRabbit
c13b34f20e gowin: Himbaechel. Add BSRAM for all chips.
The following primitives are implemented for the GW1N-1, GW2A-18,
    GW2AR-18C, GW1NSR-4C, GW1NR-9C, GW1NR-9 and GW1N-4 chips:

    * pROM     - read only memory - (bitwidth: 1, 2, 4, 8, 16, 32).
    * pROMX9   - read only memory - (bitwidth: 9, 18, 36).
    * SDPB     - semidual port    - (bitwidth: 1, 2, 4, 8, 16, 32).
    * SDPX9B   - semidual port    - (bitwidth: 9, 18, 36).
    * DPB      - dual port        - (bitwidth: 16).
    * DPX9B    - dual port        - (bitwidth: 18).
    * SP       - single port      - (bitwidth: 1, 2, 4, 8, 16, 32).
    * SPX9     - single port      - (bitwidth: 9, 18, 36).

    For GW1NSR-4C and GW1NR-9 chips, SP/SPX9 primitives with data widths
    of 32/36 bits are implemented using a pair of 16-bit wide
    primitives.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-11-26 13:08:09 +01:00
YRabbit
90d4863dd4 gowin: Himbaechel. Add GW1NZ-1 BSRAM.
The following primitives are implemented for the GW1NZ-1 chip:

* pROM     - read only memory - (bitwidth: 1, 2, 4, 8, 16, 32).
* pROMX9   - read only memory - (bitwidth: 9, 18, 36).
* SDPB     - semidual port    - (bitwidth: 1, 2, 4, 8, 16, 32).
* SDPX9B   - semidual port    - (bitwidth: 9, 18, 36).
* DPB      - dual port        - (bitwidth: 16).
* DPX9B    - dual port        - (bitwidth: 18).
* SP       - single port      - (bitwidth: 1, 2, 4, 8, 16, 32).
* SPX9     - single port      - (bitwidth: 9, 18, 36).

Also:
 - The creation of databases for GW1NS-2 has been removed - this was not
   planned to be supported in Himbaechel from the very beginning and
   even examples were not created in apicula for this chip due to the
   lack of boards with it on sale.
 - It is temporarily prohibited to connect DFFs and LUTs into clusters
   because for some reason this prevents the creation of images on lower
   chips (placer cannot find the placement), although without these
   clusters the images are quite working. Requires further research.
 - Added creation of ALU with mode 0 - addition. Such an element is not
   generated by Yosys, but it is a favorite vendor element and its
   support here greatly simplifies the compilation of vendor netlists.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-11-26 13:08:09 +01:00
YRabbit
f2c280feda gowin: Himbaechel. Initial BSRAM support
Only pROM/pROMX9 for now

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-11-26 13:08:09 +01:00
Miodrag Milanovic
e3f4578b3b CRLF -> LF eol 2023-11-23 09:22:07 +01:00