专栏首页FPGA开源工作室Zynq-7000 rgb2ycbcr IP的创建与使用

Zynq-7000 rgb2ycbcr IP的创建与使用

Zynq-7000 rgb2ycbcr IP的创建与使用

作者:OpenSLee

1 背景知识

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

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

知识产权核心分为三大种类:硬核,中核和软核。硬件中心是知识产权构思的物质表现。这些利于即插即用应用软件并且比其它两种类型核的轻便性和灵活性要差。像硬核一样,中核(有时候也称为半硬核)可以携带许多配置数据,而且可以配置许多不同的应用软件。三者之中最有灵活性的就是软核了,它存在于任何一个网络列表(一列逻辑门位和互相连接而成的集成电路)或者硬件描述语言(HDL)代码中。

2 rgb2ycbcr IP的建立

对于RGB转ycbcr的理论可参考《FPGA图像处理之rgbtogray算法的实现》。

1) 创建工程添加源文件

2) 点击菜单栏->tools->Create and Package New IP ->Next

3)点击package your current project->Next

4)选择IP Location 这里我们选着Include IP generated files->next->finished

IP Location 放在一个比较好找的位置,以便我们后期的使用

5)对IP进行封装点击

各种参数代码检测无误后点击Review and Package->Package IP

IP 封装完成,以后我们可以使用此IP进行设计。

FPGA开源工作室rgb2ycbcr IP的介绍

如上图所示,clk为像素时钟,i_rgb接口为rgb888格式输入。我们分别引出了o_rgb(RGB888)、o_ycbcr和o_gray接口,完成了一个模块三种颜色空间的输出以便后期设计的使用。

3 zynq-7000的实现

利用《Zynq-7000电子相册的实现》的设计成果。我们在此平台上验证rgb2ycbcr模块。

1)添加IP 点击Project Setting->IP->Repository Manager->+(找到自己IP存放的路径)->OK.

2)添加rgb2ycbcr IP

其他模块的配置和使用在此不再赘述,需要源工程的可以联系FPGA开源工作室。

3)launch SDK

(1)首先选中system右键选中Generate Output Products...

(2)选中system右键选中Create HDL Wrapper...

(3)建立约束文件XDC

(4)生成bitstream。

(5)导出硬件 选择菜单File->Export->Export Hardware...。这里包括bitstream

(6)Launch SDK 选择菜单File->Launch SDK,启动SDK环境。

4)SDK编程

程序我们依然实用《Zynq-7000电子相册的实现》的程序。

5)验证结果

视频欣赏

4 结论

利用IP来完成设计就像搭积木一样方便简单。我们只需要知道IP的功能和接口定义即可方便的使用IP来完成我们的设计,省事又省力。IP的另一个好处是可以复用,不需要每个人都来设计一遍,或者了解里边的算法如何实现。对于该模块的gray和rgb输出有兴趣的同学可以自己验证一下。

本文分享自微信公众号 - FPGA开源工作室(leezym0317),作者:OpenSLee

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于ZYNQ的CameraLink图像采集与边缘检测开发详解

    (1) PL端接入CameraLink相机,通过Base模式采集图像(1280*1024),然后通过VDMA缓存到PS端DDR。

    FPGA开源工作室
  • Vivado IP核锁定的解除方法

    2 下面介绍另一种方法,对应上述方法不能使用的情况(Upgrade Selected 按钮是灰色的 情况)

    FPGA开源工作室
  • Xilinx Vivado 硬件诊断( ila和vio的使用)

    在我们的FPGA设计项目中,硬件的诊断和校验可能会占去超过30%—40%的FPGA开发时间,FPGA的debug也是FPGA设计中重要的一环。掌握并灵活运用F...

    FPGA开源工作室
  • 可能是一份没什么用的爬虫代理IP指南

    李国宝
  • ip地址

    IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上...

    用户7657330
  • IP为什么被Locked?

    在Vivado下使用IP时,有时会发现IP处于被Locked的状态,如下图所示。这个报告是由命令report_ip_status生成。可以看到,一旦IP被锁定,...

    Lauren的FPGA
  • 如何绕过cdn获取网站真实ip进行测试?

    一般网站会使用cdn进行防御,我们访问时会经过cdn然后再经过源站服务器,这样我们进行渗透测试时很容易被拦截。而在这里,我们的思路是这样的:通过找到源站ip之后...

    网e渗透安全部
  • copy_ip你用过吗?

    在Vivado工程中使用IP是非常常见的情形,而且还会出现同一个IP被多次使用。例如,设计中需要用到4个单端口RAM,其区别仅仅是深度或宽度(数据位宽)不一样,...

    Lauren的FPGA
  • IP协议基础知识

    网络层的主要作用是“实现端对端的通信”。在网络世界里,所有的主机都具有“IP地址”。(同时具有IP地址和路由控制能力的设备是“路由器”,而非主机)

    zy010101
  • 如何修改Xilinx IP中文件的只读属性?

    不知道大家有没有遇到过一个问题,就是你想修改xilinx IP中的某些代码,或者想通过debug进一步了解这些代码时,但是发现它不支持修改的,是read-onl...

    瓜大三哥

扫码关注云+社区

领取腾讯云代金券