Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Altera公司的严格测试,所以稳定性及耐用性都超过通用的SPIFlash”。就本人看来,半导体的稳定性问题绝大部分都是由本身设计缺陷造成的,而成熟的制造工艺不会造成产品的不稳定;并且,现在Altera的器件在读入配置数据发生错误时,可以重新读取SPIFlash里面的数据,所以在工艺的稳定性以及设计的可靠性双重保证下,通过选用通用的SPIFlash来减少产品的成本压力。

假设我们正在使用一个普通SPIFlash,打开nios II command shell窗口,使用nios2-flash-programmer命令下载***.flash文件时,会发生如下错误:
        No EPCS layout data --- looking for section [EPCS-1C2017]

以为不同公司的SPIFlash有不同的ID,并且不同大小的Flash的Sector大小及个数都不一样,所以需要新建一个文档去说明这些数据:

1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;

2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;
        [EPCS-202011]  # EPCS1N (lead-free)
        sector_size = 32768
        sector_count = 4
        [EPCS-202013]  # EPCS4N (lead-free)
        sector_size = 65536
        sector_count = 8
        [EPCS-202015]  # EPCS16N (lead-free)
        sector_size = 65536
        sector_count = 32
        [EPCS-202017]  # EPCS64N (lead-free)
        sector_size = 65536
        sector_count = 128

3、在上述代码中添加自己选择的通用SPIFlash,例如:
        [EPCS-1C2017]  # EPCS64N (Eon-lead-free)
        sector_size = 65536
        sector_count = 128

然后再使用nios2-flash-programmer命令下载***.flash文件,就可以对SPIFlash进行下载了。

需要注意的是,FPGA使用的配置芯片的每个Sector大小都是定的,现在有些器件专门对Boot那部分代码进行了优化,及最开始的部分Sector会比较一般的Sector要小,从而达到提高Sector利用率的目的,比如Eon 64M的SPIFlash就分为两种,一种是每个Sector大小都是64K*128(EN25P64),还有一种就是(4+4+8+16)K+64K*127(EN25B64),而我们选用的是前面那类器件,器件ID为1C2017,器件ID可以通过nios2-flash-programmer --debug ...查询。

以上我选了一种器件进行做说明,大家可以根据自己的器件修改nios2-flash-override.txt文件,只需要更改ID号就行了,保证sector_size,sector_count与EPCS器件一致。

AlteraFPGA使用通用SPIFlash相关推荐

  1. FPGA niosII 视频笔记--小梅

    我先看的正点原子nios视频笔记,后看的小梅哥,这篇笔记就不怎么记太基础的了 讲课口头禅.音量忽大忽小.语速忽快忽慢也让人头疼,但是讲的比较细致.透彻,还讲了很多正点原子没讲过的东西,值得一听,有收获 ...

  2. 解决No EPCS layout data --- looking for section [EPCS-xxxxx]

    Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:"EPCS器件也是选用某家公司的SPIFlash,只是中间经过Alte ...

  3. spi flash通用读写软IP

    spi flash通用读写模块,有两个模块,分别为spiflash控制模块和spi控制模块 spiflash控制模块RTL代码如下: //功能描述 //这是一个spiflash的控制程序 //写选择( ...

  4. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  5. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  6. 通用流水线处理器技术参数

    通用流水线处理器技术参数 申威111 • 采用新一代"申威64"核心技术,核心流水线升级为4译码7发射结构,单核性能大幅有提升(整数性能提高62%,浮点性能提高53%): • 采用 ...

  7. OpenCL通用异构开放环境

    OpenCL通用异构开放环境 OpenCL全称Open Computing Language,第一个面向异构系统通用目的并行编程的开放式.免费标准,一个统一的编程环境,便于软件开发人员为高性能计算服务 ...

  8. CUDA功能和通用功能

    CUDA功能和通用功能 本文描述了类似于CUDA ufunc的对象. 为了支持CUDA程序的编程模式,CUDA Vectorize和GUVectorize无法产生常规的ufunc.而是返回类似ufun ...

  9. 部署通用基础设施, 满足顶级 SLA 要求

    部署通用基础设施,满足顶级 SLA 要求 Telefónica 使用基于英特尔® 至强® 可扩展处理器和英特尔® 傲腾™ 数据中心级固态盘 的 VMware 虚拟存储区域网络(vSAN)* 架构,完成 ...

  10. SLAM的通用框架:GSLAM

    SLAM的通用框架:GSLAM GSLAM: A General SLAM Framework and Benchmark 论文链接: http://openaccess.thecvf.com/con ...

最新文章

  1. c#设置软件开机自动运行,修改注册表
  2. c++ 1:非MFC工程使用MFC库时的问题及解决办法(如果要用CString或者提示windows头文件重复包含)...
  3. python常量列表_Python中实现常量(Const)功能
  4. django分页功能 views与templates
  5. 通过JDBC和Hibernate对Clob和Blob的操作
  6. CCF202006-5 乔乔和牛牛逛超市【最大流】(100分题解链接)
  7. 政府部门和金融行业已成网络攻击的最大目标
  8. HTTPD虚拟主机配置
  9. 微信小程序实现自动定位
  10. php调用shell执行scp,使用shell脚本自动执行scp文件传输
  11. 情人节程序员用HTML网页表白【3D旋转木马相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  12. Cloudera Manager —— 端到端的企业数据中心管理工具
  13. 人生的极致:大道至简 知行合一
  14. ModuleNotFoundError: No module named ‘common‘
  15. 网络基础:(二)路由选择基础与静态路由
  16. 淘宝官方商品、交易、订单、物流接口列表
  17. android 百度地图获取城市,Android 百度地图获取两点之间的距离和推荐的驾车路线...
  18. 洛谷P5266 学籍管理
  19. scanner.nextLine()和scanner.next();的区别
  20. Python脚本和图片相互转换

热门文章

  1. 数据分析几大常见效应和定律。
  2. 删除mac开机启动项
  3. 双舵轮AGV轨迹跟踪Pure Pursuit算法模型分析、python代码实现
  4. 161128、Redis 4.0发布及其新功能介绍
  5. 阿里云 mysql 100_【故障公告】阿里云 RDS 数据库服务器 CPU 100% 造成全站故障
  6. P3174 [HAOI2009] 毛毛虫(树形DP)
  7. 十二个“一”---十二位胜似亲人的悲情向团体详解
  8. java手机视频下载_使用JAVA合并哔哩哔哩手机客户端下载的视频
  9. DataFrame 修改列名
  10. 程序员年薪40万被国企同学怒怼:没啥贡献,凭什么工资这么高!