假设我有一个名为“myReg”的8位输出reg和一个名为“checkReg”的8位输入。我可以使用十六进制值检查并在case语句中分配它们的值吗?
例如(假设代码总是在块中)
case (checkReg)
2'hA0:myReg <= 2'h10;
2'hB0:myReg <= 2'hC0;
//Other cases
endcase
我希望上面的代码执行以下操作:如果checkReg = 10100000,请将myReg设置为00010000.如果checkReg = 10110000,请将myReg设置为11000000。
我不确定是否可以检查并将十六进制值分配给矢量并将其自动转换为二进制。
感谢。
答案 0 :(得分:3)
对于直接基本转换(bin,oct,hex,dec),您不需要在verilog中进行任何特殊转换。像BCD转换这样的事情确实需要额外的步骤。
单引号前的数字是位大小,而不是数字计数。 <{1}}应为2'hA0
,否则将屏蔽高位值。
8'hA0