Altera的 AE说initial和异步置位都会综合为power-up的reset。
倍感惊奇,一直以为不可以综合,于是自己做了个实验,
1 使用 synplify pro 9.6, 还是ignored,warning如下,
@W: Initial statement will only initialize memories through the usage of $readmemh and $readmemb. Everything else is ignored。
2 用Altera自带综合器。未报相关warning。能否综合power-up reset无从得知。
在通常的状况下,所有的门在上电的时候输出为低。但是这并不是不能改变的。你可以把上电设置为高,这样综合工具可能会做两种事情,把输出反向,或者使用preset 控制(如果存在的话)把初始值放进门里。
当时上电为高的做法,并不是非常必要,因为你其实是可以使用复位信号来获得你想要的初始状态的。
如果你觉得这是必须的,那么有几种方法你可以做:
--首先是在 QuartusII里面你可以针对某个或者某些 门设置 power-up level为高或低。
--在代码中使用 altera_attribute
--直接写代码设置初始值:
例如,
reg q = 1'b1;
always @ (posedge clk or posedge aclr)
begin
if (aclr)
q <= 1'b0;
else
q <= d;
end