自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 深入了解ARM系统的安全处理

上图是一个典型的ARM SoC内部结构,在这个结构里,Trustzone做的事情是保护数据在芯片内部的安全,不允许非授权的访问,哪怕这个访问来自CPU。初看有些复杂,不过我们可以拆开慢慢分析,从硬件角度开始比软件更清楚。首先,按照Trustzone的划分,一个芯片内被划分为安全世界和非安全世界。上图中,中间黑色的部分是总线,总线上面是主设备,下面是从设备(主设备中的缓存是例外,这个以后说)。读写请求总是从主设备发往从设备的。作为从设备,区分它是不是属于安全世界相对简单。

2025-04-17 11:55:51 977

原创 Synthesis Error——ELAB-400

综合过程中,如果rtl 中出现端口声明的问题,综合的过程中会报出ELAB-400 的Error , 综合停止。且只会报出在哪个module里的端口声明有问题,并不会报出具体的端口名字。2.定义了对的信号名,例化的时候拼错了接口;3.signal名与instance名重复。1.未声明signal的端口类型;

2025-04-11 10:06:26 158

原创 Python——if __name__ == ‘__main__‘

因此,在上面的代码中,当我们直接运行my_module.py时,其中的if name == ‘main’:语句会判断当前模块是否为主模块,如果是主模块就会执行下面的代码。而当我们在main.py中导入my_module模块时,if name == ‘main’:判断条件为假,因为此时my_module模块不是主模块,所以其中的代码不会被执行。’,而当模块被导入到其他模块中使用时,__name__的值就是模块的名称(不包含后缀.py)。当该模块被导入时,该条件不成立,其下的代码不会被执行。

2025-03-17 12:16:47 262

原创 一劳永逸——svn输入密码

passtype固定是simple, K和V后面的数字分别代表key和value的长度(注意svn服务器地址修改)重新svn up确认一下,就发现不需要再输入密码了。

2025-03-11 15:31:29 125

原创 DW_apb_ssi——Transfer Modes

在传输操作码和地址期间,接受逻辑不会捕获任何数据(只要DW_apb_ssi master在其txd线上传输数据,rxd线上的数据就会被忽略)。当发送FIFO变为空(所有控制信息已发送)时,接收线(rxd)上的数据有效并存储在接收FIFO中。发送数据从发送FIFO弹出,并通过txd线发送到目标设备,目标设备在rxd线上回复数据。在数据帧的末尾,接受移位寄存器不会将接收到的数据加载到接收FIFO中。发送数据从发送FIFO弹出,并通过txd线发送到目标设备,目标设备在rxd线上回复数据。

2024-12-11 15:23:37 344

原创 初始CRST

IC Test

2024-12-09 11:11:13 262

原创 Valid-Ready VS Credit

在AXI协议中,数据传输通过"valid"和"ready"信号进行同步。发送方使用"valid"信号表明数据有效,接收方用"ready"信号表明准备接收数据。当"valid"和"ready"都是高电平时,数据被成功传输。在CHI协议中,接收方为发送方提供一组“信用”(credits),每当数据成功接收,消耗一个信用。当信用用完时,发送方必须停止发送数据,直到接收到新的信用。

2024-12-06 15:43:29 455

原创 UVM—初始factory机制与uvm_conponent_utils宏

只有在类定义时声明了这个宏,才能使用这个功能。所以从某种程度上来说,这个宏起到了注册的作用。语句会创建my_driver的实例,并会自动调用my_driver的main_phase。自动创建一个类的实例并调用其中的函数(function)和任务(task)。请记住一点:所有派生自uvm_component及其派生类的类都应该使用。注册,且此类被实例化了,那么这个类的main_phse就会自动被调用。要使用这个功能,需要引入UVM的。1.根据一个字符串创建类的实例;根据类名创建一个类的实例,这是。

2024-12-03 16:18:56 240

原创 FUSE Map

这是一种特殊的内存区域,设计用于存储用于修复、校准或维护目的的固件或程序代码。当芯片内的正常工作区域遇到损坏或性能下降的情况时,Spare Region可以作为临时的备份,使得系统能够利用这部分未使用的空间继续运行,或者用于存储重要的数据,防止数据丢失。在一些嵌入式系统或物联网设备中,这可能是必要的,因为它们需要处理各种各样的任务,包括连接到互联网的数据传输,而这些任务可能不需要严格的加密保护。然而,值得注意的是,在安全性要求较高的应用中,将关键部分置于非安全区域可能会带来风险,因为它可能受到未授权访问。

2024-12-03 12:07:35 740

原创 为什么选择UVM?

这是Candence和Mentor在2008年推出的。它引进了factory机制,但里面没有寄存器解决方案,这是它最大的短板。针对这一情况,Cadence推出了RGM,不上了这一短板。只不过,RGM并没有成为OVM的一部分,要想使用RGM,需要额外下载。其正式版是在2011年由Accellera推出的,得到了Sysnopsys、Mentor和Cadence的支持。其继承了VMM和OVM的优点,也克服了各自的缺点,代表了验证方法学的发展方向。这是Synopsys在2006年推出的。

2024-12-03 11:37:33 205

原创 UVM—初始各组件

所有的测试用例要派生自uvm_test或其派生类,不同的测试用例之间差异很大,所以从uvm_test派生出来的类各不相同。任何一个派生出的测试用例中,都要实例化env,只有这样,当测试用例在运行的时候,才能把数据正常地发给DUT,并正常地接收DUT的数据。:做的事情与driver相反,driver向DUT的pin发送数据,而monitor是从DUT的pin上接收数据,并把接收到的数据转换成transaction级别的sequence_item,再把转换后数据发送给scoreboard,供其比较。

2024-12-03 10:01:14 329

原创 FUSE Recipe Revise

FUSE是一种非易失性存储器,用于在芯片制造完成后对某些配置设置进行更改,比如锁定特定功能、启用自检测等。在芯片设计阶段,工程师会预先设定一组默认的FUSE设置(即Recipe),但随着产品的迭代或客户需求的变化,可能需要对这些配置进行修订。芯片设计中的FUSE (Field-Programmable Universal Serial Interface) Recipe Revise通常是指“现场可编程门阵列”配置文件的修改过程。

2024-11-28 12:13:46 273

原创 初识OSC

初识oscillator

2024-09-12 15:21:15 963

原创 Git之“子目录不能成功上传的原因之一“

2024-08-14 15:03:47 152

原创 异步复位,同步释放

主要原理是用2个寄存器实现。

2024-07-24 17:34:16 385

原创 ARM架构中的Cache

MMUTLB、VA、PA、TTW、walker、IPA、

2024-07-15 11:36:12 586

原创 Authentication failed for 解决办法

然后增加第2行后,拉取code时就不用每次输入上述信息了。删除第2行后,拉取code时便会弹出。

2024-05-23 16:35:39 408 1

原创 CPU的简单认识

人类的大脑,计算机的核心。

2021-07-16 18:34:46 153

原创 SHM database的相关操作

用$shm_open系统任务打开一个SHM database。$shm_probe允许你指定想在SHM database中记录值变化的编号,并允许你指定被记录值变化的nodes。

2021-07-16 17:50:29 939

空空如也

空空如也

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

TA关注的人

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