FPGA复位

1:能不复位尽量不要复位,减少逻辑扇出数:比如打拍信号。

2:xilinx的FPGA推荐高复位,ATERAL的FPGA推荐低复位。

3:尽量使用异步复位:大多数厂商目标库内的触发器都只有异步复位端口,采用同步复位需消耗较多逻辑资源。

一:同步复位

1优点 :比较容易满足时序,都在时钟上升沿才触发。

2缺点:

2.1复位有延迟,有可能复位开始了由于要在时钟沿才有效所以并未及时响应。

2.2异步复位更加消耗逻辑资源。

二异步复位:

1优点:复位响应及时,因为不需要在时钟沿才响应

2缺点:

2.1:因为是异步信号,容易导致亚稳态 。

2.2:复位信号只要有点干扰,就会导致复位响应。

三:异步复位同步释放------推荐实战就用这个方式复位

cs 复制代码
module rst(
	input 	sys_clk		,
	input 	sys_rst_n	,
	input   data_in		,
	
	output reg  data_out
);

reg sys_rst_n_reg0;
reg sys_rst_n_reg1;

//对复位信号打两拍
always @(posedge sys_clk or negedge sys_rst_n)begin
	if(!sys_rst_n)begin
		sys_rst_n_reg0 <= 1'b0;
		sys_rst_n_reg1 <= 1'b0;
	end 
	else begin
		sys_rst_n_reg0 <= sys_rst_n;
		sys_rst_n_reg1 <= sys_rst_n_reg0;
	end 
end 

//使用同步后的复位信号对数据进行复位
always @(posedge sys_clk or negedge sys_rst_n_reg1)begin
	if(!sys_rst_n_reg1)
		data_out <= 1'b0;
	else 
		data_out <= data_in;
end 

endmodule 

优点:

只要异步复位信号出现一点毛刺复位都能使系统复位。有人会说这算啥优点和异步复位电路一样缺点太神经质了,万一人家根本不想复位呢。------

1.1系统不希望出现X态,异步复位电路由于未作同步释放,有可能出现一个及其窄的复位电平,导致有的慢时钟域处于未复位状态,有点快时钟域处于复位状态,有的临界时钟域刚好采集到沿上处于亚稳态(X)。而同步释放如图进行在本时钟域打拍延拓了复位周期,本时钟域都能采集到稳定复位信号。

四:复位信号的来源------由于实际运用不太可能用按键复位,一般就用pll的locked信号

优点1:因为是Xilinx平台,所以产生的reset信号是高复位。

优点2:时钟lock后并未马上释放复位,而是等时钟完全稳定后在释放复位信号。

五案例:遇到mig的ui_clk,需要我们lock制造的异步复位信号,来复位整个系统。

此时我们就需要使用异步复位同步释放+加上一段时间的时钟稳定计数器操作即可。

相关推荐
0基础学习者1 天前
跨时钟域处理
fpga开发·verilog·数字ic
FPGA_小田老师1 天前
Xilinx FIFO Generate IP核(8):FIFO设计常见问题与解决方案
fpga开发·fifo generate·fifo常见问题·fifo异常定位·fifo丢数·fifo读数重复
范纹杉想快点毕业1 天前
100道关于STM32的问题解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。
驱动开发·单片机·嵌入式硬件·fpga开发·硬件工程
知识充实人生1 天前
时序收敛方法二:Fanout优化
fpga开发·fanout·高扇出·时序收敛
Js_cold1 天前
(* MARK_DEBUG=“true“ *)
开发语言·fpga开发·debug·verilog·vivado
Js_cold1 天前
(* clock_buffer_type=“NONE“ *)
开发语言·fpga开发·verilog·vivado·buffer·clock
深圳光特通信豆子2 天前
TTL光模块:短距离传输场景的优选方案
fpga开发
Js_cold2 天前
Verilog运算符
开发语言·fpga开发·verilog
Js_cold3 天前
Verilog函数function
开发语言·fpga开发·verilog
Js_cold3 天前
Verilog任务task
开发语言·fpga开发·verilog