微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于一个触发器综合的问题

关于一个触发器综合的问题

时间:10-02 整理:3721RD 点击:
module register
        #(parameter     Width=8)
         (output reg [Width-1:0] out,
          input      [Width-1:0] in,
          input       clear,load,clock);
        always@(posedge[/email] clock)
          if(~clear)
             out<=0;
            else if(~load)
               out<=in;
endmodule

这里如果clear和load一直为高,综合的输出应该是什么
是0还是无输出的高阻太
如果是高阻太,是不是就是无输出啊
如果这个OUT接得是加法器,加法器也就不能工作吧

寄存器没有reset的话可能为1,也可能为0,状态不定.
所以需要用到上电复位,实现成真正电路,clear应该接到power reset上,
这样上电就可以把寄存器reset.不过你的设计中是同步reset,需要时钟起来后clear为低
才能起到清零的作用

回复
我原来在写代码的时候碰到过由于没有加上复位而导致的输出为X的情况,我认为你这个代码中应该用异步复位信号。

说的对 是需要 有复位信号。

复位和程序中的清零是一个意思吧
在清零前输出为X,
如果清零前直接置位?
还有,上面的程序用RTL查看的时候没有在最后一级综合出DFF而不是三态门,所有有些朋友认为在clear和load前输出也为0
不知道大家怎么看

再顶一下

对于DFF,如果没有初始化则会出于X状态,直到条件触发D值被锁入。X是指实际上有值,但是你不知道到底是什么值。你所谓的RTL查看是什么意思?

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

网站地图

Top