fpga rom 初始化文件的一些心得

目录

可能遇到的问题

问题

解决方案

rom的初始化

用途

文件类型

如何生成初始化文件

示例

Altera

Xilinx


可能遇到的问题

问题

altera FPGA的rom找不到初始化文件,编译过程会提示类似的问题

Error(127001): Can't find Memory Initialization File or Hexadecimal (Intel-Format) File F:/test/stock.mif for ROM instance **ALTSYNCRAMError(127001): Can't find Memory Initialization File or Hexadecimal (Intel-Format) File F:/test/stock.mi for ROM instance *|altera_syncram_component|auto_generated|altsyncram1|ALTSYNCRAM

解决方案

fpga rom 初始化文件的一些心得_第1张图片

在quartus Files打开需要初始化rom的IP,修改文件路径,指向初始化文件。

这里建议使用相对路径,而不是使用绝对路径:

  • 使用绝对路径,如果FPGA工程拷贝到其他PC,且文件路径发生了变化,大概率会找不到初始化文件
  • 使用相对路径,初始化文件放在FPGA工程根目录,在初始化rom IP修改文件路径:可仅填写文件名stock.mif

fpga rom 初始化文件的一些心得_第2张图片

rom的初始化

用途

ROM可以断电存储数据,如果需要FPGA启动后马上可以应用一些数据,可以通过初始化ROM的方式实现,新建ROM IP,指定初始化文件。

文件类型

*.hex,*.mif,*.coe。其中*.hex和*.mif格式是用于altera的rom,*.hex和*.coe格式用于xilinx的rom

如何生成初始化文件

quartus参考fpga-mif文件生成_fpga mif文件-CSDN博客

高云 参考国产FPGA的ROM文件导入 - 知乎

示例

Altera

DEPTH=256; 存储器的深度,就是存多少个数据

WIDTH=8 ;  存储器的数据位宽,就是每个数据多少位

ADDRESS_RADIX=DEC ;  设置地址基值的进制表示,可以设为BIN(二进制),OCT(八进制),DEC(十进制),HEX(十六进制)

DATA_RADIX=DEC ; 设置数据基值的进制表示, 同上

CONTENT  BEGIN 数据区开始

END;数据区结束

DEPTH = 1520;
WIDTH = 8;
ADDRESS_RADIX = UNS;
DATA_RADIX = HEX;
CONTENT BEGIN

0 : 00;
1 : 00;
2 : 00;
3 : 00;
……
END;

Xilinx

MEMORY_INITIALIZATION_RADIX:定义数据类型,有效值为2(2进制)、10(10进制)、16(16进制)。

MEMORY_INITIALIZATION_VECTOR:定义存储数据,可以用空格、逗号分隔,回车符分隔。

memory_initialization_radix = 16; 
memory_initialization_vector = 
00, 
01, 
02, 
03, 
…… 
FF;

你可能感兴趣的:(学习,fpga开发)