织梦网站后台打不开,做pc端网站流程,津云最新发布消息天津新增多少,低调与华丽wordpress“核”现在的FPGA设计#xff0c;规模巨大而且功能复杂#xff0c;因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是#xff1a;对于较为通用的部分可以重用现有的功能模块#xff0c;而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在… “核” 现在的FPGA设计规模巨大而且功能复杂因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是对于较为通用的部分可以重用现有的功能模块而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码而是直接调用Windows提供的API就行了。这种功能模块我们称作IP核(Intelligent Property) 。核 核(CORE)是一个数字系统的核心负责整个系统的内存调度中断管理算术逻辑运算等如同整个系统的大脑是由物理电气实现逻辑功能的关键。尽管复杂但不可忽略的是核同其他数字器件一样也是一个典型的逻辑器件(准确的说是时序逻辑)也由逻辑门、触发器构成那么也就可以由硬件描述语言来描述。 既然核可以由HDL来描述那么对于每一个特定功能和性能(即逻辑的时序和功能特定)的核而言必有一组HDL描述等价于它而具体的器件信号、封装等只不过是这组HDL依赖具体工艺的一种物理实现罢了。因此我们应该认识到所谓核本质上是一种知识产权是一种特定的可描述的逻辑结构。 IP核 IP核是具有知识产权的集成电路芯核总称是经过反复验证过的、具有特定功能的宏模块与芯片制造工艺无关可以移植到不同的半导体工艺中。到了SOC 阶段IP 核设计已成为ASIC 电路设计公司和FPGA 提供商的重要任务也是其实力体现。对于FPGA 开发软件其提供的IP 核越丰富用户的设计就越方便其市场占用率就越高。目前IP 核已经变成系统设计的基本单元并作为独立设计成果被交换、转让和销售。核的分类 从IP核的提供方式上通常将其分为软核、固核和硬核这3类。从完成IP核所花费的成本来讲硬核代价最大 从使用灵活性来讲软核的可复用使用性最高。与软核实现方式相比硬核可以把功耗降低5~10 倍, 节约将近90%的逻辑资源。 软核 软核(Soft IP Core) : 软核在EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型具体在FPGA 设计中指的是对电路的硬件语言描述包括逻辑描述、网表和帮助文档等。软核只经过功能仿真需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强允许用户自配置缺点是对模块的预测性较低在后续设计中存在发生错误的可能性有一定的设计风险。软核是IP 核应用最广泛的形式。 固核 固核(Firm IP Core) :固核在EDA 设计领域指的是带有平面规划信息的网表具体在FPGA 设计中可以看做带有布局规划的软核通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计形成门级网表再通过布局布线工具即可使用。和软核相比固核的设计灵活性稍差但在可靠性上有较大提高。 目前固核也是IP 核的主流形式之一。 硬核 硬核 (Hard IP Core) :硬核在EDA 设计领域指经过验证的设计版图具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计设计人员不能对其修改。不能修改的原因有两个首先是系统设计对各个模块的时序要求很严格不允许打乱已有的物理版图其次是保护知识产权的要求不允许设计人员对其有任何改动。IP 硬核不允许修改的特点使其复用有一定的困难因此只能用于某些特定应用使用范围较窄。软核、硬核优缺点制程技术独立性 软核是用FPGA的通用逻辑资源(LUTFF)搭建而成的。从用户使用角度来看二者没有什么开发难度上的区别性能上一般硬核速度比软核高整体功耗也要低一些。 硬核是固化在FPGA内部的特殊硬件电路简单理解的话可以把硬核看成是嵌入在FPGA内部的ASIC。如嵌入式RAM嵌入式乘法器PLL等。 软核的其中一项优点就是制程技术独立性。高阶的Verilog或VHDL程序不需要运用某一特定的制程技术或标准的单元库(cell library)。这意谓同一套IP核心可重复应用在多种设计或是未来新世代的设计方案中。(部份软核IP供货商开发出针对特定制程的方案让其核心不具制程技术的独立性但这种模式的优点尚不明确)。 另一方面硬核则具有相当高的制程技术特定性。事实上若厂商变更其制程参数或单元库变量(cell library factor)硬核有可能就无法正常运作。因为IP供货商在制程参数改变后须重新检验硬核所以这种特性即衍生出运用上的风险。 硬核可移植到新的制程技术但须投入相当可观的心力与成本来重新进行最佳化调校。对于某些先进的微处理器核心而言须耗费两年甚至更长的时间。因此硬核的尺寸通常会针对新制程等比例缩小。这种方法虽简单且迅速但可能减低研发团队针对最初制程进行的最佳客制化效益。 事实上软核可能是针对单一制程技术与单元库为设计依据设计本身与此一技术无关。针对制程技术与单元库提供最佳的效能类似的技术可能达到接近最佳化的成效但是差异性较大的技术(例如搭配速度较慢的RAM)可能就无法达到相同的结果。此种现象并非绝对重要所以软核在最佳化的弹性方面优于等比例光学缩小的硬核。客制化弹性 软核另一项超越硬核的优势就是编译当时才做客制化在建置之前可自行选择许多设计选项。 高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。 许多软核具有的另一种客制化设计就是自行定义指令集也就是自行支持特定指令的功能。例如若SOC有特殊需要可使用外部协同处理器有些系统或许需要运用具有压缩功能的指令码但若系统不需要这些功能时这些多余硬件就可从软核中移除以节省芯片面积与功耗。 软核同时也有一些建置组态参数这些特殊的客制化参数能使软核进一步融入SOC团队所进行的设计环境。例如微处理器核心通常运用逻辑闸频率电路进行建置但这种频率可能无法搭配部分频率路由工具。若处理器核心有提供编译时的设定功能能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件就能减少建置过程中所遇到的困难。整合的难易度 除非硬核由内部研发小组所建置否则软核通常比较容易整合至作业流程。其原因是研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SOC中的其它模块亦能采用相同的建置处理方式。 硬核比较像一个黑箱RAM组件(black-box RAM)尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。 软核通常以可综合的HDL提供因此具有较高的灵活性并与具体的实现工艺无关其主要缺点是缺乏对时序、面积和功耗的预见性。由于软核是以源代码的形式提供尽管源代码可以采用加密方法但其知识产权保护问题不容忽视。硬核则以经过完全的布局布线的网表形式提供这种硬核既具有可预见性同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化。尽管硬核由于缺乏灵活性而可移植性差但由于无须提供寄存器转移级(RTL)文件因而更易于实现IP保护。 固核则是软核和硬核的折衷。大多数应用于FPGA的IP内核均为软核软核有助于用户调节参数并增强可复用性。软核通常以加密形式提供这样实际的RTL对用户是不可见的但布局和布线灵活。在这些加密的软核中如果对内核进行了参数化那么用户就可通过头文件或图形用户接口(GUI)方便地对参数进行操作。对于那些对时序要求严格的内核(如PCI接口内核)可预布线特定信号或分配特定的布线资源以满足时序要求。这些内核可归类为固核由于内核是预先设计的代码模块因此这有可能影响包含该内核的整体设计。由于内核的建立(setup)、保持时间和握手信号都可能是固定的因此其它电路的设计时都必须考虑与该内核进行正确地接口。如果内核具有固定布局或部分固定的布局那么这还将影响其它电路的布局。