关于Quartus构建nios软核以及eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
这不是一篇构建nios的教程,而是遇到的各种问题以及解决方法。至于构建教程,网上一大把,我推荐正点原子的FPGA教程,比较新,比较详细,通俗易懂!!!
这里以一个点亮LED灯的Nios软核为例,很明显,需要如下IP核,以及正确的连线(否则各种莫名其妙的错误),效果如下所示:
这里多了一个按键控制的IP核,不过没关系。
记住:一模一样按照我这里的连线,一条线都不能少,否则后果自负。以及export一列,也得按照红色框的来,因为这些IP核是要对芯片外部通过引脚有通信的。比如pio核,就是通过引脚控制外部的LED亮灭的,epcs也是如此,因为epcs是FPGA芯片外部的flash芯片,用于储存代码,掉电不会消失。举个例,我之前忘记连了nios_qsys核的jtag_debug_module_reset信号的连线到其它核的rest线,如果我只是把程序下载到FPGA的片内memory(掉电程序消失),那么没问题,但是当我在eclipse中点击flash?programmer界面,把xx.sof和我的C语言xx.elf文件下载进去时候,提示了一个错误
Error: Error code: 4 for command: $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "……_epcs_flash_controller.flash" --base=0x0 --epcs --sidp=0x1890 --id=0x0 --timestamp=1329570479 --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program –verbose
百度后发现,这是因为我忘了连接的刚刚那条jtag_debug_module_reset线,所以得在qsys界面重新打开xx.qsys文件,重新连上那条线(不需要再从头构建一次这些IP核,可以直接打开)。然后还需要再generate一次,商务英语首先软件提示你保存这个软核(如果你之前没有保存过),也就是所有的这些核,被集成了一个模块,取一个名字,system_qsys.qsys,然后generate后,会生成如下重要文件:
一,构建软核需要的IP核以及生成相关需要的文件
.https://blog.csdn.net/kangkanglhb88008/article/hardware/system_qsys.sopcinfo? ? 软核的一些信息文件,比如这个软核的systemID等等,后面eclipse构建c语言工程就是需要这个文件进行构建,从而针对性的生成一些驱动库函数
.https://blog.csdn.net/kangkanglhb88008/article/hardware/synthesis/system_qsys.v? ? 这个就是Quartus工程的顶层模块会例化调用的软核模块(也就是我们需要的最终模块)的verilog源码
.https://blog.csdn.net/kangkanglhb88008/article/hardware/synthesis/system_qsys.qip? ? 替考雅思相当于是给顶层模块指明system_qsys.v的一些依赖关系,库名等,可以看成是一个库的配置函数,这个在集成Qsys系统时候会用到
二,建立一个Quartus工程
建立一个自己FPGA芯片型号的工程
三,集成Qsys软核系统
在Quarts界面,Assiment-settings按钮,file,add,添加刚刚system_qsys.qip?这个软核配置文件,相当于是添加了所有库文件
同时给建立的工程添加一个顶层模块文件,比如qsys_hello_world.v,添加例化软核模块的代码,我的代码如下:
/ Descriptions: ? ? ? ?hello_world顶层模块
module qsys_hello_world(
? ?
input ?sys_clk,
? input ?sys_rst_n,
? //flash
? input
?flash_data0,
? output flash_sdo,
? output flash_sce,
? output
flash_dclk,
? output [7:0] led
);
//例化Qsys系统
? ? system_qsys u0 (
? ? ? ? .clk_clk ? ? ? ? ?(sys_clk), ?
? ? ? ?// ? ? ? ?clk.clk
? ? ? ? .reset_reset_n ? ?(sys_rst_n), ? ?// ? ?
?reset.reset_n
? ? ? ? .pio_led_export ? (led), ? // ? ?pio_led.export
? ?
? ? .epcs_flash_dclk ?(flash_dclk), ?// epcs_flash.dclk
? ? ? ?
.epcs_flash_sce ? (flash_sce), ? // ? ? ? ? ? .sce
? ? ? ? .epcs_flash_sdo ?
(flash_sdo), ? // ? ? ? ? ? .sdo
? ? ? ? .epcs_flash_data0 (flash_data0) ?//
? ? ? ? ? .data0
? ? );
endmodule
?
除此之外,软件中,assignments-Device-pinOption界面,未使用的引脚全部配置为高阻态,评分标准使用的全部设为正常I/O
现在软核搞定了,还差最后一步,给软核模块的输入输出与fpga芯片外界建立IO引脚联系,Assignment-pinplanner,看电路图,一个个分配好引脚即可(如果有脚本文件也可以打开照着分配即可,按道理说脚本文件可以直接导入,可是不知道为啥不行)
四,全编译以及下载进入FPGA
全编译这个Quaruts工程,得到qsys_hello_world.sof文件,可以直接烧录进入FPGA了(从此这个FPGA就是一个单片机了),但是这样掉电会消失。接下来一个博客会讲解如何建立eclipse?C语言工程以及烧录掉电不消失。
?
关于Quartus构建nios软核以及eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解的更多相关文章
- eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
推荐大家预先建立好一个工程目录文件夹,确实挺好用,参考正点原子的pdf教程,如下图所示, 我们eclipse在software文件夹建立一个workspace即可 选择用helloworld模板建立工 ...
- Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
一.前言: 这部分描述了Cocos2d-x 3.0的一些基础内容,以及在Eclipse上上编译我们的Cocos2d-x项目,成功把Helloworld执行起来了.看完本篇博客之后.你就会知道Cocos ...
- 将Eclipse项目转换成AndroidStudio项目过程中遇到的问题以及解决方法
将Eclipse项目转换成AndroidStudio项目也不是第一次了,昨天转的时候遇到几个问题: 首先将项目导入androidstudio,导完后报错: 问题一: Error:java.util.c ...
- FPGA nios软核编写液晶屏LCD12864驱动程序源码以及注意事项,本人亲自踩坑,重要!!!
LCD12864引脚如下: FPGA开发板得提供,3.3v电压,5v电压,普通io都是3.3v电压 DB:数据脚,得用双向io,因为程序里面需要读取液晶的应答(普通io3.3v可以) E:?输出引脚即 ...
- (转)Permission denied: win7下面eclipse上传本地文件到DFS && 运行M/R程序时出现的同样的错误解决方法
原文地址: http://mntms.iteye.com/blog/2095651 hadoopeclipse远程控制权限 情景一: 当在win7下面的eclipse装好插件,首次运行M/R程序的时 ...
- Eclipse里Tomcat报错:Document base ……does not exist or is not a readable directory(图文详解)
问题描述: 严重: Error starting static Resourcesjava.lang.IllegalArgumentException: Document base D:\Code\M ...
- eclipse报错:Multiple annotations found at this line: - String cannot be resolved to a type解决方法实测
Multiple annotations found at this line:- String cannot be resolved to a type- The method getContext ...
- eclipse 建立Maven java工程
1.在项目资源管理器右键---新建---项目 2.在选择向导里选择Maven---Maven Project 3.选择默认的工作空间,下一步 4.选择箭头所示选项 5.输入组织名和工程名.点击完成
- 重新使用Eclipse建立安卓工程遇到的问题
很早之前用过Eclipse建立安卓工程,很久没用了,最近打算用Eclipse开发安卓程序,我是用谷歌提供的Eclipse集成环境建立的安卓工程,发现有了一些变化,而且遇到一点问题,这几天不断学习,终于 ...
随机推荐
- 虚拟机安装的kali操作系统实现共享文件夹
虚拟机共享文件夹设置. 1.[虚拟机]-->[设置] 2.先在本地新建一个共享文件夹,然后将此文件夹的路径添加到虚拟机 3.进入kali操作系统,运行命令sudo vmhgfs-fuse .ho ...
- intouch制作历史报警查询(时间查询,筛选关键字)
在项目中,intouch制作历史报警查询已属于标配功能,如何做出按时间以及关键字来进行综合查询,提高历史报警查询效率仍然是一个值得研究的问题,接下来参考网上文章自己总结下如何制作. 1.DTPicke ...
- 【LeetCode】98. 验证二叉搜索树
98. 验证二叉搜索树 知识点:二叉树:递归 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大 ...
- 直接使用!安装WordPress一键部署轻松建站教程
关于 WordPress WordPress (opens new window)简称WP,最初是一款博客系统,后逐步演化成一款功能强大的企业级 CMS(内容管理/建站系统),目前是公认的全球最佳建站 ...
- SQL根据两个日期生成年、月、日
1 DECLARE @beginTime DATETIME, @endTime DATETIME 2 SET @beginTime ='2019-03-01' 3 SET @endTime ='201 ...
- 单片机学习(一)项目的建立和vscode代码编辑环境的设置
目录 Keil项目的建立 使用vscode进行开发 工欲善其事必先利其器,因此我们先搭建一个比较舒服的开发环境. Keil项目的建立 打开Keil软件点击Project/New uVision Pro ...
- pycharm配置selenium碰到的问题
Inherit global site-packages: 导入本地包 Make available to all projects : 使所有项目都可用 chromedriver的版本一定要与Chr ...
- Nature | 多层次蛋白质组学综合分析冠状病毒侵染宿主细胞的分子机制
冠状病毒是一种自然界普遍存在的单股正链RNA病毒,电镜下呈日冕状或皇冠状,故命名为冠状病毒.在本世纪初短短20年中,共爆发了三次冠状病毒疫情,即2003年SARS-CoV.2012年MERS-CoV和 ...
- Linux连接工具final配置
Linux连接工具 putty .CRT.XShell 在terminal里面敲不太方便,所以需要一款连接工具 这是一款美观医用的网络服务管理软件 安装final shell Windows版下载地址 ...
- ant的copy标签使用方法
对于ant里拷贝用的标签的用法,此文(来自 http://electiger.blog.51cto.com/112940/39575 )讲得很好,注意其中黑体字部分,今天被这个问题耽误了20分钟. A ...