FPGA 中 IP基础学习

这篇具有很好参考价值的文章主要介绍了FPGA 中 IP基础学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP 是什么?

首先,要知道什么是IP。Intellecture Property,相当于软件领域的API函数库,三方开源项目。要开发一个真正可用的电路设计,不管什么领域,总会使用到一些IP,不太可能从头开始。IP分为硬核和软核,我们今天讲的是软核IP。

IP 的业界标准

IP 为了方便使用,业界对于IP 约定了封装的关键格式定义。IP - XACT ( eXchange ArchiteCTure),这是为了方便大家的IP能够互相通用。具体的内容,可参见:

IP-XACT 这是IP- XACT 的官方网站。

IP-XACT标准的User Guide为:
IP-XACT_User_Guide_2018-02-16.pdf
IPXACT-2014-issues-Dec-2019.pdf

IP 关键定义

component:基础定义

name: IP 核名称
version:IP 核版本
vendor:供应商(开发商)
library:库名称(实际就是分类,可以多个层级的嵌套)

model-parameter: 这是最关键的,定义了参数的名称,类型。

节点名称

节点说明

ipxact:name

参数名称

ipxact:value

参数默认值

属性名称

属性说明

parameterId

参数ID

resolve

解析方式,user和generated,user为用户自己解析,generated为软件自定解析连接。

type

参数类型,目前支持类型有:bit、byte、shortint、int、longint、shortreal、real、string

属性名称

属性说明

parameterId

Id号

minimum

最小值

maximum

最大值

resolve

同上

type

值定义,同上

choiceRef

值枚举,参考choices节点

注意:上面的choice说明该项是枚举值。

choices节点的定义:

节点名称

节点说明

ipxact:name

枚举名称

ipxact:enumeration

枚举值(N个)

model-port:接口定义

这是IP向外给出的接口,方向(进,出),是否出现(可以通过表达式来控制)

节点名称

子节点

子节点

节点说明

ipxact:name

端口名称

ipxact:isPresent

是否有效,通过true或false,或者表达式进行动态控制

ipxact:wire

端口线属性

ipxact:direction

端口方向,in、out、 inout、phantom

ipxact:drivers

端口驱动

ipxact:driver

端口驱动

ipxact:defaultValue

端口默认值

ipxact:qualifier

ipxact:isClock

是否是Clock

ipxact:isReset

是否是Reset

ipxact:isAddress

是否是Address

ipxact:isData

是否是Data

vendorExtensions

自定义的额外属性

eagle:portInfo

自有节点定义,定义端口信息

eagle:type

端口类型,暂定CLOCK、RESET、DATA

model-instantiations:实例化定义

主要约定了真实使用时,需要实例化的一些参数,比如:语言,涉及到哪些文件,涉及到的参数。

注意:参数并不一定是接口。

节点名称

节点说明

ipxact:name

组件实例化的名称

ipxact:language

实例化语言,包括Verilog、VHDL、System Verilog等

ipxact:moduleParameters

定义了Verilog中的所有参数,以DLRAM为例,则为下图中所有的参数。

ipxact:fileSetRef

定义了组件例化的所引用的文件名,参考fileSets节点

fileSets:约定了IP核需要的所有文件。

节点名称

子节点

节点说明

ipxact:name

文件集名称

ipxact:file

文件

ipxact:name

文件名,绝对路径或相对路径

ipxact:fileType

文件类型,如Verilog文件,VHDL文件等

ipxact:logicalName

定义在本xml中所使用的逻辑名称

Model-views:定义了不同视角需要的视图

设计视图,验证视图,物理视图,封装视图等。

节点名称

节点说明

ipxact:name

视图名称

ipxact:displayName

视图显示名称

ipxact:envIdentifier

当前视图的环境标识符,标识视图属于哪个环境,例如设计环境或验证环境等

ipxact:componentInstantiationRef

组件例化的引用

vendorExtensions:用于扩展

供应商自行定义的属性和功能。

表达式

另外,非常关键的是,上述定义的值部分,是可以用表达式的。这样,可以通过用户的不同输入,控制很多属性。表达式支持 SystemVerilog。

IP Catelog

好了,IP定义好了,那什么叫IP Catelog呢?如字面意思,它就是一个IP的集合,为了方便大家搜索,查找到需要的IP。所以,它可以按IP定义中的library和name来组成,没有任何难度,是很好实现的功能。

IP Package

IP Package 就是一个工具,可以把自已的工程打包成一个标准的IP。它包括文件封装,打包,目录版本管理,元数据的定义和相关的文档。还可以导入到客户工程,或者分项给其它用户。

这个可以理解为对 IP-XACT协议中的细节进行定义的过程和辅助的工具。它并不是必须的,因为,如果你足够了解XACT,你完全可以手工完成整个过程。

UI 生成工具

对于model-views中的用户的参数设置界面,可以采用系统内置的列表式,也可以自定义界面,如果自定义界面,则需要自行解析相应的界面定义文件(需要自行实现若干输入UI组件)。一般情况,使用列表式界面即可。对于复杂的输入,则需要自定义界面。

Block Design

如果我们要连接不同的IP,进行组合处理,block design是一个很好的图形工具,使设计工程师能通过拖放和连接IP核来实现的复杂的功能模块。当然,最极端的情况是只有一个IP。当完成连接后,要给到用户使用,一般采取wrapper的方式。

IP Wrapper

通过Wrapper,定义blockdesign的输入,输出,会最终形成一个wrapper,然后用户按黑盒的方式,只需要了解wrapper,来使用真实的IP。所以,wrapper并不是一个设计期的行为,而是一个运行期的动作。因为它的前置还有block design。

IP 例化

IP最终实例化使用有两种情况,一种是用于行为仿真,一种是正常综合使用。基本雷同。

在使用时,非常简单,直接调用wrapper,当然,这时会要求填写一些参数,这时会使用到定义的参数界面。

IP 加密

如果用户想保护自已的IP源码,还可以采用先综合,再封装的方式,将源码隐藏起来,当然,这种方式会强依赖于综合工具,如果不同的产品之间,不一定能通用。

其它

IP实际上是和器件相关的,同一个IP可能在不同器件不一定兼容。这是可能发生的。

对于IP的使用,大概涉及的上述的内容,一开始接触时,容易把几个概念搞混淆。实际上,IP封装和使用的相关概念是比较简单的,自已要做一个IP Packager和 IP Generate,甚至产生IP 的 Repository 都是非常简单的,只需要严格按照 IP - XACT的最新协议来实现即可。

当然,要写好一个IP,那属于硬件电路设计编程的事情,不在这里讨论。我只是在考虑自已要实现IP封装相关的功能,需要做一些什么事情。

 文章来源地址https://www.toymoban.com/news/detail-578439.html

到了这里,关于FPGA 中 IP基础学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA的学习分享--03 时钟IP核

    需要掌握: 1.博宸电子ZYNQ7020DEV开发板 2.Vivado 2018.3 3.一定的verilog语法基础 1.2.1 个人理解 在我看来,时钟IP核就是产生多个时钟的“芯片”。将系统时钟输入此芯片,时钟IP核会根据每个人配备的要求,生成不同的时钟。 不同点在于:1. 时钟频率 2.占空比 “当然,特别专业的

    2024年01月24日
    浏览(28)
  • 学习笔记之FPGA的IP核及其应用

          目录 1. FPGA的IP核定义和分类 2. PLL锁相环  2.1 PLL的基础知识 2.2 PLL核的调用 3. ROM IP核 4. RAM IP核 5. FIFO IP核         FPGA的IP核是在可编程逻辑器件(FPGA)中可以实现特定功能的可重用模块,它们以形式化的方式描述了硬件的功能和接口。如图所示为 PLL 大体的一个结

    2024年03月22日
    浏览(35)
  • FPGA原理与结构——时钟IP核原理学习

    系列文章目录:FPGA原理与结构(0)——目录与传送门         在之前的文章中,我们介绍了FPGA的时钟结构 FPGA原理与结构——时钟资源 https://blog.csdn.net/apple_53311083/article/details/132307564?spm=1001.2014.3001.5502         在本文中我们将学习xilinx系列的FPGA所提供的时钟IP核,来帮助我

    2024年02月10日
    浏览(28)
  • FPGA原理与结构(15)——时钟IP核原理学习

    系列文章目录:FPGA原理与结构(0)——目录与传送门         在之前的文章中,我们介绍了FPGA的时钟结构 FPGA原理与结构——时钟资源 https://blog.csdn.net/apple_53311083/article/details/132307564?spm=1001.2014.3001.5502         在本文中我们将学习xilinx系列的FPGA所提供的时钟IP核,来帮助我

    2024年02月07日
    浏览(36)
  • FPGA学习笔记(五):DDS IP核的使用

     1. 打开VIVADO,点击IP Catalog    2.搜索DDS,选择DDS Compiler    3. 配置参数 (1) 设置主频频率 50MHz   (2) 选择sine,并且勾选Has Phase Out(相位输出)    (3) 勾选Output TREDAY  (4) 输入频率    (5) 同上述步骤,再加一个DDS IP核 4. 测试文件   5. 结果展示        

    2024年02月11日
    浏览(44)
  • FPGA原理与结构——FIFO IP核原理学习

    系列文章目录:FPGA原理与结构(0)——目录与传送门         FIFO是英文First-In-First-Out的缩写,是一种先入先出的数据缓冲器,与一般的存储器的区别在于没有地址线, 使用起来简单,缺点是只能顺序读写数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器

    2024年02月11日
    浏览(36)
  • FPGA学习笔记(二):clk IP核的使用

     1.打开VIVADO,点击IP Catalog   2. 搜索clk,选择Clocking Wizard   3. 配置参数 (1) 选择MMCM      (2) 设置主频50Mhz  (3) 设置输出的4个clk的参数,分别是50M,25M,100M,100M反相。Phase表示相位,0表示同相,180表示反相。      (3) 其他参数  4. 测试文件 其中clk_wiz的例化可参考模板。点击

    2024年02月12日
    浏览(41)
  • FPGA学习笔记(六): FIR IP核的使用

    1. 打开VIVADO,点击IP Catalog   2.搜索DDS,选择DDS Compiler,按照上节配置频率为3MHz和4MHz的DDS IP核。    这里注意不勾选Has Phase Out 这里注意不勾选Output TREADY     输出频率为3MHz 按照上述步骤,配置4MHz的DDS,同样不勾选Has Phase Out以及不勾选Output TREADY。 3. 点击IP Catalog,搜索mu

    2024年02月03日
    浏览(37)
  • FPGA原理与结构——RAM IP核原理学习

    系列文章目录:FPGA原理与结构(0)——目录与传送门 目录 一、什么是RAM 二、RAM IP介绍 1、RAM分类简介  2、可选的内存算法 (1)Minimum Area Algorithm(最小面积算法) (2)Low Power Algorithm (低功耗算法) (3)Fixed Primitive Algorithm (固定模块算法) (4)小结 3、位宽 4、工作模

    2024年02月12日
    浏览(31)
  • 学习FPGA之四:FPGA开发方法

            FPGA是一个很特殊的芯片,可能在2个月前,我还对它一无所知。我们熟知的芯片都是CPU,GPU,或者知道ASIC的概念。但实际上,FPGA已经走过了30个年头,它目前已经成为一个包含各种先进电路,逻辑单元,接口,芯片封装,制造等技术的“集大成者”。在硬件不断发

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包