rst复位引脚的作用是什么_腰椎间盘突出复位后注意事项

2022-11-10 13:46:43 浏览数 (3)

大家好,又见面了,我是你们的朋友全栈君。

Xilinx FIFO Generator 需要注意RST复位

记录在使用Xilinx的FIFO Generate的时候遇到的问题(modelsim仿真和ILA都能遇到);

——full,empty 等信号一直keep high;

直接原因

以下内容说的都是Asynchronous Reset

在手册pg057-fifo-generator.pdf,Page127中有介绍:

拙劣的翻译:

进行复位操作的时候,读写时钟必须是有效的。不管什么原因,在复位操作的时刻,读写时钟如果丢失,必须在读写时钟有效的时刻再次进行复位操作。违反此操作将导致不可预期的行为发生。甚至,信号busy会被卡住,并可能需要重新配置FPGA。

其他建议

文中后续也有对异步复位的建议:

拙劣的翻译:

如果异步复位的信号宽度是一个慢时钟宽度(应该是读写时钟中较慢的那一个),而且是在非常靠近满时钟上升沿的时候断言,那么复位检测就可能不会遇到这种导致无法预期的行为发生情况。为了避免这种情况,尽管在本手册中在一些时候说断言慢时钟的一个周期,但通常建议异步复位信号断言至少三个慢时钟周期。

文中有个定义C_SYNCHRONIZER_STAGE不理解什么意思,有知道的可以评论交流。

时序

在手册中也给出了建议的复位时序:

需要注意:FIFO的所有输出信号在图中的No Access Zone期间必须视为无效;

可以观察到时序:

  1. RST信号有8个慢时钟周期的高电平;
  2. 在RST上升沿时期,7个wr_clk周期后WR_RST_BUSY信号拉高,FULL信号拉高,此时的wr_en信号应该拉低;
  3. 在RST上升沿时期,7个rd_clk周期后RD_RST_BUSY信号拉高,EMPTY信号拉高,此时的rd_en信号应该拉低,而且此时的数据输出端口均为无效;
  4. 复位周期 60个满时钟周期后,FIFO可以正常读写;

手册中也给出了一个不安全的时序图:

这个图中最明显的就是Async Reset的复位周期为3个慢时钟周期。

这样的时序情况下可能会引起一些异常(但是这个时序后面FIFO还是可以进行读写工作的)。

仿真

在modelsim仿真的时序中,如果FIFO的复位出现在了wr_clk或者rd_clk之前,那FIFO是不能进行读写的(注意FULL信号和EMPTY信号是会强行拉高的):

而后,再次进行FIFO的复位,FULL和EMPTY信号恢复正常,FIFO可以正常读写了:

总结

用FIFO IP的时候要注意 RST信号,建议满足:

1. 有效复位必须在wr_clk和rd_clk有效之后; 2. 有效复位至少要维持慢时钟的8个周期; 3. 复位操作过后,建议要等待至少60个慢时钟周期,再去使用FIFO进行读写操作;

按照这三个条件,对FIFO的RST进行配置,目前还没遇到问题,如有问题,评论沟通。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

0 人点赞