Altera FPGA 配置flash读写

目录

一、读写控制器的配置

二、生成flash的配置文件 

三、关于三种配置文件的大小

四、其他


一、读写控制器的配置

        Altera ASMI Parallel(下文简称ASMI)这个IP就仅仅是个Flash读写控制器,可以自由的设计数据来源。

        关于这个IP的使用,可以参考IP的文档。需要进行相关信号控制来控制IP的行为。这里对这个IP的使用不进行详细的描述。

        这个方案的一个问题是,IP默认只支持Intel(Alterad)的Flash,所以如果Flash是其它型号,则不能保证百分之百兼容。建议查看IP文档,使用比较基础的读写控制命令(通常性能差一些但兼容性好的命令);同时在更换Flash之后,进行测试看看是否兼容。

        ASMI IP配置中,有一个配置参数:

                勾选这两个参数,可以让两个方案同时存在与一个FPGA设计中。这样,可以更自由地选择使用那个方案来进行更新。由于Flash只有一个配置接口,所以两个方案肯定是无法同时使用的。

二、生成flash的配置文件 

        Quartus中没有直接提供这个格式的文件,不过Quartus下用于Nios2开发的套件(nios2eda)中,有一个小工具:sof2flash在Nios2 Shell中启动这个工具,可以将sof文件转为.flash文件。查看这个.flash工具,就能发现这个文件的语法结构和MCS文件一样。

        那么后面的事情就很容量了,用脚本语言(Python)写一个转换工具,生成一个文件,后缀名可以随意取(本人使用.bin这个后缀)。将这个文件以二进制形式读取,直接传给ASMI IP写入Flash,从实际效果看,没有任何问题,FPGA顺利从Flash启动。

        这个方法算是另辟路径,用不是很正式的方法将sof文件转为了一个标准的Flash内容描述格式。本人使用的是这种格式。

        另外可以通过Quartus提供的文件转换工具,可以将sof转为pof文件。这一步上文已经做了分析,pof并不是直接写入Flash中的文件。

        再一次使用文件转换工具,利用pof文件,转为rpd文件。这个rpd文件,就是需要使用的文件。

三、关于三种配置文件的大小

        jic、pof和rpd文件,这三个文件是针对Flash的,所以这三个文件的大小是依据Flash而变化的。使用中可以发现这三个文件其实比sof/bin文件大很多。但这三个文件几乎是一样大小的。

        用一个例子来说明,假设sof文件是20MB,Flash是128MB。那么bin文件代表sof文件中有效内容,可能是16MB,而由于Flash固定是128MB,则jic/pof/rpd三个文件都几乎是128MB大小,其中只有开头的16MB是有效内容,后面的数据基本为填充的无效数据(或者在生成时添加了其他数据源的数据)

        这里有一个例子,rpd文件,二进制用文本展开,32bit一组用8位16进制数表示,一共33554432组,其中ffffffff占了22578142,可以看到几乎大部分都是无效的flash初始数据。

        33554432*32bit / 1024/1024 / 8 = 128MB

        这个128MB的Flash,大概三分之二都是无用的Flash数据。

        这可以侧面验证,jic/pof/rpd文件虽然很大,但其中有效数据并没有很多。

四、其他

亲测使用rbf文件可行,不过要quartus直接输出的那个rbf,不要用转换的那个

相关推荐

  1. python-ConfigParser-配置文件

    2024-04-25 09:54:09       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 09:54:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 09:54:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 09:54:09       82 阅读
  4. Python语言-面向对象

    2024-04-25 09:54:09       91 阅读

热门阅读

  1. 【打工日常】解决docker对镜像pull的很慢的问题

    2024-04-25 09:54:09       33 阅读
  2. 禅道安装(非docker 版本)(一键部署版)

    2024-04-25 09:54:09       34 阅读
  3. 数据库的脏读、幻读、不可重复读

    2024-04-25 09:54:09       30 阅读
  4. Python 将Influxdb时序数据写入mysql库时遇到的问题

    2024-04-25 09:54:09       36 阅读
  5. spark知识点总结(1)

    2024-04-25 09:54:09       36 阅读
  6. 组合总和III(Lc216)——剪枝+回溯

    2024-04-25 09:54:09       24 阅读
  7. L2-4 吉利矩阵(优化剪枝版)

    2024-04-25 09:54:09       31 阅读
  8. 作为前端工程师如何SEO优化

    2024-04-25 09:54:09       31 阅读
  9. Unity 温度显示

    2024-04-25 09:54:09       34 阅读
  10. C# 预处理器指令详解与示例

    2024-04-25 09:54:09       33 阅读
  11. 【数据结构】顺序表

    2024-04-25 09:54:09       38 阅读
  12. 前端vue+xgVIdeo集成rstp流播放

    2024-04-25 09:54:09       28 阅读