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,不要用转换的那个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAC有没有免费NTFS tuxera激活码 tuxera破解 tuxera for mac2023序列号直装版 ntfs formac教程

Tuxera NTFS 2023破解版是一款非常好用的在线磁盘读写工具,该软件允许mac用户在Windows NTFS格式的硬盘上进行读写操作,Mac的文件系统是HFS,而Windows则使用NTFS格式,这导致在Mac系统上不能直接读写Windows格式的硬盘。然而&#…

程序员:写好代码就行了,为什么要学写作

🍁 展望:关注我, AI 学习之旅上,我与您一同成长! 一、引言 在当今这个信息爆炸的时代,程序员们往往沉浸在代码的世界里,用代码来解决问题。然而,你是否曾想过,除了代码,…

INSTEAD OF 触发器的创建

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 INSTEAD OF 触发器,也称替换触发器,是一种特殊的触发器,和其他建立在数据表上的触发器不同,INSTEAD OF 触发器建立在视图上。…

Podman入门全指南:安装、配置与运行容器

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Podman入门全指南:安装、配置与运行容器 前言Podman简介什么是 Podman?Podman 与 Docker 的主要区别 安装Podman支持的操作系统和环境安装步骤详解LinuxUbuntuCentOS/RHEL MacO…

双系统下删除ubuntu

絮絮叨叨 由于我在安装Ubuntu的时候没有自定义安装位置,而是使用与window共存的方式让Ubuntu自己选择安装位置,导致卸载时我不知道去格式化哪个分区,查阅多方资料后无果,后在大佬帮助下找到解决方案 解决步骤 1、 插上Ubuntu安…

Axure如何调起浏览器的打印功能

Axure如何调起浏览器的打印功能 答:javascript:window.print(); 不明白的继续往下看 应用场景: 原型设计中,页面上的打印按钮,需要模拟操作演示,需要点击指定的按钮时,唤起浏览器的打印功能&#xff08…

使用Pandas从Excel文件中提取满足条件的数据并生成新的文件

目录 一、引言 二、环境准备 三、读取Excel文件 四、数据筛选 五、保存为新的Excel文件 六、案例与代码总结 七、进阶用法与注意事项 八、结语 在数据处理的日常工作中,我们经常需要从大量数据中筛选出满足特定条件的数据集。Pandas是一个强大的Python数据分…

比 PSD.js 更强的下一代 PSD 解析器,支持 WebAssembly

比 PSD.js 更强的下一代 PSD 解析器,支持 WebAssembly 1.什么是 webtoon/ps webtoon/ps 是 Typescript 中轻量级 Adobe Photoshop .psd/.psb 文件解析器,对 Web 浏览器和 NodeJS 环境提供支持,且做到零依赖。 Fast zero-dependency PSD par…

2024 年最好的免费数据恢复软件,您可以尝试的几个数据恢复软件

由于系统崩溃而丢失数据可能会给用户带来麻烦。我们将重要的宝贵数据和个人数据保存在我们的 PC、笔记本电脑和其他数字设备上。您可能会因分区丢失、意外删除文件和文件夹、格式化硬盘驱动器而丢失数据。数据丢失是不幸的,如果您不小心从系统中删除了文件或数据&am…

深入理解 Srping IOC

什么是 Spring IOC? IOC 全称:Inversion of Control,翻译为中文就是控制反转,IOC 是一种设计思想,IOC 容器是 Spring 框架的核心,它通过控制和管理对象之间的依赖关系来实现依赖注入(Dependenc…

正点原子[第二期]ARM(I.MX6U)裸机篇学习笔记-1.2

前言: 本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM(MX6U)裸机篇”的学习笔记,在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网…

结构体内存对齐(未完成版)

前言 我们已经掌握了结构体的基本使用了。 现在我们深入讨论一个问题:计算机构体的大小。 这也是一个特别热门的考点:结构体内存对齐 练习导入 对齐规则

vue项目npm run build 打包之后如何在本地访问

vue项目npm run build 打包之后如何在本地访问 如果直接访问时,则会报错如下的信息: 报错码: Access to script at file:///D:/assets/index-DDVBfHVo.js from origin null has been blocked by CORS policy: Cross origin requests are on…

【转载】如何在MacBookPro上把Ubuntu安装到移动硬盘里过程记录

以下主要目的是记录安装过程中的问题,安装步骤等信息怕忘记 环境信息: Mac :macOS High Sierra 10.13.6 内存8G(Swap时用到) Ubuntu: ubuntu-22.04.4-desktop-amd64.ios 金士顿U盘:Kingston-64G 烧录软件:balenaEtcher…

牛客NC371 验证回文字符串(二)【简单 双指针 C++/Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/130e1a9eb88942239b66e53ec6e53f51 思路 直接看答案,不难参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可…

Atlassian Jira 信息泄露漏洞(CVE-2019-3403) 排查思路

Atlassian Jira: 企业广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 简述: 近日发现多个内网IP触发的Atlassian Jira 信息泄露漏洞的告警。 告警的检测规…

openvoice v2 声音克隆使用案例

参考: https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md https://www.wehelpwin.com/article/4940 安装 1)下载OpenVoice项目安装 2)MeloTTS安装 参考:https://blog.csdn.net/weixin_42357472/article/details/136320097 pip install git+https://gith…

2398.预算内最多的机器人数目

我第一个手搓的hard的单调队列题目......灵神yyds 思路解析: 我做的时候感觉这个题目有点歧义,我以为他的连续运行是时间上连续,所以我开始写的代码是选择最多的子序列(可以不连续),使得不超过budget,这个求最多子序列的代码会在最后给出,不保证完全正确(因为没有太多测试点),…

element-ui et -i 编译默认主题报错:ReferenceError: primordials is not defined

报错信息如下 fs.js:40 } primordials;^ ReferenceError: primordials is not defined导致这个问题的原因:node和gulp版本冲突!! 我使用的是node 14版本 解决方法: 看了好几个帖子,都推荐使用node 11.15.0版本&am…

华为ensp中BGP(边界网关协议)基础原理及配置命令

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月27日10点04分 BGP(边界网关协议)是一种路由协议,用于在互联网中的不同自治系统(AS)之间交换路由信息。它…