定义如下
wire[8:0] dout;
reg[287:0] u;
reg[4:0] a;
在某个状态里a<=u[dout];
求问这个a<=u[dout];是什么意思?
***a【i】《=u【dout】
[ 本帖最后由 zcspring 于 2011-12-1 19:17 编辑 ]
U相当于一个数组,a<=u[dout]就是把dout地址处的U值用非阻塞赋值的方式给a
这个U的定义应该是 reg [4:0] u [287:0] 才对。。。。
回复 板凳 唐俊 的帖子
要是那样定义了,就明了了
这样说吧,这是编码的一个程序,u是码字,dout是其中一个矩阵的输出端
case(dout)
。。。:a<=u;
这样的编码可以么,你那个我是不理解了,等高手求解
回复 楼主 zcspring 的帖子
你这个是用来综合的代码吗?如果就仿真在语法上没问题,综合应该不行。这个写法和C的数组是一个样子的。不过好像你等号的左右位宽不一致。
回复 楼主 zcspring 的帖子
楼主的写法是有问题的,不能被综合,只能仿真,下面的用case写的应该可以。你的这种写法在systemverilog里面有个叫paked和unpaked的概念你可以去看看,就是位宽放变量前还是后。在内存的存法不同,其他应该一样。