在配置序列中,我想创建一个条件约束。我有两个时钟速率,只有一组时钟速率组合在设计中是合法的。
我无法想出正确的语法来实现这一点。使用case或if语句会给我一个语法错误。这就是我现在所拥有的。
case main_clk{
1e6:{
keep div_clk == select{
80: 5e9;
20: 5.6e9;
};
};
.
.
.
};
我也尝试使用when
,但它没有用。有关如何实现这一点的任何建议?
答案 0 :(得分:3)
首先,我从您的数字中使用科学记数法看到您正在使用real
字段。您可能应该切换到使用uint
字段,因为从生成角度来看它们更灵活。
case
语句是程序性的,不能用于生成。 if
也是如此。要在另一个上有条件地生成字段,您需要使用=>
(蕴涵)运算符:
keep main_clk == 1e6 =>
soft div_clk == select {
80: 5e9;
20: 5.6e9;
};
main_clk
的每个可能值都需要一个这样的含义。