关于ASIC中寄存器复位的问题
时间:10-02
整理:3721RD
点击:
小弟问一个比较弱的问题,在一个ASIC中,能否把一些寄存器复位为高电平,而另外一些寄存器复位为低电平?看很多代码都是如下这样子,而在设计中想让某些寄存器的初始值非0,怎么做会比较好呢?请论坛里的大牛指导一下,不胜感激!
always@(posedge clk or negedge rst)
begin
if(!rst)
q <= 0;
else
q <= d;
end
always@(posedge clk or negedge rst)
begin
if(!rst)
q <= 0;
else
q <= d;
end
想复位成0的就q<=0,想复位成1的直接q<=1就行了
多谢orlye指教!
应该相当于,你用了异步置位的dff
both are OK, synthesis tools can update it automaticly.
谢谢haimo的回复!复位不能复成1吗?只有置位才可以是1?我其实想知道,如果在reset的时候我把ff设成1,那么综合以后它是个什么电路呢?
其实关于复位和置位是广义的,就是说有一个信号,让触发器处于一个固定值。
主要看库里面的dff种类,比如tsmc的18库,就有异步清零,同步清零,异步置位,同步置位的触发器。
根据你的代码,会综合为不同的dff。
谢谢haimo的回复!是应该看看库里到底提供了那些逻辑单元。
复位值是0或者1都可以,但在ASIC设计中很重要的一点就是复位信号的处理,一定要保证recovery和removal time没有问题,有资料专门讨论了这个问题,可以查一下
好的,多谢halfwit的回复!
