请教一个VHDL语言的问题
我学的是veirlog。刚看了一段vhdl的代码,看得我很晕。这段代码:
IF (fifowraddr>=fifowraddr'high) THEN
fifowraddr<=0;
ELSE
fifowraddr<=fifowraddr+1;
END IF;
其中的变量是这样定义的SIGNAL fifowraddr : NATURAL RANGE 0 TO (FIFOLENTH-1) ;
这个fifowraddr'high是不是就是11111111··啊。如果是这样的话,上面的代码不就多余了么,直接+1就可以了么。 我看可以直接+1 FIFOLENTH-1这个是1111111吗? 220和255 都是8位,但220不是“11111111”
FIFOLENTH-1不"1111"应该是常量 回复【3楼】40130064博德之门IV
-----------------------------------------------------------------------
参量FIFOLENTH=1024。
VHDL中'high是什么意思啊,是该变量的最大值么。 回复【4楼】francol
-----------------------------------------------------------------------
从通常看,FIFOLENTH是FIFO深度,如果是2的幂,那我前面说的直接加1可以的,否则按别人意见办 预定义属性函数HIGH
'high返回类型或子类型的上限值,用于数组时N表示数组的行序号
fifowraddr'high 因为你这个地址不是数组,所以就是fifowraddr的最大值1023。
FIFOLENTH是常量的话修改方便 大概就是这样写的原因吧
页:
[1]