SymbiFlow / yosys

SymbiFlow WIP changes for Yosys Open SYnthesis Suite
http://www.clifford.at/yosys/
ISC License
37 stars 9 forks source link

Upstream sync #73

Closed acomodi closed 4 years ago

acomodi commented 4 years ago

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

acomodi commented 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)
mithro commented 4 years ago

The *.box file should be considered part of the techmap too.

litghost commented 4 years ago

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

GitHub
SymbiFlow/symbiflow-arch-defs
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation. - SymbiFlow/symbiflow-arch-defs
litghost commented 4 years ago

The *.box file should be considered part of the techmap too.

No

acomodi commented 4 years ago

@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.

acomodi commented 4 years ago

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)
acomodi commented 4 years ago

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.

acomodi commented 4 years ago

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.

mithro commented 4 years ago

@acomodi For the ABC issue, see the stuff @eddiehung has been working on in upstream YosysHQ -- https://github.com/YosysHQ/yosys/pull/1946

litghost commented 4 years ago

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.

acomodi commented 4 years ago

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

acomodi commented 4 years ago

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.

acomodi commented 4 years ago

Closing, superseded by #74