微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于ASIC中寄存器复位的问题

关于ASIC中寄存器复位的问题

时间:10-02 整理:3721RD 点击:
小弟问一个比较弱的问题,在一个ASIC中,能否把一些寄存器复位为高电平,而另外一些寄存器复位为低电平?看很多代码都是如下这样子,而在设计中想让某些寄存器的初始值非0,怎么做会比较好呢?请论坛里的大牛指导一下,不胜感激!
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的回复!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top