使用脚本文件生成Intel FPGA的jic文件

2023-10-31 17:20
文章标签 使用 生成 脚本 fpga intel jic

本文主要是介绍使用脚本文件生成Intel FPGA的jic文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Intel FPGA使用JTAG下载配置文件时使用jic文件,在生成比特流的过程中只能生成sof文件,不能直接生成jic文件。sof文件是在线配置文件,掉电后配置丢失。

通常生成jic文件的方法是在生成sof文件后在Convert Programming File中使用图形化界面设置相应的输出文件格式,指定配置器件,输出文件的名称,程序加载器(Flash Loader)的型号,指定使用的sof文件和是否对sof文件转换过程进行压缩等操作,设置完成后再点击Generate生成jic文件。若在开发一个项目时需要频繁的生成jic文件,使用上述步骤生成jic文件会浪费较多的时间,为了解决这个问题,有两种解决方案。

方案1

在第一次设置了响应参数后,使用Save Conversion Setup将参数保存为cof文件,下次再需要将sof文件转换为jic文件时使用Open Conversion Setup Data加载保存的cof文件,即可快速的将保存的参数载入。

此种方法避免了每次生成jic文件时都需要设置参数的问题,一定程度生节省了时间,但仍需每次打开Convert Programming File工具,仍较为麻烦。

方案2

使用脚本直接将sof文件转换为jic文件。在quartus的安装目录下包含了一个名为quartus_cpf.exe的应用程序,该应用程序就是实现Convert Programming File的程序。进入windows的cmd,执行该程序,可以看到该程序的使用手册。

通过使用手册的提示信息,可以看到使用--help可以看到更详细的帮助信息,键入

C:\Users\Administrator>C:\intelFPGA\18.1\quartus\bin64\quartus_cpf.exe --help 

 后将得到更为详细的帮助信息。

 根据帮助信息的结尾,可以使用键入

C:\intelFPGA\18.1\quartus\bin64\quartus_cpf.exe --help=jic

得到使用quartus_cpf.exe应用程序将sof文件转换为jic文件的方法。

 帮助文档对sof到jic的过程进行了说明,并且给出了带选项和不带选项的sof转换jic文件的命令。一般情况下,生成jic文件选择压缩方式,因此可以带选项的命令模式。命令为

quartus_cpf -c -o <option_file> -d <config_device_name> -s <serial_flash_loader_device_name> <input_sof_file> <output_jic_file>

新建一个gen_jic_file.bat的脚本文件,使用文本编辑器键入

set day=%date:~2,2%%date:~5,2%%date:~8,2%
set tim=%time:~0,2%%time:~3,2%
%QUARTUS_ROOTDIR%\\bin64\\quartus_cpf -c -o bitstream_compression=on -d EPCS16 -s EP4CE40 ./prj/output_files/output_files.sof ./output/%day%_%tim%.jic
pause

代码第1行获取系统当前的日期

代码第2行获取系统当前的时间

代码第3行实现sof文件到jic文件的转换

代码第4行暂停cmd窗口,便于观察生成结果

注意:代码第三行指定的jic文件保存路径应该存在,若不存在,生成文件时将会报错;若有需要,可在脚本文件中检查jic文件需要存放的路径是否存在,或者指定到已经存在的路径中。

保存后退出,双击运行gen_jic_file.bat文件,将在cmd窗口看到jic文件的生成过程。

生成成功后,在指定的jic路径中查看是否存在jic文件。

通过对图形界面和脚本文件生成的jic的二进制文件的对比,可以看到二进制文件完全一致,说明脚本文件生成的jic文件和图形界面生成的jic文件完全一致。

 

这篇关于使用脚本文件生成Intel FPGA的jic文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr