- 博客(14)
- 收藏
- 关注
原创 SoC仿真环境中自定义printf函数的实现
a_printf 函数使用了可变参数(...)来模拟标准库的 printf 功能,其中va_list,va_end和va_start是处理可变参数函数(类似printf)的核心宏,用于访问不确定数量的函数参数。va_list:声明一个指针,用于遍历可变参数列表va_start:初始化va_list,使其指向第一个可变参数va_end用于清理va_list指针,结束可变参数的访问,防止内存或资源泄漏(必须和va_start配对使用)
2025-06-26 00:08:16
621
原创 linux系统SVN快速上手指南
在 Linux 环境中,SVN具有稳定性好、与系统工具的无缝集成以及低资源消耗等优势,它采用经典的客户端-服务器架构,所有版本历史集中存储在中央仓库(repository),开发者通过标准的checkout-edit-commit工作流程进行协作。若结果显示“subversion-1.7.14-16.el7.x86_64”,则可以使用命令删除老版本,然后再安装SVN。如果想要对svn有更加详细的了解,可以参考svn官方手册(纯英文文档,我相信你不会感兴趣的QAQ)一些常用的svn命令如下。
2025-06-23 22:45:00
689
1
原创 SystemVerilog学习笔记之随机约束
在芯片验证中,随机化测试是提高验证覆盖率的核心方法。SystemVerilog提供的随机约束机制通过声明式语法描述合法值空间,能够有效生成符合设计需求的激励。1随机变量与分布控制。
2025-06-22 13:39:33
387
原创 详解SM2椭圆曲线公钥密码算法
公钥是指用于加密明文或验证数字签名。当接收者用发送者的公钥验证签名时,他们可以确认发送者是谁(因为只有发送者有对应的私钥)并且消息自签名以来未被篡改(因为哈希值与原始数据是唯一对应的)。密钥交换协议是两个用户A和B通过交互的信息传递,用各自的私钥和对方的公钥来商定一个只有他们知道的秘密密钥。在密钥协商过程中,密钥派生函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数据。公钥密码体系确保了信息的机密性和完整性,只有预期的接收者,即私钥的持有者,才能解密由公钥加密的信息。
2025-06-22 13:06:45
723
原创 SystemVerilog学习笔记之线程间通信
由于这些方法可能涉及等待,因此在设计线程同步机制时,必须明确区分阻塞方法(如put()、get()、peek())和非阻塞方法(如try_put()、try_get()),以避免死锁或性能问题,确保线程间的高效通信和协调。semaphore有三种基本操作,new()方法可以创建一个带单个或者多个钥匙的semaphore,使用get()可以获取一个或者多个钥匙,而put()可以返回一个或者多个钥匙。event是最轻量级的同步机制,主要用于简单的触发通知,比如标志某个事件的发生。2 核心通信机制详解。
2025-04-08 22:21:45
880
原创 CRC循环冗余校验详解及Verilog代码自动生成
CRC(循环冗余校验,)是一种基于多项式运算的差错检测编码技术,广泛应用于数据通信和存储领域,用于验证数据传输或存储后的完整性。其核心原理是将待传输的数据视为一个二进制多项式,通过预先设定的生成多项式进行模2除法运算,将计算得到的余数(即CRC校验码)附加到原始数据末尾。接收方在获取数据后,使用相同的生成多项式重新计算CRC值,若与接收的校验码不一致,则表明数据在传输过程中可能发生了错误。2.CRC原理介绍。
2025-03-14 00:22:13
1395
1
原创 光纤到户技术——无源光网络(PON)简介
其中,EPON(以太网无源光网络)是由IEEE制定的标准,GPON(吉比特无源光网络)则是由ITU-T制定的标准。GPON(Ethernet Passive Optical Network,吉比特无源光网络)中以太网服务在OLT(光线路终端)和ONU(光网络单元)的以太网接口上进行适配,并通过一种与协议无关的同步帧结构从一端传输到另一端。在EPON的下行方向,MAC(媒体访问控制)的工作方式与标准的千兆以太网(GbE)MAC相同,即所有以太网流量以广播形式发送。在GPON中,授权消息承载在下行帧的头部中。
2025-03-02 16:40:40
1472
1
原创 以太网协议详解
MAC 将从 IP 层接收的数据包视作以太网帧的有效数据,该字段字节长度为46~1500 字节,若 IP 数据包的长度不足 46 字节,MAC 层需要在数据字段后填充(pad)以补足至最小长度要求(46 字节)。在发送前,还需在以太网帧头前插入 7 字节的前导码,用于接。在 100BASE-T 采用的 4B/5B 编码是把待发送数据位流的每 4 位分为一组,以特定的 5位编码来表示,这些特定的 5 位编码能使数据流有足够多的跳变,达到同步的目的,而且效率也从曼彻斯特编码的 50%提高到了 80%。
2025-02-26 00:05:54
2408
原创 串行网络通信协议SLIP、C-SLIP、PPP详解
SLIP、C-SLIP、和PPP都是用于网络通信中的协议,在OSI七层模型中属于数据链路层(如下图)。它们的主要功能是提供在两个设备之间传输数据包的方式,通常用于点对点的通信,如串行连接或拨号连接。尽管这些协议在今天的互联网连接中已经逐渐被更现代的技术所替代,但它们仍然在某些特定环境中起到了重要作用。
2025-02-25 00:27:39
2350
原创 VCS覆盖率使用详解
这个选项告诉 Verdi 工具启动覆盖率查看模式,用户可以在 Verdi 的 GUI 中直观地查看各种覆盖率数据(如行覆盖率、条件覆盖率、分支覆盖率等)。它用于合并不同仿真结果生成的覆盖率数据库,并生成可视化报告(如HTML格式),帮助你分析设计的覆盖率情况。当运行了多个仿真测试并收集了不同的覆盖率数据(比如针对不同的测试用例、不同的设计模块等),可以使用此命令将这些覆盖率结果合并,生成一个完整的覆盖率报告。它允许多个处理任务同时运行,以加快覆盖率数据库的合并和报告生成的速度,特别是在处理大量数据或多个。
2025-02-25 00:24:03
1216
原创 超简单的VCS&Verdi下载安装教程(不需要破解licence,直接移植安装好的虚拟机)
链接:https://pan.baidu.com/s/1IrxoX3AVARWsxNlRkp2U4g?需要提前安装了vmware18.0或更高版本(之前用来vmware16.0没成功,可能是版本过低吧)分享一下一个安装了vcs、verdi、dc、pt的ubuntu18虚拟机,安装过程十分简单。4.打开.vmk文件,提前把vmware打开打开虚拟机,选择我已移动该虚拟机。2.将文件夹选择剩余容量大于100G的硬盘,解压文件。3.进入解压后的文件夹,
2025-02-13 14:02:25
1004
3
原创 Linux系统工作效率提升小技巧——alias命令
作为一个初入Linux系统开发的小白,对于老鸟们行云流水般的敲击命令的场景肯定是十分的羡慕啊。今天就为大家介绍一个可以小小的提升Linux系统工作效率的命令——ailas命令。
2025-02-11 20:50:36
640
1
原创 嵌入式多媒体卡(eMMC)电气标准简介
eMMC(嵌入式多媒体卡,embedded MultiMedia Card)是一种基于NAND闪存的存储技术,广泛应用于智能手机、平板电脑、数码相机、汽车娱乐系统等消费电子产品和嵌入式设备中。与SD卡类似,eMMC通过标准接口与主机连接,但通常是直接焊接在设备主板上,作为内部存储解决方案。它提供较低至中等容量的存储,通常从4GB到128GB不等,能够满足大多数中低端设备的存储需求。
2025-02-11 20:44:52
1241
原创 常用加速vcs编译的方法
当进行大规模设计的编译与验证时,vcs编译时往往需要大量的时间。为了解决这种问题,本文介绍几种常见的加速vcs仿真的方法,能够有效减少编译时间和资源消耗。
2024-11-28 15:02:15
2693
2
DW_apb_i2c_databook.pdf
2025-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人