FPGA本身是SRAM架构,断电后程序就会消失。如何利用FPGA实现 ROM?利用FPGA内部的RAM资源实现ROM,但是不是真正意义上的ROM,而是每次上电都会把初始化的值先写入RAM.使用FPGA内部的ROM,进行数据读取
1、创建ROM初始化文件
ROM,提前准备好数据,FPGA实际运行时,直接读取这些ROM中预存存储好的数据就行。Xilinx FPGA 的片内ROM支持初始化数据配置。创建一个后缀".coe"文件。ROM初始化文件内容格式很简单,第一行为定义数据格式。16代表ROM的数据格式为16进制,从第3行开始到第四行,是32*8bit大小ROM的初始化数据,每行数字后面用逗号,最后一行数字结束用分号。
2、创建工程
新建rom_test工程,在工程中添加ROM IP,核,实现ROM读取功能。
1)点击 IP Catalog ,在右侧弹出框搜索ROM,找到Block Memory Generator ,双击打开。
2)将Component Namea改为 rom_ip,在Basic 栏目下,将Memory Type改为Single Prot ROM.
3)切换到 Port A Options 栏目下,将ROM位宽 Port A Width 改为8,将ROM深度改为Port A Deth改为32,使能管脚 Enable Port Type 改为Always,并取消Primitives Output Register
4)切换到Other Options栏目下,勾选Load Init File,点击Browse,选中之前制作好的.coe文件。
5)点击OK,点击Generate 生成ip 核。
3)程序编写
ROM的程序设计简单,每个时钟改变ROM的地址,ROM就会输出当前地址的内部存储数据,例化ila,观察地址和数据的变化。
4)引脚绑定
5)仿真
6上板验证