TeamVoss / VossII

The source code to the Voss II Hardware Verification Suite
Apache License 2.0
53 stars 13 forks source link

STE fails when using nested types #8

Closed Lemnis-Cat closed 4 years ago

Lemnis-Cat commented 4 years ago

When using a STRUCT type containing other user-defined types, STE cannot show me anything when I click fanin.

Let's say I have a type that is a STRUCT defined that way:

ENUM "shadok" ["GA", "BU", "ZO", "MEU"];

ENUM "foobar" ["foo", "bar"];

STRUCT "bla" 6 [
        ("foobar",  "foobar",   [0]),
        ("gibi",    "shadok",   (1--2))
];

Now, if I write the following code:

let bug =
    bla_output blablabla.
    CELL "bug" [
        blablabla <-
            '0<--foobar ? bar
              <--gibi ? '0
    ]
;
STE_debug (pexlif2fsm (bug 'out));

I get the following message when clicking fanin: STE_failure.log

If I only specify one field of blablabla, it works, but I cannot change several fields.

When asking for the value of '0<--foobar ? bar<--gibi ? '0 it tells me 0x1, so I can do the following:

let no_bug =
    bla_output blablabla.
    CELL "bug" [
        blablabla <- {'0x1::bla}
    ]
;
STE_debug (pexlif2fsm (no_bug 'out));

But this is not a long term solution.