ip核

【分享】PCIE IP核介绍

人盡茶涼 提交于 2020-02-07 08:03:01
【分享】PCIE IP核介绍 一. 什么是PCIE 在介绍IP核之前,先了解下PCIE是什么。 PCIE是一种高速串行计算机扩展总线标准,属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,支持主动电源的管理,错误报告,端对端的可靠性传输,热插拔以及服务质量等功能。优点有数据传输速率高,发展潜力相当大。 二. PCIE IP核 PCI-Express IP核,可以实现PCIE协议物理层到数据链路层、再到事务层的协议接口信号转换。因此这里选择在PCIE协议 IP核的基础上,直接在PCIE协议的事务层进行DMA控制器的设计。 IP核是知识产权模块的意思,EDA开发中具有相当的地位。IP主要分为软IP、固IP和硬IP。软IP是用Verilog/VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。固IP是完成了综合的功能块。硬IP提供设计的最终阶段产品——掩膜。 IP核将一些在数字电路中比较常用,但是复杂的功能块,如、SDRAM控制器、等设计成可修改参数的模块。但是CPLD/FPGA的规模越来越大,设计越来越复杂,所以设计者的任务难度大大的提升了。但是调用IP核能避免重复劳动,减轻工程师的负担,因此使用IP核是能够缩短大量产品上市时间。 利用IP核设计电子系统,引用方便,修改基本元件的功能容易

玩转Zynq连载22——[ex03] 基于Zynq PL的PLL配置实例

大城市里の小女人 提交于 2020-01-29 03:24:34
特权同学玩转Zynq连载22——[ex03] 基于Zynq PL的PLL配置实例 1 概述 本实例通过PLL产生的不同频率的时钟,分别驱动3个LED指示灯闪烁一样的频率。本实例的重点其实不是LED,而是IP核的应用,当然,仅以PLL IP核为例。 2 模块化设计 参考文档《玩转Zynq-基础篇:基于FPGA的模块化设计.pdf》。 3 PLL IP核添加配置 3.1Vivado标准IP核概述 我们常说的IP核,也就是知识产权(Intellectual Property),是那些己验证的、可重利用的、具有某种确定功能的设计功能模块。IP核一般分为软IP(soft IP core)、固IP(firm IP core)和硬IP(hard IP core)。软IP是用某种高级语言来描述功能块的行为,但是并不涉及用什么电路和电路元件实现这些行为。固IP除了完成软IP所有的设计外,还完成了门电路级综合和时序仿真等设计环节,一般以门电路级网表形式提交用户使用。硬IP则是完成了综合的功能块,已有固定的拓扑布局和具体工艺,并己经经过工艺验证,具有可保证的性能。设计深度愈深,后续工序所需要做的事情就越少,但是灵活性也就越小。 在Xilinx的FPGA器件中,IP核设计是非常重要并且必不可少的一部分,应该说,前述的软IP、固IP和硬IP,在我们Zstar板载的Zynq上都能够找到踪影

使用python生成quartus 2中rom IP核的初始化 .mif文件

…衆ロ難τιáo~ 提交于 2020-01-21 07:33:44
使用python生成quatus 2中的.mif文件 quartus中的.mif文件如果合理使用,可以大大节省整个工程的资源开销。因为如果用逻辑资源模拟ram或者rom,不仅消耗资源多,而且时序表现也不好。同时,初始化这些寄存器也会消耗额外的逻辑资源。 不用matlab生成.mif文件的原因 在这个应用上,matlab能够做的事,python也能完成。 我的工程需要用到4个字节以上的数据类型,当matlab的mod函数处理这些数据时,返回了错误的值。 for i=1:9 a(i)=mod((4357*69069^(i-1+j*9)),4294967296); end 当左边的数大于右边的数时,mod要么返回0,要么直接Nan,不知道怎么解决这个问题。 所以,只能用python。 for i in range(9): a[i]= (4357*69069**(i*64+j))%4294967296 for i in range(3): f.write(f'\t{i}:{a[i]};\n'); f.write后的单引号前的 f 很重要,有了它,要写入文件的字符串中的大括号内的数便可以直接由其值替换,而不需要.format参数化输出。 来源: CSDN 作者: weixin_43590689 链接: https://blog.csdn.net/weixin_43590689/article

使用Xilinx CORE Generator心得

冷暖自知 提交于 2020-01-20 03:52:46
初步使用Xilinx CORE Generator: 参考书籍:《Xilinx ISE 5.x 使用详解》 EDA先锋工作室 P63-P72:IP核生成工具——CORE Generator 1. 对于如何在工程中加入IP核,是很简单的,我在未看书之前,就可根据提示挑选适当的核,对核进行参数设置,将核加入工程。 2. 接下来是如何使用,在这里,由于我主要使用VHDL语言,仿真工具用ModelSim6.0,综合工具主要使用Synplify7.7,我就只说在这样的环境下如何对该IP核进行元件例化,进行项目配置,并进行仿真与综合。 2.1 元件例化 可使用ISE的Laguage Template,也就是Xilinx 6.2 ISE中工具栏右上角的小灯泡 ,在COREGEN目录下,你会发现,你所用到的IP核的例化语句已经出现在模板里,拷过去就可以直接用了(当然你可能也要视情况进行必要的改动)。 3. 仿真 这里,最主要的问题是库,由于使用了IP核,所以要把XilinxCroeLib加入ModelSim库中。我的经验是:先在当前工程的目录下创建一个xilinxcorelib库,然后把该库文件剪切到modelsim根目录下,最后在modelsim下,选中该库,点击右键选择Edit,将路径高到modelsim下。然后将xilinx\vhdl\src\xilinxcorelib编译到该库中

PCIE项目中AXI4 IP核例化详解

邮差的信 提交于 2019-12-15 13:31:36
PCIE项目中AXI4 IP核例化 本文为明德扬原创文章,转载请注明出处! 本工程实现PCIE的8通道速率2.2GBps通信,并验证数据的正确性。 本工程里已经把PCIE部分做成一个封装的模块,对外提供的是fifo_wr(数据发送fifo)接口和fufi_rd(数据接收的fifo接口),用户只要操作fifo接口,无需关心PCIE的内部驱动。为了便于读者更加明白,可以深入了解PCIE,我们将会制作一个PCIE的连载系列。 今天,首先说一下自定义AXI4的IP核,至于AXI4和PCIE之间有什么联系,敬请关注我们的连载系列文章。 在本篇文章中暂时先不讲解AXI4协议,先来分享例化AXI4的自定义IP核详细步骤。 一、 新建工程 为了节省篇幅,新建工程部分就不详细讲解,以下为我们新建好的工程: 二、 创建自定义IP 点击"Tools"菜单下的"Create and Package New IP",如下图所示: 按照指引,点击"next": 选择AXI4的IP核: 输入IP核的名称: 点击"next": 创建和使用AXI4的IP核 三、 生成BD文件 创建AXI4完毕之后系统会自动生成一个bd文件,如下图所示: 四、 修改IP 五、 修改需求 在修改IP核之后系统会自定的给我们打开另一个工程,我修改为我们自己的需求,打开的工程如下所示: 修改自己的逻辑,添加自己的逻辑端口: 六、 封装IP

DDR3(3):IP核写

非 Y 不嫁゛ 提交于 2019-12-04 07:02:16
  调取的 DDR3 控制器给用户端预留了接口,用于实现对该 IP 核的控制,本篇介绍一下 DDR3 IP核写。   在生成 DDR3 IP 核的界面中,可以找到 User Guide 手册,DDR3 的使用将围绕这个手册来展开。 一、接口框图   打开 User Guide 第 90 页,可以看到 DDR3 IP 核的接口框图如下所示。可以看到,中间部分就是我们调取的 DDR3 IP 核,它预留了两组总线,右边一组直接绑定在 DDR3 芯片端口,其总线信号名称均以 ddr 开头,这部分总线只需要在 top 层设为端口即可,无需自己写代码控制。而左边一组则是留给用户端逻辑,其总线信号名称多以 app 开头,这些信号则需我们自己来编写实现。 二、总线详解   对于 User Interface用户端逻辑信号, User Guide 第92页里有个汇总表,我们简单翻译一下。 1、命令总线(表格红色部分),其时序图如下所示。 2、写总线(表格黄色部分),其时序图如下所示。共有 3 种传输模式。模式 1 指的是命令和数据同时发送到 IP 核,模式 2 指的是数据提前于命令发送到 IP 核,模式 3 指的是数据落后于命令发送到 IP 核。模式 1 和 2 均可稳定传输,而模式 3 必须满足一个条件,即数据落后命令的时间不能超过两个时钟周期。一般来说,模式 2 比较常用,时序设计相对容易。  

DDR3(2):IP核初始化

不羁的心 提交于 2019-12-03 08:08:21
  调取 DDR3 IP核后,是不能直接进行读写测试的,必须先进行初始化操作,对 IP 核进行校验。本篇采用 Modelsim 软件配合 DDR3 IP核生成的仿真模型,搭建出 IP核的初始化过程。 一、顶层文件 1、生成 DDR3 IP 核后,在 Source 界面空白处右键点击 Add Source,添加顶层文件。 2、在 DDR3_HDMI\DDR3_HDMI.srcs\sources_1\ip\ddr3_ctrl\ddr3_ctrl\user_design\rtl\ddr3_ctrl.v 可得到 top_ddr3_hdmi 需要的输入输出端口,将其复制过来。 1 module top_ddr3_hdmi 2 //========================< 端口 >========================================== 3 ( 4 // inout ---------------------------------------- 5 inout wire [15:0] ddr3_dq , 6 inout wire [ 1:0] ddr3_dqs_n , 7 inout wire [ 1:0] ddr3_dqs_p , 8 // output --------------------------------------- 9 output

FPGA数字信号处理(九)Vivado FFT IP核实现

匿名 (未验证) 提交于 2019-12-03 00:27:02
该篇是FPGA数字信号处理的第9篇,选题为DSP系统中极其常用的FFT运算。上篇介绍了Quartus环境下FFT IP核的使用“FPGA数字信号处理(八)Quartus FFT IP核实现 https://blog.csdn.net/fpgadesigner/article/details/80690345 ”。本文将介绍在Vivado开发环境下使用Xilinx提供的FFT IP核进行FFT运算的设计。 Xilinx的FFT IP核属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同时也破解了绝大多数可以破解的IP核。只要在IP Catalog界面中Fast Fourier Transform的License状态为“Included”即可正常使用。 与Quartus中FFT IP核相比,Vivado的FFT IP核配置起来更复杂,功能也更强大。 打开主界面,左边是IP核的接口图(IP Symbol)、实现消耗的资源等信息(Implementation Details)和计算FFT所需的时间(Latency),右边是Configuration、Implementation和Detailed Implementation三个标签卡。 Vivado的FFT IP核支持多通道输入

使用ISE创建IP核

匿名 (未验证) 提交于 2019-12-03 00:22:01
IP核介绍: IP(知识产权)核将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等做成一个“黑盒”或者可修改参数的模块,供设计者使用。IP核包括硬IP与软IP。调用IP核能避免重复劳动,大大减轻设计人员的工作量。 IP Core 生成器( Core Generator )是 Xilinx FPGA 设计中的一个重要设计工具,提供了大量成熟的、高效的 IP Core 为用户所用,涵盖了汽车工业、基本单元、通信和网络、数字信号处理、 FPGA 特点和设计、数学函数、记忆和存储单元、标准总线接口等 8 大类,从简单的基本设计模块到复杂的处理器一应俱全。配合 Xilinx 网站的 IP 中心使用,能够大幅度减轻设计人员的工作量,提高设计可靠性。 Core Generator 最重要的配置文件的后缀是 .xco ,既可以是输出文件又可以是输入文件,包含了当前工程的属性和 IP Core 的参数信息。 下面介绍在ISE中新建IP类型的源文件来启动Core Generator的方法: 1)在ISE Project Navigator新建工程, 在工程管理区单击鼠标右键,在弹出的菜单中选择 New Source ,选中 IP 类型,在 File Name 文本框中输入 adder (注意:该名字不能出现英文的大写字母),然后点击 Next 按键,进入 IP

Xilinx Vivado Slice IP核说明

匿名 (未验证) 提交于 2019-12-02 23:38:02
介绍 Slice IP用来在总线上进行截位操作, 可配置输入总线位宽,配置输出所需要的位宽,进行截位操作。 如上图,Din Width为输入总线位宽。Din From为需要截取的最高bit位,Din Down to为需要截取的最低bit位,例如,如果需要从32bits中截取低12bits,则Din Width设置为32,Din from设置为11,Din Down To设置为0;如果只截取1bit,则将Din from与Din Down To设置为同样的数,如果截取bit位为5,则Din from与Din Down To同时设置为5. 文章来源: https://blog.csdn.net/shiyangcool/article/details/90753805