发 帖  
原厂入驻New
[经验]

温故而知新,数字电路常见问题汇总

2020-11-20 09:21:54  1223 数字电路 可编程逻辑 电路设计
分享
7
熟悉一下数字电路一些问题,从细节入手,温故而知新。

什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么?
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。

电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。由于异步电路具有下列优点 -- 无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性 -- 因此近年来对异步电路研究增加快速,论文发表数以倍增,而 Intel Pentium 4 处理器设计,也开始采用异步电路设计。v 异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO 或 RAM 的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟 CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用 oc 门来实现(漏极或者集电极开路),由于不用 oc 门可能使灌电流过大,而烧坏逻辑门,同时在输出端口应加一个上拉电阻。(线或则是下拉电阻)

什么是 Setup 和 Holdup 时间,setup 和 holdup 时间区别?
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个 T 就是建立时间 -Setup time. 如不满足 setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果 hold time 不够,数据同样不能被打入触发器。

建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。如果不满足建立和保持时间的话,那么 DFF 将不能正确地采样到数据,将会出现 stability 的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

什么是竞争与冒险现象?怎样判断?如何消除?
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。

解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。

你知道那些常用逻辑电平?TTL 与 COMS 电平可以直接互连吗?
常用逻辑电平:12V,5V,3.3V;TTL 和 CMOS 不可以直接互连,由于 TTL 是在 0.3-3.6V 之间,而 CMOS 则是有在 12V 的有在 5V 的。CMOS 输出接到 TTL 是可以直接互连。TTL 接到 CMOS 需要在输出端口加一上拉电阻接到 5V 或者 12V。cmos 的高低电平分别为:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD. TTL 的为:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v. 用 cmos 可直接驱动 ttl;加上拉后,ttl 可驱动 cmos.

如何解决亚稳态?
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

解决方法:
1、降低系统时钟
2、用反应更快的 FF
3、引入同步机制,防止亚稳态传播
4、改善时钟质量,用边沿变化快速的时钟信号,关键是器件使用比较好的工艺和时钟周期的裕量要大。

IC 设计中同步复位与异步复位的区别
同步复位在时钟沿采复位信号,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。

MOORE 与 MEELEY 状态机的特征
Moore 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化 . Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关。

多时域设计中,如何处理信号跨时域
不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用 FIFO,双口 RAM,握手信号等。

跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域 1 中的一个信号,要送到时钟域 2,那么在这个信号送到时钟域 2 之前,要先经过时钟域 2 的同步器同步后,才能进入时钟域 2。这个同步器就是两级 d 触发器,其时钟为时钟域 2 的时钟。这样做是怕时钟域 1 中的这个信号,可能不满足时钟域 2 中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步 FIFO 的设计中,比较读写地址的大小时,就是用这种方法。如果两个时钟域之间传送大量的数据,可以用异步 FIFO 来解决问题。

给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围
Delay < period - setup – hold
时钟周期为 T,触发器 D1 的寄存器到输出时间最大为 T1max,最小为 T1min。组合逻辑电路最大延迟为 T2max,最小为 T2min。问,触发器 D2 的建立时间 T3 和保持时间应满足什么条件?
T3setup>T+T2max,T3hold>T1min+T2min
给出某个一般时序电路的图,有 Tsetup,Tdelay,Tck->q,还有 clock 的 delay,写出决定最大时钟的因素,同时给出表达式
T+Tclkdealy>Tsetup+Tco+Tdelay;
Thold>Tclkdelay+Tco+Tdelay;

说说静态、动态时序模拟的优缺点
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;

一个四级的 Mux,其中第二级信号为关键信号 如何改善 timing
关键:将第二级信号放到最后输出一级输出,同时注意修改片选信号,保证其优先级未被修改。

为什么一个标准的倒相器中 P 管的宽长比要比 N 管的宽长比大?
和载流子有关,P 管是空穴导电,N 管电子导电,电子的迁移率大于空穴,同样的电场下,N 管的电流大于 P 管,因此要增大 P 管的宽长比,使之对称,这样才能使得两者上升时间下降时间相等、高低电平的噪声容限一样、充电放电的时间相等

latch 与 register 的区别,为什么现在多用 register. 行为级描述中 latch 如何产生的?
latch 是电平触发,register 是边沿触发,register 在同一时钟边沿触发下动作,符合同步电路的设计思想,而 latch 则属于异步电路设计,往往会导致时序分析困难,不适当的应用 latch 则会大量浪费芯片资源。

BLOCKING NONBLOCKING 赋值的区别
非阻塞赋值:块内的赋值语句同时赋值,一般用在时序电路描述中。

王栋春 2020-11-20 22:31:37
有些不够全面
回复

举报

张静静 2020-11-24 09:52:08
感谢楼主的分享
回复

举报

熊衣草 2020-11-25 10:11:48
东西很好,非常感谢楼主的分享!!!!!
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表