自定义博客皮肤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)
  • 收藏
  • 关注

原创 UVM验证—第一课:方法学&类库&工厂

UVM验证方法学通过类库地图和工厂机制提供了高效的验证平台构建方案。类库地图将验证环境标准化为9大核心模块,如工厂类、事务类和寄存器模型类等。工厂机制作为UVM的核心特性,支持通过覆盖(override)实现组件/对象的灵活替换,包括类型覆盖(set_type_override)和实例覆盖(set_inst_override)。创建对象时需先注册到工厂,通过create()方法创建可自动应用覆盖。uvm_coreservice_t类提供全局服务,包含工厂、报告等核心组件。

2025-06-08 15:46:48 791

原创 SV系统验证—第七课:线程的控制和同步(二)

本文摘要: 本文将Verilog/SV中的线程通信机制分为三类进行详细讲解: 事件(event)机制: 使用@操作符进行边沿敏感阻塞 通过triggered()方法实现电平敏感等待 旗语(semaphore)机制: 通过new()初始化钥匙数量 使用get()/put()控制资源访问 保证共享资源互斥访问 信箱(mailbox)机制: 可作为FIFO实现线程间数据交换 提供阻塞(put/get)和非阻塞(try_put/get)方法 支持参数化数据类型

2025-06-08 15:33:15 747

原创 SV系统验证—第五课:类和对象&包的使用(二)

面向对象编程(OOP)的核心三要素是封装、继承和多态。在SystemVerilog中,类(class)通过封装将数据和方法组合,并控制访问权限;继承(extends)允许子类复用父类特性,可通过super和this关键字区分父类与当前类成员;多态则体现在句柄的动态修改和成员覆盖上。package机制为类提供了命名空间隔离,通过import导入不同包中的类,需注意命名冲突问题。文章详细讲解了类的构造过程、句柄传递规则(需用ref实现传引用)以及包的使用规范,并通过猫类、测试类等实例演示了面向对象特

2025-05-30 10:41:42 799

原创 SV系统验证—第七课:线程的控制和同步(一)

线程即独立运行的程序;线程需要被触发,可以结束或者不结束;在module中的initial和always,都可以看做独立的线程,它们会在仿真0时刻开始,而选择结束或者不结束;硬件模型中由于都是always语句块,所以可以看成是多个独立运行的线程,而这些线程会一直占用仿真资源,因为他们并不会结束;软件测试平台中的验证环境都需要有initial语句块去创建,而在仿真过程中,验证环境中的对象可以创建和销毁,因此在软件测试端的资源占用是动态的;

2025-05-25 21:34:16 815

原创 SV系统验证—第六课:随机约束和分布(二)

接着,文章探讨了如何通过约束控制来打开或关闭约束,以及如何使用内嵌约束和随机函数进行更灵活的随机化操作。此外,文章还介绍了数组约束的方法,包括对数组大小和元素的约束,以及如何生成唯一元素值的数组。最后,文章讨论了随机控制技术,如随机序列和随机决策树的应用。

2025-05-25 21:15:21 1043

原创 SV系统验证—第六课:随机约束和分布(一)

本文详细介绍了SystemVerilog中的随机约束和分布、约束控制、随机函数、数组约束以及随机控制的相关概念和应用。首先,文章阐述了随机测试的重要性,指出随机测试能够发现更多潜在缺陷,并介绍了随机变量的声明和约束的定义。

2025-05-21 15:24:38 1135

原创 Tensorflow 神经网络

神经元是神经网络的基本单元,具有多输入单输出的特性,输入分为兴奋性和抑制性两种,并具备空间整合和阈值特性。神经网络的训练过程包括数据准备、网络结构选择、参数初始化、正向传播、损失计算、反向传播、参数更新、迭代训练、模型评估和部署。MP模型和梯度下降法是神经网络中的重要概念,而sklearn是Python中常用的机器学习库。激活函数和损失函数是神经网络中引入非线性和评估模型性能的关键。过拟合和欠拟合问题可以通过调整网络参数和正则化等方法缓解。优化器如SGD、Adam等用于更新网络参数。使用TensorFlow

2025-05-19 09:53:47 598

原创 SV系统验证—第五课:类和对象&包的使用(一)

本文详细介绍了SystemVerilog中类和对象的概念及其相关操作,包括对象的创建、销毁、句柄的使用、静态变量和静态方法的应用。通过示例代码,展示了如何定义类、创建对象、使用构造函数和析构函数,以及如何通过句柄传递和修改对象。此外,文章还探讨了类的封装、继承和多态性,强调了面向对象编程在SystemVerilog中的重要性。最后,介绍了包(package)的使用,如何通过包来组织和管理类,避免命名冲突,并通过import语句导入包中的类。文章通过丰富的代码示例和详细注释,帮助读者深入理解SystemVer

2025-05-14 11:36:16 1030

原创 SV系统验证—第四课:接口&采样驱动&测试始末

在硬件描述语言(如SystemVerilog)中,`module` 和 `interface` 是两个核心概念,它们用于定义数字系统的行为和结构。下面详细解释了它们的区别与联系:### Module(模块)- **定义**:模块是SystemVerilog中的基本构建块,用来封装设计的某一部分,包括输入、输出端口、内部信号以及实现逻辑。- **功能**:- 模块可以包含寄存器、线网声明、过程块(initial和always)、连续赋值语句(assign),以及其他模块实例化。

2025-05-12 15:26:24 634

原创 SV系统验证—第三课:设计例化和连接

**功能**: FIFO 缓冲区用于暂时存储从设备的数据,以确保数据传输的连续性和稳定性。- **功能**: 仲裁器用于协调多个从设备之间的访问请求,确保数据传输的正确性和一致性。- **连接**: 仲裁器与多个从设备相连,通过控制信号来决定哪个从设备可以进行数据传输。- **功能**: 格式器负责将来自不同通道的数据进行格式化处理,生成最终的输出数据。文章浏览阅读1.1k次。- **CLK(0)**: 时钟信号,用于同步系统中的所有操作。- **功能**: 每个从设备负责处理特定通道的数据。

2025-05-12 10:30:16 654

原创 验证通识1—验证环境

**节省地址空间**:- 跳过中间值可以避免浪费地址空间。未使用的地址范围可以保留给未来的功能扩展或其他用途。---### 2. **简化地址解码逻辑**- **硬件实现简化**:- 地址解码是硬件设计中的一个重要部分。通过让寄存器地址间隔固定(如 4 或 8 的倍数),可以大大简化地址解码逻辑。- 例如,如果所有寄存器地址都是 4 的倍数,硬件可以通过简单的位操作(如忽略低两位)来快速定位目标寄存器。- **减少硬件复杂性**:

2025-05-10 16:18:12 481

原创 SV系统验证—第二课:过程块和方法

本文主要讨论了Verilog中函数参数传递的机制及其对变量初始化的影响。在Verilog中,函数参数默认是按值传递,这意味着函数内部对参数的修改不会影响调用者中的原始变量。文章通过一个具体的例子,解释了为什么在未显式初始化的情况下,结构体变量t的成员addr和data会被重置为默认值'h0,而cmd则因显式赋值而保持为'h2。此外,文章还提出了通过使用引用传递(ref)来避免默认初始化问题的解决方案。最后,文章简要提及了变量生命周期的概念,强调了理解变量作用域和生命周期的重要性。

2025-04-18 09:59:32 265

原创 SV系统验证—第一课:数据类型

本文主要介绍了Verilog和SystemVerilog(SV)中的数据类型及其操作。Verilog数据类型包括线网类型和变量类型,而SV在此基础上新增了四值逻辑、二值逻辑、有符号和无符号类型等。SV还引入了内建数据类型、自定义类型以及其他类型。在数据类型2部分,详细讨论了定宽数组、动态数组、队列、关联数组、结构体、枚举类型和字符串等复杂数据类型。此外,文章还介绍了数组的基本操作、缩减、定位和排序方法,以及$display和$write系统任务的使用区别。通过这些内容,读者可以全面了解Verilog和SV中

2025-04-18 09:57:34 918

原创 NVIC判定规则和工作原理

STM32的优先级通过来划分。分组决定了和各占多少比特位。分组通过假设选择占2位(取值范围:0-3)占2位(取值范围:0-3)

2025-03-07 09:59:23 861

原创 Pytorch

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到网络中。如图1,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。

2025-03-07 09:45:19 757

原创 CNN卷积神经网络

卷积神经网络(CNN)是一种深度学习算法,广泛应用于图像识别等领域。CNN的核心结构包括输入层、卷积计算层、激活层、池化层和全连接层。输入层负责数据预处理,如去均值和归一化。卷积计算层通过滤波器提取图像特征,激活层引入非线性,池化层降低数据维度,全连接层综合特征进行最终分类。CNN的优点包括自动特征提取和强大的表达能力,但需要大量数据和调参,且对硬件要求高。CNN通过层次化结构有效处理图像数据,是深度学习的代表技术之一。

2025-03-07 09:42:03 1063

原创 常用嵌入式通讯协议

本文介绍了常见的通讯协议,包括UART、RS485、I2C、SPI和CAN。UART是一种点对点异步串行通信协议,简单易用但传输速率较低。RS485采用差分信号传输,支持多点通信,适用于远距离传输。I2C是双线制同步通信协议,支持多主从设备,简化了电路设计。SPI是全双工同步通信协议,支持高速数据传输和多从设备。CAN是一种高可靠性的异步通信协议,广泛应用于汽车电子和工业控制领域。每种协议都有其独特的物理层和协议层特点,适用于不同的应用场景。

2025-02-27 17:12:49 1277

原创 机器学习中的数学

本文分为回归和分类两部分,详细介绍了机器学习中的基本概念和方法。在回归部分,讨论了如何设置问题、定义模型、使用最小二乘法和最速下降法进行参数优化,以及多项式回归和多重回归的应用。分类部分则涵盖了感知机模型、逻辑回归算法、sigmoid函数和决策边界等关键概念,以及如何处理线性不可分问题。文章通过数学表达式和算法步骤,深入浅出地解释了如何通过训练数据优化模型参数,以实现准确的预测和分类。

2025-02-27 10:37:42 595

原创 Machine Learning

文章摘要:本文介绍了机器学习的基础概念和方法,分为三周内容。第一周涵盖监督学习和无监督学习,包括回归和分类两种类型,以及损失函数(如均方误差函数)。第二周重点讨论回归分析,涉及多维特征、向量化技术及多元线性回归的梯度下降法。第三周转向分类问题,介绍逻辑回归及其在分类中的应用,特别是决策边界的引出。整体内容旨在为读者提供机器学习的基本框架和关键算法。

2025-02-27 10:35:26 263

空空如也

空空如也

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

TA关注的人

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