Closed acomodi closed 4 years ago
This actually does not seem to be the correct solution. When testing baselitex on arch-defs I got the following packing error, probably related to the change from blackbox to whitebox:
Type: Packing
File: /data/vtr-symbiflow/vpr/src/pack/cluster.cpp
Line: 2048
Message: Can not find any logic block that can implement molecule.
Atom $abc$313980$lut$aiger313979$40594.mux8 (MUXF8)
The *.box
file should be considered part of the techmap too.
symbiflow-arch-defs provides it's own techmaps in https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/xc7/techmap
Should the
techlibs/xilinx
be reverted to whatever is upstream, our techmaps in SymbiFlow-Arch-Defs be updated and then tell Yosys to just use our techmaps rather than upstream?Would this remove the need for most of the Yosys modifications?
No
GitHubFOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
The
*.box
file should be considered part of the techmap too.
No
@litghost @mithro I found out that the the cause is a change in ABC. Downgrading it to a previous version did solve the issue. I still need to track down the braking commit in ABC and see if there is a fix we can find. For the time being I could set the yosys Makefile to use a working commit from ABC.
There is yet another issue though. What changed in yosys w.r.t. the previous master+wip is the iopad inference:
Now it is enabled by default and disabled with the parameter -noiopad
.
Using a previous version of ABC and enabling the iopad inference, no errors show up.
Instead, if the -noiopad
parameter is added for ROI targets, I end up with the same ABC issue:
K = 8. Memory (bytes): Truth = 0. Cut = 64. Obj = 144. Set = 672. CutMin = no
Node = 901. Ch = 112. Total mem = 0.23 MB. Peak cut mem = 0.04 MB.
P: Del = 3843.00. Ar = 1348.0. Edge = 1274. Cut = 14144. T = 0.00 sec
P: Del = 3825.00. Ar = 1385.0. Edge = 1340. Cut = 13812. T = 0.00 sec
P: Del = 3825.00. Ar = 1071.0. Edge = 1107. Cut = 24151. T = 0.01 sec
F: Del = 3816.00. Ar = 735.0. Edge = 936. Cut = 17855. T = 0.01 sec
A: Del = 3816.00. Ar = 666.0. Edge = 851. Cut = 16942. T = 0.01 sec
A: Del = 3816.00. Ar = 636.0. Edge = 821. Cut = 17224. T = 0.01 sec
Total time = 0.03 sec
+ &mfs
yosys-abc: src/aig/gia/giaMfs.c:388: Gia_Man_t *Gia_ManInsertMfs(Gia_Man_t *, Sfm_Ntk_t *, int): Assertion `iLitNew >= 0' failed.
Aborted (core dumped)
I think I tracked down the change that generates issues with ABC.
ABC has a command called mfs
(Not enough documentation to understand what this step is doing).
This ABC pass produces the error reported above. For the time being I have removed the mfs pass from the abc9 scripts.
Running the baselitex design of archdefs I get a packing error, previosuly shown up:
Failed route at end, repack cluster trying detailed routing at each stage.
Complex block 1904: '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' (BLK-TL-SLICEL) .Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster
.Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster
.Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster
.Error 1:
Type: Packing
File: /data/vtr-symbiflow/vpr/src/pack/cluster.cpp
Line: 2048
Message: Can not find any logic block that can implement molecule.
Atom $abc$314123$lut$aiger314122$40697.mux8 (MUXF8)
Unsure whether this should be solved on the arch-defs or yosys side.
@acomodi For the ABC issue, see the stuff @eddiehung has been working on in upstream YosysHQ -- https://github.com/YosysHQ/yosys/pull/1946
Running the baselitex design of archdefs I get a packing error, previosuly shown up:
Failed route at end, repack cluster trying detailed routing at each stage. Complex block 1904: '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' (BLK-TL-SLICEL) .Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster .Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster .Net '$abc$314123$auto$dff2dffe.cc:175:make_patterns_logic$54569' is impossible to route within proposed BLK-TL-SLICEL cluster .Error 1: Type: Packing File: /data/vtr-symbiflow/vpr/src/pack/cluster.cpp Line: 2048 Message: Can not find any logic block that can implement molecule. Atom $abc$314123$lut$aiger314122$40697.mux8 (MUXF8)
Unsure whether this should be solved on the arch-defs or yosys side.
For now we disable widemuxes, and debug it later? Add -nowidemux
to the synth_xilinx
line.
For now we disable widemuxes, and debug it later? Add -nowidemux to the synth_xilinx line.
Seems to be working, I am running all_xc7 now to check whether everything is all right
apart from some adjustments to be made to some tests (regarding ROI designs for which some routes from $false to output pins), all_xc7_diff_fasm
seems to be working fine, waiting for it to finish.
Need to investigate why Travis CI is red.
There still is an outstanding issue described here which is related to an outstanding problem with routing.
Closing, superseded by #74
Yosys upstream sync.
There is a fix for the ABC issue described here, that switches the w/b value in the abc9_xc7.box techlib