- 博客(530)
- 资源 (15)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 TCSH入门教程 --- tcsh从入门到精通
TCSH入门教程 简介:TCSH不同于其他的shell(例如bash),因为控制结构更符合程序设计语言的格式。例如TCSH的test条件的控制结构是表达式,而不是linux命令,得到的值是逻辑值true或false,TCSH的表达式与C语言中的表达式基本相同。一、TCSH变量、脚本、参数 用户可以在shell中定义变量、为变量赋值以及引用脚本参数。TCSH使用set、@、setenv...
2020-06-29 20:41:35
8591
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 华为内部的关于IC验证的经验总结
华为内部的关于IC验证的经验总结 ----IC验证工程师的易筋经 有人认为我验证做得很牛,也有人认为我的验证早就丢下了;有人认为我发现了各个项目的不少问题,也有人认为我在CMM库的几百个问题单大部分属纯净水。...
2020-04-30 12:10:45
20173
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [Cshell]Cshell基本語法 --- 從入門到精通
如何向CShell Script傳遞參數? 如何将命令行的参数传给script呢? 可以这样: 键入script名, 后面跟任何你想要传递的参数. Cshell把script名后面的字符按照词(words)来划分后传递给一个叫做argv的变量数组, 叫做arguments list. 这样命令行的参数就作为words存储于argv中, 连同script名, 分别可以被引用为argv...
2019-03-09 11:21:25
31986
7
原创 [VMM]虚拟内存简介
如果是 1,就将 R 位清 0,并把该页面放到链表的尾端,修改它的装入时间使它就像刚装入的一样,然后继续从链表的头部开始搜索。在缓存系统中,缓存的大小有限,当有新的缓存到达时,需要淘汰一部分已经存在的缓存,这样才有空间存放新的缓存数据。下图为一个编译器在编译过程中建立的多个表,有 4 个表是动态增长的,如果使用分页系统的一维地址空间,动态增长的特点会导致覆盖问题的出现。LRU 将最近最久未使用的页面换出。NRU 优先换出已经被修改的脏页面(R=0,M=1),而不是被频繁使用的干净页面(R=1,M=0)。
2024-07-20 20:50:19
1000
原创 [MMU]现代计算机内存管理
内存分配与回收逻辑上对内存空间进行扩充程序内存区域分为一个固定区和若干个覆盖区将程序分为多个段,常用的段常驻内存放在固定区、不常用的在需要的时候调入覆盖区必须由程序员声明覆盖结构逻辑地址到物理地址的转换内存保护要保证多个应用程序同时处于内存中并且不互相影响,则需要解决两个问题:保护和重定位。一个更好的办法是创造一个新的内存抽象:地址空间。就像进程的概念创造了一类抽象的CPU以运行程序一样,地址空间为程序创造了一种抽象的内存。地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都有一个自己的地址空间,
2024-07-20 16:02:10
590
原创 [VMM]虚拟内存(Virtual Memory)
尽管基址寄存器(base register)和界限寄存器(limit register)可以用来创建地址空间(address space)的抽象,还存在另一个问题:管理软件的膨胀(bloatware)。当现代软件对运行内存要求越来越高时,交换技术(swapping)就不是一项有吸引力的技术,因为一个传统的SATA硬盘的峰值传输速率最高可以有几百MB/s, 这意味着至少需要几秒才能换出1G的程序,并需要另一个几秒才能将1G的程序换入。**虚拟内存的基本思想是:每个程序有自己的进程空间,这个空间被分割成多个块
2024-07-20 15:57:36
770
原创 [VMM]虚拟内存精粹
现在让我们来回顾一下本文的核心内容:虚拟内存是存在于计算机 CPU 和物理内存之间一个中间层,主要作用是高效管理内存并减少内存出错。页表:从数学角度来说页表就是一个函数,入参是虚拟页号 VPN,输出是物理页框号 PPN,也就是物理地址的基址。页表由页表项组成,页表项中保存了所有用来进行地址翻译所需的信息,页表是虚拟内存得以正常运作的基础,每一个虚拟地址要翻译成物理地址都需要借助它来完成。TLB:计算机硬件,主要用来解决引入虚拟内存之后寻址的性能问题,加速地址翻译。
2024-07-20 15:54:04
989
原创 [SV]Types, Operator, and Expressions
【代码】[SV]Types, Operator, and Expressions。
2024-05-14 17:12:11
803
原创 [SV]Modules, Controls, and Interfaces
【代码】[SV]Modules, Controls, and Interfaces。
2024-05-14 17:10:17
1103
原创 [SV]Class and Object-Oriented Programming
【代码】[SV]Class and Object-Oriented Programming。
2024-05-14 17:07:35
713
原创 [SystemVerilog]Simulation and Test Benches
每次网络/变量的值发生变化时,我们都会有一个更新事件,任何对该事件敏感的进程也需要进行评估,这就是所谓的评估事件。在每个 "时间戳 "上,模拟器需要首先计算更新事件,评估更新事件,并循环查看是否有更多的更新事件是由之前的更新事件触发的。请注意,put() 和 get() 都是阻塞的,也就是说,如果邮箱已满,put() 会阻塞当前进程,直到邮箱中出现空位,而 get() 则会阻塞,直到邮箱中出现一条消息。在解释测试环境之前,让我们先简单了解一下我们的 DUT,它是一个简单的乘法器,具有现成的有效接口。
2024-04-12 14:11:34
792
原创 [SystemVerilog]常见设计模式/实践
例如,由于只需要一个比特来测试状态变量,单次热编码允许更小的多路复用逻辑,而加里编码允许更低的开关功耗,因此有利于低功耗设计。由于存在这种差异,当我们在 SystemVerilog 中设计 Moore 和 Mealy 机器时,会看到时序和面积方面的不同: - 要描述相同的控制逻辑,Moore 机器的状态往往多于 Mealy 机器 - 与 Mealy 机器相比,Moore 机器的输出往往有一个额外的周期延迟。虽然有时使用宏可以节省时间,使代码更容易重复使用,但在重复代码段和宏的使用之间找到平衡点是很重要的。
2024-04-11 09:12:54
1256
转载 HBM3协议中文版
HBM3 DRAM器件通过可以分成很多完全独立通道的接口和主机die合封,通道间无需同步;HBM3期间使用大数据位宽接口的方案来实现对DRAM高速,低功耗的访问。每个通道保持64bit数据位宽,工作在DDR(双沿采样)模式。每个通道都有独立的命令和数据接口。通道间共用RESET_n, IEEE1500测试接口和电源信号。通道提供访问特定存储阵列的接口,通道A不能访问到其他通道的存储资源;每个通道提供了访问一系列DRAM bank的独立接口,详见通道寻址。
2024-02-05 16:19:50
665
原创 CAN总线接口–硬件
考虑BlueFi的40P扩展接口仅有3.3V供电电源,而且所有功能扩展接口的逻辑电平电压都采用3.3V,独立的CAN协议控制器MCP2515是一种宽工作电压的IC(允许2.7~5.5V), 我们可以使用BlueFi的40P扩展接口上的3.3V和GND为其供电,那么CAN总线收发器与CAN协议控制器之间的逻辑接口电压也必须采用3.3V的, 如果CAN总线收发器的工作电压也采用3.3V,意味着我们的CAN接口拓展板采用3.3V单工作电源,这样的设计更为简化。本质上,每个ECU就是一个车载的嵌入式系统。
2024-02-05 16:04:18
2947
原创 CAN总线接口–协议
除了仲裁域之外,CAN2.0B标准的控制域和数据域等仍保持与CAN2.0A标准一致,而且CAN2.0B标准的控制域仍预留2个固定为‘0’的保留位。在8.1节中我们仅以CAN2.0A标准的位流来了解CAN总线的竞争和仲裁,把位流中的RB1和RB0两个保留位解释的非常简单,保留位本来是没有特定意义的, 标准中要求这些位保持显性位‘0’,如果CAN2.0A标准的产品开发者随意处理这些保留位,譬如发送者将数据帧中的这些保留位按隐性位‘1’发送, 很显然在两种标准的CAN网络节点共享一个CAN网络时将会引起歧义。
2024-02-05 16:00:50
1366
原创 CAN总线简介
CAN总线是一种异步串行通讯低层网络。对照OSI模型,CAN总线规范仅包含物理层和数据链路层的标准。然而,构建在CAN总线之上的应用层协议(即OSI模型的高层协议)有多种, 譬如针对汽车控制领域和工业控制领域的CANopen协议、针对工业控制领域的DeviceNet协议、针对公交车和卡车控制领域的SAE J1939协议、针对轻型电动汽车领域的EnergyBus协议等。
2024-02-05 15:57:19
1043
转载 以太网(Ethernet)协议学习
帧间隙( IFG,Interpacket Gap) :就是以太网相邻两帧之间的时间间隔,帧间隙的时间就是网络设备和组件在接收一帧之后,需要短暂的时间来恢复并为接收下一帧做准备的时间, IFG的最小值是96 bit time,即在媒介中发送96位原始数据所需要的时间,在不同媒介中IFG的最小值是不一样的。那为什么不所有传输都用更可靠的TCP协议呢,这就像卖手机,不可能都上最好的配置,毕竟有人不需要这么好的配置,我只需要打电话,一个骁龙835就够了,如果你叫我多花2000块,买一个865,那我没必要。
2024-02-05 12:03:18
694
原创 同步復位和異步復位二者各自的優缺點
同步復位和異步復位二者各自的優缺點一、同步復位:當時鐘上升沿檢測到復位信號,執行復位操作(有效的時鐘沿是前提)。always @ ( posedge clk );1.1 優點:a、有利於仿真器的仿真;b、可以使所設計的系統成爲 100% 的同步時序電路,有利於時序分析,而且可綜合出較高的 Fmax;c、由於只在時鐘有效電平到來時纔有效,所以可以濾除高於時鐘頻率的復位毛刺。1.2缺點:a、復位信號的有效時長必須大於時鐘週期,才能真正被系統識別並完成復位任務。同時還要考慮諸
2024-02-05 10:06:54
1199
原创 CXL 協定的功能與特性詳解
CXL (Compute Express Link) 是由電腦科技的行業巨頭組成的聯盟 — Compute Express Link Consortium(CXL Consortium)所開發和定義的,主要成員包括英特爾 (Intel)、超微半導體 (AMD)、三星(Samsung)、SK海力士 (SKHynix)、美光 (Micron)、戴爾 (Dell)、惠普企業 (Hewlett Packard Enterprise)、Microchip Technology…等。
2024-02-02 14:31:22
890
转载 [Verilog]分频器设计(奇偶分频、半整数分频、任意分频、任意占空比)
在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。在计数周期达到分频系数中间数值 N/2 时进行时钟翻转,可保证分频后时钟的占空比为 50%。奇数分频如果不要求占空比为 50%,可按照下面任意整数分频和任意占空比的方法进行分频。如果奇数分频输出时钟的高低电平只差一个 cycle ,则可以利用源时钟双边沿特性并采用"与操作"或"或操作"的方式将分频时钟占空比调整到 50%。
2023-12-13 19:32:37
783
原创 [Verilog]用Verilog实现并串转换
并串转换的原理是:先将八位数据暂存于一个四位寄存器器中,然后左移输出到一位输出端口,这里通过load_valid信号指示并行数据输入。
2023-12-11 16:43:26
794
原创 [Verilog]用Verilog实现串并转换/并串转换
串转并就是将低3位信号和输入信号一起赋值。因为经过转换后,码元速率会将为原来四分之一,所以设置4分频时钟,将其输出。而并转串就是不断右移,取高位输出。利用计数器cnt 时钟计数,开始数据先给高位,每过一个时钟周期,数据便给低一位。,将串行的数据总数先表示出来,然后发送一位数据加一,后面的接收的这样标志:para_
2023-12-11 16:24:10
934
原创 [AMBA]深入理解AXI4系列
深入 AXI4 总线(一)握手机制 - 知乎 (zhihu.com)深入 AXI4 总线(二)架构 - 知乎 (zhihu.com)深入 AXI4 总线(三)传输事务结构 - 知乎 (zhihu.com)深入 AXI4 总线(四)传输事务属性(draft) - 知乎 (zhihu.com)深入 AXI4 总线(五A)单机多传输事务场景 - 知乎 (zhihu.com)深入 AXI4 总线(五B)多主机传输事务场景 - 知乎 (zhihu.com)深入 AXI4 总线(A)附录·术语表 - 知乎 (zhihu
2023-07-24 17:27:06
945
转载 [UVM]uvm_testbench_gen | 介绍一个UVM环境自动生成工具
摘要:介绍一个通过GUI方式自动生成UVM环境的工具,uvm_testbench_gen。工具来源于DVCon US 2022的一篇论文:Novel GUI Based UVM Test Bench Template Builder。工具源码开源在git。
2023-05-10 13:20:59
2297
1
转载 NOC总线架构拓扑介绍
CPU是怎样访问内存的?简单的答案是,CPU执行一条访存指令,把读写请求发往内存管理单元。内存管理单元进行虚实转换,把命令发往总线。总线把命令传递给内存控制器,内存控制器再次翻译地址,对相应内存颗粒进行存取。之后,读取的数据或者写入确认按照原路返回。再复杂些,当中插入多级缓存,在每一层缓存都未命中的情况下,访问才会最终达到内存颗粒。
2023-04-18 09:37:53
2902
原创 [Cshell]用sed替换包含单引号的字符串
在Linux中,经常用的替换命令非sed莫属,但是sed也有失灵的时候,比如SV中的address和data,例如:32'h1020_0180等等。此时要做替换的话该怎么办呢?下面介绍寄几种方法来实现sed替换包含单引号的字符串。
2023-04-14 20:47:44
2074
原创 [UVM]为什么不建议在body()中使用pre_body()和post_body
A:为实现pre_body()、post_body()的执行效果,可在sequence中新定义task:body_pre()和body_post(),并将其至于body()内。A:在uvm_test中,如果要将顶层的virtual sequence挂在到virtual sequencer上,则应该使用start()方法,而不应该是`uvm_do_on()的宏,原因就是uvm_test中无法使用`uvm_do()系列macro。
2023-04-04 21:31:55
1748
原创 [UVM]uvm_config_db和uvm_resource_db的区别
A:实际上,通过uvm_resource_db::set()设定的变量读取,默认遵循first-write-win的原则,因为内部存放的变量是通过队列的形式来实现的,在没有通过set_override()设定变量的情况下,在运行过程中对scope+name变量的第一次配置会优先读取。A:uvm_config_db可以通过静态方法set()和get()完成对某个层次中的变量的配置和读取,它遵循高层次的配置覆盖低层次的配置,同层次中后面的配置覆盖前面的配置,即parent&last-write-wins。
2023-04-04 16:29:10
995
原创 [SV]SystemVerilog线程之fork...join专题
A:对于有握手、仲裁需求的线程(比如sequence发送激励),不应该粗鲁的使用disable fork结束这些线程,而应该在县城内部,在其完成握手、仲裁之后的安全阶段结束线程,否则容易引起死锁(dead-lock)。A:后台线程不会结束,任何由fork开辟的线程(join、join_any、join_none),无论其外部任务(task)何时结束也无论fork何时跳转执行后面的程序,都不会将其开辟的线程自动结束。disable fork停止的是其所在进程或者方法中的fork触发的所有子线程,
2023-04-04 11:34:58
1053
原创 [SV]SystemVerilog virtual method和method的区别
SystemVerilog中virtual method和method的区别
2023-04-03 16:09:30
337
原创 [TCSH]cshell脚本中等待VCS编译完成的方法
摘要:在SoC验证中,我们会根据编译的RTL的差异,创建多个build或者叫conf,但是由于每个用户能够提交的Job数量有限,有时候不得不串行执行,那么那脚本中怎么等待VCS编译完成呢。本文将给出一种实用的方法。
2023-03-21 17:51:34
464
原创 珠算口诀大全
算盘是中国人在使用算筹的基础上发明的,迄今为止已有2600多年的历史,随着算盘的使用,人们总结出许多计算口诀,使计算的速度更快了。这种用算盘计算的方法,叫珠算。本文将介绍常用的准算口诀。
2023-03-05 13:48:38
7451
原创 [VCS]Coverage Options Introduction
VCS仿真中,可以产生以下两类coverage:code coverage和function coverage,对于code coverage,在编译和仿真需要加额外参数。对于function coverage,编译和仿真不需要加额外参数,本文将详细介绍VCS coverage相关的option。
2023-01-31 09:25:34
1687
原创 [VCS]Condition coverage vs. branch coverage
条件覆盖测试是一种白盒测试,用于测试程序中所有条件表达式的所有可能结果。它也称为谓词覆盖。那么条件覆盖率和分支覆盖率有什么区别呢?在分支覆盖中,所有条件都必须至少执行一次。另一方面,在条件覆盖中,所有条件的所有可能结果必须至少测试一次。
2023-01-18 15:26:29
1889
1
原创 sinc函数简介
sinc函数(英语:sinc function)是一种函数,在不同的领域它有不同的定义。数学家们用符号sinc(x)表示这种函数。 sinc函数可以被定义为归一化的或者非归一化的,不过两种函数都是正弦函数和单调的递减函数 1/x的乘积。
2023-01-05 13:46:58
5856
原创 [Verilog]Verilog经典电路设计(二)
Verilog经典电路设计(二):4选1数据选择器,同步置数、同步清零的计数器,奇偶校验位产生器,带异步清 0异步置 1 的 JK 触发器
2023-01-03 17:42:03
560
1
原创 [Verilog]有限状态机设计举例
有限状态机(FSM)是许多数字系统中用来控制系统和数据流路径行为的时序电路。FSM的实例包括控制单元和时序。 本实验介绍了两种类型的FSM(Mealy和Moore)的概念,以及开发此类状态机的建模方式。 请参阅Vivado教程,了解如何使用Vivado工具创建项目和验证数字电路。
2022-12-30 16:23:23
2598
9
uvm-testbench-gen
2023-05-10
Verdi and Siloti Command Reference
2023-04-11
开源AMBA AHB VIP
2022-12-09
开源AMBA APB VIP
2022-12-09
开源AMBA AXI4 VIP
2022-12-09
使用VCS的门级仿真和最佳实践(Gate-Level Simulation with VCS and Best Practic)
2022-10-08
UVMC应用案例代码分享
2022-09-15
SystemC User’s Guide(SystemC使用手册)
2022-07-21
CMake官⽅⽂档CMake Tutorial
2022-07-21
Synopsys_SVA_OVL检查库应用指南
2022-07-07
500个Excel函数模板.zip
2020-07-12
集成电路设计CAD-EDA工具实用教程1-Spectre-Verilog数模混合仿真.ppt
2020-07-12
快速仿真和数模混合仿真软件.ppt
2020-07-12
LDO低压差线性稳压器核心电路的设计.pdf
2020-05-02
pll-for-high-frequency-receivers-and-transmitters-3_cn.pdf
2020-05-02
pll-for-high-frequency-receivers-and-transmitters-2.pdf
2020-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人