关于异步fifo的安全问题
关于异步fifo的安全问题:
1. 虽然异步fifo可以提供多个握手信号,但真正影响安全性能的就两个:
2. 一个是读时钟域的空信号rdrempty
3. 另一个是写时钟域的满信号wrfull
4. 这是由于,如果异步fifo的双口ram真的空了,而跨时钟域延迟造成的rdempty仍然非空,则读fifo的逻辑,就有可能根据rdempty信号(非空指示),发出将导致错误的读请求rdreq
5. 另外,如果异步fifo的双口ram真的满了,而跨时钟域延迟造成的wrfull仍然非满,则写fifo的逻辑,就有可能根据wrfull信号(非满指示),发出将导致错误的写请求信号wrreq
6. 因此,异步fifo必须谨慎的分析其节拍关系,确定读时钟域的空信号,一定要在真空之前出现;写时钟域的满信号,一定还要在真满之前出现。
7. 这种almost empty和almost full的设置,无论altera或xilinx均采用。
8. 也就是说,如果双口RAM真空之前报空,则延迟造成的rdreq,异步fifo仍然可以正确响应
9. 双开RAM真满之前报满,则延迟造成的wrreq,异步fifo仍然可以正确响应
10. 异步fifo的报空过程,可以用火车票比喻。车站在还有几张票的情况下,显示票已经售空。这并不会发生混乱,但如果有紧急情况或领导需要,还有这几张票缓冲。 关于异步fifo的安全问题:
1. 虽然异步fifo可以提供多个握手信号,但真正影响安全性能的就两个:
2. 一个是读时钟域的空信号rdrempty
3. 另一个是写时钟域的满信号wrfull 关于异步fifo的安全问题 不错,学习了,谢谢分享! 感谢分享:Q:lol:lol:lol:lol 很有用,谢谢分享。 关于异步fifo的安全问题
页:
[1]