NIOS II 自定义IP核编写基本框架】的更多相关文章

关于自定义IP .接口 a.全局信号 时钟(Clk),复位(reset_n) b.avalon mm slave 地址(as_address) 片选(as_chipselect /as_chipselect_n) 写请求(as_write / as_write_n) 写数据(as_writedata(按照字节对齐,//32位位宽) 读请求(as_read / as_read_n) 读数据(as_readdata)(按照字节对齐,//32位位宽) 等待信号(as_waitrequest / as_…
如果使用静态地址对齐(每个寄存器在Avalon总线上占4个字节的地址)设置IP使用静态地址对齐的方式为,在hw.tcl脚本里加上一局话:set_interface_property as addressAlignment {NATIVE}在软件编程时 可以使用IOWR(基地址,寄存器编号(n),数据)对自定义IP的第n个寄存器进行写入操作 可以使用IORD(基地址,寄存器编号(n)) 对自定义IP的第n个寄存器进行读出操作 如果使用动态地址对齐,(每个寄存器在Avalon总线上占 数据位宽/8个…
在vivado设计三中:http://blog.chinaaet.com/detail/37177已经建立了vivado工程和封装好了自定义IP核. 那么接下来,我们对这个自定义IP核进行测试了:我们已经回到了主界面. 1. create block design 这部分和vivado设计中:是类似的,就不贴图了, 2. 添加我们自定义的IP核 Add IP,输入led 3. 连接 4. 连接后,拖动一下,使得好看一些: 5. 引出LED管脚 6. 选择Tools -> Validate Des…
开发环境:xp  vivado2013.4 基于AXI-Lite的用户自定义IP核设计 这里以用户自定义led_ip为例: 1.建立工程 和设计一过程一样,见vivado设计一http://blog.chinaaet.com/detail/35736: 这样我们就进入了主界面 2.创建IP Tools –>Create and Package IP 来到IP创建欢迎界面:Next 接下来我们要选择AXI4 peripheral,如下图 Next之后,我们可以看到IP的信息,可以自己修改某些信息:…
ZYNQ的优势在于通过高效的接口总线组成了ARM+FPGA的架构.我认为两者是互为底层的,当进行算法验证时,ARM端现有的硬件控制器和库函数可以很方便地连接外设,而不像FPGA设计那样完全写出接口时序和控制状态机.这样ARM会被PL端抽象成“接口资源”:当进行多任务处理时,各个PL端IP核又作为ARM的底层被调用,此时CPU仅作为“决策者”,为各个IP核分配任务:当实现复杂算法时,底层算法结构规整可并行,数据量大,实时性要求高,而上层算法则完全相反,并且控制流程复杂,灵活性高.因此PL实现底层算…
关于Vivado如何创建自定义IP核有大量的参考文章,这里就不多加阐述了,本文目的主要是解决如何在新建工程中引用其它工程已经自定义封装好的IP核,从而实现自定义IP核的灵活复用. 举个例子,我们的目标是能在新建工程里成功调用ov5640_RGB565_0这个自定义IP核 但是在新建工程里由于没有加载Ov5640这个IP核的封装打包路径,所以我们在原理图直接添加该IP核时是搜索不出这个IP核的元器件的 调用步骤如下: 1)打开或者新建原理图 2)点击“IP setting” 3)切换至“Repos…
对常用的FIR,我们使用MATLAB的fdatool(或者filterDesigner) 设计滤波器,给定指标,生成系数.为了方便,我们将系数保存到文件,其保存格式比较简介,在此进行说明. 1.FIR II可以读取的文件,格式为系数+逗号,例如下面的5个系数的文件: 0.1,-0.5,3.0,-0.5,0.1 2.注意事项: (1)逗号后面不要加换行.根据FIR II ip核使用手册,两个系数的分隔用逗号(comma)或者空格(space)完成.滤波器bank的分隔用换行(new line)完成…
[推荐图书]+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等 3赞 发表于 2016/7/4 21:14:12 阅读(1921) 评论(3) 初次接触FPGA,到现在也有四年多了,当时读大二,暑假在学校准备光电设计竞赛,指导老师让用单片机做,前期向我们推荐FPGA,希望我们有时间去学学FPGA,记得当时买了块黑金核心板,下载了特权同学的<深入浅出玩转FPGA>视频教程,买了特权同学写的<深入浅出玩转FPGA>和夏宇闻老师编写的<Veril…
在证书文件中添加一段: FEATURE 6AF7_0012 alterad 2035.12 permanent uncounted E75BE809707E VENDOR_STRING="iiiiiiiihdLkhIIIIIIIIUPDuiaaaaaaaa11X38DDDDDDDDpjz5cddddddddtmGzGJJJJJJJJbqIh0uuuuuuuugYYWiVVVVVVVVbp0FVHHHHHHHHBUEakffffffffD2FFRkkkkkkkkWL$84" HOSTID…
NIOS II CPU复位异常的原因及解决方案   近期在用nios ii做项目时,发现一个奇怪的现象,在NIOS II EDS软件中编写好的代码,烧写到芯片中,第一次能够正常运行,但是当我按下板卡上的复位键之后,系统却卡死了,再也运行不起来,除非重新下载程序.经过分析系统可知,系统的硬件设计和Qsys系统中NIOS II CPU系统的搭建都是没有任何问题的.那么为什么会存在这样的问题呢,这里我先简单介绍下我的系统: 我的系统主要由NIOS II最强板CPU,SDRAM.预留系统定时器.预留时间…
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下: VGA时序控制模块 VGA时序简介 网络上针对VGA时序的讲解已经非常多了,简单的理解,VGA主要有H_sync和V_sync这两个坐标同步信号,与RGB这三个色彩信号.当H_sync与V_sync达到特定的值的时候,对应一个特别的坐标(x,y)上的颜色为RGB.VGA上的RGB信号是模拟信号,…
一.前言 最近花费很多精力在算法仿真和实现上,外设接口的调试略有生疏.本文以FPGA控制OLED中的SPI接口为例,重新夯实下基础.重点内容为SPI时序的RTL设计以及AXI-Lite总线分析.当然做些项目时可以直接调用Xilinx提供的SPI IP核,这里仅出于练习的目的考虑. 二.接口时序分析 本项目用的OLED型号为UG-2832HSWEG04,核心控制器是SSD1306.该芯片支持并口.I2C以及SPI接口,这里采用4线SPI作为数据总线.4线SPI接口包括: SCLK:串行时钟,SSD…
基于NIOS II的双端口CAN通信回环测试 小梅哥编写,未经授权,严禁用于任何商业用途 说明:本稿件为初稿,如果大家在使用的过程中有什么疑问或者补充,或者需要本文中所述工程源文件,欢迎以邮件形式发送相关内容到我的邮箱xiaomeige_fpga@foxmail.com.如果需要FPGA开发套件,可以上我们的淘宝网址选购:https://xiaomeige.taobao.com. CAN通信基本概念 略(我暂时也不会多少,会的人也不用我讲,所以第一稿略去本部分) 使用FPGA实现CAN通信 硬件…
平台背景: 操作系统:win7  64bit 开发板:DE2-115 Quartus ii:15.0及配套的NIOS ii开发平台 一.硬件系统的建立 1.在Quartus里新建工程,这是很基本的就不在介绍了 2.新建一个bdf文件并保存,设置为顶层文件 2.打开Qsys 3.添加NIOS ii process也就是我们的cpu,重命名为cpu,在这里选择f型的,这里不需要设置什么,Vector页要等我们添加好SDRAM.epcs或者是RAM后才可以设置现在是不会有这些选项的,其中Reset V…
给NIOS II CPU增加看门狗定时器并使用   配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed period 不勾选Readable snapshot 勾选System reset on timeout.(Watchdog) 不勾选Timeout Pulse (1 clock wide) 这部分配置可以参见"Embedded Peripheral IP User Guide.pdf"中Inte…
DE1-SOC开发板上搭建NIOS II处理器运行UCOS II   今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过程失败.因此特地记录下来,以防日后忘记.   第一步:建立Quartus II工程     建立Quartus II工程时需要注意以下几点 器件选择为EP5CSEMA5F31C6N: 工程路径中不得出现非法字符(空格和中文字符): 开发工具选择Quartus II 13.1及以上,这里我选择的版本为…
给NIOS II CPU增加看门狗定时器并使用 配置看门狗定时器: 1. 设置计时溢出时间为1秒 2. 计数器位宽为32位 3. 勾选No Start/Stop control bits 4. 勾选Fixed period 5. 不勾选Readable snapshot 6. 勾选System reset on timeout.(Watchdog) 7. 不勾选Timeout Pulse (1 clock wide) 这部分配置可以参见“Embedded Peripheral IP User G…
SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建立 Quartus II 工程 建立 Quartus II 工程时需要注意以下几点 1. 器件选择为 EP4CE10F17C8N: 2. 工程路径中不得出现非法字符(空格和中文字符): 3. 开发工具选择 Quartus II 11.0及以上,这里我选择的版本为 Quartus II 15.1. 4…
简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Avalon总线的用户外设. SOPC Builder提供了一个元件编辑器,通过这个元件编辑器我们就可以将我们自己写的逻辑封装成一个SOPC Builder元件了.下面,我们就以PWM实验为例,详细介绍一下定制基于Avalon总线的用户外设的过程. 我们要将的PWM是基于Avalon总线中的Avalon…
给NIOS II CPU添加一颗澎湃的心——系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchdog工程复制.粘贴并重命名为08_sysclk_timer.在Quartus II中打开该工程,然后点击Qsys快捷图标打开Qsys组件,如下图所示: 在Qsys中,打开工程目录(08_sysclk_timer)下的mysystem.qsys工程. 打开后,在左侧的IP列表中输入"timer&quo…
问题来源与对友晶提供的ISP1362 IP核的使用,由于Quartus II版本问题,它提供的IP基于7.0版本,而我用的版本为11.1,在SOPC Builder中重新加载IP,就出现了上述的错误报告,在网上找了资料,以一下方法解决:   将avalon_slave_1_irq 的Inteface类型设置为interrupt_sender,Signal Type设置为irq_n,后续中断设置为对将avalon_slave_0,IP编辑过程是没错误了,但是添加的时候会出现将avalon_slav…
本文先总结不同AXI IP核的实现的方法,性能的对比,性能差异的分析,可能改进的方面.使用的硬件平台是Zedboard. 不同的AXI总线卷积加速模块的概况 这次实现并逐渐优化了三个版本的卷积加速模块,先简要描述各个版本的主要内容. 版本一 版本一主要是用来测试AXI总线IP核的实现可能. 该模块拥有19个32位寄存器 其中前9个寄存器用来保存需要计算的值 后面9个寄存器用来保存卷积核 在读取第19个寄存器的地址的时候计算9个寄存器的卷积和(该计算可以在一个时钟周期内完成) 9个寄存器单独赋值,…
本文将利用C语言和VHDL语言分别实现DES加密,并在8051和FPGA上测试. 终于有机会阅读<深入浅出密码学一书>,趁此机会深入研究了DES加密的思想与实现.本文将分为两部分,第一部分为简单的C语言实现,第二部分为FPGA实现并在NIOS II核上测试该模块. DES加密的思想 DES加密的由来网络上资料非常了,这里给出wikipedia链接: 维基百科 DES加密主要利用了两个工具 利用替换来实现混淆,如DES加密中的S_box ,即将明文和密文之间存在的关系尽可能模糊. 利用位置换来实…
之前在使用Altera的三速以太网MAC IP的基础上,完成了UDP协议数据传输.此次为了将设计移植到xilinx FPGA上,需要用到xilinx的三速以太网MAC IP核,当然也可以自己用HDL编写,但必须对数据链路层协议有非常清晰的认识.以下是在使用xilinx 三速以太网MAC过程中的一些记录和总结. 在使用IP核传输数据之前要对MAC层功能有个了解.MAC层功能用一个词概括就是"成帧解帧",具体来讲TX方向对用户侧发送来的MAC帧添加前导码和帧尾校验和,对长度过短帧会在帧尾填…
利用Quartus II的LPM_counter IP核进行设计(利用IP核设计可以迅速高效的完成产品的设计) 新建工程 调用IP核 创建一个新的IP核 选择LMP_COUNTER,语言类型,输出路径. 选择希望输出的寄存器是多少位的,计数类型, 选择计数器类型(直接计数还是以模的形式计数),是否需要时钟使能和计数使能信号.进位链的输入和进位链的输出. 清零加载等信号 之后一直next直到finish 创建成功后的IP核的文件信息 将counter.v文件加载到软件中 打开可以看到其中的接口文件…
本次设计源码地址:http://download.csdn.net/detail/noticeable/9914173 实验现象:通过串口将数据发送到FPGA 中,通过quartus II 提供的in system memory content editor 工具查看RAM中接收到的数据,当需要是,按下按键KEY0,将FPGA 的RAM 中存储的数据通过串口发送出去. 知识点: (1)存储器IP核的使用(2)in system memory content editor 内存查看工具的使用 系统…
前言 本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像:图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果.一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当…
1.新建工程 2.添加原理图文件 注:似乎Nios II工程都需要涉及到原理图编程. 3.进入Qsys进行内核设计 注:启动Qsys后,系统已经为内核默认添加了一个组件clk_0. 4.设置时钟名字和频率 注:开发板上的时钟输入为50MHz. 5.添加Nios II核   注:选择Nios II Core 为:Nios II/f,其他选项卡均保持默认设置. 6.进行时钟连接操作   7.添加On-Chip-Memory(RAM)核   注:同时,需要设定片上内存大小,在此,我们设定为40960,…
在用Nios II做外设时序驱动的时候,经常会用延时函数.有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M.因此,提前测试硬件运行延时情况并编写今后常用的延时函数有一定的意义.软件:Quartus II 9.0, Nios II 9.0 硬件配置: 1.  在SOPC中调用Interval Timer核 图 1 调用Interval Timer核 2.配置Interval Time 图 2 Interval…
Quartus II提供的LPM_couter IP核的使用 FPGA设计方式: 原理图,Verilog HDL设计方式,IP核输入方式 创建IP核 点击TOOLS—IP catalog-libray-Arithmetic-LPM_COUNTER 选择希望输出的寄存器是多少位的,计数类型. 选择计数器类型(直接计数还是以模的形式计数),是否需要时钟使能和计数使能信号.进位链的输入和进位链的输出. 清零加载等信号 创建成功后的IP核的文件信息 将counter.v文件加载到顶层文件中 Ip核已经做…