forked from YosysHQ/yosys
-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
Description
There are issues relative to master+wip rebase on top of master.
There are currently ~1000 commits between master+wip and the master branch. As happens for VPR it would be good to have periodic updates of the master+wip branch to be able to easily spot possible regressions.
Right now, the master+wip update fails the integration with symbiflow-arch-defs. This issue is to keep track of the effort in rebasing the current version to the master branch.
Activity
acomodi commentedon Apr 15, 2020
I am trying to re-generate the master+wip with the past updates on yosys.
When running symbiflow-arch-defs tests, using the new master+wip, I ran into an ABC issue (for the error_output_logic test in
xc/xc7/tests/common
:I tracked down what is causing the issue, and it seems to be related to the addition of the carry4_out box.
By removing the wip/carry4_out branch, the error is solved.
The VPR model though is wrong and
CARRY0
is not supported in arch-defs.@litghost FYI
acomodi commentedon Apr 15, 2020
I do not have too much confidence with how ABC works, but I have noticed that, for the
abc9_xc7.box
, the normal carry4 has 8 outputs, (4O
and 4CO
). This is untrue for the VPRcarry4_cout
, which has 5 outputs (4O
and 1COUT
).The problem, IMO, is that in the
.box
definition, we only use the highest delays, counting as the whole carry is used. This may cause issues in ABC when the carry is not fully used, messing with the math.I have tried to expand the COUT output to be 4-bits wide, and added the same delays as for the normal carry4:
This seems to have solved the ABC issue, but I am unsure whether this will cause cascading issues in arch-defs, as now the COUT is 4-bits wide. This change was only done to check where the issue was, it does not mean that it is the correct solution.
acomodi commentedon Apr 15, 2020
The above mentioned addition seems to be working (also on HW) for some basic tests in arch-defs (e.g. counter).
It produces errors though in VPR:
This happens during macro placement and the assertion is relative to some carry_chain nets.
I think that it is caused by the fact that the model/pb_type of the CARRY should be changed accordingly to the change in the techlib
litghost commentedon Apr 15, 2020
Do not remove the carry4-cout branch. It intentionally removed the CO ports because ABC was generating impossible to pack solutions.
litghost commentedon Apr 15, 2020
Incorrect. The VPR specific carry chains were correct.
acomodi commentedon Apr 15, 2020
@litghost I wonder whether modifying the abc9_xc7.box and is the right way to go then.
Sure, I did with the only purpose of tracking down the origin of the issue.
Ok, I need to debug this a little bit more to understand what is happening.
litghost commentedon Apr 15, 2020
So
abc9_xc7.box
should not be modified, except to add the VPR specific carry white / black boxes.acomodi commentedon Dec 8, 2020
This has been fixed. Closing