勇敢的芯伴你玩转Altera FPGA连载90:FPGA片内ROM FIFO RAM联合实例
0赞勇敢的芯伴你玩转Altera FPGA连载90:FPGA片内ROM FIFO RAM联合实例
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1i5LMUUD
功能概述
该工程实例内部系统功能框图如图9.89所示。我们通过IP核分别例化了ROM、FIFO和RAM,ROM有预存储的数据可供读取,将其放入FIFO中,随后再读出送到RAM供读取。通过Quartus II集成的在线逻辑分析仪SignalTap II,我们可以观察FPGA片内ROM、FIFO和RAM的读写时序,也可以只比较ROM预存储的数据和RAM最后读出的数据,确认整个读写缓存过程中,数据的一致性是否实现。
图9.89 存储器联合实例功能框图
本实例工程模块层次如图9.90所示。
图9.90 存储器联合实例模块层次
功能仿真
Quartus II中,点击菜单“Tools à Run Simulation Tool à RTL Simulation”进行仿真。接着,Modelsim中我们可以查看读FIFO的波形。
ROM、FIFO和RAM读写波形如图9.92所示。
图9.92 ROM、FIFO和RAM读写波形
ROM读数据波形如图9.93所示。
图9.93 ROM读数据波形
FIFO第一次读波形如图9.94所示。
图9.94 第一次FIFO读数据波形
FIFO第二次读波形如图9.95所示。
图9.95 第二次FIFO读数据波形
FIFO第三次读波形如图9.96所示。
图9.96 第三次FIFO读数据波形
FIFO第四次读波形如图9.97所示。
图9.97 第四次FIFO读数据波形
RAM读数据波形如图9.98所示。
图9.98 RAM读数据波形
在线调试
连接好下载线,给CY4开发板供电。
点击菜单“Tools à SignalTap II Logic Analyzer”,进入逻辑分析仪主页面。
在右侧的“JTAG China Configuration”窗口中,建立好USB Blaster的连接后,点击“SOF Manager”后面的Programmer按钮进行下载。
如图9.99所示,在“trigger”下面罗列了我们已经添加好的需要观察的信号,尤其是在almost_full信号的Trigger Conditions一列,我们设置了值上升沿,表示almost_full上升沿(FIFO快要满了)时我们将触发采集。另外,我们用鼠标点击选中Instance下面的唯一一个选项,然后单击Instance Manager后面的运行按钮,执行一次触发采集。
图9.99 波形采样触发设置
波形如图9.100所示。这里包括了ROM的读取操作、FIFO的写和读操作、RAM的写和读操作。
图9.100 ROM、FIFO和RAM读写波形