我想要实现一个并行的case块,它将检查16位寄存器的值 . 在某些情况下,我需要它来检查所有16位 . 但是,在其他人中,我只需要检查几个 . casex 适合这种情况吗?如果你还没有推断, it is to be synthesized .
它是一台连接到指令寄存器的Moore机器 . 指令是16位宽 . 对于某些指令,例如 mov ,除了寄存器/存储器寻址不同之外,机器状态完全相同 . 该指令包含有关它所引用的寄存器或内存的信息,因此我不需要为每个可能的指令明确地设置一个案例 .
例如,如果我的操作码是1111,其余的12位是寻址,我可以简单地使用16'b1111xxxxxxxxxxxx的情况 .
我希望它是并行的,所以我不使用if-else语句 . 我不确定这是否会按照我打算的方式运作 . 任何建议,将不胜感激 .
1 回答
是的,你可以使用casex或casez .
IEEE 1800-2012中的示例:
用casez,你可以使用?因为不关心 Value 观:
以下是casex语句的示例 . 它演示了在模拟过程中如何动态控制donot-care条件的极端情况 . 在此示例中,如果r = 8'b01100110,则调用任务stat2 .