自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (4)
  • 收藏
  • 关注

原创 芯片验证体系

芯片验证知识体系梳理

2022-05-02 16:02:22 4182 2

原创 AMBA CHI知识分享专题

AMBA CHI专题

2020-01-30 08:22:01 13167 13

原创 SystemVerilog与功能验证

芯片验证与systemverilog

2019-11-25 21:55:25 10245

原创 关于写代码这件小事

代码人人都会写,但写好却不容易。要写出美观、有结构化、易拓展、易复用的代码还是需要时刻的修炼。

2025-04-03 15:54:06 293

原创 SoC验证如何减少Bug

在SoC验证中,checklist是很重要的一步,要审视下有没有无意间漏掉的检查或者做出的假设。大部分情况下,checklist总能发现一些RTL bug,本文给出了一些检查的思考方向,希望对大家有用,也欢迎大家补充。

2025-02-21 11:10:02 513

原创 一种解决SoC总线功能验证完备性的技术

如何确保各个IP是否正确连接到总线上,而且各IP的地址空间分配是否正确,是一件很棘手的事情。本文提出了一种新方法,可以解决SoC总线验证的诸多困难,既简单又快速地完成SoC总线功能验证。

2025-02-07 20:52:14 808 1

原创 KVM/ARM——基于ARM虚拟化扩展的VMM

KVM/ARM引入了split-mode虚拟化,这种一种新的hypervisor设计方法,它将核心hypervisor分开,以便它可以跨不同的特权CPU模式运行,从而利用每种CPU模式提供的特定优势和功能。KVM/ARM使用split-mode虚拟化来利用EL2支持的ARM硬件虚拟化,同时利用在kernel模式下运行的现有Linux kernel服务。Split-mode虚拟化允许KVM/ARM与Linux kernel集成,而无需对现有代码库进行重大修改。

2025-01-25 11:09:17 1044

原创 做事者的自我修炼

对于从事芯片行业,一门高度复杂和技术性很强的高科技行业,工程师需要有较强的逻辑思维能力,并且拥有结构化思维和结构化表达能力,这样有助于在复杂的电路和系统中梳理出头绪,快速做出合理的抉择。

2025-01-24 11:59:03 533

原创 ARM架构虚拟化原理

ARM架构虚拟化扩展(Virtualization Extension)是在2010年作为ARMv7架构的一部分引入的,它为虚拟化提供了架构支持。在此之前,ARM系统上的虚拟化解决方案都是基于半虚拟化(paravirtualization)的,并没有被广泛使用。不过随着ARM CPU的性能不断提高,并从智能手机和平板电脑等移动设备向传统服务器进军,人们对ARM虚拟化的兴趣也在增长,因为对ARM来说,支持虚拟化对它的生态建设起到很重要的作用。

2024-12-28 19:33:18 974

原创 一文读懂虚拟化原理

本文旨在用最简单的方式描述虚拟化的本质和基本实现框架,任何复杂的虚拟机都是基于此基本原理上增补功能来的。只要大家心里有个虚拟机原理框架,我相信学习任何虚拟机都能很快入手,摆脱只见树木,不见森林的状态。

2024-12-07 15:37:46 1121

原创 虚拟化的三种方式

Virtualization(虚拟化)是让公开的虚拟资源等同于被虚拟化的底层物理资源。虚拟化在各个领域应用很广泛,不局限于计算机科学领域。

2024-11-23 21:13:31 551

原创 闲聊内存模型(memory model)

现在大多数多核芯片在硬件中支持共享内存,设计和评估一个正确的共享内存系统需要准确理解内存模型。不同CPU可能采用不同的内存模型,比如ARM和RISC-V的Related模型,Intel和AMD的TSO模型以及IBM的Power模型等等。尽管这些模型千奇百怪,各有优缺点,但我们只要抓住它们的本质,就可以轻松拿捏它们。不要太在意边边角角的点,不然很容易陷进去。

2024-11-06 20:39:00 1168

原创 一致性协议挂死(hang)分析

一致性协议(coherency protocol)挂死(hang)通常有三种情况:死锁(deadlock)、活锁(livelock)和饿死(starvation)。

2024-11-03 21:19:58 859

原创 RISC-V笔记——代码移植指南

本文记录一些RISC-V内存操作在不同平台、场景下的使用方式,方便代码在不同平台上的移植。

2024-10-27 10:37:20 1060

原创 RISC-V笔记——内存模型总结

RISC-V使用的内存模型是RVWMO(RISC-V Weak Memory Ordering),RVWMO内存模型是根据全局内存顺序(global memory order)定义的,全局内存顺序是所有harts产生的内存操作的总顺序。通常,多线程程序有许多不同的可能执行,每个执行都有自己对应的全局内存顺序。

2024-10-19 18:18:58 1374

原创 RISC-V笔记——内存模型公理

在RISC-V中,只有当存在一个全局内存顺序(global memory order)符合preserved program order,并且满足load value axiom、atomicity axiom和progress axiom时,RISC-V程序的执行才遵循RVWMO内存一致性模型。今天主要讲下load value公理、atomicity公理和progress公理

2024-10-19 16:25:13 824

原创 RISC-V笔记——Pipeline依赖

RISC-V的RVWMO模型主要包含了preserved program order、load value axiom、atomicity axiom、progress axiom和I/O Ordering。今天主要记录下preserved program order(保留程序顺序)中的Pipeline Dependencies(Pipeline依赖)。

2024-10-18 20:19:11 524

原创 RISC-V笔记——显式同步

RISC-V的RVWMO模型主要包含了preserved program order、load value axiom、atomicity axiom、progress axiom和I/O Ordering。今天主要记录下preserved program order(保留程序顺序)中的Explicit Synchronization(显示同步)。

2024-10-17 21:29:08 1327

原创 RISC-V笔记——重叠地址排序

今天主要记录下preserved program order(保留程序顺序)中的Overlapping-Address Orderings(重叠地址排序)。

2024-10-16 21:38:03 554

原创 RISC-V笔记——RVWMO基本体

RISC-V使用的内存模型是RVWMO(RISC-V Weak Memory Ordering),它是Release Consistency的扩展,因此,RVWMO的基本体类似于RC模型。

2024-10-15 21:46:27 890

原创 RISC-V笔记——语法依赖

RISC-V使用的内存模型是RVWMO(RISC-V Weak Memory Ordering),该模型旨在为架构师提供更高的灵活性,以构建高性能可拓展的设计,同时支持可控制的编程模型。

2024-10-12 20:36:51 878

原创 RISC-V笔记——基础

RISC-V旨在支持广泛的定制和专业化。RISC-V的ISA是由一个基本整型ISA和其它对基本ISA的可选扩展组成。每个整型ISA可以使用一个或多个可选的ISA扩展进行扩展。

2024-10-09 21:13:26 1029

原创 如何写出更系统的验证检查器

芯片验证是为了发现芯片中的错误而执行的过程,它是一个破坏性的过程。有效激励灌入待测模块后,需要判断出不符合功能描述的行为。检查器(Checker)就是用于查看待测模块是否按照功能描述文档做出期望的行为,识别出所有的设计缺陷。

2024-10-07 11:35:45 1069

原创 如何写出更牛更系统的验证激励

芯片验证是为了发现芯片中的错误而执行的过程,它是一个破坏性的过程。完备的验证激励可以更有效地发现芯片错误,进而缩短验证周期。合格的验证激励必须能产生所有可能的验证场景(完备性),包括合法和非法的场景,并保持最大的可扩展性和可控性。

2024-10-04 20:47:21 1241

原创 讲个SystemVerilog disable语句的坑

记录个使用SystemVerilog disable语句时遇到的坑,这个坑有点反直觉,以至于我当时有点不信,觉得可能是EDA仿真工具的问题。后来查看了SystemVerilog手册和使用不同EDA工具进行验证,才慢慢接受了。结论是:SystemVerilog disable block_name或task时,会把hierarchy一致的block_name或task的线程都停掉。

2024-09-01 10:38:35 1133

原创 设计模式在芯片验证中的应用——状态

状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。

2024-08-17 19:27:21 555

原创 三个锦囊妙计助效率提升

本文列出了3个常用的配置,可以帮助我们从繁琐重复的任务中解脱出来、实现自动化操作。日积月累,一定有助于提升效率。

2024-07-13 11:25:06 681

原创 讲个SystemVerilog随机约束小坑

记录个在写SystemVerilog随机约束时遇到的一个小坑,如果没有认真去查看随机结果是否符合预期,还真不容易发现。

2024-07-06 21:45:14 516 2

原创 管理上的一些思考

管理可分为自我管理、平级管理、向下管理和向上管理。

2024-06-30 13:07:53 870

原创 SystemVerilog Assertion精华知识

断言是对设计属性的描述:如果在仿真中检查的属性没有按照我们期望的方式运行,则断言失败;如果在仿真中出现了在设计中禁止发生的行为属性,则断言失败;

2024-06-22 17:05:31 1333

原创 芯片验证分享系列总结及PPT分享

验证分享系列视频总结和PPT分享

2024-06-21 20:47:49 474

原创 芯片验证分享9 —— 芯片调试

大家好,我是谷公子,之前的课程给大家讲了验证原则、激励设计和代码审查,今天我们来讲芯片调试。

2024-06-19 09:12:18 375

原创 芯片验证分享8 —— 代码审查2

大家好,我是谷公子,上节课给大家讲了代码审查中的代码正向检查,今天我们来讲代码审查的其他方法。今天介绍的检查方法有:代码反向检查、桌面检查、同行评审、可用性验证。

2024-06-16 20:14:13 227

原创 芯片验证分享7 —— 代码审查1

大家好,我是谷公子,前几节课给大家分享了如何设计激励,今天我们来如何进行代码审查。代码审查在查找错误方面非常有效,任何编程项目都需要它。

2024-06-16 13:23:11 498

原创 芯片验证分享6 —— 激励开发4

大家好,我是谷公子,上节课跟大家分享了黑盒技术中的等价类分析和边界值分析方法。我们这次来分享下黑盒设计中的其它技术。

2024-06-11 21:40:48 358

原创 SystemVerilog Interface Class的妙用

Interface Class是在SystemVerilog 2012版本中引入的,但目前在验证中几乎很少采用,大多数验证工程师要么不知道它,要么没有看到使用它的任何好处,这使得Interface Class成为一个未被充分使用和不被重视的特性。本文将举两个Interface Class的使用例子,在这些例子中,Interface Class提高了验证环境的灵活性和质量,同时进一步提高了其可维护性和可调试性。

2024-06-09 10:24:30 1386 1

原创 芯片验证分享5 —— 激励开发3

大家好,我是谷公子,上节课跟大家分享了黑盒技术中的等价类分析和边界值分析方法。我们这次来讲下黑盒设计中的其它技术。

2024-06-04 10:26:57 232

原创 芯片验证分享4 —— 激励开发2

大家好,我是谷公子,上节课跟大家分享了如何在芯片验证中开发出更有效的激励。这次我们继续来讲激励开发。一般来说,在所有的激励开发中效率最低的是漫无目的的随机激励,就是在所有可能的输入值中随机选取某个值来对芯片进行验证的过程。目前有三种常用的激励设计方法,分别是:黑盒设计、白盒设计和灰盒设计。

2024-06-04 10:24:49 349

原创 芯片验证分享3 —— 激励开发1

大家好,我是谷公子,前两节课和大家分享了验证中比较重要的名词和验证七大原则,今天来讲下如何在芯片验证中开发出更有效的激励。激励开发的内容稍微多一点,我们将分开讲述,这次是第一部分。

2024-06-04 10:21:07 216

原创 芯片验证分享2 —— 验证七大原则

✦✧ 前言 ✦大家好,我是谷公子,上节课和大家分享了几个验证中比较重要的名词,今天来讲下芯片验证中需要遵循的七大原则。以下这些原则不分先后,在验证中同等重要。

2024-06-04 10:17:44 404

ARMv9-A学习记录.pdf

在学习ARMv9 AArch64 execution state的时候,从ARM手册里摘取的一些笔记,方便自己以后快速复习。内容包括A64 instruction set, Application/System level programmers' model, Application/System level memory model, Virtual memory system architecture等等。 PS: 这里面没有AArch32和debug的内容。以后有时间再去看看。 参考文献版本号:DDI0487H_a_a-profile_architecture_reference_manual 另外,本资源只是摘取一些general的知识点,并没有涉及很多细节,需要的话,可以看原版1万多页英文手册

2022-06-12

智能小车 包括 巡线 避障 寻光源等功能 完整程序

智能小车 包括 巡线 避障 寻光源等功能 完整程序,可以大量减少去寻找代码的时间

2013-04-21

单片机控制的智能台灯

这智能台灯可以自己控制亮灭,有人的时候会亮。没人的时候会自己暗下来,还附有提示功能啊,功能多多,我搜集了好几个版本啊

2013-03-13

蓝牙与安卓通信

蓝牙模块可以与安卓手机通信,里面是一些从网上搜集到的资料,为了便于大家,就整理了一下,希望能帮助到你们,O(∩_∩)O谢谢

2013-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除