前言

IP核是FPGA开发者的老朋友了,可以这么说,只要是做FPGA开发的,都会利用FPGA的IP核进行开发设计,这不像IC设计,什么都要自己设计,使用IP可以加快产生开发进程。
下面摘自《FPGA之道》对IP核的描述,来理解IP核相关的简单内容。

IP核概述

随着FPGA的集成度越来越高,规模越来越大,设计越来越复杂,IC行业的竞争也越来越激烈,产品的交付周期越来越短,这与人类有限的设计能力形成了巨大矛盾。如果FPGA设计还是全部由设计者从最底层的代码写起,那么必然不能在越来越苛刻的开发周期内完成相关项目。而IP核的出现,解决了这个问题。IP核是一段具有特定电路功能的硬件描述语言程序,该程序通常与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。由于IP核将一些在数字电路中常用,但比较复杂的功能块设计成可修改参数的模块,因此FPGA的设计人员可以通过调用相关IP核来完成所需逻辑功能,从而节省了大量的开发时间。调用IP核能避免重复劳动,大大减轻设计人员的负担,因此使用IP核必然成为将来FPGA设计的一个发展趋势。
IP代表知识产权,从它的名字我们就能猜到IP核应该不是可以随便使用的。事实上,大部分IP核都是需要付费的,例如RS编码器、FIR滤波器、SDRAM控制器、PCI接口等。不过仍有很多免费的IP核资源,这其中最主要的就是每个FPGA厂商都会为自己的软件集成开发环境提供一些比较基本的免费的IP核来增加自家产品的行业竞争力。例如最最常用的FIFO模块、PLL模块等等。对于我们平常的设计来说,利用好这些免费的IP核就能达到事半功倍的效果。
按IP核的硬件描述级实现程度,可将它分为三类:即软核、硬核、固核。

  • IP软核一般指的是用硬件描述语言描述的功能块,它并不涉及用什么具体电路元件实现这些功能,软核的代码直接参与设计的编译流程,就像我们自己编写的HDL代码一样,虽然一般会对软核的RTL代码进行加密,但是其保密性还是比较差。
  • IP硬核是以经过完全的布局布线的网表形式提供,由于不再参与设计的编译流程,因此它的性能具有很强的可预见性,并且保密性好,不过移植性差。
  • IP固核是软核与硬核的一个折中,它只对描述功能中一些比较关键的路径进行预先的布局布线,而其他部分仍然可以任由编译器进行相关优化处理。例如,当你使用IP核生成一个8x8的乘法器时,如果选择使用逻辑资源块来实现的话,那么此时的乘法器IP核就相当于一个软核;如果你选择使用DSP资源来实现的话,那么此时的乘法器IP核就相当于一个硬核;如果你要用DSP资源生成一个36x36的乘法器时,那么FPGA恐怕需要若干DSP资源来实现,这时候,每个DSP核的布局布线是固定的,但是到底选择那几个DSP资源来实现是可以由编译器来决定的,因此此时的乘法器IP核就相当于一个固核。

嵌入式微处理器概述

嵌入式微处理器是一类比较特殊的IP核,通过在FPGA中实现微处理器的逻辑功能,就可以为嵌入式软件设计者提供在FPGA上大展拳脚的平台。这类IP核的引入,极大的变革和拓宽了FPGA的开发方法,它通过调用FPGA内部的资源实现一个行为和相应微处理芯片类似的功能模块,从而可以像开发单片机、ARM、DSP等芯片上的程序一样,让FPGA具有执行相应汇编或嵌入式C语言指令的功能。这样可以让FPGA集串行复杂处理能力与并行简单处理能力于一体,从而使单片FPGA可以实现SOPC的架构。
目前来说,Altera公司花了很大精力致力于开发专门针对其FPGA芯片产品的嵌入式微处理器IP核,从2000年初的NIOS,到现在的NIOS II,都是十分经典的版本。Xilinx主要致力于将Power PC转换为IP核移植到自己的FPGA产品中。而Atmel由于具有很强的微处理器开发能力,则直接在自己的FPGA产品中嵌入一个AVR单片机,这就是一个彻头彻尾的IP硬核。除此以外,只要经过适当的修改,我们几乎可以将任何微处理器搬入到FPGA的芯片中,甚至我们还可以在FPGA中创造出目前世界上没有的虚拟微处理器。总之,这就是FPGA变化无穷的魅力所在。

FPGA之道(14)IP核介绍相关推荐

  1. FPGA学习杂记4——IP核简介、调用、复制和PLL IP核介绍

    大部分内容来自野火的FPGA教学视频,笔者仅作整理,方便回顾. 视频地址:[野火]FPGA系列教学视频,真正的手把手教学,"波形图"教学法,现场画波形图写代码,硬件基于野火FPGA ...

  2. LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解

    1.要开发一个带PCIe或者PXIe接口的FPGA板卡出来,除了硬件本身外,最重要的就是FPGA芯片里面的PCIe通信代码编写,俗称下位机FPGA编程:还有中间层的驱动文件编写以及上位机PC端的应用程 ...

  3. PCIe基础知识及Xilinx相关IP核介绍

    补发以下以前学习PCIe总结的知识. PCIe学习笔记系列: PCIe基础知识及Xilinx相关IP核介绍 概念了解:简单学习PCIe的数据链路与拓扑结构,另外看看有什么相关的IP核. [PG054] ...

  4. 【分享】PCIE XDMA IP核介绍

    [分享]PCIE XDMA IP核介绍 本文为明德扬原创文章,转载请注明出处! 一.PCIE的发送和接收数据 本工程的目的是在XC7K325tffg的平台上实现pcie的数据发送和接收,速率8通道2. ...

  5. Xilinx IP核专题之PLL IP核介绍(Spartan-6)

    这篇博文,我将根据实验室的项目产生一个PLL IP核,并根据该IP的数据手册来认识这个IP核. 首先给出数据手册的链接:Xilinx PG065 LogiCORE IP Clocking Wizard ...

  6. FPGA——调用DDR的IP核(MIG核)

    关于DDR的基础知识可以看这篇文章: FPGA --DDR基础概念详解_居安士的博客-CSDN博客 总的来说,DDR是一个结构非常复杂的动态存储器,时序自己去写是非常困难的,但是Xilinx给我们有现 ...

  7. 【FPGA】 Vivado FIFO IP核使用教程

    目录 一.FIFO简介 二.FIFO的应用 三.Vivado FIFO创建 四.FIFO IP核实例化 五.对实例化顶层文件仿真 一.FIFO简介        FIFO 的英文全称是 First I ...

  8. FPGA中DDR3 MIG ip核使用说明

    此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言. PS:本着知识共享的原则,此篇博客可以随意转载,但请标明出处! 目录 1.DDR3工作原理 简介: DDR基础操作步 ...

  9. FPGA 单端口RAM IP核使用 vivado仿真

    一.各类存储器简介 ROM:只读,只有读接口(读地址.读数据) RAM:可读可写,有读接口(读地址.读数据)和写接口(写使能.写数据.写地址),默认任何时刻都能读,没有读使能,大小和位宽查手册,需要持 ...

最新文章

  1. Quart 2D 绘制图形简单总结
  2. 直播协议HLS技术要点分析:分段生成与m2u8文件
  3. Qt QLabel 显示gif动图
  4. CodeForces - 434D Nanami's Power Plant
  5. flexbox 伸缩布局
  6. appsettings 连接oracle数据库,ABP .net core集成访问Oracle数据库
  7. 前端又省事了,Chrome直接支持lazyload延迟加载
  8. CentOs基础操作指令(网络配置,RPM包管理)
  9. enspar启动失败40_法式长棍面包,在家自己做,简单零失败,低糖无油不担心长胖...
  10. Memcached内存管理机制浅析
  11. 电商促销海报PSD模板|临摹优秀,设计好的banner广告从试炼开始!
  12. TortoiseGit使用
  13. 外资企业财务管理的内部控制问题分析
  14. 查看tomcat目前用的jdk版本
  15. python数据分析项目经验简历-Python开发工程师岗位项目经历怎么写
  16. 创业者应警惕可疑的成功
  17. 远程计算机的凭据无法工作,Windows远程桌面时提示凭证不工作问题的解决办法...
  18. an tu tu html5 test,法语TEF基础阶段测试题和答案(下)
  19. 计算从100加到500的和
  20. .bas是什么文件以及如何打开导入导出.bas文件的方法

热门文章

  1. 如何调试进入Asp.NET MVC源代码
  2. 又见yx — 说说IT公司的团队头儿
  3. 移动端实现文字轮播_使用原生JS实现移动端图片轮播效果(一)
  4. 背景se_SE新作《先驱者》首个内容预告 定于2020年圣诞发售
  5. mysql double 20_MySQL教程20-小数类型
  6. 两张照片重叠处半透明_全面解读超焦距,让你的风景照片更锐更清晰
  7. java 流换行符_【求大神】如何读取含换行符的缓冲流文件
  8. 只要掌握这三组公式,便可以在AI学习中如鱼得水了
  9. 在MM32F3273上运行MicroPython,对于性能进行测试
  10. 2021信号与系统一流课程申请-说课视频规划