使用IP核创建单时钟FIFO

fifo,先进先出。在fpga中使用的fifo一般是指对数据的存储具有先进先出的缓冲器,fifo与普通的存储器的不同在于它没有读写地址线。举个例子,当fpga从外部传感器读取到一连串数据时,首先被写入fifo中,然后fpga再以uart串口通信依次将数据发送出去。因为传感器采集数据的速度很快,比如当传感器使用spi通信协议,以2m的spi数据速率读取时,串口使用9600的波特率肯定跟不上,因此需要先将从传感器处采集的数据使用fifo缓存起来,然后再使用串口缓慢发送出去。
01 单时钟fifo
单时钟fifo具有一个独立的时钟端口,所有输入信号的读取都是在该时钟端口信号的上升沿进行的,所有输出信号的变化也是在该时钟信号的上升沿的控制下进行的,单时钟fifo的所有输入输出信号基本都是和时钟信号同步。
data为写入的数据,此处为8位。然后wrreq为请求写操作,rdreq为请求读操作,clock为时钟信号。q为输出端,8位数据的输出端。full为满标志,当fifo缓冲器存储数据溢满时,full端将输出高电平。almost_full为接近满标志信号,当存储的数据即将要满时,almost_full端将输出高电平以阻止写操作继续向fifo中写数据造成数据溢出。empty则为空标志位,当fifo中数据全部读取完后,empty端便会输出高电平用来标记,almost_empty便是在fifo即将要空时便会发出高电平,以阻止fifo的读操作继续从fifo中读取数据。usedw为fifo中的字数,sclr为异步清零端口。
02 ip核使用
首先创建一个fifo的工程保持在prj下,并在prj下新建一个ip的文件夹。点击tools -> megawizard plug-in manager。
选择创建一个新的,然后如下图,在左边搜索框输入fifo,然后选择第一项,选择后在右边的路径中输入地址ip并以fifo.v保持。
接下来如下图,首先设置数据的位宽及深度,此处设置数据位宽为8位,数据深度为256words(及多少个数据)。
然后接下来设置需要的端口,根据01中的结构图,这里需要选择full满、empty空、以及接近满almost_full、接近空almost_empty和异步清零端sclr。在接近满与接近空处需要设置阈值,即到达多少时接近满端口开始输出标志信号,这里设置数据写操作达到254words时接近满标志开始标记,数据读操作在usedw为2时接近空端口开始标记。
下图便是读操作请求确认信号的两种模式,一个是普通模式一个是前显模式。
选择器件优化方式是面积优先还是速度优先,更换可以看到资源占用率是不一样的,选择速度优先必然使用资源会上升。
然后便一直next后finish创建完成。
这时转回界面便可看到生成ip的fifo.v文件,然后便开始书写激励仿真文件。
首先还是例化需要仿真的文件,然后仿真时钟并在仿真文件中与例化程序进行连线。
接下来便是定义常量i,写一个for循环,i自加写请求wrreq置1将i的值写入数据data中,usedw中数据深度开始依次增多,等256个words写完之后,写请求关闭,然后开始读操作,同样的i从零自加到255,然后将读请求置1开启,系统便开始从输出端q中依次输出data中的数据,同时usedw中的数据深度也开始一次减少。
接下来看仿真波形图:
此处是综合仿真图,前半部分是写操作的波形图,后半部分便是读操作的波形图。
上图这部分为写操作,图中可以看到i每个周期自加1,i的值便赋给数据data,然后usedw便是统计此时data中的数据多少即深度,在usedw为2时可以看到almost_empty接近空出现一个下降沿,在data中开始写入数据时,写请求wrreq产生高电平。
此处可以看出,在深度usedw自加至254时,接近满端almost_full便会产生上升沿用来标记,计满后full端产生上升沿,写操作结束。
上图为读操作,这里随着i的自加输出端q开始依次输出data中的数据,然后usedw随着data中的数据被读取便开始自减。
后面可以看出,当深度usedw为2时,接近空端almost_empty产生上升沿,清空后empty也产生上升沿,读操作结束。

控制器的功能
华为斥资1900万元竞得新土地,可能会用于建设整车工厂
VR在挤泡沫后市场回暖?自动驾驶热度高涨,有3家公司获投
首辆5G公交开通 几秒就可下载一部蓝光电影
采集针内腔密封性测试仪
使用IP核创建单时钟FIFO
意法半导体:娱乐功能新创意、绿色方案更节能
哥伦比亚农场利用无人机解决可卡因问题
简易数字电压表电路图大全(六款模拟电路设计原理图详解)
三星Galaxy Note20系列将搭载1.08亿像素感光元件
格力谋求在车用空调市场发力,海立在新能源汽车空调市场占有优势
智能家居创业之路如何走?
W波段进行完整的多端口和平衡测量的方案
钧崴电子IPO成功过会,拟登陆创业板
主板的常见故障有哪些
中国和英国在内的许多国家都将探索智慧城市解决方案提上议程
浅谈步进电机选型及计算
困扰机器人产业发展大的三大隐忧
滤波器不知道怎么选?
高性能力反馈方向盘MXsteerWheel,线控转向系统开发的新帮手