tag 标签: 硬核

相关博文
  • 热度 24
    2015-9-7 09:10
    1332 次阅读|
    0 个评论
      引言:   SoC研发业者现今在制定产品研发决策时,最重要的一项因素就是选择一套适合的硅智产(IP)核心(CPU)。这方面的决定会影响产品效能与质量、产品上市时程、以及获利绩效。但SoC研发业者在选择核心时会面临许多挑战,在判断何种核心最适合某种SoC时,更须谨慎的考虑,业者须决定核心的种类(软核或硬核)、技术数据的质量、以及IP供货商的可靠度与专业性。本文将探讨每项领域并提供相关指南,介绍如何评估各种IP核心的特色。          芯片制造技术不断改进,为现今的设计工程师提供很多可使用的硅组件与设备。然而,工程师在设计电路方面的能力并未跟上制程技术的发展脚步以应用这些新增的硅组件。这种不平衡现象造就现今的IP核心产业。IP核心让研发团队仅须整合预先制作的功能区块,不须进行任何设计或检验作业,即能迅速开发大型的系统单芯片设计。   但这种新的研发型态亦衍生许多困难的挑战。视核心种类的不同,这些挑战的困难度可高可低。   首先,IP核心可透过软核或硬核两种型式交付到客户的手上。不论何种型式,顾客都会收到一套功能上已检验过的设计方案。软核亦称为可合成核心,可经由顾客合成后再建置到其SoC中。 硬核,则已预先建置并可立即投入生产。(从技术面而言,设计方案须在投产后才算是建置完成。但在本文中,建置代表配线及其后段工程已完成生产准备)。SoC团队仅须将硬核视为单一整合电路嵌入至芯片中。软核与硬核有各自不同的问题与优点,以下我们将详细介绍。   IP核心启动(jump-starts)整体SoC研发流程的一部份。研发团队取得已预先检验的设计方案,使他们能以更少的时间、更少的工程与EDA资源下完成芯片的研发。但是,将核心整合至芯片需要进行许多步骤,步骤的难易度视厂商提供的整体技术文件与支持而定。本文将详细介绍让客户能轻易将核心整合至各个SoC研发阶段的技术数据与技术支持。   最后,顾客须考虑IP厂商。IP产业仍处在萌芽阶段,市面上存有许多良莠不齐的产品,且不仅是刚成立的新业者才会提供这类方案。因此,顾客不仅须评估IP核心,亦须评估IP厂商的整体能力。   研发SoC,核心CPU技术该挑软?选硬?这是一个如何选择的问题。因此,从本周起,技术论坛将针对此议题进行一系列的探讨,本篇先就两者的优劣势进行比较。    软核与硬核的优缺点比较   效能   由于软核并未完成建置(Implement),故比硬核在功能与建置方面拥有更高的弹性。另一方面,因为这些核心会被应用在许多设计方案中,所以硬核研发业者能花更多的时间针对其建置作业进行最佳化。因此一般人都有硬核能提供较高效能的成见。   事实上,针对大多数先进制程所设计的完全客制化高阶硬核,的确提供比软核更优越的效能。由运用latch(拴锁)型开关电路、动态逻辑、三相讯号、客制化内存等组件,完全客制化可达到超越完全静态合成设计方案的效能。对于需要超越现有制程与研发技术效能极限的SoC而言,完全客制化的硬核较能满足其需求。   但若效能目标落在软核的支持范围内,则硬核的优势就无关紧要。SoC研发团队可利用软核先天俱有的弹性满足其效能目标(随着制程技术持续改进,软核的最高频率亦会随之提高,让它们成为更多SoC设计方案的理想选择。)   即使在较低的频率频率下,硬核亦能提供硅组件空间上的优势。但这种优势并非永远存在。通常硬核运用ASIC型态的设计技术进行硬型化(hardened),这种流程无法在速度上产生优势。在其它方面,完全客制化的核心无法针对每个制程世代重新进行最佳化调校,因而消弭在频率与尺寸上的优势。   制程技术独立性与移植弹性   软核的其中一项优点就是制程技术独立性。高阶的Verilog或VHDL程序不需要运用某一特定的制程技术或标准的单元库(cell library)。这意谓同一套IP核心可重复应用在多种设计,或是未来新世代的设计方案中。(部份软核IP供货商开发出针对特定制程的方案,让其核心不具制程技术的独立性,但这种模式的优点尚不明确)。   另一方面,硬核则具有相当高的制程技术特定性。事实上,若晶圆厂商变更其制程参数或单元库变量(cell library factor),硬核有可能就无法正常运作。因为IP供货商在制程参数改变后,须重新检验硬核,所以这种特性即衍生出运用上的风险。   硬核可移植到新的制程技术,但须投入相当可观的心力与成本来重新进行最佳化调校。对于某些先进的微处理器核心而言,须耗费两年甚至更长的时间。因此,硬核的尺寸通常会针对新制程等比例缩小。这种方法虽简单且迅速,但可能减低研发团队针对最初制程进行的最佳客制化效益。   此外,光学等比例缩小的作法会衍生额外的风险,因为它仅保证新设计能符合设计规则,但不保证正确的时序或功能。由于光学比例缩小是超快捷方式式的设计模式,故业者在重新检验这类IP核心时会面临很大的困难。   事实上,软核可能是针对单一制程技术与单元库为设计依据,设计本身与此一技术无关。针对制程技术与单元库提供最佳的效能,类似的技术可能达到接近最佳化的成效,但是差异性较大的技术(例如搭配速度较慢的RAM)可能就无法达到相同的结果。此种现象并非绝对重要,所以软核在最佳化的弹性方面优于等比例光学缩小的硬核。   速度╱尺寸╱功耗最佳化调校   硬核在IP供货商进行建置时已做了一次最佳化。因核心仅进行一次最佳化,故IP供货商可投入较多的资源。因此,硬核的速度通常高于采用相同建置技术的软核。即使运用单一技术,硬核仅是锁定一个最佳化目标。若希望在合理的效能下降低芯片使用面积,则进行大幅效能最佳化的硬核,其面积可能过大。   相反的,软核能进行「应用最佳化」的调校。时序、尺寸以及功耗率目标可机动的调整,以配合特定的嵌入式SoC设计方案。例如,若SoC运用200MHz的频率,则原本为250MHz的IP软核应将运作频率调整为200MHz。这种作法能减少使用面积与功耗,同时也符合相关的设计要求。   低层级的I/O时序部份也可针对应用做 最佳化的调整。软核的I/O速度可配合核心所处的环境进行调整。反之,若硬核的输出讯号较为迟缓,SoC研发人员就没有太多可以改善这类时序问题的方法。   若SoC的速度、尺寸以及功耗率即为最初硬核的目标,则这套硬核就能具备竞争力。但是对大多数的设计而言,软核较能针对特殊SoC进行最佳化调校。   客制化弹性   软核另一项超越硬核的优势就是:编译当时才做客制化,在建置之前,可自行选择许多设计选项。   高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。   许多软核具有的另一种客制化设计就是自行定义指令集,也就是自行支持特定指令的功能。例如若SoC有特殊需要,可使用外部协同处理器,有些系统或许需要运用具有压缩功能的指令码,但若系统不需要这些功能时,这些多余硬件就可从软核中移除,以节省芯片面积与功耗。   软核同时也有一些建置组态参数,这些特殊的客制化参数能使软核进一步融入SoC团队所进行的设计环境。例如,微处理器核心通常运用逻辑闸频率电路进行建置,但这种频率可能无法搭配部份频率路由工具。若处理器核心有提供编译时的设定功能,能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件,就能减少SoC团队建置过程中所遇到的困难。   整合的难易度   除非硬核由内部研发小组所建置,否则软核通常比较容易整合至作业流程。其原因是SoC研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SoC中的其它模块,亦能采用相同的建置处理方式。   硬核比较像一个黑箱RAM组件(black-box RAM),尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型,让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如,一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行,并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试,此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。(本文由MIPS Technologies, Inc.提供)
  • 热度 29
    2014-10-30 16:12
    4620 次阅读|
    4 个评论
    Cyclone V DDR3 HardCore 试用评估报告   {C} 1.        硬件平台 开发套件: Cyclone V GX FPGA 开发套件 http://www.altera.com.cn/products/devkits/altera/kit-cyclone-v-gx.html 开发工具: Quartus II 13.1 FPGA 器件型号: Cyclone V 5CGXFC7D6F31C7ES DDR3 型号: Micron MT41J128M16LA-15E   {C} 2.        IP 核配置 IP 核选择 DD3 SDRAM Controller with UniPHY v13.1 。          DDR3 选择 MT41J128M16HA-15E 进行预设;输入时钟为 125MHz ; DDR3 时钟 hard core 可以设置 Cyclone V 支持的最大 HMC 频率 400MHz 。          设定 Maximum Avalon-MM burst length 为 1024 (最大值即 128 ),可以根据实际需要另设。   {C} 3.        Quartus II 测试工程 如图所示,测试工程产生定时写入 DDR3 的数据,同时定时读出相应地址的数据,并且送入 on-chip RAM 中进行在线查看。          资源占用情况。   {C} 4.        On-chip RAM 在线查看          在线查看 RAM 中的数据,每 16bit 的高 8bit 都是每秒递增的,都是一样的数据;低 8bit 数据从 04 开始递增。读出数据和写入数据一致。   {C} 5.        External Memory Interface Toolkit Calibration 后的 2 个 DQ 组有效数据读写窗口裕量信息。  
相关资源
  • 所需E币: 0
    时间: 2024-2-26 10:46
    大小: 2.97KB
    上传者: 开心就很好了
    一、Spark3.0.0运行环境安装Spark常见部署模式:Local模式:在本地部署单个Spark服务所谓的Local模式,就是不需要其他任何节点资源就可以在本地执行Spark代码的环境,一般用于教学,调试,演示等。在IDEA中运行代码的环境称之为开发环境,和Local模式还是有区别的。Standalone模式:Spark自带的任务调度模式。(国内常用)YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度。(国内常用)Windows模式:为了方便在学习测试spark程序,Spark提供了可以在windows系统下启动本地集群的方式,这样,在不使用虚拟机或服务器的情况下,也能满足Spark的基本使用。Mesos&K8S模式:(了解)。Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核,在Twitter得到广泛使用,管理着Twitter超过30,0000台服务器上的应用部署,但是在国内,依然使用着传统的Hadoop大数据框架,所以国内使用Mesos框架的并不多,但是原理都差不多。容器化部署是目前业界很流行的一项技术,基于Docker镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是Kubernetes(k8s),而Spark也在最近的版本中支持了k8s部署模式。1、配置javajdk1.8环境变量配置路径:电脑→属性→高级系统设置→环境变量path中加入:%JAVA_HOME%/bin。注:jdk版本不宜过高。2、配置scala2.12.0下载scala安装包,选择对应版本,这里我选择的是scala2.12.0版本。3、配置scala环境环境变量配置路径:此电脑→属性→高级系统设置→环境变量path中加入:%SCALA_HOME%/bin。验证配置cmd验证配置:scala-version4、配置Hadoop3.1.0Hadoop下载从Apache官网下载Hadoop,官网下载速度较慢,也可使用国内镜像下载。Hadoop环境变量配置,配置步骤同Scala配置。注意:需要把%HADOOP_HOME%\bin与%HADOOP_HOME%\sbin一同加入path中。5、配置Spark3.0.3Spark下载Spark环境配置,配置步骤同scala配置。注意:需要把%SPARK_HOME%\bin与%SPARK_HOME%\sbin一同加入path中。配置验证cmd命令:spark-shellSpark配置成功。二、spark实战Spark是用于大规模数据处理的统一分析引擎,也可以说是目前用于可伸缩计算的最广泛的引擎,成千上万的公司包括财富500强中的80%都在使用。Spark生态系统集成了丰富的数据科学、机器学习、SQL分析和BI、存储和基础设施等框架,并将这个生态使用可以扩展到数千台机器大规模数据使用。Spark提供了Java、Scala、Python和R的高级api,以及支持通用执行图的优化引擎。Spark支持一系列丰富的高级工具,包括用于SQL和结构化数据处理的SparkSQL,用于pandas工作负载的Spark上的pandasAPI,用于机器学习的MLlib,用于图形处理的GraphX,以及用于增量计算和流处理的StructuredStreaming。Spark自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式,Spark的Standalone模式体现了经典的master-slave模式。#拷贝一个部署spark-standalone目录cp-rspark-3.3.0-bin-hadoop3spark-standalone#进入目录cdspark-standalone/cdconf#准备workers配置文件mvworkers.templateworkers#修改workers内容为viworkershadoop1hadoop2hadoop3#准备spark-env.sh配置文件mvspark-env.sh.templatespark-env.sh#spark-env.sh添加如下内容vispark-env.sexportJAVA_HOME=/home/commons/jdk8SPARK_MASTER_HOST=hadoop1SPARK_MASTER_PORT=7077#分发到其他两台上scp-r/home/commons/spark-standalonehadoop2:/home/commons/scp-r/home/commons/spark-standalonehadoop3:/home/commons/#进入根目录下sbin执行目录和启动cdsbin/./start-all.sh由于spark-shell停止掉后,集群监控页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。#先停止前面启动的集群./stop-all.sh#准备spark-defaults.confcd../confmvspark-defaults.conf.templatespark-defaults.conf#修改spark-defaults.confvimspark-defaults.confspark.eventLog.enabled     truespark.eventLog.dir       hdfs://myns:8020/sparkhis#需要启动Hadoop集群,HDFS上的目录需要提前存在hadoopfs-mkdir/sparkhis#修改spark-env.sh文件,添加如下配置:vispark-env.shexportSPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://myns:8020/sparkhis-Dspark.history.retainedApplications=30"#参数1含义:WEBUI访问的端口号为18080#参数2含义:指定历史服务器日志存储路径(读)#参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。由于hadoop是HA模式因此配置为hdfs-site.xml下的dfs.nameservices的value值  <property>    <name>dfs.nameservices</name>    <value>myns</value><!--core-site.xml的fs.defaultFS使用该属性值-->  </property>#分发配置到另外两台上scpspark-defaults.confspark-env.shhadoop2:/home/commons/spark-standalone/conf/scpspark-defaults.confspark-env.shhadoop3:/home/commons/spark-standalone/conf/#启动集群./start-all.sh#启动历史服务./start-history-server.sh
  • 所需E币: 5
    时间: 2023-2-12 21:36
    大小: 1.08MB
    上传者: ZHUANG
    适用于FPGA的浮点型DSP硬核结构设计
  • 所需E币: 2
    时间: 2022-1-2 16:25
    大小: 2.38MB
    上传者: czd886
    FPGA硬核处理器系统的数字化集成电路设计
  • 所需E币: 1
    时间: 2022-1-3 22:56
    大小: 2.31MB
    上传者: czd886
    基于FPGA嵌入式硬核的PCI+Express总线接口设计与验证
  • 所需E币: 2
    时间: 2021-11-7 16:37
    大小: 20.08MB
    上传者: star310079192
    程序员必知的硬核知识大全
  • 所需E币: 0
    时间: 2020-12-25 21:04
    大小: 2.02MB
    上传者: czd886
    基于FPGA内嵌DSP硬核的脉冲压缩设计与实现
  • 所需E币: 3
    时间: 2019-12-25 11:34
    大小: 245.54KB
    上传者: 微风DS
    本文汇总了现代四大FPGA-SoPC软硬件协同设计的基本实现技术,分析对比了相关的微处理器核及外设/接口IP核、总线体系框架、嵌入式实时操作系统、软硬件体系的开发/调试、FPGA硬件载体等重要环节,还阐述了如何使用ESL-TLM加速FPGA-SoPC设计进程。……