quartus ii 12 自定义元件实践总结
来源:互联网 发布:ns为含源线性电阻网络 编辑:程序博客网 时间:2024/05/24 07:33
quartusii 12中,如果想使用nios ii,软件推荐使用qsys来取代sopc,但是qsys刚出来,加上后面
nios ii software build tools 使用了eclipse,问题多多。坑爹多多啊。
自定义元件步骤:
1.硬件逻辑
根据avalon总线信号,选用其中的信号,一般都是avalon-MM接口。
使用verilog写一个实现的元件。一般分为三部分写。一部分写寄存器逻辑。主要有地址译码,和
读写操作。第二部分写元件的功能逻辑。第三部分接和avalon端口信号组合上述两部分。
2.软件逻辑
3个文件 ,两个头文件,一个源文件。
1.一个头文件写寄存器的访问接口。基本上复制一下qsys自带的altra_avalon_pio_regs.h,再修改下,或者
不改就行了。
2.源文件要写这个元件的功能接口,比如如何使能,初始化,操作等。
3.列出源文件实现的函数接口,还有些在源文件中要用到的数据结构,宏定义等。
3.结合到qsys中,使自己写的文件变成库中的一个选项
qsys->new component,然后加入自己的硬件逻辑,设置下信号,完成。
注意:
a.创建好元件后,元件会显示在library库下面,并生成一个与元件名相同的tcl文件
如果这个元件有多个.v描述文件,要修改下tcl文件里的file sets这一部分。默认情况
系统只加和顶层接口文件。比葫芦画瓢,加上去剩下的文件即可。
b.此时如果重新打开一个qsys文件,这个新建好的元件
就会找不到了。可以在qsys->tools->option中添加ip搜索路径。添加完之后,系统会显示更新条。
如果不显示,就重新添加一次,或者更换下 tcl文件的位置,再添加。
c.现在编译quartus工程还是会出现找不到元件的问题
解决的办法:自己写一个IPX文件。
示例:
<library>
<path path="E:/Qsys_lib/**/*" />
</llibrary>
IPX文件最好放到工程根目录下,在文件中指出相对于
工程根目录新生成元件的tcl文件位置。
在原来的sopc中,还会指出新建元件的软件逻辑文件,但是在qsys中去掉了。
元件中有些信号,不是avalon总线信号的部分,在component editor->signals选项卡中,可选择new conduit
然后在signal type中选择export。然后再到interfaces选择卡中,找到conduit end这个接口,改下名字。
最后,在qsys->system contents在自己的设计中加入自己设计的元件后,别忘了在export那一列中导出自己的接口
d.补充一下,在component editor->interface中,如果remove interfaces with no signals不是灰色的,要点成灰色的
在avalon端口中编辑时序时,一定要根据自己书写的时序来配置latency,read wait等。如果是编译master接口,有一个
address unit,一般选symbol.
在system->content中,如果运行在nios上的程序要运行在某个存储空间中,比如ssram或sdram中,那么那么nios处理
器的data_master和instruction_master要同时接在ssram或sdram的slave接口端。
4.在eclipse中使用自己的新元件
这一部分实际上最坑爹的。因为当你使用自己的元件时,问题真他妈多。
写好自己的软件驱动文件后,把它放到相当于是app的目录中,在eclipse中刷新一下。如果能编译通过
就不要改makefile了,如果不能
在生成bsp文件包后。在bsp要目录下建一个自己的文件夹,比如private
然后将第2步写的软件放到这个目录下,再去修改相当于是app目录下中makefile,注意不是bsp目录 下的,
找到C_SRCS这个词,然后将自己的文件路径加进去。
5.写自己的app
这个注意的地方就是include时,要从bsp要文件算起
例如:include "/private/myheadfile.h"
不要放到其它的inc目录中,因为eclipse能找到它自己生成的头文件,但是你放进去的头文件,它不一定识别。
上面所说只是个大概流程。
中间出现的问题:http://blog.csdn.net/yongan1006/article/details/8776644
实践的源码工程:http://download.csdn.net/detail/yongan1006/5242189
有高手的勿忘指点.
- quartus ii 12 自定义元件实践总结
- 基于quartus ii 的fpga下载程序流程总结
- QUARTUS II 4.0 安装
- Quartus II 中的Warning
- 转载Quartus II
- 转载Quartus II
- quartus II Internal Error:
- Quartus II常见错误
- Quartus II Simulator
- Quartus ii 11.0
- Quartus II编译器
- Quartus II 管脚配置
- Quartus II 问题集锦
- quartus II 过期怎么办?
- Quartus II 中的Warning
- Quartus II 时序约束
- Quartus II 新建工程
- quartus II 调用 ModelSim
- Oracle Database 11g R2(发行版2)(客户端)安装步骤——图文版(附下载地址)
- iPhone IOS区域截图
- 组装电脑最容易犯的五大错误
- 在已有的ssm项目中添加xfire
- mac下cocos2d-x 安装与卸载
- quartus ii 12 自定义元件实践总结
- 562 - Dividing coins
- 问题三十:将输入的任意三个整数a、b、c,按从小到大的顺序输出
- 关于java网上投简历找工作后的面试几率?(如何投简历)
- 如何选一台好的中低端的笔记本电脑
- web端特效JavaScript InfoVis Toolkit
- 小羊驼和你一起学习cocos2d-x之五(结合摇杆控制玩家走动)
- gdb发现逻辑错误,gcc发现语法错误
- 如何在C++中调用C程序