易灵思RAM在使用时可以会遇到一些问题,这里把常用的问题总结下。
1、ram初始化文件路径是工程路径
在对ram进行初始化时需要指定文件路径,这里要注意’/’的方向。
(1)如果文件放在工程目录下,写法如下:
.RAM_INIT_FILE(“./ram_init_file.inithex” )
或者.RAM_INIT_FILE(“ram_init_file.inithex” )
(2)如在工程目录下新建一个src文件。写法如下:
.RAM_INIT_FILE(“./src/ram_int_file.mem”)
![图片[1]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145105252-41729320665.png?v=1729320665)
2.初始化文件格式
初始化文件 支持.inithex和.mem.都是按顺序以16进制输入数据即可。
![图片[2]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145106705-81729320666.png?v=1729320666)
![图片[3]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145107815-71729320667.png?v=1729320667)
3、在RAM评估器中评估RAM资源
易灵思提供了RAM资源评估器,可以快速帮忙评估RAM资源的使用情况。以下为操作步骤:
(1)把路径转换Efinity路径下的bin文件夹下。
(2)通过以下命令评估
![图片[4]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145109210-41729320669.png?v=1729320669)
efx_map_ramest --family Trion --mode area --size 10240x16
但是如果直接运行该命令会提示错误。
![图片[5]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145110827-91729320670.png?v=1729320670)
因为efinity的路径没有写入系统路径,用windows 命令行的时候,需要先运行bin文件夹下的setup.bat来设置环境,然后运行命令,注意不同模式下资源使用量不同。
![图片[6]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145111325-101729320671.png?v=1729320671)
4、大块ram的使用
如果RAM资源使用比较多时,可能会报出以下错误。
![图片[7]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145112449-91729320672.png?v=1729320672)
解决方案
- 在工程目录下放置以下文件 文件名:efx_map_settings.ini
- 并在文件中输入下面语句:max-bit-blast-mem-size = 524300
在2023.1及以后的版本已经不需要上面的ini文件解决方案。
4)RAM使用报错
(1)ERROR: RCLK port of EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$12 is constant
ERROR: EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$12 WCLK port is disabled, but WCLKE is not
ERROR: EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$12 WCLK port is disabled, but WE is not
ERROR: WDATA[0] port of EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$12 is not disabled in a disabled mode
ERROR: RCLK port of EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$2 is constant
ERROR: EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$2 WCLK port is disabled, but WE is not
ERROR: WDATA[0] port of EFX_RAM_5K instance u_ddr_rx_buffer/u_wr_fifo/FifoBuff__D$2 is not disabled in a disabled mode
错误原因:FIFO时钟给的是无效的。
[EFX-0473 ERROR] EFX_DPRAM_5K ‘genblkl.dpramsk’ illegal instantiation for OPx device. (F:lcvzltestproiectMX efinity proilipltdp ram 16×1024 dlltdp ram 16×1024 d1.y’824)
![图片[8]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145113185-21729320673.png?v=1729320673)
![图片[9]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145114593-91729320674.png?v=1729320674)
错误原因:注意器件的family要对应下来。
5、如果要把小于256bit的ram综合成register,可以在工程目录下新建一个efx_map_settings.ini文件。并在文件中输入以下两句:
use-logic-for-small-mem=256
use-logic-for-small-rom=256
在2023.1及以后的软件提供了相关的选项。
![图片[10]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145115996-31729320675.png?v=1729320675)
![图片[11]-易灵思RAM使用–Update5-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019145116341-71729320676.png?v=1729320676)
6、RAM综合的其它操作请参考efinity-synthesis.pdf
这里包括对使能,复位等的写法的注意事项。





没有回复内容