概述FPGA烧写JIC文件到底是个怎样的过程

2023-10-31 17:20

本文主要是介绍概述FPGA烧写JIC文件到底是个怎样的过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。

 

 

烧写JIC的过程实际分为两步
        第一步,使用JTAG模式烧写一个FLASH Loader固件到FPGA中;
        第二步,使用该FLASH Loader固件将JTAG传输的FPGA的配置文件写入到EPCS FLASH中。

要想通过JTAG直接将数据写入到EPCS FLASH中是不那么方便的,所以Altera采用了FPGA转发的方式,在生成JIC文件时,有一个设置是在Flash Loader选项下选择被配置的FPGA器件,然后才是添加一个SOF Data,如下图所示。那么这个Flash Loader,通俗一点理解,就是Altera预先设计好的一段逻辑,从效果上等同于用户自己设计一个接受JTAG的数据并写入SPI FLASH的逻辑。所以,合成JIC文件时,就在JIC文件的某个位置插入了该逻辑的配置文件(相当于sof),然后,才是加上了用户自己设计好的逻辑的配置文件。

所以,当用户希望将自己的FPGA配置文件固化到EPCS存储器中时,当转换得到JIC文件后,在Quartus Programmer软件中添加好该JIC文件之后,可以看到软件检测出来了两个文件,第一个文件名为Factory default enhanced SFL image,第二个才是用户自己的设计文件,如下图所示:

所以烧写的时候大家应该也能够看到,实际上烧写一般会有三次进度条,第一次速度最快,那就是在下载这个FLASH Loader文件,当该文件下载进入FPGA之后,FPGA就变成可一个能够接受JTAG数据并按照SPI FLASH的接口协议将数据写入到FLASH中的烧写器。第二次更新进度条,则是对EPCS FLASH进行擦除操作,当EPCS FLASH擦除之后,最后才是耗时最长的一次进度条更新,这一次才是将用户设计烧写到EPCS FLASH中。
                所以,有用户希望直接使用JIC文件来,通过其他方式,如FLASH离线烧录器等方式来批量烧写FPGA固件到EPCS中是行不通的。因为这个文件不纯洁,要纯洁的文件,可以考虑rbf文件。 

 

这篇关于概述FPGA烧写JIC文件到底是个怎样的过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/316911

相关文章

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2