HDL数组索引方向咨询:sel=in[2]时sel[0]取值疑问(Nand2Tetris课程)
Nand2Tetris HDL数组索引规则澄清
在Nand2Tetris课程使用的HDL中,总线信号(数组形式的多位信号)的索引遵循右到左、最低有效位(LSB)为索引0的规则:
- 二进制值的最右侧位对应索引0,往左依次递增索引编号(1、2、3……)
- 比如一个3位信号
abc的值为101时,abc[0] = 1,abc[1] = 0,abc[2] = 1
针对你提到的例子:
假设sel是一个2位信号(若你写的sel = in[2]是笔误,实际应为截取两位的sel = in[1..0]),当sel的二进制值为01时:
sel[0]对应的是最右侧的1sel[1]对应的是左侧的0
你之前“左到右、索引从0到i”的理解不符合Nand2Tetris HDL的规范,需要调整为上述右到左的索引逻辑,这和硬件电路中二进制位的标准编号方式一致。
内容的提问来源于stack exchange,提问作者Noam amarfarkash
相关产品推荐
相关产品推荐

