RAM主要用于存放程序以及程序执行过程中产生的中间数据、运算结果等。BMG Ipcore可以配置成RAM或者ROM,配置RAM或者ROM使用的资源都是FPGA内部的BRAM,只不过配置成ROM时候只使用BRAM的数据读取接口。
Write First(写优先模式):数据先写入到RAM中,然后在下一个时钟输出该数据。
Read First(读优先模式):数据先写入RAM中,同时输出RAM中同一地址上的数据。
No change(不变模式):读写分开操作,不能同时读写。
根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。
同步FIFO指的是读时钟和写时钟为同一个时钟,在时钟到来时同时发生读写操作,常用于同步时钟的数据缓存。
异步FIFO指的是读写时钟不一致,互相独立,常用于跨时钟域的数据信号的传递,处理亚稳态问题,将数据同步到所需时钟域中。
参数:
(1)、宽度:FIFO一次读写操作的数据位数。
(2)、深度:FIFO一次可以存储多少个宽度为N的数据。
(3)、DataCount:用于显示FIFO内部数据的结束输出信号。Write Data Count表示的是FIFO中写入的数据个数,Read Data Count表示的是可读取的数据个数。
时钟域问题:
FIFO_Empty信号属于FIFO读时钟域。
FIFO_Full信号属于FIFO写时钟域。