IP包设计

IP包

IP核(Intellectual Property core)就是知识产权核或知识产权模块的意思,用于配置FPGA或其它硅芯片上的逻辑资源。
引用链接https://blog.csdn.net/u012224606/article/details/60958524

IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC阶段,IP核设计已经成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。
IP(Intellectual Property)就是常说的知识产权。美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC、ASSP和PLD等当中,并且是预先设计好的电路模块。IP核模块有行为(Behavior)、结构(Structure)和物理(Physical)三级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。
从IP核的提供方式上,通常将其分为软核、固核和硬核三类。从完成IP核所花费的成本来讲,硬核代价最大;从灵活性来讲,软核的可复用使用性最高。
软核(Soft IP Core)
软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP核应用最广泛的形式。
固核(Firm IP Core)
固核在EDA设计领域指的是带有平面规划信息的网表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式提供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性较差,但在可靠性上有较大提高。
硬核(Hard IP Core)
硬核在EDA设计领域指经过验证的设计版图;具体在FPGA设计中指布局和工艺固定、经过前段和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。

也有的地方只把IP核划分为软核和硬核,软核指提供源代码或者门电路网表的IP核,硬IP核指经过综合、布局、布线的IP核或者是提供晶体管布局的IP核。

IP核下载网站

opencores
Vivado也自带丰富IP核

创建自己的IP核

有四种常用的创建IP核的方法

  1. HDL硬件描述语言,可以最大化控制外设功能。可以把已有的HDL设计转变为IP包。
  2. System Generator 基于模型做硬件设计。System Generator设计可以被Vivado 的IP Packager打包为IP模块并引入Vivado IP Catalog
  3. HDL Coder 这个工具可以根据MATLAB函数产生可综合的HDL代码,再生成IP包
  4. Vivado High-Level Synthesis 把C/C++设计转化为RTL设计(VHDL/Verilog/SystemC)


Vivado HLS可以输出3种RTL格式IP-XACT、IP-Core、SysGen

  1. IP-XACT 广泛使用的描述IP的模板,与具体工具无关,使用Vivado IP Catalog应选此格式
  2. IP-Core 你的IP会被输出成输入到XPS的格式
  3. SysGen 输出成输入到System Generator设计中的包

原文地址:https://www.cnblogs.com/uestcman/p/10357227.html

时间: 2024-10-04 09:41:29

IP包设计的相关文章

[转]为何TCP/IP协议栈设计成沙漏型的

http://m.blog.csdn.net/blog/dog250/18959371 前几天有人回复我的一篇文章问,为何TCP/IP协议栈设计成沙漏型的.这个问题问得好!我先不谈为何它如此设计,我一个80后根本就没有资格去评论上世纪80年代已经臻于成熟的一个设计,我只是说一下目前的趋势,然后你就会明白当初的这个设计是如此之好,以至于它不但满足了30年前的需求,并且适配到了现在以至于未来! 总体趋势:通信网的退化 网络在退化,我指的是IP网络在退化,所有的逻辑全部在纵向上挤向两端,上端管协议逻辑

UDP打洞和心跳包设计

一.设备终端class DeviceClient { int deviceID; int IP; int port; char connectID[16]; time_t lastTime; struct event timeoutEv;//超时器};typedef list<DeviceClient *> deviceList; 二.移动控制终端class UserClient { int userID; int IP; int port; char connectID[16]; time_

IP包、TCP报文、UDP数据段格式的汇总

一.IP包格式 IP数据包是一种可变长分组,它由首部和数据负载两部分组成.首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定.数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B. 1.版本号(Version) 长度为4位(bit),IP v4的值为0100,IP v6的值为0110. 2.首部长度 指的是IP包头长度,用4位(bit)表示,十进制值就是[0,15],一个IP包前20个字节是必有的,后40个字节根据情况可能有可能没有.

老调重弹--面向对象设计原则--包设计原则

前言 在计算机编程中,包设计原则作为一种方式在大型系统中组织类使系统更加有组织和可管理,它指导我们让我们明确哪个类应该放在哪个包里面(包的内聚原则),以及包与包之间如何互相关联的关系(包的耦合原则) 包的内聚原则 重用等价发布原则(Reuse-release equivalence principle,REP) 包必须和可复用的类一起创建 类的粒度等价于包的粒度 重用的粒度就是发布的粒度 要么类全部包含在包里,要么全部不包含在包里 共同重用原则(Common-reuse Principle,CR

实验:添加AXI IP到设计

需要实现的系统是这样的: 1.PL一侧的ASI GPIO只有一位的宽度,用于连接到BTNU按键(在我的zc702上,我选择连接到SW13). 说明:PS和PL里面都有GPIO的模块,添加和配置的方法以及在程序里调用的方法,都是不太相同的. 2.PS部分的GPIO有1位的接口,通过EMIO连接到PL的引脚.并且先接到板上的BTNR按键(zc702上的SW5按键) 说明:上一个开关是在PL部分的管脚进入到PL部分的AXI GPIO模块,在通过PL部分的AXI互联模块,和PS部分的GP AXI主端口进

Lwip IP包分片重组

1. 开发环境 操作系统:SylixOS 编程环境:RealEvo-IDE3.1 硬件平台:AT9x25开发板 2. 技术实现 SylixOS系统使用的网络协议栈是Lwip协议栈.Lwip是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行.Lwip实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使Lwip协议栈适合在低端的嵌入式系统中使用. Lwip协议栈主要关注的是怎么样减少内存的使用和代码的大小

C++ 捕获本机网卡的IP包并对其解析的实现

编程要求:捕获本机网卡的IP包,对捕获的IP包进行解析.要求必须输出以下字段:版本号.总长度.标志位.片偏移.协议.源地址和目的地址. TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的.在首部的固定部分的后面是一些可选字段,其长度是可变的.下面我们看一下IP数据包的格式: 具体的说明: 各个字段说明 版本 IP协议版本号, IPv4此字段

IP包格式

网络层提供的服务就是在不同网段之间转发数据包. Ip包结构 1,格式(每行4byte*5) 2,版本 V4 V6 3,首部长度 20(固定)+可变长度 ?,区分服务 Win2008开始:gpedit.msc 设置DSCP值 5,总长度 设置头长度的意义:因为ip头有可变部分.头长度丈量头部长度,总长度-头长度=数据长度. 6,数据包分片 为什么要分片? 数据链路层最大允许1500byte. Ip层最大允许2的12次方(总长度2byte)65535字节. ID 数据包尺寸: 数据链路层数据:150

IP 包分片

本文以 linux 2.6.27.62 中 UDP 发包过程中重要的一个 IP 层的函数来分析 IP 层是如何分片的. 科普一下,什么是 IP 包分片,在某一个链路上,比如在以太网链路上,每次所能发送最大的包是有限制的,叫做 MTU,也就是 IP 层要想发包,每次包大小必须不大于 MTU,见上一篇文章,但传输层很有可能发送大于这个值的数据,此时  IP 层会对这些数据(可以称为 IP 包)进行分片,然后在收到时,在 IP 层再进行重组,形成一个 IP 包,交给传输层. 代码如下: int ip_