pre-silicon

带有逻辑仿真的主机代码模式

主机代码模式是一种编译嵌入式系统软件的技术,它不是针对硬件设计中的嵌入式处理器,而是针对主机工作站的。这也称为本机编译。

为了执行协同验证,在主机上运行最终的可执行文件,并将其连接到执行硬件设计的逻辑模拟器。

需要某种类型的进程间通信(IPC)在主机编译的嵌入式软件和逻辑模拟器之间交换信息。

IPC实现可以是一个套接字,它允许两个进程中的每一个位于网络上的不同计算机上,或者是在同一计算机上运行两个进程的共享内存。

主机代码模式不限于使用逻辑模拟器作为硬件执行引擎。可以使用任何硬件执行引擎。

与主机代码模式一起使用的其他一些工具是加速器/仿真器和原型平台。

在主机代码模式下,硬件执行引擎中使用了总线功能模型来为微处理器的总线接口创建总线事务。

主机编译程序与总线功能模型的组合用作微处理器模型.

主机代码模式为软件和硬件工程师提供了一个诱人的环境。

软件工程师可以继续使用他们已经在使用的软件工具,包括源代码调试器以及主机上的其他开发和调试工具。

硬件工程师还可以在设计过程中使用已经使用的工具。 Verilog或VHDL逻辑模拟器以及相关的调试工具。

这对两组工程师都要求最小的方法更改,并且可以使软件和硬件验证都受益。

当处理器尚不存在时,进行硅前验证的能力将是一个很大的好处。 基本架构如图4-8所示。

当软件不通过微处理器总线访问硬件设计,而是通过诸如PCI之类的通用总线接口访问硬件设计时,也可以使用主机代码模式。

许多芯片没有嵌入式微处理器,但是设计时将PCI总线作为可编程寄存器的主要接口。

在这种情况下,软件可以在主机上运行,并且可以在硬件执行引擎中将对软件的读写操作转换为PCI总线事务。

这是一个很好的例子,说明何时将软件执行抽象到主机并将其链接到PCI接口上的硬件执行是有用的。

主机代码模式要求嵌入式软件通过总线功能模型访问硬件设计时,需要对其进行修改以执行功能调用。

如果已经有很多嵌入式软件,那么进行特定函数调用的过程可能会很痛苦,或者如果代码是从头开始编写的,

并且所有内存访问都经过编码以进行通用函数调用,那么这种过程可能会很麻烦,或者几乎没有问题。

图4-9中显示了用于主机代码执行的C库调用示例。

参考书籍:

  • Co-Verification of Hardware and Software for ARM SoC Design-Elsevier (2005).pdf
  • System-on-Chip Security_ Validation and Verification-Springer International Publishing (2020).pdf

post-silicon

SoC与IP安全的格局landscape

设备类型:手机,平板电脑,消费品(冰箱,灯泡,恒温器),可穿戴设备

使用场景:购物,银行业务,跟踪,提供行车路线

只能健身跟踪器记录数据:脉搏率,位置,速度

soc设计由硬件和软件模块组成,通常称为design intellectual properties 或者design IPs (IPs for short)

明显的ip包括: cpu, 内存controller, dram,  外设控制器。 IP可以指代任何独立子组件的模块,soc设计

架构需要将各个ip连接,为了实现这些连接,需要network-on-chip(NOC),为IP提供标准化的消息基础结构以协调并合作定义完整的系统功能。

soc设计是通过获取许多第3方ip实现的,这些ip设计包括硬件组件(用vhdl或verilog之类的硬件描述语言编写),软件组件,固件firmware。

硬件设计由OEM原始设备制造商或者平台开发商完成。

soc的供应链包括:ip提供商, soc集成公司, 代工厂,和oem。

代表性的soc设计包括:  《--》 jtag scan  《--》 arm processor  《--》 voltage regulator 《--》

外设bridge             |  《--》 内存控制器  《--》 ebi  《--》

|  《--》 内存控制器  《--》 sram 《--》

|  《--》 内存控制器  《--》 flash 《--》

《--》 pio  《--》 ethernet mac  《--》                        |  《--》 can              《--》 ebi  《--》

《--》 pio  《--》 uart0-1           《--》                         |  《--》 usb device 《--》 pio 《--》

《--》 pio  《--》spi                    《--》                        |  《--》 pwm ctrl     《--》 pio 《--》

设计复杂性的挑战

cpu仅仅代表soc设计中大量ip之一,添加交叉设计功能如电影管理,性能优化,多个voltage islands,时钟逻辑等都导致复杂性增加。

现代SoC设计中的安全性验证

安全验证活动的关注点:1. 要保护的asset有哪些? 2. 对哪些攻击需要防范?

Usages Assets Exposed
Browsing Browsing history
Fitness tracking Health information,sleep pattern
GPS Location
Phone call Contacts
Banking,Stock trading Finances

Fig. 2.1 Some typical smartphone applications and corresponding private end user information

在智能手机领域的oems和制造商,不希望泄漏的的信息有:加密方式, drm keys, premium content lock,固件执行流,

调试模式等。

供应链安全威胁SoC从概念到部署的生命周期涉及许多安全性
涉及各方的各个阶段的威胁。图2.2b显示了SoC的生命周期
以及贯穿整个生命周期的安全威胁。在SoC设计过程中,越来越依赖可重用的预验证硬件IP,
通常会从不受信任的第三方供应商那里收集,严重影响
SoC计算平台的可信度。由于IP越来越复杂
以及SoC集成过程中,SoC设计人员越来越倾向于对待这些
IP作为黑匣子,依赖IP供应商的结构/功能完整性
这些IP。但是,这样的设计实践大大增加了不受信任的数量
SoC设计中的组件,使整个系统安全成为紧迫的问题
岑从不受信任的第三方供应商处获得的硬件IP可以具有多种安全保护措施。
IP设计过程可以故意插入恶意植入物或对设计进行修改,
以合并隐藏/不需要的功能。此外,由于许多
IP供应商是小型的供应商,他们的工作进度非常积极,
确保在此生态系统中严格的IP验证要求是困难的。
设计功能可能还会引入意外漏洞,例如,信息漏洞
通过隐藏的测试/调试接口或通过旁通道的
功率/性能profile。同样,IP可以具有未表征的参数。
攻击者可以利用这些行为(例如,功率/热量)导致无法恢复的行为
严重损坏电子系统。有记录的实例
攻击。例如,2012年,一组研究人员在剑桥进行的一项研究
在高度安全的军用级中发现了一个无证的硅级后门
MicroSemi的ProAsic3 FPGA器件(以前是Actel),后来
描述为片上调试基础设施无意间导致的漏洞
。在最近的一份报告中,研究人员证明了这种攻击,
会通过影响固件来破坏其处理器的
电源管理系统[3]。它为IP展示了一种新的攻击模式,其中固件/软件更新可能会恶意影响功率/性能/温度用来破坏系统受信任和不受信任的CAD工具会给SoC设计带来类似的信任问题。
此类工具旨在优化功耗,性能和面积的设计。
在当今的工具中,安全性优化不是一个选择,因此有时在
优化中引入了新的漏洞。例如,在将设计外包给测试设计设施的情况下
Design-for-Test(DFT) or Design-for-Debug (DFD)的插入会
损害soc的完整性。安全策略:设计要求

CIA范式:

∙ Confidentiality: 除非获得授权,否则代理商无法访问资产 所以。
∙ Integrity: 资产可以变异(例如,安全存储位置中的数据可以 只能由授权的代理商修改)。
∙ Availability: 资产必须可供需要以下访问权限的代理访问: 正确的系统功能的一部分。

2个例子说明以上准则:

example 1   在启动期间,加密引擎传输的数据无法被SoC中的任何其他ip观察到,除了目标ip可观察到数据。example 2  包含安全密钥的可编程fuse可以在制造过程中进行更新,不能在生产后更新。
示例1是保密性的一个实例,而示例2是保密性的一个实例
诚信政策;但是,这些策略处于较低的抽象级别,因为它们
旨在翻译为“可操作的”信息,例如架构或设计
特征。上面的示例(尽管是假设的)说明了一个重要特征-
安全策略的逻辑:同一个代理可能会或可能不会被授权访问(或
更新)取决于(1)执行的阶段(即,
开机或正常),或(2)设计生命周期的阶段(即制造或制造
)。这些因素使安全策略难以实施。

SOC debug架构

post-silicon 调试可以在产品不同周期阶段进行:包括post-silicon验证,

laboratory bring-up, application software
debugging by authorized developers, and field return evaluation收益评估.

旨在发现的问题:功能bugs,电气errors,性能issues,软件bugs,以及未解决的缺陷制造测试。

IP和Soc的概念、安全设计、验证和调试相关推荐

  1. 轻松掌握IP子网划分的概念和操作方法

    轻松掌握IP子网划分的概念和操作方法 George Ou第一次在TechRepublic社区发表和IP子网划分相关的热门文章是在2006年的6月.对于广大初学者来说,这是一篇非常好的普及资料,即使对其 ...

  2. 电话格式 php,php中ip地址 email格式 电话号码正则验证

    我们要经常要用到的几个正则验证实例,如ip地址 email格式 电话号码正则验证,下面我一一给大家详细介绍介绍,有需要的朋友可参考参考. php验证ip格式的程序代码 如果网站有表单需要填写ip地址, ...

  3. Android开发之Android studio4.1查看app布局的方法 | 使用布局检查器和布局验证工具调试布局

    老套路先上图: 老版本和新版本查看方法不一样,我这个是4.1的版本.但是大部分菜单都差不多所以先看我这个版本查看布局方法如下: 选择查看app布局的进程即可 总结: 菜单栏选择Tools-Layout ...

  4. SOC EDS 中eclipse 中远程gdbserver调试与使用(超级详细)

    SOC EDS 中eclipse 中远程gdbserver调试与使用(超级详细) 一.安装 二.建立远程调试 配置Debugger 启动 gdbserver 调试 三.简单的调试操作: 一.安装 DS ...

  5. 海思Hi3516AV200 Professional HD IP Camera SoC Datasheet

    HI3516AV200作为专为高清IP摄像头设计的新一代行业专用SOC,集成新一代ISP,并使用业界最新的H.265视频压缩编码器和最新的H.265视频压缩编码器.先进的低功耗技术和建筑设计.这些功能 ...

  6. OpenStack Identity Keystone基本概念及验证进化过程

    一.概念与关系 先上图,看user.credential.group.role.project/tenant.service.endpoint.domain.region:token.authenti ...

  7. HLS第三十四课(UG871,HLS IP接入SOC系统)

    能够和其他模块通过AXIS互联的接口, 需要使用接口约束,axis. 能够和DMA通过AXI4互联的接口, 需要使用接口约束,m_axi. 能够接入SOC系统的, 需要使用接口约束,s_axilite ...

  8. CPU、MPU、MCU、SOC的概念和区别

    概念 1.cpu cpu(central processing unit)是一台计算机的运算核心和控制核心,CPU由运算器.控制器和寄存器以及实现他们联系的数据.控制总线构成,cpu典型的三级流水线操 ...

  9. 利用ISCSI存储技术构建IP存储网络(概念篇)

    一.iSCSI的概念iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,该技术是将存储行业广泛应用的SCSI接口技术与IP ...

最新文章

  1. Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器
  2. ASP.NET在线用户列表精确版——解决用户意外退出在线列表无法及时更新问题
  3. Python之PIL库
  4. 你对5G技术“低延时”可能有些误解——专访虎牙5G 首席架构师林正显
  5. Could NOT find XXX (missing: XXX_LIBRARY XXX_DIR)
  6. 「数据分析」Sqlserver中的窗口函数的精彩应用-问题篇
  7. 淘宝的开源分布式文件系统TFS
  8. python 日期格式打印_Python打印格式
  9. 高校/中职大数据实验室建设方案
  10. 英语数字听力训练精灵
  11. linux笔记本电池管理,Linux系统笔记本电源管理方法实用指南
  12. 美国高防服务器亿速云,亿速云香港高防裸金属服务器上线,更强悍的计算性能,更安全的DDoS攻击防护...
  13. 一条命令(dd)制作Centos(Linux)优盘(U盘)启动盘
  14. 织梦dedecmsTAG出现404页面的解决办法
  15. 微信分享到朋友圈的链接没有图片。开发工具中正常没有报错-解决方案
  16. [进阶]-多线程、多进程、异步IO实用例子
  17. mac php pear,OSX EI Captain中安装Pear等三方软件不成功的解决方法
  18. java psyounggen_Java 虚拟机
  19. 新来个技术总监,仅花2小时,撸出一个多线程永动任务,看完直接跪了,真牛逼!
  20. Labview视觉一键尺寸测量仪,多产品

热门文章

  1. 在大公司做凤尾,还是在小公司做鸡头?如何选择
  2. 素描静物绘画需要掌握的基础知识有哪些
  3. echarts如何在json地图上设置多种颜色的点位和自定义背景弹出框
  4. [翻译] 在 Overleaf 中追踪修订
  5. 【obs】项目构建环境
  6. 关于谷歌学术搜索.enw格式批量导入endnote的解决方法
  7. 申请 Xvoucher 帐号 - 教师
  8. 某人的酒量大叫海量,你见过最多一次喝多少酒的人(喝醉不算)?
  9. 全球及中国半导体行业发展方向及项目投资建设分析报告2022-2028年版
  10. c# 定时器 每隔几秒执行一次