為Quartus工程生成rbf文件的方法


rbf文件是Quartus編譯生成的fpga配置文件的二進制數據量格式的文件,主要用於使用外部主機通過PS方式配置FPGA。

在含ARM硬核的SoC FPGA中,可以使用HPS配置FPGA,配置時分為兩種情況,一種是在HPS處於uboot啟動階段時通過u-boot配置,一種是Linux啟動之后通過應用程序配置。這兩種配置方式都需要用到rbf格式的配置文件,但是兩種方式所需的rbf格式的配置文件卻又存在着差異,其中,uboot階段配置fpga需要使用未經壓縮的rbf格式文件,而在Linux應用程序中配置fpga時,需要使用經過壓縮了的rbf文件。默認情況下,Quartus軟件不能自動生成rbf文件,需要在設置種開啟生成rbf文件選項。另外,也可以直接通過命令行的方式,從quartus編譯得到的sof文件轉換得到rbf文件。圖1為在Quartus中直接勾選生成rbf文件的選項。

需要注意的是,這種方式生成的rbf文件是經過壓縮了的,可以支持Linux中使用應用程序直接配置FPGA,不支持uboot階段配置fpga。

另外也可以通過腳本實現

使用sof文件直接轉換得到未經壓縮的rbf文件的命令格式為:

quartus_cpf -c my_input_file.sof my_output_file.rbf
使用sof文件直接轉換得到經過壓縮的rbf文件的命令格式為:

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

 

使用時,可以直接在SoC EDS軟件中輸入上述命令生成rbf文件,也可以將上述命令做成腳本,這里作者傾向於直接將上述命令做成腳本,然后雙擊生成rbf文件

打開記事本,將下列命令粘貼到記事本中,然后保存為bat格式。例如保存為“sof2rbf_dc.bat”文件

%QUARTUS_ROOTDIR%\\bin64\\quartus_cpf   -c   -o   bitstream_compression=on  AC501_SoC_GHRD.sof   soc_system_dc.rbf
pause

然后,將sof2rbf_dc.bat文件拷貝到工程中sof所在目錄下,直接雙擊運行該bat文件,就能生成名為soc_system_dc.rbf的文件了,該文件是經過壓縮的rbf文件。

 

同樣的再打開記事本,將下列命令粘貼到記事本中,然后保存為bat格式。例如保存為“sof2rbf.bat”文件

%QUARTUS_ROOTDIR%\\bin64\\quartus_cpf   -c   AC501_SoC_GHRD.sof   soc_system.rbf
pause

然后,將sof2rbf.bat文件拷貝到工程中sof所在目錄下,直接雙擊運行該bat文件,就能生成名為soc_system.rbf的文件了,該文件是未經壓縮的rbf文件。

 

注意,上述命令內容中,AC501_SoC_GHRD.sof名字需要換成你工程中實際的sof文件的名字。

下圖為分別使用sof2rbf.bat和sof2rbf_dc.bat腳本生成的rbf文件,可以看到,兩者尺寸差距較大,soc_system.rbf為4146KB,而soc_system_dc.rbf僅為1270KB。

另外,圖中還有一個名為AC501_SoC_GHRD.rbf的文件,該文件是勾選了Quartus的自動生成rbf選項后生成的rbf文件,可以看到,與使用命令方式生成的壓縮后的rbf文件尺寸一致。

另外,AC501_SoC_GHRD.sof文件的尺寸比未經壓縮的soc_system.rbf文件的尺寸大了440KB,那么這兩者之間會有什么聯系和區別呢,有興趣的網友可以研究研究。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM