如何在 Altera Quartus 中生成 .rbf 文件?

How to generate .rbf files in Altera Quartus?

什么是 .rbf 文件以及如何从 windows 上的 Quartus 输出文件 .sof 生成它们?

使用 Quartus II GUI 转到 File => Convert Programming Files,然后可以选择 .rbf 作为输出文件,.sof 可以作为输入文件。

可以从 GUI 保存转换设置,以便在命令行中使用,例如

> quartus_cpf -c convert_sof_to_rbf.cof

一个RBF是一个“原始二进制文件”。它表示原始数据,例如,将加载到闪存中以在上电时初始化 FPGA。

A SOF 是一个“SRAM 对象文件”。它包含直接初始化FPGA所需的数据。

尽管您可以从 Quartus 输出 RBF (File -> Convert Programming Files...),但我从您的问题中怀疑您正在寻找一种直接将 SOF 转换为 RBF 的方法。这可以使用 Altera 的 "NIOS II Command Shell" 来完成,可以从开始菜单中的 Quartus 文件夹中 运行。

请注意,虽然您需要安装 Quartus 才能执行此操作,但您无需支付订阅费用,因为即使 Quartus 没有有效许可证,NIOS II 命令 Shell 也可以使用.

这是一个两步过程...

第一步

cd 到包含您的 SOF 的目录,然后键入:

sof2flash --offset=0 --input="./your_file.sof" --output="./your_file.flash"

这会将 SOF 文件转换为 FLASH 文件,它是所需 RBF 的 ASCII 表示形式。

第二步

现在输入:

nios2-elf-objcopy -I srec -O binary "./your_file.flash" "./your_file.rbf"

您现在将拥有所需的 RBF 文件。

另一种免费的 GUI:

要在 windows 的命令行中使用,您必须首先启动 Altera Embedded Command Shell(顺便说一句,在 linux 系统上的想法相同)。在我的电脑上,要启动的文件是:

# on Windows
C:\intelFPGA.1\embedded\Embedded_Command_Shell.bat

# on Linux
/opt/altera/17.1/embedded/Embedded_Command_Shell.sh

然后就可以使用Quartus命令行程序了。

直接将 sof 转换为 rbf:

quartus_cpf -c my_input_file.sof my_output_file.rbf

您还可以添加选项来压缩比特流,例如:

quartus_cpf -c -o bitstream_compression=on my_input_file.sof my_output_file.rbf