mem型变量位操作怎么写?

2019-03-25 10:18发布

定义一个mem变量,如:reg [15:0] mem [4:0],假如我想对第2个寄存器的第16位和第3个寄存器的第1位做异或操作,应该怎么写?我试过 mem[1][15] ^ mem[2][0],编译器报错。
请大家指教。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
eeleader
1楼-- · 2019-03-25 13:41
< / 还没看出问题来!
julytiger
2楼-- · 2019-03-25 16:01
mem[1]和mem[0]是16位的寄存器,把mem[1]的第16位和mem[0]的第1位进行异或运算, 应该怎么写?
00750
3楼-- · 2019-03-25 21:52
 精彩回答 2  元偷偷看……
julytiger
4楼-- · 2019-03-25 22:46
原帖由 00750 于 2011-6-21 08:35 发表
把mem[1]和mem[0]分别赋给两个十六位的寄存器,然后用这两个寄存器进行你需要的运算。


谢谢,现在就是这样做的。:-)

如果寄存器很多怎么办呢,现在定义的是5组寄存器构成的mem变量,如果变成64组的,如reg [15:0] mem [63:0],并且寄存器之间要两两异或,岂不是很麻烦了。
verilog可以支持二维数组就好了。
00750
5楼-- · 2019-03-26 03:50
不客气,目前verilog就是这样,没有办法,system verilog是不是支持就不知道了。

一周热门 更多>