lcytms 发表于 2016-11-18 17:02:20

FPGA初级课程第十六讲 ROM

FPGA初级课程
第十六讲 ROM

Hi,大家好!我是至芯科技的李老师。
今天讲课的题目是:ROM。
本节课我先简要地介绍一下ROM(只读存储器)的基本概念,然后实际演示一下应用ROM的IP核来进行ROM逻辑电路的建模与仿真,并通过仿真查看效果。

lcytms 发表于 2016-11-18 17:03:39

我们打开至芯科技编写的《11.炼狱传奇-ROM之战.pdf》文档。

在前面的课程,我们已经学习了锁相环,接下来我们一起来学习另一个IP核的使用—片内存储器ROM。

lcytms 发表于 2016-11-18 17:06:18

恰当地使用各种已有IP核资源,能使您的设计事半功倍,实现高效开发。
ROM的英文全称是Read-Only Memory,翻译为只读存储器,只能读出,不能写入,这也是它作为只读存储器的基本特性。

而且由于ROM是一种只读存储器,所以我们需要一个初始化文件来配置ROM中的存储数据,因此我们需要首先建立这样的配置文件,在Quartus中,配置文件可以选择MIF文件。

下面我们就来使用ROM的IP核设计一个ROM读出的逻辑,然后检查读出结果是否正确。

lcytms 发表于 2016-11-18 17:07:31

ROM的基本概念既然已经清楚,我们下面来进行系统设计。
命名ROM的逻辑为my_rom。后面还要建一个rom逻辑用于调用这个my_rom逻辑和rom_controller控制逻辑。
my_rom架构图如下所示。

lcytms 发表于 2016-11-18 17:09:15

在my_rom逻辑的前级添加rom_controller控制逻辑之后,完整的演示程序rom.v逻辑架构如下图所示。

lcytms 发表于 2016-11-18 17:10:21

新建工程文件夹rom。
打开Quartus II软件,打开新工程向导。
新建逻辑模块rom.v。
搭建逻辑框架。
module rom (clk, rst_n, q);

        input clk, rst_n;
       
        output q;
       

endmodule

lcytms 发表于 2016-11-18 17:11:57

在用IP核管理器生成ROM的逻辑之前,我们需要先建立数据初始化文件.mif文件。
打开新建(New)按钮,选中Memory Initialization File一项。点击OK。

lcytms 发表于 2016-11-18 17:13:10

使用256 words和size = 8的默认设置。点击OK。

lcytms 发表于 2016-11-18 17:14:50

这时检查Quartus界面,发现已经自动生成了.mif文件,将其另存为my_rom.mif。
此时,工程导航栏的Files一项下出现文件名my_rom.mif。

lcytms 发表于 2016-11-18 17:16:06

在右侧的填充数据区用鼠标选中全部256个数值,按鼠标右键出现菜单,选择Custom Fill Cells…一项,弹出Custom Fill Cells对话框。
页: [1] 2 3
查看完整版本: FPGA初级课程第十六讲 ROM