HDL没有办法如何给变量、讯号赋初值[求助〕HDL如何给变量/讯号赋初值?
HDL如何给变量、讯号赋初值?我发现HDL没有办法如何给变量、讯号赋初值。举例:
要使4只LED轮流点亮,设定一个讯号值为“0001”,然后每隔一段时间左移,如0010-0100-1000等等,可是一通电,没有地方可以使这个讯号为0001,因此始终不会点亮,事实程序是进入移位循环的,可是都是0000的移位。
不像CPU,可以赋值再进入子程序(甚至声明变量时同时赋值),而HDL根本是全体一同运行,没有不参与运行的地方。如果你设了<="0001",那么它就不停地使讯号为0001。
请问,是不是这样?刚才说的0001放在哪里好呢?
请指教。 你可以设置其他状态相,让它转入0001 对,另加一个判断状态,在满足这个状态时,就进入0001 我也遇到这样的问题 触发器的输出上电后是0 可以通过复位来实现,例如复位后的信号初值为0001,然后进入移位,这样就可以来实现。因为寄存器在不附值的时候,默认的初值就是0,所以你的led不会循环显示啦。 好像说硬件综合的时候上电是有随机性的,综合不支持赋初值。<br>
不过你可以在结构体声明语句里面赋值试试看啊 。
可以通过复位来实现,例如复位后的信号初值为0001,然后进入移位,这样就可以来实现。因为寄存器在不附值的时候,默认的初值就是0,所以你的led不会循环显示啦。
页:
[1]