目录
建立时间setup time和保持时间hold time,亚稳态
锁存器latch,触发器flip-flop和寄存器register之间的关系?
为什么需要这两个时间?在理想情况下,只要在时钟沿来临时,有效数据也来临(时钟沿之前或同时),则能够正确采集到数据。然而在实际中,上升沿打开开关需要时间,逻辑门的状态改变(电容充放电等)都需要时间,因此数据的采集是需要一定时间的,在这个时间内数据不能发生变化。
什么是亚稳态?为什么会产生亚稳态?亚稳态会给电路带来什么样的影响?怎么解决亚稳态问题?参考回答 https://www.jianshu.com/p/826c83e58b90
亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。
进入亚稳态后触发器的输出将不稳定,在0和1之间乱飘,这时需要经过一个恢复时间(决断时间Tmet),其输出才能稳定,但稳定后的值是随机的,与输入无关。而只要有异步设计,亚稳态就是无法避免的。
参考文章:第一篇:分析第二个触发器要满足的建立时间和保持时间的要求,第二篇:建立时间和保持时间的要求,第三篇:如果不满足怎么办?第四篇 ,第五篇 :时钟相关概念
锁存器:对脉冲电平敏感,容易产生毛刺。如何避免偶然生成锁存器?如果有的输入没有对应明确的输出,系统会综合出latch。比如没有写else,没有写default。还可以用fullcase语句等等。
触发器:对脉冲边沿敏感,可以消除毛刺
触发器和锁存器都能存储1位二进制数
寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 工程中的寄存器一般按计算机中字节的位数设计,所以一般有8位寄存器、16位寄存器等
锁存器是个啥?怎么产生的?有什么危害?怎么去避免在设计中产生锁存器?难道锁存器就一无是处吗?
-
D触发器的内部结构
首先看看触发器的结构。
触发器的输出延时:触发器的输出在clk时钟上升沿到来之后多长的时间内发生变化
当一个逻辑门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为竞争(Race)。竞争的结果将很可能导致冒险(Hazard)发生(例如产生毛刺),造成错误的后果,并影响系统的工作。
信号在FPGA器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。因此,信号在器件中传输的时候,所需要的时间是不能精确估计的,当多路信号同时发生跳变的瞬间,就产生了“竞争冒险”。这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。
-
什么是毛刺,怎么产生的,怎么消除它。
毛刺:不正确的尖峰信号。
怎么产生的:延迟导致的冒险
危害:当毛刺信号成为系统的启动信号,控制信号,握手信号,触发器的清零信号,预置信号,时钟信号,或锁存器的输入信号时就会产生逻辑错误
消除的方法:输出加D触发器(D触发器对输入信号的毛刺不敏感), 但是如果毛刺信号发生在时钟信号的跳变沿,D触发器的效果就没有那么明显了(加D触发器以后的输出q,仍含有毛刺)。另外,D触发器的使用还会给系统带来一定的延时。信号同步法:设计数字电路的时候采用同步电路可以大大减少毛刺。两种具体的信号同步方法。(1)信号延时同步法:原理就是在两级信号传递的过程中加一个延时环节,从而保证在下一个模块中读取到的数据是稳定后的数据,即不包含毛刺信号。这里所指的信号延时可以是数据信号的延时,也可以是时钟信号的延时。(2)状态机控制
-
传输门控和逻辑门控
传输门控:由控制信号选择输入信号通往下一级的路径
逻辑门控:控制信号与输入信号直接进行逻辑运算,运算结果送往下一级电路
-
MOS管,CMOS门电路,寄存器
参考课件 门电路 清华王红的数字电路技术基础
带着问题找答案,层层递推。动手!动手!动手!