[FPGA 学习记录] 快速开发的法宝——IP核

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

快速开发的法宝——IP核

在本小节当中,我们来学习一下 IP 核的相关知识。

IP 核在 FPGA 开发当中应用十分广泛,它被称为快速开发的法宝。在本小节当中,我们将和各位朋友一起来学习了解 IP 核的相关知识、理解掌握 IP 核的调用方法。

我们分为以下几个部分进行 IP 核的学习

  1. 首先是第一部分:IP 核是什么。在这一部分,我们会对 IP 核的基本概念做一个解析
  2. 第二部分是:为什么要使用 IP 核。在这一部分会告诉大家 IP 核的一个使用目的
  3. 第三部分是:IP 核的存在形式,也就是 IP 核的一个分类
  4. 第四部分是:IP 核的缺点。事物的存在有利也有弊,IP 核也不例外。这一部分会讲解一下:IP 核使用的一个局限性
  5. 第五部分就是:Quartus II 软件下 IP 核的一个调用。在这一部分会带领各位朋友,了解如何在 Quartus II 软件下调用 IP 核
  6. 第六部分是 Altera IP 核的一个分类。这部分内容的讲解目的是方便各位朋友,在以后的使用过程中能够快速准确的调用 IP 核

首先是第一部分内容的讲解:IP 核是什么?

1 IP 核是什么

IP 是一个英文(首字母缩写)简称,英文全称是:Intllectual Property,译为中文就是知识产权。在半导体产业中将 IP 核定义为:用于 ASIC 或者 FPGA 中预先设计好的电路功能模块;换句话说:IP 就是指电路功能模块。

在数字电路当中,我们将常用的而且比较复杂的功能模块设计成参数可修改的模块。比如说后面常用到的 FIFO、RAM,还有 SDRAM 控制器;这些常用的而且比较复杂的功能模块设计成参数可修改的模块,在使用过程中其他用户可以直接调用这些模块,这个就是 IP 核。

现在了解了 IP 核的概念之后,我们进入下一个问题:为什么要使用 IP 核?

2 为什么要使用 IP 核

随着科技的进步、IC 工艺的提高,FPGA 的规模越来越大;随着 FPGA 的规模越来越大,FPGA 的设计也是越来越复杂;IC 的复杂度每年以 55% 的速率提高,而我们的设计能力每年只提高 20% 左右;我们设计者的主要任务,是在规定的时间周期内完成一个复杂的设计,但是 IC 复杂度递增的速率大于我们设计能力的提高,这样就使得设计者需要的设计周期就越来越长,这样不利于产品的一个上市;为了解决这个问题,将一些在数字电路中常用的但是比较复杂的功能块,比如说前面提到的 FIFO、RAM、SDRAM 控制器设计成可修改的参数模块,就是前面提到的 IP 核,然后在开发过程中使用 IP 核,这样就可以避免重复劳动、提高开发效率、减少设计和调试的时间,加速开发进程、降低开发成本,这样也大大缩短了产品上市时间、减轻了工程师的一个负担,也是业内的一个发展趋势。这就是我们使用 IP 核开发的一个目的。

了解了 IP 核的概念以及使用目的之后,我们进入第三部分:IP 核的一个存在形式,就是它的分类

3 IP 核的存在形式

IP 核根据产品交付的方式进行分类,有三种不同的存在形式,分别对应我们常说的三类 IP 内核,这三种 IP 内核实现的方法也是各具特色

  1. HDL 语言形式–>软核

    软核也称为软 IP,它通常是以硬件描述语言 HDL 源文件的形式出现,它的应用开发过程与普通的 HDL 设计也是十分的相似,大多数应用于 FPGA 的 IP 内核均是软核。软核有助于用户调节参数并增强可复用性,就是说它可以进行参数的调整(复用性强);软核通常是以加密的形式提供,实际的用户是看不到内部的 RTL 代码的,但是它的布局布线是十分灵活的;在这些加密的软核当中如果对内核进行了参数化,用户就可以通过头文件或者说 GUI 图形界面对参数进行一个设置。软核它的设计周期短、设计投入少,软核由于不涉及物理实现,为后续设计留有很大的发挥空间,增大了 IP 核的一个灵活性和适应性。

    同时,软核也是有缺点的。软核是以源代码的形式提供,尽管源代码可以采用加密的方法,但是它的知识产权保护的问题仍然不容忽视。

  2. 网表形式–>固核

    固核是软核与硬核的一个折中,固核是完成了综合的功能块,它有较大的设计深度。对于那些对时序要求十分严格的内核,比如说:PCIE 接口内核,对于这种时序要求比较严格的内核,它可以预布线特定信号,或者说分配特定的一个布线资源,目的是满足这些内核的时序要求。

    固核也是有缺点的:如果说固核它有固定的布局或者部分固定的布局,在使用过程中会影响其他电路的一个布局,这是它的一个缺点。

  3. 版图形式–>硬核

    硬核是完整提供设计的最终阶段产品——掩膜,硬核是以经过完全的布局布线的网表形式提供,这种硬核既具有可预见性,同时还可以针对特定的工艺或者说购买商进行功耗和尺寸的一个优化。

    但是它缺乏灵活性、可移植性较差;但是,它不存在 RTL 文件,更易于实现 IP 核的一个保护。

事物的存在有利也有弊,IP 核在拥有众多的优点的同时,它也存在巨大的缺点

4 IP 核的缺点

我们来看一下 IP 核的缺点

  1. 首先第一点:IP 核往往不能跨平台使用。这句话什么意思呢?每个 FPGA 开发厂商会根据自己的芯片适配定制的 IP,如果说你之前使用的是赛灵思的芯片,使用了其中的一个 IP 核,但是因为某些原因,你需要将这个代码移植到 Altera 平台上,就必须在 Altera 平台上选择具有相同功能的 IP 核,进行一个替换,否则你就不能使用,这样就增加了代码移植的一个复杂性。
  2. IP 核的第二条缺点是:IP 核不透明,看不到内部的核心代码。IP 核相当于一个黑匣子,它是不透明的,我们只能看到输入信号和输出信号,内部的核心代码是看不到的;因为 IP 核都是各大 FPGA 厂商专门设计的,都会进行一个加密,内部的核心代码是看不到的。如果说我们在使用过程中,想要根据实际的应用进行一个优化,这是不可能的;因为我们是无法进行修改的。这个问题在使用过程中就很棘手
  3. IP 核的第三个缺点就是:定制的 IP 需要额外收费。我们平时使用的一些具有简单功能的 IP 核是 FPGA 厂商提供的,是免费的;但是说,如果你想要使用某些能够实现特殊功能的 IP 核,需要进行一个额外收费。

IP 核在能够缩短我们开发周期的情况下存在以上三个问题。这时候我们就需要权衡利弊,针对具体的需求来做一个具体的选择。

下面我们讲解第五部分:在 Quartus II 开发软件下进行 IP 核的一个调用

5 Quartus II 软件下 IP 核的调用

在 Quartus II 开发软件下进行 IP 核的调用有四种方式

  1. 第一种是 Mega Wizard 的插件管理器
  2. 第二种是 SOPC 构造器
  3. 第三种是 DSP 构造器
  4. 第四种是 Qsys 设计系统例化

在这四种方式中,后两种方式(DSP 构造器、Qsys 设计系统例化)它们仅支持部分的一个 IP 核的例化和使用,最为常用的 IP 核的调用方式是第一种:使用插件管理器的调用方式
Mega Wizard 插件管理器它可以用于创建和修改包含定制 IP 核的一个设计文件,然后在设计文件中例化 IP 核;可以自动生成设计文件、例化模板以及例化声明文件;使用这个插件管理器,可以指定 IP 核的不同选项,包括设置参数值、选择可选端口;还可以为第三方综合工具生成网表文件(第三方的 IP 核是以网表文件的形式进行提供的)。

说了这么多,下面就和各位朋友一起学习使用插件管理器进行一个 IP 核的调用。

我们回到桌面,然后打开 Quartus II 开发软件,关闭开发软件的启动页

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

第一步就是启动 Mega Wizard 插件管理器:选择 Tools–>MegaWizard Plug-In Manager

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

弹出了一个 Mega Wizard 插件管理器的选择页面

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

其中有三个选项

  1. Create a new custom megafunction variation:创建一个新的 IP 核
  2. Edit an existing custom megafunction variation:编辑已经存在的 IP 核
  3. Copy an existing custom megafunction variation:复制已经存在的 IP 核

我们这儿选择第一个:创建一个新的 IP 核,然后点击下一步

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

然后就到了 2a 页面

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

首先第一步要选择右上角的位置,选择我们的 FPGA 芯片属于哪个系列;因为不同的器件类型,它可以使用的 IP 核是不同的;比如说我们选择征途系列开发板使用的器件就是 Cyclone IV E 系列

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

所以说这个地方要保持与工程创建时我们选择的器件系列一致,避免出现 IP 核不支持器件的一个情况。

第二个位置要设置 IP 核输出文件的语言类型,语言类型的设置取决于工程具体设计所使用的语言,我们使用的是 Verilog 就选择 Verilog HDL

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

第三个位置就是搜索框以及搜索框下方的列表,如果搜索框中不进行输入,下方列表就会分类显示出所有的 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

在这个搜索框当中输入我们想要使用的 IP 核的名称来进行一个 IP 核的搜索,比如说我们想要使用锁相环的 IP 核就输入 pll,下方列表当中就会显示出与我们搜索 IP 核相关的一些 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

然后我们选择使用其中一个 IP 核,选中 ALTPLL;在列表右侧我们就要选择 IP 核输出文件的一个保存位置,这个保存位置一般都是工程文件夹

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

假如说在 2a 页面选择完毕之后,点击下一步就可以进行参数的一个设置,最后生成我们的 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

以上部分,就是使用 Mega Wizard 插件管理器实现 IP 核一个调用。

下面进入第六部分,就是 Altera IP 核的一个分类

6 Altera IP 核的分类

我们回到 Mega Wizard 插件管理器的 2a 页面,然后清空搜索框,搜索框下方的 IP 核列表当中显示的就是 Altera 提供的 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

下面就参照这个列表来对 Altera IP 核的类型做一个讲解。首先是:数学运算 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

这里面包含了四个部分

  1. 第一部分就是:LPM 类型的整数运算 IP 核

    LPM 表示参数化类型 IP 核库。LPM_ADD_SUB这个就是加法器和减法器的 IP 核、LPM COMPARE这个是比较器、LPM_COUNTER是计数器、LPM_DIVIDE是除法器、LPM_MULT是乘法器

  2. 第二部分就是:ALT 类型的整数运算 IP 核

    ALT 表示的是 Altera 特定的 IP 核。ALTMULT_ACCUM(MAC)是乘累加器、ALTMEMMULT是基于存储的常系数乘法器、ALTMULT_ADD是它的乘加器、ALTMULT_COMPLEX是它的复数乘法器

  3. 第三部分就是:浮点数运算 IP 核

    ALTFP_ADD_SUB就是浮点数加/减法器、ALTFP_DIV是浮点数的除法器、ALTFP_MULT是浮点数的乘法器、ALTFP_SQRT就是浮点数的平方根计算器

然后就是:逻辑运算 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

LPM_CLSHIFT是循环移位、LPM_CONSTANT常数、LPM_DECODE解码和LPM_MUX复用。

第三大类是:存储器 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

里面有 FIFOFIFO、RAM initializerRAM:1-PORTRAM:2-PORTRAM、ROM:1-PORTROM:2-PORTROM 等等
第四大类是:数字信号处理 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

这里边有 CIC v13.0CIC、FIR Compiler II v13.0FIR Compiler v13.0FIR 编码器,然后还有 NC0 v13.0NCO、FFT v13.0FFT(傅里叶变换)
然后是:数字通信类的 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

这儿有 CRC Compiler v13.0CRC 编码,还有 8B10B Encoder-Decoder v13.08B 转 10B 的编码译码器 IP 核。

下一个分类是:视频和图像处理 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

接下来就是:输入输出 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

刚才使用的 PLL(锁相环) 也在这里面ALTPLL,然后还有 ALTLVDS_RXALTLVDS_TXLVDS 收发器的 IP 核。

下面就是:接口 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

这里面有 PCIPCI 接口、PCI ExpressPCIE 接口、SDISDI 接口,还有 Ethernet以太网的接口等等一些的接口。
最后是:FPGA 调试部分的 IP 核

[FPGA 学习记录] 快速开发的法宝——IP核,FPGA 学习记录,fpga开发,学习,笔记

这儿有 Parallel Flash Loader并行的 Flash、Serial Flash Loader串行的 Flash,然后后面会讲到的 SignalTap II Logic Analyzer在线逻辑分析仪。

除了刚刚讲到的一些 IP 核的分类之外,还有一些针对部分 Altera 系列的 FPGA 应用的专用的一些 IP 核,这儿就不再进行讲解了。


参考资料:

41-第二十四讲-快速开发的法宝

24. 快速开发的法宝 — IP核

File:Kamehameha DB scheme.svg文章来源地址https://www.toymoban.com/news/detail-752384.html

到了这里,关于[FPGA 学习记录] 快速开发的法宝——IP核的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FPGA vivado IP核学习笔记——单端口RAM

    1. 新建IP 在IP Catalog中找到Block Memory Generator 2. 基本配置 ①在 Component Name 位置可以修改IP名字 ② Interface Type 选择接口类型,有Native(常规)和AXI4两种,AXI4常用于软核控制FPGA或ZYNQ中PS端控制FPGA时使用 ③ Generate address interface with 31 bits ,将地址深度固定在32bit ④ Memory Type : 有一

    2024年04月29日
    浏览(39)
  • FPGA学习笔记-1 FPGA原理与开发流程

    注:笔记主要参考: B站 正点原子 教学视频“正点原子手把手教你学FPGA-基于达芬奇Pro开发板 Artix-7 XC7A35T/XC7A100T”。 小梅哥爱漂流 教学视频“【零基础轻松学习FPGA】小梅哥Xilinx FPGA基础入门到项目应用培训教程”。 B站搬运 “特权同学2020版《深入浅出玩转FPGA视频教程》

    2024年02月05日
    浏览(50)
  • 小梅哥Xilinx FPGA学习笔记19——IP 核使用之 ROM

    目录 一:章节导读 二:ROM IP 核配置 2.1 创建 ROM 初始化文件 2.3 ROM IP 核配置步骤 三: ROM核的仿真与调用 3.1 三角波的产生 3.2 仿真验证结果 3.3 正弦波的产生 3.4 仿真验证结果        ROM 是只读存储器( Read-Only Memory )的简称,是一种只能读出事先所存数据的固态半导体存

    2024年02月03日
    浏览(45)
  • 安路EG4S20 FPGA开发板学习记录1

    参加集创赛报名了arm的杯赛,用的是安路科技的EG4S20开发板,基于cortex-M0内核。初赛时什么也不会,研究生的方向是做二维材料,但是想着以后找工作往ic方向靠拢,只能硬着头皮自学。没想到初赛随便交了东西上去竟然进了复赛,本来准备放弃的,现在重新开始一点点学习

    2024年04月16日
    浏览(43)
  • FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(二)——IP学习使用

      学习不能稀里糊涂,要学会多思考,发散式学习以及总结:   FPGA作为一种器件,只是实现目的的一种方法,过度追求实现的技术细节(用hdl还是hls,用啥芯片,用啥接口)容易只见树木不见森林。工具软件的用法也好,器件的架构也好,语言孰优孰劣的争论也罢。工程应

    2023年04月10日
    浏览(42)
  • FPGA在校学习记录系列---实验4不同状态的LED+开发板(Verilog HDL)

    此系列记录FPGA在学校的学习过程。 FPGA系列 需要用到的软硬件: 软件:Quartus II 15.0 (64-bit) 硬件: 5CEBA4F23C7芯片 链接: FPGA在校学习记录系列—新建一个FPGA工程编写程序并仿真(Verilog HDL) 创建的工程名字为:LED (这次不用仿真,直接用开发板验证) 编译文件 按键资源:

    2024年04月09日
    浏览(46)
  • 【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)

    本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发平台)简介 盘古22K开发板是基于紫光同创Logos系列PGL22G芯片设计的一款FPGA开发板,全

    2024年01月23日
    浏览(63)
  • FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(一)——知识补给

    学习不能稀里糊涂,要学会多思考,发散式学习以及总结: FPGA作为一种器件,只是实现目的的一种方法,过度追求实现的技术细节(用hdl还是hls,用啥芯片,用啥接口)容易只见树木不见森林。工具软件的用法也好,器件的架构也好,语言孰优孰劣的争论也罢。工程应用里大概

    2023年04月09日
    浏览(55)
  • FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(三)——接口与框架

    学习不能稀里糊涂,要学会多思考,发散式学习以及总结:   FPGA作为一种器件,只是实现目的的一种方法,过度追求实现的技术细节(用hdl还是hls,用啥芯片,用啥接口)容易只见树木不见森林。工具软件的用法也好,器件的架构也好,语言孰优孰劣的争论也罢。工程应用里

    2024年02月09日
    浏览(68)
  • 【FPGA】Xilinx Cordic IP 内核使用记录(输入输出数据格式介绍)及实验仿真

    Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输出X’, Y’ 具体实现的功能对应的数学表达形式如下: 在做FFT 复乘旋转因子时也可以用这个IP核的Rotate功能来实现。旋转因子-旋转! Translation 实现的功能是求模,以及向量的夹角 输入 X, Y 输出X’ and Phase 具体实现的功能对应

    2024年02月07日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包