校招基础——竞争与冒险

1、毛刺

信号在器件内部通过连线和逻辑单元时有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。

2、竞争与冒险

竞争:门电路两个输入信号同时向相反的逻辑电平跳变的现象。

冒险:由于竞争而在输出端可能产生尖峰脉冲的现象。

3怎么判断竞争和冒险?

1)两个输入变量:

  • ①代数法,输出端的逻辑函数某一个变量同时以原变量和反变量的两种形式出现
  • ②卡诺图法,只要在卡诺图中存在两个相切但不相交的圈

2)多个输入变量

  • ①计算机辅助分析
  • 实验检查

4、怎么消除毛刺(竞争和冒险)?

1)输出接滤波电容;

2)组合逻辑输出加寄存器;

3)组合逻辑中加入冗余项;

4)引入选通信号;

5)采用格雷码;

5、时序逻辑电路是否存在竞争和冒险?

时序电路也存在竞争冒险,这是由D触发器端输入信号之间的竞争产生的。为了保证触发器可靠的翻转,输入信号和时钟信号在时间配合上应该满足一定的要求,然而当输入信号和时钟信号同时改变,而且途经不同的路径到达同一触发器时,便产生了竞争,有可能导致触发器误动作,这种现象称为存储电路的竞争冒险现象。时序电路存在以下两种竞争冒险:

1)异步复位中,clk上升沿与rst_n下降沿同时到达。rst_n信号的优先级高于clk信号,这样在rst_n到来时实现的是复位操作。

2)异步复位中,clk上升沿与rst_n上升沿同时到达。当rst_n上升沿达到时,D触发器在理论上完成复位了,但是此时如果clk恰好在rst_n信号释放周围,系统该听谁的?此时在运行电路中,也会出现短暂的竞争-冒险现象,系统不稳定。

6、什么是流水线冒险?

冒险有结构冒险、数据冒险和控制冒险三种。解决通用办法是在流水线中插入流水线气泡直至冒险消除。

  • 结构冒险:由于资源冲突而使硬件无法支持所有可能的指令组合同时执行。例如在单端口存储器执行读写操作过程,假设流水线要求同一时钟周期内要对存储器进行访问两次,这样的话就会产生存储器读写冲突。这种情况可以再增加一个时钟周期,即将流水线停止一个周期(产生一个流水线气泡)。另一种方法就是使用不同的存储器或者多端口存储器,消耗更多的资源。(采用使能信号推迟时钟,使得流出流水线气泡时间)
  • 数据冒险:指令执行需要之前指令的计算结果,而这个结果在流水线中还没有计算出来。解决办法就是使用数据/寄存器转移,进行纵向气泡延迟,从而解决问题。
  • 控制冒险:分支的流水线和其他指令改变程序计数器的值。由于分支所需的数值需要后续的计算流水才可以 产生 ,这是我们需要将流水停止几个周期知道从重新获取下一条数值进行判断,使风险降低到最小。
--------------------------------------------------------------------------------------
作者:咸鱼FPGA
本文版权归作者所有,如需转载请保留此段声明。
原文地址:https://www.cnblogs.com/xianyufpga/p/13644153.html