自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

元直的博客

不積跬步,無以至千里;不積小流,無以成江海。

  • 博客(707)
  • 资源 (15)
  • 收藏
  • 关注

原创 TCSH入门教程 --- tcsh从入门到精通

TCSH Shell入门教程摘要 TCSH是一种编程风格更接近C语言的Unix shell,其控制结构和表达式语法与bash等shell有明显差异。本文介绍了TCSH的核心概念和常用功能: 变量与脚本 使用set、@、setenv定义变量 支持数值运算和数组操作 脚本需以"#"开头,通过$<读取输入 运算符 包含赋值(=,+=)、算术(+,-)、关系(>,==)等运算符 支持重定向(>,<)和管道(|) 控制结构 if/while使用(expression)测试条

2020-06-29 20:41:35 10121 3

转载 华为内部的关于IC验证的经验总结

本文总结了华为IC验证工程师的实战经验,提出验证的核心目标是发现所有Bug。强调验证人员需具备代码分析能力、系统思维和淘金式执着精神,反对过度依赖自动化工具。从验证视角、检视技巧、波形分析等维度,分享了如何通过代码检视、波形检查等方法高效定位问题。文章指出,验证的关键在于人:验证人员需与设计思维对抗,项目经理需关注人员搭配。最后强调"波形为王",提倡手工验证与自动化结合,在看似正常的波形中寻找隐藏问题。这些经验对提升验证效率和芯片质量具有重要指导意义。

2020-04-30 12:10:45 21272 7

原创 [Cshell]Cshell基本語法 --- 從入門到精通

本文介绍了CShell脚本编程的基础知识和实用技巧。主要内容包括:1)变量和数组的使用方法,包括局部变量、全局变量和数组操作;2)命令参数传递和命令行参数处理;3)文件操作和IO重定向;4)流程控制语句如if/else/while/foreach等;5)实用技巧如字符串处理、日期时间操作和环境变量设置;6)调试方法和错误处理机制。文章还提供了多个实际应用示例,如提取字符串中的数字、文件重定向等,帮助读者快速掌握CShell脚本编程的核心技能。

2019-03-09 11:21:25 35339 7

原创 新建Jakarta EE项目,Maven Archetype 选项无法加载出内容该怎么办?

摘要:IntelliJ IDEA新建JakartaEE项目时Maven原型列表无法加载的解决方案:1)检查网络连接和代理设置;2)更新Maven索引或清理IDE缓存;3)排查Maven配置问题;4)终极方案是使用mvn archetype:generate命令创建项目后导入IDE。最常见原因是网络连接问题,特别是需要下载Maven中央仓库索引时受阻。

2025-09-07 22:50:55 255

原创 Jakarta EE课程扩展阅读(二)

本文介绍了JakartaEE中Servlet的核心概念。Servlet与普通Java类在生命周期、运行环境和实例化方式上存在本质区别,其生命周期由容器管理,包含加载、初始化、服务和销毁四个阶段。作为CGI的替代方案,Servlet基于线程而非进程,具有更好的性能和资源共享能力。在JakartaEE技术栈中,Servlet是Web技术的基础,支撑着JSP、JSF等上层框架。从2.x到6.0版本,Servlet规范经历了从XML配置到注解、异步处理等重大演进。现代框架如SpringMVC基于Servlet构建,

2025-09-07 22:36:01 430

原创 Jakarta EE课程扩展阅读(一)

摘要: 当今软件开发呈现敏捷化、云原生、容器化等特点,JakartaEE(原JavaEE)作为企业级开发平台,提供Web层(Servlet/JSP)、业务逻辑层(EJB)、数据层(JPA/JMS)等组件,运行于Web容器(如Tomcat)或EJB容器(如WildFly)。主流JakartaEE服务器包括WildFly(功能全面)、OpenLiberty(轻量快速)、Payara(商业支持)等,开发工具推荐IntelliJ IDEA或Eclipse,搭配Maven/Gradle构建。该平台适用于复杂企业应用开

2025-09-07 22:30:12 300

原创 Jakarta EE(基于 JPA)在 IntelliJ IDEA 中开发简单留言板应用的实验指导

摘要:本文提供在IntelliJ IDEA中开发JakartaEE留言板应用的完整指南,使用JPA和H2数据库。涵盖项目创建、依赖配置(JakartaEE API、Hibernate、H2)、持久化单元设置、实体类定义、Servlet开发和JSP表单实现。特别说明IntelliJ Ultimate版对JakartaEE的支持要求,并给出Community版的替代方案。最后指导如何配置应用服务器和查看H2数据库,实现从表单提交到数据持久化的完整流程。

2025-09-05 07:05:25 786

原创 C语言中常见的数据结构及其代码实现

本文介绍了C语言中五种常见数据结构的实现方法,包括队列(FIFO)、堆栈(LIFO)、单链表、双链表和二叉树。每种数据结构都提供了基础操作的完整代码实现,如初始化、插入、删除和遍历等。其中队列和堆栈采用数组实现,链表和二叉树采用动态内存分配。代码示例包含详细的注释和测试用例,展示了数据结构的基本特性和操作方法。这些实现可作为C语言数据结构学习的参考模板。

2025-09-05 06:42:55 203

原创 [SC]SystemC Namespace 的详细介绍

摘要:SystemC是一个基于C++的系统级硬件建模库,使用命名空间机制组织核心组件。主要命名空间包括sc_core(核心功能)、sc_dt(数据类型)和sc_tlm(事务级建模)。命名空间通过语法namespace name{...}定义,支持嵌套和扩展,可使用全限定名、using声明或别名访问元素。在SystemC中,命名空间用于分组代码、避免冲突、模块化开发和IP复用,典型应用包括SoC模拟和测试环境隔离。示例展示了如何在自定义命名空间(如cpu_ns和mem_ns)中定义模块,并通过using声明跨

2025-09-03 07:51:26 37

原创 Unix操作系统支持分时多用户,这与虚拟化有联系吗?是不是同一个概念?

Unix的分时多用户与虚拟化有联系但本质不同。分时多用户是操作系统层面的资源分配机制,通过时间片轮转让多个用户共享系统资源,但共享同一内核。虚拟化则是硬件抽象技术,通过虚拟机管理程序在物理硬件上创建多个独立运行的虚拟机,每个虚拟机拥有自己的操作系统。两者都实现资源共享和并发执行,但虚拟化提供更强的隔离性,属于更高层次的资源管理技术。分时多用户是Unix等操作系统的内置功能,而虚拟化需要额外软件支持。

2025-09-02 13:05:20 207

原创 基于Linux的嵌入式系统实验环境搭建

摘要:本文详细介绍了在Windows虚拟机中搭建嵌入式Linux实时操作系统的实验环境。通过Buildroot工具链构建精简的嵌入式Linux系统,相比Ubuntu更轻量(内核仅几MB)、配置更简单,且支持PREEMPT_RT实时补丁。实验环境搭建包括:安装VirtualBox、创建Ubuntu VM、配置Buildroot(ARM架构、实时内核选项)、构建系统镜像。实验方案涵盖内核编译、裁剪(可缩减20-30%体积)和扩展(添加自定义模块),并支持QEMU模拟测试。该方案聚焦核心功能,避免桌面系统复杂性,

2025-09-02 00:19:29 971

原创 在 Windows 主机上搭建 Linux 内核编译实验环境的方案

本文提供了在Windows主机上搭建Linux内核编译实验环境的方案,对比了WSL2、虚拟机和远程服务器三种方式的优缺点。推荐使用虚拟机(如VMware/VirtualBox)安装Ubuntu 22.04 LTS作为实验环境,详细介绍了从系统安装到内核编译、裁剪和扩展的具体步骤。此外,还设计了四个内核实验方案,包括基础编译、内核裁剪、模块扩展和性能对比。对于仅需练习编译流程的用户,WSL2+Ubuntu也是一个简化选择。该方案为不同需求的学习者提供了灵活的环境配置建议。

2025-09-02 00:02:24 1266

原创 在Windows上搭建Linux内核编译环境

本文详细介绍了在Windows系统上使用WSL2搭建Linux内核编译环境的完整方案。主要内容包括:1)推荐使用Ubuntu 22.04 LTS作为Linux发行版;2)通过wsl--install命令启用WSL2并安装Ubuntu;3)安装内核编译所需的工具链和依赖包;4)分阶段完成内核源码获取、配置裁剪、编译部署的全过程;5)演示如何编写和加载简单的内核模块。该方案充分利用WSL2的轻量级虚拟化优势,实现了近乎原生的Linux开发体验,为Windows用户提供了高效的内核开发环境。

2025-09-01 23:46:18 587

原创 Linux内核开发环境搭建(一)

摘要: 在Windows主机上搭建Linux内核实验环境,推荐使用虚拟机(如VirtualBox/VMware)安装Ubuntu 22.04 LTS,因其兼容性好、工具链完善。步骤包括:1) 安装虚拟机软件;2) 下载Ubuntu镜像;3) 创建并配置VM(建议8GB RAM+100GB磁盘);4) 安装Ubuntu及开发工具(build-essential等)。实验内容:下载内核源码→编译默认配置→通过menuconfig裁剪功能→添加自定义模块(如Hello World驱动)→用QEMU测试。注意事项:

2025-09-01 23:22:52 764

原创 gvim打开.log文件时,关键词高亮的设置方法

在gvim中设置.log文件关键词高亮的方法:1.创建语法文件~/.vim/syntax/log.vim,定义高亮规则(如Error、fail等关键词);2.通过~/.vim/ftdetect/log.vim关联.log文件类型;3.重启vim后,打开.log文件时指定关键词将自动高亮显示。还可自定义颜色,如设置Error为红色、fail为黄色。

2025-08-28 10:30:52 53

原创 p4图形界面中,修改过的文件图标没有变色,该怎么设置?

P4V图形界面中修改文件图标变色问题的解决方法:进入"Edit→Preferences→Display"设置,勾选"Use a distinct file icon for modified files"选项。修改后的文件图标将显示为红色,未修改文件保持原色。若仍不生效,可尝试刷新视图或重启客户端。该功能可帮助用户直观区分文件状态,提高版本控制效率。

2025-08-28 09:35:42 41

原创 gvim命令行按tab不能补全,会出现^I,该怎么设置?

摘要:本文介绍了GVim三个常见问题的解决方法:1)Tab键补全时出现^I符号,可通过设置set wildmode=longest,list,full和set wildmenu优化补全行为;2)显示目录树侧边栏,可使用内置:Explore命令或安装NERDTree等插件;3)同一窗口打开多个文件,可通过标签页(gvim -p)或分屏(gvim -o/-O)实现。文末提供了配置表格和参考资料,帮助用户快速优化GVim使用体验。

2025-08-28 09:32:50 44

原创 [SC]SystemC动态进程概述及案例

SystemC动态进程概述及案例摘要:本文基于SystemC标准(IEEE1666)介绍动态进程的概念与应用。动态进程从SystemC2.1开始引入,允许在运行时动态创建进程(SC_METHOD/SC_THREAD),相比静态注册更具灵活性。核心语法包括sc_spawn创建进程、sc_spawn_options配置参数、SC_FORK/SC_JOIN实现并行控制,以及进程句柄管理。典型应用场景包括临时断言检查、事件驱动建模和并行测试。文中通过完整代码示例展示了动态进程的创建、同步和共享变量访问,并指出需注意

2025-08-25 23:37:22 152

原创 [PV]AXI R/W/RW带宽计算的tcl脚本

本文介绍了一个修改后的Tcl脚本(axi_rw_combined_bw.tcl),用于计算AXI接口的读写带宽。该脚本支持三种模式:只读、只写和读写组合计算,具有以下特点: 功能增强: 读通道基于rvalid和rready信号 写通道新增wstrb字节使能位计算 支持per-ID统计(读用rid,写用wid) 技术实现: 自定义count_active_strobes过程计算有效字节 支持多时间窗口分析 输出CSV报告包含详细带宽和效率指标 应用场景: 适用于AXI接口性能分析,可计算单通道或组合带宽效率,

2025-08-19 12:50:42 1126

原创 [PV]AXI如何统计每个ID的带宽?

本文介绍了如何扩展Verdi Tcl脚本以支持AXI协议多ID带宽统计,并提供与PTPX集成的方案。第一部分详细说明了修改脚本的方法:通过查询rid信号,在有效周期内按ID分组累加数据,使用Tcl数组存储并输出每个ID的带宽、效率等信息。第二部分展示了与PTPX集成的流程:利用Verdi生成SAIF文件作为PTPX输入,实现从带宽分析到功耗计算的自动化。文章提供了完整的代码示例和注意事项,特别适合使用Synopsys工具链的开发者进行性能与功耗联合分析。

2025-08-19 12:47:33 679

原创 [PV]计算AXI读通道(Read Channel)带宽的Verdi Tcl脚本示例

摘要:本文提供计算AXI读通道带宽的Verdi Tcl脚本示例,基于Synopsys Verdi的npi接口。脚本支持多时间窗口分析,参数化数据宽度和scope路径,计算有效周期、总字节数、带宽(GB/s)和效率(%),并生成CSV报告。核心逻辑通过检测rvalid和rready信号,以1ns时间分辨率(可调整)统计有效传输周期,计算公式为:带宽=总字节/时间/1e9,效率=有效周期/总周期*100%。脚本支持可选rlast信号进行burst计数,输出包含控制台打印和CSV文件,便于后续分析。用户可根据实际

2025-08-19 12:43:18 1077

原创 [PV]用Verdi计算AXI带宽的Tcl脚本

摘要:Verdi工具支持通过Tcl脚本自动化计算AXI协议带宽,主要利用npi接口访问波形数据。脚本通过检测wvalid/wready有效周期,结合数据宽度和wstrb活跃位计算传输字节数,最终得出带宽值(GB/s)。提供基础版和高级版两个示例脚本:基础版针对单一时间窗口的写通道计算;高级版支持多时间窗口、读写通道选择,并生成CSV报告。使用时需注意信号路径匹配、时间步进精度优化等问题,适用于AXI性能分析和验证场景。

2025-08-19 12:37:33 1098

原创 [PV]SoC上计算某条data path的带宽的一般方法

本文详细介绍了SoC设计中数据路径带宽计算的方法。带宽(BW)作为关键性能指标,其计算涉及理论公式与波形观测相结合的方法。文章首先提出通用计算原理:BW=时钟频率×数据宽度×效率/8(单位GB/s),并给出基于波形的实际观测步骤。随后分别针对AXI、CHI和PCIe三种协议,详细阐述了各自的带宽计算特点:AXI重点观测握手信号和突发传输;CHI需考虑flit传输和credit流控;PCIe则涉及lane数、编码效率和协议开销。文章还推荐了观测节点选择策略和工具使用建议(如Verdi、逻辑分析仪等),强调实际

2025-08-19 12:33:02 1183

原创 IOMMU多级页表查找的验证

本文提出了一种针对IOMMU多级页表查找的验证方法,包含三个核心组件:SystemC参考模型、Verilog IOMMU模块和测试平台。SystemC模型实现了x86风格页表查找,支持2-5级可变级别,作为验证黄金标准。Verilog模块扩展为完整IOMMU,包含TLB缓存、配置寄存器和错误处理机制。测试平台通过多种场景验证功能一致性,包括TLB命中/失效、不同页表级别和错误情况。特别介绍了TLB的LRU替换策略实现细节,并探讨了SystemC与Verilog的协同仿真方法。验证方法采用定向测试和随机测试相

2025-08-16 23:19:55 1071

原创 IOMMU的2级地址翻译机制及多级(2~5)页表查找

摘要:IOMMU是现代计算机系统中为I/O设备设计的地址翻译与保护机制,支持虚拟化环境下的两级地址翻译(Stage1+Stage2)。其核心机制包括:1)通过多级页表(2-5级)实现设备虚拟地址到物理地址的转换;2)L1/L2 MMU分层架构,分别处理guest级和host级地址翻译;3)x86和ARM架构的具体实现差异,如Intel VT-d的4级页表走查和ARM SMMU的TTBR/TCR寄存器配置;4)ATS(地址翻译服务)优化机制,通过设备端缓存翻译结果减少延迟。这些技术共同保障了I/O虚拟化的安全

2025-08-16 23:13:30 959

原创 Synopsys PrimeTime PX (PTPX)工具常见问题解答

摘要:本文详细介绍了Synopsys PrimeTime PX(PTPX)工具在SoC功耗分析中的关键应用。主要内容包括:1) 如何使用UPF文件进行多电压域分析,包括电源域定义、UPF加载步骤和注意事项;2) SAIF与TCF文件的区别及适用场景;3) 完整的PTPX TCL脚本示例,涵盖网表、UPF、寄生参数和活动数据的加载;4) 如何修改脚本使用TCF文件进行功耗分析;5) report_power命令的详细解释和使用方法;6) 缺少SPEF文件时的替代方案。文章提供了实用脚本和最佳实践,帮助工程师准

2025-08-16 13:18:37 974

原创 PTPX分析中,如何处理fsdb文件过大的问题?

摘要:处理PTPX分析中过大的fsdb文件,可通过生成阶段优化(选择性dump信号、时间窗口限制、压缩)和加载分析优化(分段加载、并行处理、使用SAIF替代)来减小文件大小并提高效率。使用Verdi查看fsdb时,可通过信号搜索、波形查看和切换统计功能检查关键信号切换情况。完整的PTPX分析还需网表、库文件、寄生参数、延迟注解、电源格式等输入文件来确保准确性。最佳实践包括从小文件调试、多角分析和监控加载时间。

2025-08-16 13:14:41 1031

原创 SoC Power验证简介及常见问题分析

摘要:SoC功耗验证是芯片设计的关键环节,基于EDA工具(如Synopsys VCS/PTPX/Verdi或Cadence工具链)验证动态/静态功耗是否符合规格要求。流程包含五个阶段:1)设计准备(定义功耗模式、UPF文件);2)仿真(RTL/门级fsdb生成);3)分析(PTPX计算功耗);4)优化(门控时钟等);5)验证(后硅测量)。关键要点包括:通过命名一致性和工具配置提高RTL与门级fsdb映射率(目标>95%),PTPX分析需注意fsdb完整性(信号覆盖、时间窗口选择)和时序注解,最终需达成

2025-08-16 12:57:36 838

原创 MOESI FSM的全路径测试用例

本文提出了一种基于UVM框架的MOESIFSM全路径测试方法。首先构建了包含agent、scoreboard等组件的UVM测试环境,设计了覆盖I/S/E/O/M状态转换的测试序列(20个items),通过基本序列和约束随机化实现90%+覆盖率。其次详细介绍了通过covergroup量化功能覆盖率的方法,包括状态转换交叉覆盖和条件采样。最后解释了测试阶段4中模拟M到O转换的技术细节,包括手动设置状态的白盒测试方法及其实际硬件对应关系。该方法在UVM1.2环境下验证,通过覆盖率分析确保测试充分性,为复杂状态机的

2025-08-16 11:02:21 802

原创 缓存一致性协议(Cache Coherence Protocols)与 目录协议(Directory Protocols)简介

本文介绍了缓存一致性协议(Cache Coherence Protocols)和目录协议(Directory Protocols)的原理、区别及应用场景。缓存一致性协议用于维护多处理器系统中的数据一致性,主要包括监听式(Snoopy)和目录式两种类型。监听式协议通过共享总线广播事务,适合小规模系统;目录协议则采用集中式目录跟踪共享状态,通过点对点通信实现扩展性,适用于大规模系统。文章详细对比了两种协议在通信方式、扩展性、硬件复杂度等方面的差异,并分析了它们在AMD Zen架构中的混合应用场景。

2025-08-16 10:47:24 900

原创 MOESI状态转换的Verilog代码示例

本文提供了一个MOESI缓存一致性协议的Verilog实现示例,并分析了AMD Ryzen处理器的Infinity Fabric如何优化snoop操作。首先介绍了MOESI状态机的Verilog代码实现,包括状态转换逻辑和关键信号处理。接着详细阐述了Infinity Fabric的点对点互连架构及其snoop过滤机制,解释了如何通过智能路由减少广播开销。最后通过性能模拟图展示了Owned状态在减少内存带宽使用和降低延迟方面的优势,在高度共享负载下可降低带宽使用达40%。文章为理解现代多核处理器缓存一致性机制

2025-08-16 10:32:43 802

原创 MOESI协议中,Owned状态具体如何减少内存带宽使用

摘要:MOESI协议中的Owned(O)状态通过脏数据共享机制显著减少内存带宽使用。该状态允许缓存持有已修改数据并直接响应其他处理器的读请求(缓存间转发),避免主内存访问。关键机制包括:1)脏数据读请求由Owned缓存直接响应;2)延迟写回主内存;3)缓存间数据传输替代内存访问。实验显示,在共享读场景下可减少30-50%内存带宽消耗。状态转换由本地处理器操作(读/写)和总线监听事件触发,通过硬件状态机实现。AMD Zen架构实测表明,MOESI比MESI协议节省15%内存带宽,特别适用于读密集型负载。

2025-08-16 10:26:18 993

原创 缓存一致性总线协议(Cache Coherence Protocols)的发展过程

摘要:本文系统梳理了缓存一致性总线协议的发展历程,从早期的2状态VI协议到主流的5状态MOESI协议。这些协议通过状态机机制保障多处理器系统中缓存数据的一致性,其演进过程体现了硬件复杂度与性能优化的平衡。随着多核处理器的发展,协议状态从简单的MSI(3状态)逐步扩展至MESI(4状态)、MOESI(5状态)乃至MESIF等更复杂形式,通过引入独占、拥有等状态显著降低了总线流量。当前趋势正从监听式协议向目录式协议演进,以支持大规模NUMA系统。协议设计始终围绕减少内存访问延迟、优化共享数据管理两大核心目标展开

2025-08-16 10:09:04 667

原创 ECC的原理、背景、工作机制和数学基础

摘要:本文介绍了ECC纠错码在SRAM中的应用实现。首先阐述了ECC的基本原理,包括Hamming码的编码和解码机制,以及SECDED扩展方案。然后详细讲解了ECC在SRAM中的集成方式,通过Verilog代码实现了(12,8)Hamming码的SRAM控制器,包含编码器、解码器和错误处理逻辑。文章提供了完整的单端口和双端口SRAM实现方案,以及相应的测试方法。特别说明了如何通过注入单比特和多比特错误来验证ECC的纠错和检测能力,确保SRAM数据可靠性。该方案适用于高可靠性系统,能有效应对软错误等问题。

2025-08-13 22:22:55 1089

原创 [AXI5]AXI协议中awsize和awlen在Vector Atomic地址膨胀中的作用

摘要:本文探讨了AXI协议中awsize和awlen参数在VectorAtomic操作地址膨胀中的作用。awlen决定突发传输的beat数,awsize定义每个beat的字节数,两者共同影响地址计算和膨胀程度。文章详细分析了地址膨胀机制,并提供了一个支持VectorAtomicAdd的Verilog RTL实现示例,包含地址生成、原子操作处理和错误检查功能。针对地址膨胀问题,提出了优化策略:强制地址对齐、压缩burst、并行处理和流水线优化,并给出了优化后的代码片段。这些优化可减少20-30%的无效地址计算

2025-08-13 22:12:48 695

原创 [AXI5]AXI协议中的Scalar atomic和Vector atomic有什么区别?

AXI5原子操作与向量地址膨胀机制 摘要:AXI5协议新增原子操作功能,支持ScalarAtomic(标量)和VectorAtomic(向量)两种模式,分别针对单数据和多数据元素的原子性操作。关键区别在于:标量操作固定数据宽度,处理单一地址;向量操作则支持连续地址范围的SIMD式处理,但会引发地址膨胀现象——即向量长度导致地址范围扩展,可能跨越缓存行或页边界,增加地址计算复杂性和性能开销。典型应用场景包括AI加速器的张量更新、HPC的SIMD运算等。文中提供了简化的Verilog实现,展示Slave端如何处

2025-08-13 22:06:05 1113

原创 [NoC]Outstanding和Credit的概念详解

摘要:本文详细解析了计算机体系结构中outstanding和credit两个核心概念。outstanding指已发出但未完成的请求数量,通过跟踪未决事务实现并发和乱序执行,常见于AXI总线等场景;credit则是基于信用令牌的流控机制,通过控制发送速率防止接收端缓冲溢出,多用于NoC网络。二者在目的、机制上存在差异:outstanding侧重提升并发度,credit关注流控保护。文章通过AXI协议实例和SystemC代码示例展示了二者的应用与结合方式,并探讨了在SoC设计中参数优化的方法,包括性能/资源权衡

2025-08-12 23:00:43 1069

原创 NoC设计中Router Table的作用

摘要:NoC设计中RouterTable是路由器核心组件,用于指导数据包转发路径。其主要作用包括:1)路径决策,通过目的地址查询确定输出端口;2)支持多种路由算法(确定性/自适应/源路由);3)优化网络性能(负载均衡、死锁避免)。设计需平衡硬件资源与性能,包含表结构、路由算法集成、死锁避免等规则。示例展示了4x4网格NoC的XY路由表实现,通过坐标比较确定转发方向。此外还介绍了2D Mesh、Torus和Ring三种典型NoC拓扑的SystemC实现方案,分别采用XY路由、环绕处理和简单转发机制。

2025-08-12 22:44:38 1047

原创 [SC]如何使用sc_semaphore实现对共享资源的访问控制

本文介绍了SystemC中sc_semaphore的使用方法,通过信号量实现对共享资源的并发访问控制。sc_semaphore初始化时指定计数,wait()获取信号量,post()释放。文章提供了一个示例,展示两个子进程通过信号量安全访问共享缓冲区。此外还介绍了SC_FORK/SC_JOIN的执行流程时序图,以及TLM接口共享变量的实现方式。最后说明了子进程异常时SC_JOIN的处理机制,会捕获并重新抛出异常到父进程。

2025-08-12 22:28:11 71

原创 [SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍

摘要:SystemC中的SC_FORK和SC_JOIN用于在SC_THREAD中创建并行子进程。SC_FORK通过sc_spawn启动多个子进程,SC_JOIN等待所有子进程完成。由于SystemC采用确定性单线程模拟,需注意共享变量访问安全,可使用sc_mutex、sc_event等同步机制。示例展示了两个子进程安全递增共享计数器的实现,强调了互斥锁的必要性。这些特性适用于硬件建模中的并发行为仿真,但需遵循SystemC的模拟语义和同步规范。

2025-08-12 22:14:21 203

Unified Coverage Interoperability Standard (UCIS)

复杂电子电路的验证经常需要使用多种验证工具,可能来自多个供应商,并采用不同的验证技术。可能来自多个供应商,并采用不同的验证技术。统一覆盖互操作性标准 (UCIS) 提供了一个应用编程接口 (API),可在软件仿真器、硬件加速器、符号加速器、定制软件和系统之间共享覆盖率数据。软件模拟器、硬件加速器、符号模拟、形式工具或定制验证工具之间共享覆盖率数据。验证工具之间共享覆盖率数据。覆盖率数据通常在验证过程中使用,以确定在使用不同工具和方法时是否达到了验证目标。在使用不同工具和方法时,覆盖率数据通常用于确定是否达到了验证目标。现在,设计的复杂性不断增加,这就要求不同工具之间共享覆盖率数据,以实现数据在不同工具之间共享,以实现验证闭合。本文档定义了 UCIS,它是在多种工具间交换验证覆盖率的通用标准。本文档介绍了 UCIS,括 UCIS API、被称为 UCIS 数据库(UCIS 数据库)的覆盖率数据库的抽象表示。本文档介绍了 UCIS API、被称为 UCIS 数据库 (UCISDB) 的覆盖率数据库抽象表示法、基于文本的互操作性 XML 交换格以及如何使用 UCIS 开发统一覆盖率的示例。

2024-09-12

Accellera Standard for VERILOG-AMS - Analog and Mixed-signal Ext

Accellera Standard for VERILOG-AMS - Analog and Mixed-signal Extensions to Verilog HDL

2024-09-11

可综合的SystemVerilog,打破 SystemVerilog仅用于验证的神话

SystemVerilog 不仅仅用于验证!在最初设计 SystemVerilog 标准时,其主要目标之一是创建可综合的复杂硬件设计模型。SystemVerilog的主要目标之一是为复杂的硬件设计创建可综合的模型更准确、代码行数更少。这一目标已经实现,Synopsys 公司在 Design Compiler (DC) 和 Synplify-Pro 中出色地实现了 SystemVerilog。本文详细分析了用于 ASIC 和 FPGA 设计的 SystemVerilog 可综合子集,并介绍了使用这些构造的优势、 并介绍了与传统 Verilog 相比使用这些构造的优势。读者将读者将从本文中获得新的 RTL 建模技巧,这些技巧确实能以更少的代码行数进行建模,同时还能以更少的代码行数进行建模。同时还能减少潜在的设计错误,实现较高的综合结果质量 (QoR)。目标受众 参与 RTL 设计和综合的工程师,针对 ASIC 和 FPGA实现。

2024-09-11

快速仿真和数模混合仿真软件.ppt

浙江大学数模混合仿真课件,深度讲解了Cadence的Ultrasim、Spectre、Spectre-Verilog仿真工具的用法,非常好的数模混合仿真教材。目前市面上相关资料特别少,值得推荐。

2020-07-12

集成电路设计CAD-EDA工具实用教程1-Spectre-Verilog数模混合仿真.ppt

本文详细讲解了Cadence的Spectre–Verilog混合信号仿真步骤,可作为新人教案,也可作为工程技术人员的参考。目前市面上相关资料特别少,值得推荐。

2020-07-12

AXI4 Spec中文版及常见问题解答

AXI4 Spec中文版及常见问题解答,涵盖了面试常见的一些问题及系统总线的研究。

2023-09-08

PCIe Spec中文版,PCIe系统体系结构导读

PCIe Spec中文版,PCIe系统体系结构导读,经典的PCIe入门资料,中文版

2023-09-08

uvm-testbench-gen

提供一个通过GUI方式自动生成UVM环境的工具,uvm_testbench_gen。工具来源于DVCon US 2022的一篇论文:Novel GUI Based UVM Test Bench Template Builder。uvm_testbench_gen使用python的tkinter编写,其主要目的在于提升UVM环境搭建效率,缩减前期验证环境准备时间。使用方法参见博文:https://xueying.blog.csdn.net/article/details/130598532?spm=1001.2014.3001.5502

2023-05-10

Verdi and Siloti Command Reference

Verdi用户手册最新版,基于Version U-2023.03, March 2023.Verdi主要用于生成fsdb模型,同VCS使用的vcd文件相比,verdi使用的fsdb相当于vcd文件经过霍夫编码压缩之后的精简版,可用于查看fsdb波形并追踪RTL代码。 虽说verdi、modelsim都是用来调试波形, modelsim与verdi相比,最大的缺点是波形不会全dump,wave窗口拉不全的话需要重新跑,而verdi边运行边查看。具体做法是,在使用tcl指令,在运行仿真时,设置仿真时间,每次run完毕之后,在nWave窗口中file——>自动加载(shift+L快捷键),异常方便!

2023-04-11

开源AMBA AHB VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

开源AMBA APB VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

开源AMBA AXI4 VIP

当今的SoC芯片,普遍包含大量的工业标准接口同外围设备相连。 在验证设计过程中,这些接口被用于和测试testbench相连接。这些沟通桥梁,被称为 Verification IP (VIP) 的模块实现。Verification IP (VIP) 是一种特殊的IP Core。它将一个接口的BFM 和 Test Harness features 结合在一起。VIP在芯片验证中的应用场景众多,不管是在IP Level还是在SoC Level随处可见它的身影。拥有VIP,无惧芯片设计挑战。而在当今的芯片领域,用的最多的可能还是标准总线APB/AHB/AXI等。提到VIP,估计大家最先想到的就是Cadence和Synopsys了。没错,他们是目前最大的两家VIP提供商。不过,那是商业VIP。商业VIP虽好,但是贵呀!很多小公司的预算有限,很多时候都舍不得买,而我们个人想学习用那就更是买不起了。不过好消息来了,我找到一些高质量的开源AMBA VIP,今天就分享给大家,供大家学习研究那是妥妥的没问题,有的甚至都已经成功的被用到一些公司的验证环境了。

2022-12-09

湖南大学量子力学课件,量子力学入门级教案

湖南大学量子力学课件,量子力学入门级教案。

2022-12-09

VCS用户手册,对应版本号为:R-2020.12-SP2,发布于June 2021

VCS用户手册,对应版本号为:R-2020.12-SP2,发布于June 2021

2022-11-04

使用VCS的门级仿真和最佳实践(Gate-Level Simulation with VCS and Best Practic)

使用VCS的门级仿真和最佳实践(Gate-Level Simulation with VCS and Best Practic)。

2022-10-08

UVMC应用案例代码分享

尽管 UVM 为构建参考模型提供了高级抽象,但 SystemC 在用于设计和验证的高级模型方面具有传统。 为了允许在 UVM 测试平台中重用使用 SystemC 编写的参考模型,UVMC 在 SystemC 和 SystemVerilog UVM 模型和组件之间提供 TLM1 和 TLM2 连接。在此代码包中将提供一个完整的UVMC应用案例,供大家参考。

2022-09-15

SystemC User’s Guide(SystemC使用手册)

本文档还没有描述新的SystemC 2.0特定的语言特性。请参阅SystemC 2.0功能规范文档。SystemC是一个c++类库和一种方法,您可以使用它来有效地创建软件算法、硬件架构和SoC(芯片上的系统)接口和系统级设计的周期精确模型。您可以使用SystemC和标准c++开发工具来创建系统级模型,快速模拟以验证和优化设计,探索各种算法,并为硬件和软件开发团队提供系统的可执行规范。可执行规范本质上是一个c++程序,它在执行时表现出与系统相同的行为。

2022-07-21

CMake官⽅⽂档CMake Tutorial

本⽂是CMake官⽅⽂档CMake Tutorial (http://www.cmake.org/cmake/help/cmake_tutorial.html) 的翻译。通过⼀个样例⼯程从简 单到复杂的完善过程,⽂档介绍了 CMake 主要模块( cmake , ctest , cpack )的功能和使⽤环境;从中可以⼀窥 cmake 的⼤体形貌。 正⽂如下:本⽂下述内容是⼀个⼿把⼿的使⽤指南;它涵盖了 CMake 需要解决的公共构建系统的⼀些问题。这些主题中的许多主题已经在 `Mastering CMake ⼀书中以单独的章节被介绍过,但是通过⼀个样例⼯程看⼀看它们如何⼯作也是⾮常有帮助的。本指南可以在 CMake 源码树的Tests/Tutorial路径下找到。每⼀步都有它⾃⼰的⼦路径,其中包含该步骤的⼀个完整的指南。

2022-07-21

Synopsys_SVA_OVL检查库应用指南

验证与设计不同,尤其是初学者,验证会成为一盘散沙——无规可循。然而 为了能够实现验证平台的重用,需要标准的验证语言和标准的验证库。这样一来 在验证的过程中只需要调用验证库中的库单元就可以实现验证的重用。所以为了 解决验证的混乱局面,特此依据 Synopsys 的 SVL 库进行翻译,该库与 OVL 的 使用方式相同,每次的检查对象仅需要例化对应的库单元就可以实现。 其原文来自于 Synopsys 的 SystemVerilog 检查库的讲解文档,翻译难免有错 和生硬的地方,所以请参照相应文件进行阅读。 最后将 Serikanth Vijayaraghavan 和 Meyyappan Ramanathan 编著的《A Practical Guide for SystemVerilog Assertions》的第一章翻译放置在附录 A 中,以 供阅者参考。

2022-07-07

SystemVerilog Assertion语法总结及应用图例

SystemVerilog Assertion语法总结及应用图例

2022-04-13

500个Excel函数模板.zip

这个压缩包中包含了500个常用的Excel模板,含有常用函数的实例、常见图表的绘制,以及数据透视表的做法,非常适合职场人士学习,提供工作效率。

2020-07-12

Python3源代码.rar

次源码包提供了Python3相关的100余个例子,从基础的正则表达式到文件解析,再到网络爬虫。并且带有详尽的注释,非常适合初学者,强烈推荐。

2020-07-12

LDO低压差线性稳压器核心电路的设计.pdf

本文主要设计的是一个LDO低压差线性稳压器,工作在3V~5V的电压下,输出 电压为2.5V,能够驱动的最小电阻为2.5f2,最大的负载电流为1A。本设计的核心电路是由基准电压源模块,误差放大器模块,反馈模块,PMOS调整管四个模块组成

2020-05-02

可测试性设计与ATPG.ppt

非常详细的DFT入门资料,详细介绍了常见的DFT模型,以及Scan mode测试技术。最后介绍了ATPG Flow。

2020-04-30

verilog数据类型及应用.ppt

非常详细的Verilog数据类型讲解,适合作为新人培训教材,也可作为工程技术人员的查询手册。值得推荐。

2020-04-30

2007全国大学生电子设计竞赛获奖作品汇编

2007全国大学生电子设计竞赛获奖作品汇编,非常詳細的資料,用於電子設計大賽備戰,以及電路設計學習。亦可作為工程設計人員的參考。

2013-09-15

pll-for-high-frequency-receivers-and-transmitters-3_cn.pdf

本文将考察PLL频率合成器的主要构建模块。我们还将比较整数N和小数N架构。最后将总结市场上现有的VCO,同时列出ADI的现有频率合成器系列。

2020-05-02

pll-for-high-frequency-receivers-and-transmitters-2.pdf

本文侧重于详细考察与PLL相关的两个关 键技术规格:相位噪声和参考杂散。导致相位噪声和参考杂 散的原因是什么,如何将其影响降至最低?讨论将涉及测量 技术以及这些误差对系统性能的影响。我们还将考虑输出漏 电流,举例说明其在开环调制方案中的重要意义。

2020-05-02

空空如也

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

TA关注的人

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