ZYNQ的优势在于通过高效的接口总线组成了ARM+FPGA的架构.我认为两者是互为底层的,当进行算法验证时,ARM端现有的硬件控制器和库函数可以很方便地连接外设,而不像FPGA设计那样完全写出接口时序和控制状态机.这样ARM会被PL端抽象成“接口资源”:当进行多任务处理时,各个PL端IP核又作为ARM的底层被调用,此时CPU仅作为“决策者”,为各个IP核分配任务:当实现复杂算法时,底层算法结构规整可并行,数据量大,实时性要求高,而上层算法则完全相反,并且控制流程复杂,灵活性高.因此PL实现底层算…
本帖最后由 xinxincaijq 于 2013-1-9 10:27 编辑 一步一步学ZedBoard & Zynq(四):基于AXI Lite 总线的从设备IP设计 转自博客:http://www.eeboard.com/bbs/thread-6206-1-1.html 本小节通过使用XPS中的定制IP向导(ipwiz),为已经存在的ARM PS 系统添加用户自定IP(Custom IP ),了解AXI Lite IP基本结构,并掌握AXI Lite IP的定制方法,为后续编写复杂AXI IP…
关于Vivado如何创建自定义IP核有大量的参考文章,这里就不多加阐述了,本文目的主要是解决如何在新建工程中引用其它工程已经自定义封装好的IP核,从而实现自定义IP核的灵活复用. 举个例子,我们的目标是能在新建工程里成功调用ov5640_RGB565_0这个自定义IP核 但是在新建工程里由于没有加载Ov5640这个IP核的封装打包路径,所以我们在原理图直接添加该IP核时是搜索不出这个IP核的元器件的 调用步骤如下: 1)打开或者新建原理图 2)点击“IP setting” 3)切换至“Repos…
在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的信息,可以自己修改某些信息:…
如果使用静态地址对齐(每个寄存器在Avalon总线上占4个字节的地址)设置IP使用静态地址对齐的方式为,在hw.tcl脚本里加上一局话:set_interface_property as addressAlignment {NATIVE}在软件编程时 可以使用IOWR(基地址,寄存器编号(n),数据)对自定义IP的第n个寄存器进行写入操作 可以使用IORD(基地址,寄存器编号(n)) 对自定义IP的第n个寄存器进行读出操作 如果使用动态地址对齐,(每个寄存器在Avalon总线上占 数据位宽/8个…
关于自定义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_…
一.前言 最近花费很多精力在算法仿真和实现上,外设接口的调试略有生疏.本文以FPGA控制OLED中的SPI接口为例,重新夯实下基础.重点内容为SPI时序的RTL设计以及AXI-Lite总线分析.当然做些项目时可以直接调用Xilinx提供的SPI IP核,这里仅出于练习的目的考虑. 二.接口时序分析 本项目用的OLED型号为UG-2832HSWEG04,核心控制器是SSD1306.该芯片支持并口.I2C以及SPI接口,这里采用4线SPI作为数据总线.4线SPI接口包括: SCLK:串行时钟,SSD…
本文先总结不同AXI IP核的实现的方法,性能的对比,性能差异的分析,可能改进的方面.使用的硬件平台是Zedboard. 不同的AXI总线卷积加速模块的概况 这次实现并逐渐优化了三个版本的卷积加速模块,先简要描述各个版本的主要内容. 版本一 版本一主要是用来测试AXI总线IP核的实现可能. 该模块拥有19个32位寄存器 其中前9个寄存器用来保存需要计算的值 后面9个寄存器用来保存卷积核 在读取第19个寄存器的地址的时候计算9个寄存器的卷积和(该计算可以在一个时钟周期内完成) 9个寄存器单独赋值,…
关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP 首先需要注意此处寄存器数量的配置,它决定了slv_reg的个数. 读写数据,即是对寄存器slv_reg进行操作: 关于AXI写数据的代码 关于PS怎么通过函数读取AXI总线上的数据,后面有例程进行解释. 此always块使用的总线时钟,和总线上的复位信号,rlcd_rgb 存储slv_reg0的数据,即: PS-> slv_reg0(write)-> rlcd_rgb 以上操作即是: wlcd_xy -> reg…
使用 AXI_Lite 从口实现寄存器列表的读写,并且自己封装为一个自定义 IP,以便以后使用.本次记录的是 M_AXI_GP0 接口,此接口是 ARM 作为主机,FPGA 作为从机,配置 FPGA 的寄存器或者 RAM. 一.ZYNQ AXI 总线拓扑结构图 黄色部分即为 FPGA 部分. 二.新建 AXI_Lite 寄存器列表 1..点击主页上方菜单 Tools --- Create adn psckage IP ,点击Next 2.选择第四项,Next 3.选择 IP 名称和存放的路径,N…
xilinx AXI相关IP核学习 1.阅读PG044 (1)AXI4‐Stream to Video Out Top‐Level Signaling Interface (2)AXI4‐Stream to Video Out Connectivity (3)Interlace Signals on Video Cores (4)Field ID Connections with a Frame Buffer 2.阅读PG059 (1)AXI Interconnect Core Diagram…
笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109.关于OFDM理论背景,可参考如下博文:给"小白"图示讲解OFDM的原理 - CSDN博  https://blog.csdn.net/madongchunqiu/article/details/18614233/ 我们直接来看看FFT IP核配置界面: 由于OFDM接收机中大多是数据串并转换后…
目的: 自定义一个IP核,通过AXI总线与ARM系统连接 环境: Win7 32bit Vivado2014.4.1 Xilinx sdk2014.4 开发板: Zc702 第一步: 新建一个自定义的HDL模块,本实验新建一个16位加法器,保存为test.v,代码如下 module test( input [15:0] a, input [15:0] b, input clk, output reg [15:0] sum ); always@(posedge clk) begin sum  <=…
之前在使用Altera的三速以太网MAC IP的基础上,完成了UDP协议数据传输.此次为了将设计移植到xilinx FPGA上,需要用到xilinx的三速以太网MAC IP核,当然也可以自己用HDL编写,但必须对数据链路层协议有非常清晰的认识.以下是在使用xilinx 三速以太网MAC过程中的一些记录和总结. 在使用IP核传输数据之前要对MAC层功能有个了解.MAC层功能用一个词概括就是"成帧解帧",具体来讲TX方向对用户侧发送来的MAC帧添加前导码和帧尾校验和,对长度过短帧会在帧尾填…
在有线连接的世界里,以太网(Ethernet)无所不在.以太网具有各种速度模式.接口方式.以及灵活的配置方式.现在的以太网卡都是10/100/1000Mbps自适应网卡.以太网的物理层(PHY)通常使用独立的芯片实现,它和FPGA芯片连接的信号分为三组:配置数据(MDIO)控制器,中断控制器,PHY接口. PHY接口 以太网的MAC和PHY之间的互联采用标准MII接口协议.随着技术的发展该接口协议有不同的变体,包括有:MII,RMII,GMII,RGMII,SGMII. MDIO控制器 MDIO…
本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右边会出现生成对话框: 按箭头指示顺序进行设置:要设置生成ip核的路径(可以新建一个文件夹ipcore来放置IP核,若有多个IP核则在ipcore下分别建立文件夹),IP核的名字,以及语言的类型:verilog或VHDL.最后点击Customize. 2. 在上一步设置之后会出现下面的设置界面,先设置…
问题来源与对友晶提供的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…
Zedboard OLED Display Controller IP v1 介绍 Author:zhangxianhe 本文档提供了快速添加,连接和使用ZedboardOLED v1.0 IP内核的说明.运行在ARM处理器系统上的测试应用程序用于通过其驱动程序的功能与IP进行通信. Vivado设计套件被用作开发环境.硬件验证是在Zedboard上完成的,然而,这个IP可以很容易地应用于其他主板或嵌入式系统. 平台 硬件:Zedboard xc7z020clg484-1 软件:Vivado 2…
关于IP核中中断信号的使用---以zynq系统为例 1.使能设备的中断输出信号 2.使能处理器的中断接收信号 3.连接IP核到处理器之间的中断 此处只是硬件的搭建,软件系统的编写需要进一步研究. 搭建更复杂的中断系统 AXI Timer核需要深入学习,为什么和中断控制有关系. 将两个中断信号合并成一个信号,需要使用ip核:…
外带一个月前啃的一个星期,加本星期心无旁骛,啃出些心得,广惠后人.但愿有用. trn信号是数据链路层的信号 TLP包是数据链路层传给transaction层的包 解包需要一个transaction的协议,所有req信号都是属于transaction层的信号,都是从包内数据解得的 数据链路层中trn_rd是传输TLP包的数据线 其他线都是辅助trn_rd传输数据的.比如起始结束 数据掩膜之类的. header的叫法只属于transaction,header,payload,digist组成tlp数…
 Vivado2017.2 中BRAM版本为 Block Memory Generator Specific Features  8.3 BRAM IP核包括有5种类型: Single-port RAM   单端口RAM Simple Dual-port RAM      简单双端口RAM(A写数据B读数据) True Dual-port RAM  双端口RAM Single-por ROM  单端口ROM Dual-port ROM  双端口ROM BRAM核支持两种总线形式的输入输出:Nat…
1.建立工程 首先和Vivado设计一中一样,先建立工程(这部分就忽略了) 2.create block design 同样,Add IP 同样,也添加配置文件,这些都和设计一是一样的,没什么区别. 双击,ZYNQ7 Processing System 下面的就和设计一中有一些不一样了: 选择PS-PL Configuration,Enable M_AXI_GP0 interface 选择General , Enable Clock Resets 并且选择 FCLK_RESET0_N ,如下:…
最近学习了DDR3控制器的使用,也用着DDR完成了一些简单工作,想着以后一段可能只用封装过后的IP核,可能会忘记DDR3控制器的一些内容,想着把这个DDR控制器的编写过程记录下来,便于我自己以后查看吧,哈哈哈,闲话少说开始工作.这个DDR3控制器分两节内容吧,第一节就是MIGIP核的简单介绍和生成这个IP核再介绍一下自己封装这个IP的整体架构,第二节就来介绍一下各个模块的内容. 1.1 MIG IP 核介绍 1) MIG IP核架构 通过查阅ug586_7Series_MIS,我们可以看到MIG…
本系列整理一下基于 Xilinx A7 芯片的 DDR3 的使用,此处采用的 DDR3 IP核为软核,即采用 FPGA 逻辑单元.寄存器.查找表等搭建出来 IP核.从 IP 核的调取开始,接着读写测试,最后争取实现一个基于 DDR3 的完整小项目.   1.建立工程,点击 IP Catalog,在界面右侧输入 memory,选择 IP,双击打开.   2.打开 DDR3 IP 核调取界面,该界面中主要是总结了所选芯片的型号等,点击 Next.   3.定义控制器名称,输入控制器数量,Next.(…
关于FFT IP核的配置,网上有很多相关的资料可以参考,但是唯独涉及到scaled压缩因子设置这个参数,资料却非常匮乏,这是个什么参数,应该整么设置,设置后对结果输出会有什么影响,整样才能知道它设置的合理不合理? 先来看一下官方说明手册里关于scaled的说明: 翻译过来就是:对于Pipelined Streaming I/O结构,将临近的一对基2阶组在一起,即阶0和阶1为组0,阶2和阶3为组1,阶4和阶5为组2等等.例如数据长度N=1024,Scale_SCH = [10 10 00 01 1…
https://zhuanlan.zhihu.com/p/32786076 最近接触到一个项目,需要使用PCIE协议,项目要求完成一个pcie板卡,最终可以通过电脑进行通信,完成电脑发送的指令.这当中需要完成硬件部分,使用FPGA板实现,同时需要编写Windows下的驱动编写.初次接触到PCIE协议,网络上的相关教程不够清晰,让人看了之后不知所以然,不适合完全没有基础的人学习(就是我这样的人).经过较长时间阅读相关文档,其中也走了不少弯路,最后对PCIE的IP核使用有了一定的了解,所以想写下这篇…
调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是编译所有文件,这里选择 Compile->Compile All,如下图所示: 在脚本窗口中将出现一行绿色字体 # Compile of altera_mf.v was successful. # Compile of counter.v was successful. # Compile of r…
调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的基础上进行设计的,关于设计仿真流程的过程所涉及到的重复内容将不再详述,将会一笔带过,如果深入学习了<基于modelsim-SE的简单仿真流程>这一小节,则下面的内容将会非常的简单. 编写RTL功能代码 本小节通过调用altera的ROM宏功能模块,FPGA的ROM模块主要用于存储数据,可以在上电的…
原地址modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)   1.打开D:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlibgui.exe,nt64表示系统是64位,如果是32位,换成nt,然后按照界面所示一步一步执行, 2.修改modelsim.ini,将其属性修改为可写,然后将(注意第一步中我只将verilog的库文件编译了) cpld_ver = D:\Xilinx\14.7\ISE_DS\ISE\verilog\mti_s…