以下内容摘自正点原子的:《逻辑设计开发指南》
复位电路是数字逻辑设计中非常常用的电路,不管是 FPGA 还是 ASIC 设计,都会涉及到复位,一般 FPGA或者 ASIC 的复位需要我们自己设计复位方案。复位指的是将寄存器恢复到默认值。一般复位功能包括同步复位和异步复位。复位一般由硬件开关触发引起,也可以由复位逻辑控制引起。
相信大家在学习 FPGA 或者 ASIC 的时候都有如下的疑问:
1、 数字逻辑为什么需要复位? 2、 FPGA 板上面没有复位按键怎么办? 3、 复位只有通过按键复位一个控制方式吗? 4、 同步复位好还是异步复位好呢? 5、 复位是高电平有效还是低电平有效好呢?
依次来解决一下上面的疑问
1、 数字逻辑为什么需要复位?
数字电路中寄存器和 RAM 在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态 0,RAM 的数据可以通过复位来触发 RAM 初始化到全 0。那可能很多人会问为什么是全 0呢?其实一般逻辑起始都是从 0 开始变化的,这个是根据设计的需要设定的一个值,如果设计需要寄存器上电复位为 1,也是可以的。还有一种情况是逻辑进入了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。因此复位功能是很重要的一个功能。
2、 FPGA 板上面没有复位按键怎么办?
没有复位按键也没有关系,因为 FPGA 内部也会有上电复位的功能,不管是 Intel(已收购 ALTERA)还是 Xilinx 的 FPGA,都是有上电复位电路,也就是 POR(Power On Reset)电路。FPGA 芯片内部有一个上电检测模块,一旦检测到电源电压超过检测门限后,就产生一个上电复位脉冲(Power On Reset)送给所有的寄存器,这个脉冲会自动作用在各个寄存器的复位端,和功能复位管脚共同控制寄存器的复位。
还有一种情况,就是 FPGA 重新配置之后,也会触发上电复位。因此 FPGA 板上面即使没有复位按键也是没有关系的。
3、 复位只有通过按键复位一个控制方式吗?
复位按键是一种控制方式,还有一种上电自动复位控制,如下图所示。
这种是一种简单的 RC 复位电路,电源接通时候,通过 R1 对 C2 进行充电,经过一段延迟后加到电路当中产生复位信号,这个复位信号的上升速度低于电源的上电速度,当复位引脚检测到高电平时候,系统复位结束,进入正常工作状态。
4、 同步复位好还是异步复位好呢?
- 同步复位
同步复位指的是当时钟上升沿检测到复位信号,执行复位操作,有效的时钟沿是前提。
Verilog 中是这样写的:
always @ (posedge clk) begin
if (rst_n == 1'b0)
y
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?