Specman e:配置序列中的条件约束

时间:2014-12-12 22:21:55

标签: specman e

在配置序列中,我想创建一个条件约束。我有两个时钟速率,只有一组时钟速率组合在设计中是合法的。

我无法想出正确的语法来实现这一点。使用case或if语句会给我一个语法错误。这就是我现在所拥有的。

case main_clk{
    1e6:{
        keep div_clk == select{
            80: 5e9;
            20: 5.6e9;
        };
    };
   .
   .
   .
};

我也尝试使用when,但它没有用。有关如何实现这一点的任何建议?

1 个答案:

答案 0 :(得分:3)

首先,我从您的数字中使用科学记数法看到您正在使用real字段。您可能应该切换到使用uint字段,因为从生成角度来看它们更灵活。

case语句是程序性的,不能用于生成。 if也是如此。要在另一个上有条件地生成字段,您需要使用=>(蕴涵)运算符:

  keep main_clk == 1e6 =>
    soft div_clk == select {
      80: 5e9;
      20: 5.6e9;
    };

main_clk的每个可能值都需要一个这样的含义。