【问题标题】:Specman on-the-fly generation for multiple constrained itemsSpecman 动态生成多个受限项目
【发布时间】:2017-01-24 07:24:31
【问题描述】:

我有多个字段需要以这种方式进行约束:

struct my_struct {
    a : uint;
    b : uint;
    c : uint;
    d : uint;
    keep 3*a + 4*b + 5*c + 6*d == 206 and a + b + c + d == 50;

    my_method() @clk_event is {
        while (TRUE) {
            if (ctr == 0) {
                gen a;
                gen b;
                gen c;
                gen d;
            };
            if (ctr == 50) {
                ctr = 0;
            } else {
                ctr += 1;
            };
            wait cycle;
        };
    };
};

我基本上想定期为abcd 生成一组新值。上面的代码不起作用,因为它们的值在我的模拟中没有改变。知道怎么做吗?

【问题讨论】:

    标签: specman e


    【解决方案1】:

    当您生成一个字段时,其他字段不能更改其值,它们是约束的输入。鉴于您的限制,如果其他三个不能更改,则一个字段只能有一个正确的值。

    您可能需要修改设计并将具有约束的字段放在结构下,并具有此结构类型的字段。因此,您将只有一个,而不是四个独立的 gen,它会正确地完成工作。

    【讨论】:

    • 这绝对解决了问题。我现在可以看到每次生成结构项时都会获得一组新值。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多