Skip to content

[Crash] Assertion failure 'Gia_ObjLevel(p, pObj) > 0' in Gia_ManChoiceLevel during FPGA mapping #466

@zhihaoxu1325

Description

@zhihaoxu1325

Hi here, I encountered a reproducible crash (assertion failure) in ABC when running a specific sequence of synthesis and mapping commands (&if). The issue seems to be triggered by the interaction between dch (which introduces choices) and &if (which utilizes them).

Error Log:

abc: src/aig/gia/giaIf.c:836: Gia_ManChoiceLevel: Assertion `Gia_ObjLevel(p, pObj) > 0' failed.
Aborted (core dumped)

Steps to Reproduce

Load the attached design file: input.blif.

Run the following command sequence:

Bash

./abc -c "read_blif input.blif; strash; refactor; rewrite -z; dch -f; &get; &if -K 4; &put; refactor; print_stats"

Observation The crash occurs specifically during the &if -K 4 step (or immediately following it within the GIA manager operations).

It appears that Gia_ManChoiceLevel encounters a node (pObj) with an invalid level (likely 0) when processing choice nodes. This might be a state consistency issue resulting from the preceding dch -f command, which adds choice nodes to the network.

Environment

OS: Linux

ABC Version: Master branch (latest)

Attachments

input.blif.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions