假设我有一个场景,我只需要比较寄存器的几个位,而我不关心其他位。eq,我需要检查 3 位寄存器 (A[2:0]) 的第一位和最后一位,我不关心中间位,比如比较向量是 3'b1X0(参数)。
最简单的方法是选择我关心的所有位,然后我生成了一个控制信号:
if ((A[2]==1) & ((A[0]==0))这里if语句中的条件是我的控制信号。
另一种方法是使用一个casex声明:casex(A) begin 3'b1?0: ... , ... endcase。
是否有类似 ifx-elsex 语句或可用于在不使用第一种和第二种方法的情况下进行此类操作的东西?
谢谢!
我试图找到一种方法来添加寄存器的各个位.例如,if regA = 111000 then regB = 3(位的总和regA).1)在Verilog或SystemVerilog中是否有可合成的函数/运算符可以直接用于执行此操作?
如果没有,那么问题可能有点有趣,特别是因为操作必须在一个时钟周期内进行(纯组合逻辑)并且寄存器宽度是可参数化的.
2)如果没有内置的Verilog或SystemVerilog操作符,那么可以做什么?
谢谢,Ujjwal