今天的主题,为什么要学习ESL,一个必然的趋势,大多数公司正在经历由第三方IP集成转向自主研发的过程,而在这个过程中ESL必然会是芯片设计中必不可少的一环,因为IP的model 也将变成类似vip 一样不可或缺的配套工具。

下面这是一大段X话,反正就是说ESL挺重要的,里面几个概念也挺重要的。

在整个芯片设计过程中,ESL设计是能够让SoC设计工程师以紧密耦合方式开发、优化和验证复杂系统架构和嵌入式软件的一套方法学,它还提供下游寄存器传输级(RTL)实现的验证基础。已有许多世界领先的系统和半导体公司采用ESL设计。他们利用ESL开发具有丰富软件的多处理器器件,这些器件为创新终端产品获得成功提供必需的先进功能性和高性能。

TI和高通一直都在做定义规格或者设计时先在模拟或者仿真的环境下建立SOC的整个模型,包括CORE,总线,仲裁器,一些业务强相关的外设模型。模型可以是时序精确的也可以是近似时序精确的。一个不同就是精确的仿真速度慢,不精确的仿真速度快。此类平台的供应商有CoWare和Carbon等,模型可以来自ARM,synopsys等。建模语言有systemC,C++等。遵循的标准貌似就是TLM2.0。平台搭好后,能作的事情举例说有:观察总线上cycle粒度的时序关系,利用一些工具可以分析某段程序运行的效率,cache命中率,总线占用率,CPU占用率。如果不嫌慢也可以运行OS,观察调用栈,也可以调试程序。总之很多硬件平台上的能作的事情,这上面都能做,缺点就是慢。流片之前的设计验证都能做,回板之前的部分程序也可进行调试。

关注点分离简化了建模和验证

通信和计算应被视为独立的问题。这样,通信和计算块都可以重用,而不会相互依赖。如果您使用计算块并将它们连接在一起而不进行通信,那么您将创建一个与协议无关的虚拟平台。“你需要一种方法,允许你选择任意两件事,并以不需要重新验证的方式将它们组合在一起,”布赖恩说。

同样,功能和架构也应该分开处理。“我们不想用我们将如何实施它来污染我们的功能描述。”

使用多个抽象级别

TLM 驱动的设计和验证将发生在“多抽象”环境中。最好的方法是从顶部开始算法设计和验证,通过循环完成该过程,然后向下移动到架构验证,同时尽可能多地从算法级别重用。下一步是从架构验证转向微架构验证,再次尽可能多地重用。

适配器和接口

设计过程可能会从 C/C++ 算法模型开始。要转向可在虚拟平台中使用的架构模型,有必要定义硬件/软件边界、寄存器和并发性。这就是 SystemC 的用武之地。随着模型转换的进行,将需要“适配器”,它们是处理速率匹配和缓冲区大小等问题的简单例程。

Brian 概述的流程在很大程度上依赖于高级综合。由于 OSCI TLM 1.0 和 2.0 标准不可综合,因此流程使用基于 OSCI TLM 1.0 的接口,该接口不严格遵守该标准。例如,它忽略了不可合成的仿真特征,并添加了合成所需的缺失特征,例如复位。它还引入了来自 OSCI TLM 2.0 的“通用有效负载”功能。

实际上,这不是 Brian 演讲的一部分,尽管在回答一个问题时,他说定义一个可综合的 SystemC 子集将有助于 IP 行业的发展。在我看来,TLM IP 的可用性是下一个大问题,但这是另一个博客的主题。

ESL之所以被越来越重要,很大一个原因,是大家越来越关注系统级的概念,不管是自研的的IP还是第三方IP,基本脱离不了系统级的概念,如果是当下的IP已经能确保功能无任何异常,当然前提是参数配置正确,比如ARM的IP,这么多年有人给ARM 提出来过什么bug吗?那一款芯片真正面临的问题就会变成系统级BUG和调优的问题。

当然传统的UVM验证还是依旧重要,未来更多的趋势还是往多种方法学上进行演变,比如形式验证,PPP ,AI 这这一类,但是验证绝不会是项目中的风险点,可能更多是背锅侠。

回到正题,从老板或者架构师来看,需要更多的是关注系统级行为,软硬件交互行为,复杂场景行为等等。所以问题也就变成如何量化分析这些行为,ESL大概就是为这个而生,他的出发点并不是集中在模块的具体实现,更多的是关注场景,更可能接近真实的去模拟需要的场景。从场景出发,量化分析,达到目标,这是我们想要的结果,不过ESL 并不完善,他有很多缺点,真的是很多,第一个场景不够真实,模拟行为还行,上升到性能就纯属扯淡,类似约个妹子不难,要求是美女就过分了。第二构建起来难度颇大,但是收益不大,类似有些人追女神的过程,有可能追不少,或者追上了,女神还是心有他人。最起码一点,在芯片整个流程中他没有在任何一个点上能做到不可替代,更多的是对现有流程的补充吧,这也是为什么20多年,依旧默默无闻。在未来ESL并不会有多大的市场,但是大厂和小众范围内他任然是必须的,可能变成整个流程中足够完美的补充,类似最佳配角。至于为什么要学ESL,因人而异。有想学的小伙伴,可以私信,多多交流,相互安抚,抱团取暖。

对,本篇文章应该叫ESL,从入门到放弃。

ESL 学习笔记 000相关推荐

  1. 前端开发~uni-app ·[项目-仿糗事百科] 学习笔记 ·000【前言】

    前言 本系列笔记,基于曾经的网易云课堂上一个"uni-app仿糗事百科"开发的课程,课程的资源来自网络. 我仅做一些笔记,来记录学习的一些收获. 前8节课讲的都是一些软件的基础使用 ...

  2. python编辑器文字放大_python学习笔记000

    写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...

  3. 《Linux编程》学习笔记 ·000【Linux介绍】

    注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 写的比较早了,当时还没开始自学,emmm,现在发现有这么篇草稿 ...

  4. 校园课程 ·学习笔记 ·导航目录

    文章目录 前言 目录 大二(下) <编码规范和测试方法--C/C++版> <SQL高级应用和数据仓库基础(MySQL版)> 大三(上) <计算机网络> <计算 ...

  5. 硬件学习笔记之电容选型之等效电路ESR和ESL

    硬件学习笔记之电容选型之等效电路ESR和ESL 前言: 我介绍了电阻电容的一般参数,下面我们讲总结一些电容的等效电路和ESR和ESL. 电容的等效电路 首先我们先知道一点电容并不是我们所熟知的只有一个 ...

  6. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  7. ESL3.4 学习笔记(奇异值分解与拉格朗日乘子法下的岭回归,Lasso回归,最小角回归及三者对比分析)

    3.4 收缩的方法 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放 ...

  8. ESL2.5 高维问题的局部方法学习笔记(含泛化误差分解MSE分解)

    2.5 高维问题的局部方法 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成 ...

  9. INTERVAL数据类型-007学习笔记

    http://baggio785.itpub.net/post/31233/286119 INTERVAL数据类型用来存储两个时间戳之间的时间间隔. 可以指定years and months,或者da ...

最新文章

  1. 也谈.Net中间语言——破解Delphi2CS行数和时间限制
  2. 一些知识点的初步理解_6(核函数,ing...)
  3. update yum 到指定版本_yum语法及常用命令汇总
  4. CentOS6.9中使用yum install时提示:Cannot find a valid baseurl for repo: centos-sclo-rh
  5. 【Linux】一步一步学Linux——more命令(39)
  6. 最长回文子串 C++
  7. 云主机tracert外网无返回需在安全组入方向加ICMP Time Exceeded TTLexpired in transit
  8. java根据wait,notify,synchronize关键字自定义队列
  9. 微信停机断网可充话费;苹果正研发可折叠屏幕 iPad;Rust 1.36.0 发布 | 极客头条...
  10. 使用Python实现批量发送邮件
  11. 根据key或value将map容器进行排序
  12. Java开发OCR文字识别系统
  13. python alpha通道_Python PIL完全删除每个alpha通道
  14. 补能的争议路线:快充会走向大一统吗?
  15. Halcon 学习笔记八:颜色识别
  16. 深度学习之文本生成图片
  17. 基于Atmel128A单片机的MP31.0设计
  18. Scrum敏捷价值观与原则
  19. 小游戏--三子棋——N子棋(实现)
  20. There is no getter for property named xxx in xxx

热门文章

  1. 一致性Hash算法以及java实现
  2. 利用GDAL进行多项式几何校正校正新思路
  3. vivos7和oppok7哪个好? vivos7和oppok7参数配置区别
  4. 《开源之歌》,献给每一位开源人
  5. linux驱动摸索-- LCD显示(mini2440_T35)
  6. 妙用Spybot让间谍软件在你的电脑上无处遁形(转)
  7. 小程序文档整理之 -- 场景值
  8. [高仿课堂派]学生老师课程管理系统(SpringBoot+Vue+MySQL数据库)
  9. orchard mysql_最强的.NET开源CMS - Orchard使用说明
  10. VC++  DLL 导出函数