前言
FIFO(First Input First Output),即先进先出队列。在超市购物之后会提着我们满满的购物车来到收银台排在结账队伍的最后,眼睁睁地看着前面的客户一个个离开。这就是一种先进先出机制,先排队的客户先行结账离开。
在计算机中,先入先出队列是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令(指令就是计算机在响应用户操作的程序代码,对用户而言是透明的)。如图1所示,当CPU在某一时段来不及响应所有的指令时,指令就会被安排在FIFO队列中,比如0号指令先进入队列,接着是1号指令、2号指令……当CPU完成当前指令以后就会从队列中取出0号指令先行执行,此时1号指令就会接替0号指令的位置,同样,2号指令、3号指令……都会向前挪一个位置。
正文
一、 IP核FIFO调用及验证
1.项目需求
IP核FIFO是一个先进先出的存储器,在进行数据写入和读取时不需要地址控制信号,在写入时通过写请求信号控制写入,写请求信号高电平有效,在存储器fifo没有写满数据数据时,才能够将数据写入,如果fifo中存储的数据已满,写请求信号有效,其数据也不能写入到fifo中,只能存储器fifo有存储空间时才能够将数据写入,也就是说往FIFO里写入数据时,不能够单独判断写请求信号是否有效,同时也需要判断满信号是否有效才能够确认是否将数据写入到fifo中;在读取时通过读请求信号进行控制,如果fifo里有数据,那么在读请求信号有效下就能够将数据读取出来,也就是说在读取fifo中数据时,不仅需要判断读请求信号是否有效,同时也要判断存储器fifo是否有数据,可以用空信号表示fifo是否有存储数据。
2.技术介绍
fifo有同步和异步之分,同步fifo表示写入的控制时钟和读取的控制时钟为相同的时钟信号;异步fifo表示写入的控制时钟和读取的控制时钟为不同的时钟信号;同步fifo就可以将其作为一个在相同时钟域下缓存器;异步fifo可以用来进行跨时钟域数据信号处理。本章节只进行同步FIFO验证