文章目录

  • 日常·唠嗑
  • 前言
  • 一、IP是什么?
  • 二、芯片行业的IP是指什么?
  • 三、IP的由来和作用
  • 四、IP的种类和举例(软核、固核、硬核)
  • 五、IP的开发和应用
  • 总结

日常·唠嗑

不知不觉距离上一篇零基础学FPGA(三):国产芯片短板—FPGA(为什么选择FPGA)文章已经过去4个月了,期间有各种各样的事,导致一直没时间来更新这个系列的文章。第五届集创赛华南赛区决赛也结束了,距离国赛还有一个月,也算是过几天清闲的日子。从刚入门集成电路就一直迷惑到底什么是IP?看到公众号一篇文章还不错,就梳理一下知识。

前言

在芯片行业,人们经常用到IP这个词,例如IP开发、IP交易、IP复用、IP厂商、IP提供商等。行外人对此词可能觉得不明觉厉,不知所云。他们也许以为是说IP卡,也或者以为是互联网技术中所说的IP地址,其实都不是。本文就专门科普一下,说说芯片行业中IP到底是个什么东西。

一、IP是什么?

“IC、IP、IQ卡,通通告诉我密码!”是电影《天下无贼》中范伟的一句经典台词。现实中没有IQ卡,只有IC卡和IP卡。IC卡是指集成电路卡,也叫做芯片卡,例如银行卡,电信卡、交通卡和社保卡等都是用芯片卡实现的。IP卡是一种运用了TCP/IP协议的网络电话卡,IP卡早已被淘汰不用了。但是,TCP/IP协议作为互联网通信的底层技术一直被使用,所以IP、IP地址等词汇还经常可以听到。这是第一种IP,它是互联网领域的技术词汇,专指IP协议或者IP地址。

第二种IP是一个法律词汇,它是知识产权(Intellectual Property)的英文简称。 现代社会中,许多国家都十分重视知识产权保护。芯片行业是一个高度智力密集、资金密集的行业,因此该行业中知识产权的保护则显得更加重要。芯片行业中的知识产权可称为硅知识产权(Silicon Intellectual Property),简称SIP。SIP的保护形式主要包括专利权保护(Patent Protection)和集成电路布图保护(IC Layout Protection)。

本文要介绍第三种IP,它既是一个技术词汇,也是一种东西,是一种商品。 它凝聚了芯片设计者的智慧,具有商品和知识产权的属性,可以被推广、销售和应用。因此,芯片行业有IP开发、IP交易、IP复用等科技和商业活动,也有一些企业被冠以IP厂商、IP提供商的称谓。

二、芯片行业的IP是指什么?

芯片行业中所说的IP,一般也称为IP核。IP核是指芯片中具有独立功能的电路模块的成熟设计。该电路模块设计可以应用在包含该电路模块的其他芯片设计项目中,从而减少设计工作量,缩短设计周期,提高芯片设计的成功率。该电路模块的成熟设计凝聚着设计者的智慧,体现了设计者的知识产权,因此,芯片行业就用IP核(Intellectual Property Core)来表示这种电路模块的成熟设计。IP核也可以理解为芯片设计的中间构件。

一般说来,一个复杂的芯片是由芯片设计者自主设计的电路部分和多个外购的IP核连接构成的。如图2所示,要设计这样结构的一款芯片,设计公司可以外购芯片中所有的IP核(不同颜色模块),仅设计芯片中自己有创意的、自主设计的部分(用绿色表示),并把各部分连接起来。

      图2.自主设计部分和多个IP核集成在一起,形成复杂芯片的设计
      图2的芯片设计过程就像图3的系统电路板开发过程一样,是用已有的、成熟的IP核(或者芯片)进行布局、摆放和信号连接的过程,这种过程可以称为对IP核(或者芯片)的复用。 不同的是,系统电路板上除了芯片和连接线之外,系统开发者很少自主开发自己的芯片。而在芯片设计过程中,芯片上除了采用外购的IP核之外,一般说来,芯片设计者还要设计一部分自己的电路,并完成各部分之间的信号连线,最后还要对整个芯片的功能、性能进行制造前的反复检查和验证。

      图3.由IP核搭建复杂芯片,与用芯片搭建完整的系统电路板类似
      如果以上介绍还显得太过专业,还可以用拼图画来对芯片设计打比方,可以把图2所示的芯片抽象地理解成图4所示的拼图画。芯片中外购的不同功能的IP核用不同色的图块表示,自主设计的电路部分用绿色图块表示,复杂芯片的设计过程就像要拼好这幅图画一样。所相同的是,用现有的图块(IP核)拼接美丽图画(复杂芯片)。所不同的是,拼图画只要考虑图块的形状,而芯片设计要考量IP核的许多参数和指标,并要把各个IP核和自主设计部分正确连接,保证整个芯片的功能和性能正确无误。


      图4.IP核使复杂芯片的设计变得较容易,IP复用类似于“拼图”
      IP核被其他芯片设计公司采用,行业内称为IP复用。 专门设计相对独立电路功能模块,目的是推广给其他芯片设计公司进行复用,这种设计工作称为IP开发。专门从事IP开发的公司称为IP厂商,或者IP提供商。IP厂商把IP销售给芯片设计公司是一种IP交易行为。

三、IP的由来和作用

IP的由来要从早期的芯片设计过程讲起。早期芯片的集成规模有限,设计复杂度不高,芯片上所有的电路都是由芯片设计者自主完成。设计水平不高、能力有限的芯片公司只能设计规模小的简单的芯片。设计水平高、能力强的芯片公司才可以设计规模大、功能复杂的芯片。这个时期,不论芯片规模大还是小,芯片从“头”到“脚”都是由芯片公司自己设计的。早期的高端芯片基本上都是由为数不多的大型国际芯片公司把持。

随着现代信息社会对芯片要求提升,芯片的规模呈指数性增加,复杂性急剧增大。中小型芯片公司要独立完成一款复杂芯片设计几乎变得不太可能。特别是20世纪80年代末,芯片行业出现了晶圆代工(Foundry)商业模式,大批的中小微芯片设计公司(Fabless)应运而生。这个时期,芯片设计行业急需解决小芯片公司无法设计大芯片的难题。

解决这一难题的启发思路很多。例如:搭积木和拼图画玩具;由标准件设计大型机器;由软件子程序(或者中间件)调用设计大型软件;用芯片搭建大型电子系统等。思路都是重复使用预先设计好的成熟的构件来搭建更复杂的系统,省掉对构件内部问题的考虑,化繁为简;重复使用构件,减少重复劳动,节省时间;重复使用构件,提高整个复杂系统搭建的成功率。

芯片设计行业中的IP核开发和IP复用,就是在这些思路启发下形成的。IP核就类似于上述的构件。IP核是预先设计好的具有独立功能的电路模块设计。有了IP核这种构件,大的复杂的芯片设计就变得较容易、周期短、易成功。

IP的作用主要有四个方面,一是使芯片设计化繁为简,缩短芯片设计周期,提高复杂芯片设计的成功率。二是IP开发和IP复用技术使小公司设计大芯片成为可能;三是使系统整机企业可以设计自己的芯片,提升自主创新能力和整机系统的自主知识产权含量;四是使芯片设计行业摆脱传统IDM模式,成为产业链上独立的行业,促进了芯片设计业迅猛发展。

目前,许多中小微芯片设计公司虽然设计能力和水平有限,但出于抢占市场,缩短芯片设计周期的需要,会外购许多IP核来完成自己的芯片设计项目。业界的IP开发商、IP提供商数量不断增加,也变得越来越专业。各种功能、各种类型的IP核不断涌现。IP交易活动也日趋普遍,交易金额也越来越大。

四、IP的种类和举例(软核、固核、硬核)

IP核有行为(Behavior)级、结构(Structure)级和物理(Physical)级三个层次的分类,对应着三个种类型的IP核,它们是由硬件描述语言设计的软核(Soft IP Core)、完成结构描述的固核(Firm IP Core) 和基于物理描述并经过工艺验证的硬核(Hard IP Core)。

1.软核: 它是用硬件描述语言(HDL)设计的独立功能的电路模块。从芯片设计程度来看,它只经过了RTL级设计优化和功能验证,通常是以HDL文本形式提交给用户。所以它不包含任何物理实现信息,因此,IP软核与制造工艺无关。软核相当于软件编程的库,比如Python调用一个四舍五入round(num,n) 函数一样。FPGA设计中也可以调用一个四舍五入的IP,这样就不用自己写代码了。

用户购买了IP软核后,可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性。借助于EDA综合工具,用户可以很容易与其它IP软核,以及自主设计的电路部分合成一体,并根据各种不同半导体工艺,设计成具有不同性能的芯片。

2.固核: 它的设计程度介于IP软核和IP硬核之间,它除了完成IP软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般地,它以门级电路网表的形式提供给用户。

3.硬核: 它提供了电路设计最后阶段掩模级的电路模块。它以最终完成的布局布线网表形式提供给用户。IP硬核既具有结果的可预见性,也可以针对特定工艺或特定IP提供商进行功耗和尺寸的优化。

所以,三种类型的IP核是电路功能模块设计在不同设计阶段的产物,如图5所示。

       图5.在电路功能模块设计的不同阶段,可得到不同类型的IP核
       用户经过精心评测和选择,购买了IP厂商的IP核后,开始设计自己的芯片。前文讲过,一个复杂芯片一般由购买的IP核和用户自主设计的电路部分组成。芯片设计过程包括了行为级、结构级和物理级三个阶段。行为级和结构级设计阶段的工作一般称为前端设计物理级设计阶段的工作一般称为后端设计。图6的示意图说明,不同类型的IP核是在不同的设计阶段中加入到整个芯片设计中去。

       三种类型的IP核各有优缺点,用户会根据自己的实际需要来选择。以下是三种IP核的优缺点简要总结。

软核: 它以综合源代码的形式交付给用户,其优点是源代码灵活,在功能一级可以重新配置,可以灵活选择目标制造工艺。灵活性高、可移植性强,允许用户自配置。其缺点是对电路功能模块的预测性较差,在后续设计中存在发生错误的可能性,有一定的设计风险。并且IP软核的知识产权保护难度较大。(如:调用一个PLL的IP核,你通过修改代码参数可以实现不同频率的倍频)

固核: 它的灵活性和成功率介于IP软核和IP硬核之间,是一种折中的类型。和IP软核相比,IP固核的设计灵活性稍差,但在可靠性上有较大提高。目前,IP固核是IP核的主流形式之一。

硬核: 它的最大优点是确保性能,如速度、功耗等达到预期效果。然而,IP硬核与制造工艺相关,难以转移到新的工艺或者集成到新的结构中去,是不可以重新配置的。IP硬核不许修改的特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。但IP硬核的知识产权保护最为方便。

IP核的举例,最典型有ARM公司的各种类型的CPU IP核。许多IP供应商提供的DSP IP核、USB IP核、PCI-X IP核、WiFi IP核、以太网IP核、嵌入式存储器IP核等,五花八门,品种十分繁多。

如果按大类分,大体上可分为处理器和微控制器类IP、存储器类IP、外设及接口类IP、模拟和混合电路类IP、通信类IP、图像和媒体类IP等。

全球大的EDA供应商中,有些也是IP供应商。例如美国新思科技(Synopsys)可提供上千种各类IP。涵盖逻辑电路(Logic Libraries)、嵌入式存储器(Embedded Memories)、模拟电路(Analog Libraries)、有线和无线通信接口(Wired and Wireless Interface)、安全(Security)、嵌入式处理器(Embedded Processors) 和子系统(Subsystems)等方面的IP。

五、IP的开发和应用

从图4、图5可以看出,IP核开发与芯片设计过程比较相似,都需要紧跟芯片技术的发展趋势,不断积累芯片设计技术,了解芯片制造工艺发展步伐。所不同的是,芯片设计公司的商业模式是设计完整的芯片,并推向市场,实现芯片销售利润。而IP开发商不设计完整的芯片,他们只设计芯片局部的某些功能模块,追求这些功能模块(IP核)的设计是最优化的,并要实现IP核在多种复用场合的适应性、便利化。IP开发商谋求这些IP可以被众多芯片设计公司购买采用,并实现IP的销售利润。

但是,IP开发的技术难度和要求很高,并不是任何芯片设计公司想为即可为的事情。这主要体现在,一是IP的完备性要求。IP核作为芯片设计的构件,可以与软件设计的构件(中间件)作比较。软件构件中可以隐藏小瑕疵,集成后的系统软件还可以在投入实际应用时,通过打补丁升级的方式不断完善。但IP核必须非常完善,一点瑕疵都不能有。因为,IP核的任何小瑕疵都有可能影响到整个复杂芯片设计的成败,影响到花费了数百万元甚至上亿元整个芯片研发的投入产出。因此,复杂IP核的售价极为昂贵,从数十万元到上百万元不等。为了便于推广,IP厂商一般采用收取前期IP许可费(IP License)+后期按芯片出货量计算的版权费(Royalty)的商业模式,以降低用户的研发投入。二是IP的多参数需求,包括工艺节点、电源、功耗、性能等。这些都要求IP开发者对芯片设计、制造工艺和行业应用等非常熟悉。三是用户对IP提供商的信誉度要求,包括公司技术实力、影响力和稳定度等。用户很难接受一家规模较小,发展不稳定的IP厂商提供的IP,哪怕这些IP很便宜,甚至免费。用户宁愿购买著名的、大的IP厂商提供的较贵的IP,因为这样的IP才有质量保障和后续服务的保障。

2000年以来,在国发18号文件和八个国家级IC设计产业化基地的促进下,国内IC设计企业如雨后春笋般涌现,并得到快速发展。这些企业大部分是中小微IC设计企业,得益于IP开发和IP复用技术,这些中小IC设计企业都可以根据市场需要,及时开发出各种功能的系统级芯片(SOC)、人工智能(AI)芯片、物联网(IoT)芯片等。这些推动了国内IC设计业的高速发展,带动了我国新一代信息技术产业的发展。可以说,晶圆代工技术、IP开发和IP复用技术成就了我国目前芯片产业的快速发展基础。

总结

芯片行业中所说的IP,也称为IP核。IP核是指芯片中具有独立功能的电路模块的成熟设计。在电路模块设计的三个不同阶段,可以得到的不同类型的IP核,分别称为IP软核、IP固核和IP硬核。由软化到固化,再到硬化,IP核的可配置性和灵活性变小,但完善性提高,复用风险性降低。芯片设计公司购买IP厂商的IP核,通过IP复用可以快速设计出功能复杂的芯片,可以节约设计时间,提高芯片设计成功率。IP开发和IP复用技术大大促进了芯片设计业的快速发展。

参考资料:
1.电子百科词库:IP核,科通芯城:https://www.cogobuy.com/wiki-3064.shtml
2.oLinXi1234567,什么是IP核?,CSDN博客:https://blog.csdn.net/oLinXi1234567/article/details/40682869,2014.11.1
3.长弓的坚持,FPGA的IP软核、硬核以及固核,CSDN博客:https://blog.csdn.net/wordwarwordwar/article/details/53415523,2016.11.30
4.liwliwliw,集成电路与IP核技术,CSDN博客:https://blog.csdn.net/liwliwliw/article/details/91969797,2019.6.14
5.公众号:芯语录【芯论语】科普:芯片行业所说的IP是个什么东西?作者:天高云淡Andi863

零基础学FPGA(四):IP是什么东西(什么是软核,硬核)相关推荐

  1. 零基础学FPGA(一):与FPGA的爱恨情仇

    我笑夏蝉唱不完少年梦 ,他说街灯亮不过明日光. --胡歌 最近挺迷茫的,要做的事真的很多,要学的东西也很多,看见什么都觉得很有趣,很实用,想学一手.记得财哥曾经说过:事情少的时候,你会认真的,抓紧时间 ...

  2. 零基础学FPGA(八):可编程逻辑单元(基本结构,Xilinx+Altera)

    目录 日常·唠嗑 一.概述 二.基于多路选择器的逻辑单元 1.基于多路选择器的逻辑单元(早期) 2.基于PLD结构的逻辑单元(类CPLD) 3.基于查询表的逻辑单元(目前主流) 三.Xilinx基本结 ...

  3. 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)

    目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...

  4. 零基础学FPGA(三):国产芯片短板—FPGA(为什么选择FPGA)

    文章目录 前言 一.FPGA简介 二.FPGA的用途 三.FPGA比较 1.FPGA与单片机比较 2.FPGA与CPU比较 四.为什么选择FPGA 总结 前言 在正点原子的技术文档里面看到一个小故事, ...

  5. sdram 时钟相位_零基础学FPGA (二十五)必会! 从静态时序分析到SDRAM时序收敛(下篇)...

    七.SDRAM工作时钟相位偏移计算本文引用地址:http://www.eepw.com.cn/article/279083.htm 从上篇文章中我们知道,我们的数据是要经过一定的延时才会到达目标器件的 ...

  6. 【零基础学Java】—TCP通信(五十四)

    [零基础学Java]-TCP通信(五十四) TCP通信:面向连接的通信,客户端和服务器端必须经过三次握手,建立逻辑连接,才能通信(安全). 通信的步骤: 服务器端先启动 服务器端不会主动的请求客户端, ...

  7. 【零基础学Java】—多线程(四十九)

    [零基础学Java]-多线程(四十九) 一.并发与并行 并发:指两个或多个事件在同一时间段内发生 并行:指两个或多个事件在同一时刻发生(同时发生) 二.进程和线程

  8. 【零基础学Java】—自定义异常(四十八)

    [零基础学Java]-自定义异常(四十八) 自定义异常类:java提供的异常类,不够我们使用,需要自己定义一个异常类 格式: public class XXXException extends Exc ...

  9. 【零基础学Java】—finally代码块(四十七)

    [零基础学Java]-finally代码块(四十七)

  10. 【零基础学Java】—throw关键字(四十六)

    [零基础学Java]-throw关键字(四十六) 一.throw关键字 public class demo {public static void main(String[] args) {//创建i ...

最新文章

  1. 如何在HTTP POST请求中发送参数?
  2. springMvc解决json中文乱码
  3. jdbc封装工具类代码_JDBC的使用-JDBC(3)
  4. faster rcnn的源码理解(一)SmoothL1LossLayer论文与代码的结合理解
  5. 情人节来了!没有50W彩礼,女朋友被强行拖走。。。
  6. ui5 resource file 404 error
  7. 推荐一个可以把网页背景色调成护眼色的Chrome扩展应用
  8. 【C语言】创建一个函数,利用该函数将字符串中的小写字母转换为大写字母
  9. 用Python识别验证码
  10. hibernate sql 执行两次_使用 Hibernate 和 MySQL 需要知道的五件事
  11. java 数据路id增长策略_基于数据库实现ID自动生成策略
  12. 网络安全--文件分离工具 foremost
  13. MATLAB画图线型、颜色、标记符、特殊符号、技巧汇总
  14. 麒麟系统安装lnmp
  15. linux mount iso文件系统,在Linux中挂载ISO文件的两种方法(mount命令与mount软件)
  16. 最新影视双端app对接苹果cms+详细安装教程
  17. 安卓项目图片缓存实现
  18. 微信小程序开发笔记6——小程序添加并使用外部字体(亲测可用)
  19. 【数据压缩】WAV文件和AVI文件格式分析
  20. Html和Markdown中的空格, nbsp; ensp; emsp; 以及 thinsp; zwnj; zwj;

热门文章

  1. 从网易博客转入CSDN
  2. DNSPod x ikuai 联合打造,DNS防御业务正式上线!
  3. 按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)。Java实现
  4. DSP28335 eCAP 测频
  5. 算法—— LeetCode 第一遍
  6. %E6%9D%8E%E9%9B%B7是什么编码
  7. 403 forbidden
  8. 基于百度paddle的快递面单三段码识别
  9. 全向轮平台的旋转中心位置计算
  10. 升级版微生物16s测序报告|解读