IP核

Zynq-7000 rgb2ycbcr IP的创建与使用

作者:OpenSLee

1 背景知识

IP(Intellectual Property)在嵌入式FPGA设计中,指的是某些设计好的模块,分为软件模块和硬件模块。这些模块,一般都是已经测试好,所有功能完善的,由一些用户自己设计的。有些模块是免费的,也有收费的模块。所有用户都可以将这些IP核(IP Core)导入到自己的工程中,同样,所有用户也都可以定制自己的IP核。

将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。理想地,一个知识产权核应该是完全易操作的--也就是说,易于插入任何一个卖主的技术或者设计方法。通用异步接发报机(UARTs)、中央处理器(CPUs)、以太网控制器和PCI接口(周边元件扩展接口)等都是知识产权核的具体例子。

Xilinx加法器IP核adder

1.加法器IP核配置

2.adder_top.v代码
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 10:20:30 07/19/2017
// Design Name:
// Module Name: adder_top
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//

Vivado IP集成器(IPI)必知必会IP核

Vivado IP集成器(IPI) 里怎么分总线?
相反,Vivado IP集成器(IPI) 里怎么合总线?
Vivado IP集成器(IPI) 里怎么做总线信号的逻辑操作?
Vivado IP集成器(IPI) 里怎么给常量(怎么接地/拉1)?
……

常用IP
上述功能,都是在图形化设计环境下,很常用的功能;
但是Vivado中并没有明确的指示引导初级玩家,那么FPGAPlayer就为广大玩家献上本文。
先拉出这几个IP亮下相。

任意根信号(任意位宽)合成一个总线信号
应该不用多解释,左侧(输入)可以支持32个信号,每个信号最大可以是4096bit位宽,并且可以设置为AUTO模式,在连接时自动识别位宽;IP会合成为一个总线信号输出。

Xilinx 浮点数IP核的用法- 定点数转浮点数

首先调用IP核

标注1:选择定点数转浮点数

标注1:32位定点数

标注2:数字格式,符号位,整数位和小数位

标注1,2:转化为的浮点数可以是单精度也可以是双精度。

标注3:为转化后的数据格式。

仿真如下:

Xilinx FIR IP核的的使用及延时问题

前一段时间一直在研究通信系统,必然就会和各种滤波器打交道,同样也遇到了一些问题。比如说本文的主要内容,滤波器的延时问题。

在生成滤波器IP核之前需要产生抽头系数,这个抽头系数的阶数是自己设定的,阶数越高代表滤波器乘累加运算越多,但是阶数大小的选择要看是否满足自己的设计要求(例如衰减db是否满足要求)。同时,生成的滤波器抽头系数的值是与自己设计滤波器的各种参数确定的,如数据采样速率,通带截止频率、阻带起始频率(低通)、滤波器类型等。

这些抽头系数可以用MATLAB生成,MATLAB中有一个FDATool的工具,以图形化的方式供使用者产生所需的滤波器,然后将系数导出(以coe格式),这样我们在ISE中新建FIR IP核之后就可以直接导入刚刚产生的抽头系数表,非常方便。

下面直接开始用MATLAB生成抽头系数表:

1、利用 matlab 的 FDATool,产生需要的滤波器系数,打开【FDATool】

利用Xilinx FSL总线自定义IP核(下)

基于FSL总线的IP核定义好之后,下面开始添加IP核
首先hardware——>configure coprocessor 选择刚才定义的led_ip,点击add
如果是第一次添加FSL总线,会弹出一个警告,警告会在后面去除,先点OK或者yes。

到ports栏,展开led_ip_0 右击led 选择 make external 然后会在上面external ports看到 led_ip_0_led_pin 是最终要输出到led灯的。

利用Xilinx FSL总线自定义IP核(上)

一、创建IP核
首先打开XPS,建立一个工程之后(选择AXI总线),建立工程之后,点击project——>creat and import peripheral wizard界面如下:以点亮一个led为例

点击next 选择creat templates for a new peripheral

next,默认选择 to an XPS project

next,取名为led_ip。版本号也很重要,最初为1.00

Vivado使用技巧(二):封装自己设计的IP核

概述

  Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计。“IP Integrator”提供了原理图设计的方式,只需要在其中调用设计好的IP核连线。IP核一部分来自于Xilinx官方IP;一部分来自于第三方IP,其中有的是在网络上开源的;另一部分就是自己设计的IP。有时候我们需要把自己的一个设计反复用到以后的工程中,利用Vivado的“IP Package”将其封装起来,再以后的工程中直接调用即可。

  本文致力于讲述如何将自己的设计封装为IP核,以及示范一下如何在其它工程中调用自己设计好的IP核。本文采用的设计是一个简单的位宽可设置的加法器。博主使用的Vivado版本是2017.1,其它版本在一些设置的地方可能存在一些差异。

封装IP

  1. 首先建立一个工程用于设计IP核,这个工程最好放在Vivado目录下或不会被删除的地方。添加一个源文件,输入一个简单的组合逻辑加法器的代码:
`timescale 1ns / 1ps

module Add_USR_IP #(parameter WIDTH = 1)(
input [WIDTH:0] a,
input [WIDTH:0] b,
output cout,

Vivado FIR IP使用方法

在matlab中使用fdatool设计自己想要的数字滤波器,然后保存文件为.coe文件。

在vivado中调用FIR IP核,在Select Source处,选择COE File。

在Filter Type中可以选择插值,抽取等选项。

Number of Channels 和Number of Paths 分别设置通道数为3和路径数为2(通道之间是时分多路复用,相当于一个帧有3个时隙;路径数相当于并行数据,相当于有两路信号)。Input Sampling Frequency 设置的是单个通道的频率。Clock Frequency 设置的是工作的时钟频率。3个通道对应的信号的输入的频率=3.84*3=11.52MHz。输入一个数据需要的时钟数184.32/11.52=16 。插值倍数为2 ,则输出的频率=11.52*2=23.04MHz 输出一个数据需要的时钟数184.32/23.04=8

图像信号处理 (ISP) 流水线

logiISP-UHD 图像信号处理流水线 IP 核是一条超高清(UHD,包括 4K2K)ISP 流水线,可在基于 Xilinx 全可编程器件的 Smarter Vision 嵌入式设计中实现输入视频流的数字处理和画质增强。logiISP-UHD IP 核不仅可接受由不同传感器生成的多种格式的视频输入,而且还可去除坏点,解拼 Bayer 编码视频,更正图像色彩和伽玛,从视频中过滤噪声,收集视频分析数据用于各种控制算法,并操作视频数据格式及色域。 除了标准 IP 核交付件之外,Xylon 还可提供基于自动白平衡 (AWB) 和自动曝光 (AE) 处理器的许可控制算法,这些算法与 ISP 流水线收集的视频分析数据协同工作。

logiISP IP 核能够轻松与 logiHDR 高动态范围 (HDR) 流水线 IP 核一起整合在高级视频处理流水线中。这种流水线可从高对比度场景中提供最大画面的细节,例如太阳光直射目标以及极端阴影下目标的场景。

主要性能和优势

  • 完整的可配置超高清 ISP 流水线
  • 可配置的 ISP 块: 坏点校正、彩色滤波器阵列插值、图像统计、图像增强、色彩空间转换器等
  • 数字处理、增强输入视频流的质量,并可收集视频统计数据
  • 同步内容