- 博客(50)
- 资源 (4)
- 收藏
- 关注
原创 IC验证 AXI 项目(三)——突发传输测试
本文对AXI总线验证环境进行了改进,主要实现了突发传输功能。在axi_transfer中添加len和size变量,并在序列、驱动器和测试用例中进行相应修改。驱动器中实现了基于len的LAST信号控制,并提供了完整的读写时序图。测试用例添加了axi_burst_transaction_sequence用于随机化突发传输次数,支持多拍数据传输验证。改进后的环境能够完整支持AXI协议的突发传输特性,包括地址通道的LEN/SIZE信号设置、数据通道的LAST信号生成等关键功能。
2025-09-07 20:25:43
347
原创 IC验证 AXI 项目(二)——断言
本文介绍了AXI4和AXI4-Lite协议中的关键断言检查,包括写地址通道、写数据通道、写响应通道以及读地址和读数据通道的验证要求。主要内容涉及:地址通道的稳定性和边界检查(如4KB边界限制)、BURST类型约束(WRAP对齐要求)、数据通道的合法性验证(数据拍数匹配、WSTRB有效性)、响应通道的时序关系(响应与事务的对应关系)等。这些断言用于确保AXI接口在传输过程中符合协议规范,包括信号稳定性、时序正确性和数据完整性等方面的要求。
2025-08-30 11:47:02
903
原创 IC验证 AXI 项目(一)——AXI 协议理解
文章详细地介绍了 AXI 协议,对其五个通道进行了整体概述,对 burst 传输建立了概念理解并结合实际示例理解对齐地址与回环上下界,此外,对 AXI 五个通道的所有信号进行了介绍,并提供读写时序图与时序描述
2025-08-26 13:59:42
1179
原创 IC验证 APB 项目(三)——断言
本文介绍了APB协议中的断言检查和覆盖率验证方法。主要包含6个关键断言检查:1)PSEL有效时PADDR不能为X;2)PSEL拉高后下一周期PENABLE必须拉高;3)PENABLE拉高后下一周期必须拉低;4)写操作时PWDATA在SETUP到ENABLE阶段需保持稳定;5)传输间PADDR需保持;6)读操作时PRDATA应在PENABLE拉高时变化。同时提供了4个覆盖率验证点,包括非连续写、连续写、先写后读以及连续两次写后读等典型场景的覆盖验证。
2025-08-24 17:31:19
451
原创 IC验证 APB 项目(二)——框架结构(总)
本文介绍了基于VIP的APB验证框架结构,主要包括config配置、interface接口定义、sequence序列生成、agent代理组件以及测试环境搭建。框架详细实现了APB协议的主从设备交互功能,包含读写操作、burst传输、数据校验等验证点。测试案例通过连续写、连续读、读写交替等场景验证APB功能,利用config机制控制组件激活,并通过sequence库实现多样化的激励生成。该验证框架采用UVM方法学,具有结构清晰、可重用性强的特点,能有效验证APB协议的正确性。
2025-08-24 17:30:24
511
原创 IC验证 APB 项目(一)——项目理解
本文建立路科 IC 验证 APB 项目的总体理解,根据参考代码的仿真时序结果理解验证测试内容,后续再介绍代码具体如何实现。
2025-08-22 15:04:35
545
原创 IC验证 AHB-RAM 项目(四)——sequence 代码的编写
本文介绍了UVM验证平台中virtual sequencer和virtual sequence的框架结构。virtual sequencer通过管理子sequencer协调验证流程,virtual sequence则负责创建和挂载子sequence。文章详细说明了在vip_lib和seq_lib目录下新增的sequence相关代码实现,包括基础sequence类、单次读写sequence等,重点分析了body()函数中uvm_do_with和uvm_do_on_with宏的使用区别。
2025-08-21 16:39:21
506
原创 IC验证 AHB-RAM 项目(三)——driver 代码的编写
本文介绍 IC 验证 AHB-RAM 项目中,有关 driver 部分的代码编写要点,包括每一部分实现的内容和各代码块的功能提炼。
2025-08-20 21:12:55
612
原创 IC验证 AHB-RAM 项目(二)——接口与事务代码的编写
本文介绍了准备工作及接口、事务相关代码编写要点。在接口部分,重点说明了lvc_ahb_if.sv、rkv_ahbram_if.sv和rkv_ahbram_tb.sv三个关键文件的功能,其中rkv_ahbram_if.sv通过动态任务实现复位信号控制。事务部分则涉及lvc_ahb_types.sv中的枚举类型定义和lvc_ahb_transaction.sv中的随机化变量设置,用于构建AHB传输激励。整个验证环境采用模块化设计,通过接口实现TB与DUT的通信,为后续验证工作奠定基础。
2025-08-19 16:01:23
285
原创 IC验证 AHB-RAM 项目(一)——项目理解
本文介绍了AHB-RAM验证环境开发的关键要点。首先解释了AHB-RAM(基于AHB总线协议的内存模块)和VIP(验证IP)的概念。随后详细说明了项目框架结构,包括transaction、driver、monitor等核心组件。重点阐述了UVM类创建的三大要素:继承、注册和创建,通过代码示例展示了组件类的标准写法。特别强调了参数化类的使用方法和phase机制(包含build、connect、run等九个阶段)在组件开发中的重要性。
2025-08-17 17:03:46
842
原创 VIVADO IP核整理(一)——CORDIC计算复指数
CORDIC IP核的使用,文章包含IP核的配置以及示例所用的HDL、testbench代码
2025-02-18 10:51:58
2362
原创 FPGA上板项目(六)——UART测试,串口收发
实验内容:将接收到的串口数据重新发送出去,实现串口回环 笔记包括:接收模块的框图、时序图波形与分析、仿真结果与上板验证;顶层模块的框图、时序图波形与分析、仿真结果与上板验证
2024-11-20 21:06:36
1400
原创 FPGA上板项目(五)——UART测试,串口发送
实验内容:每隔一秒,串口发送一次“HELLO!”笔记包括:发送模块的模块框图、时序波形、仿真结果以及顶层模块的时序波形、仿真结果、上板验证结果
2024-11-20 09:27:35
2680
原创 FPGA上板项目(四)——FIFO测试
使用 FIFO IP 核完成数据读写,内容包括:FIFO 介绍、IP 核配置详解、时序波形图分析、仿真结果、上板验证结果
2024-08-26 16:28:32
2066
4
原创 FPGA上板项目(三)——RAM测试
添加 Block Memory Generator IP核,对FPGA内部的 RAM 进行数据读写操作。包括:时序波形图分析、HDL代码、testbench代码、仿真结果、上板验证结果
2024-08-26 11:00:50
1833
原创 FPGA上板项目(二)——PLL测试
添加 clocking wizard IP核,输入为 200MHz 差分时钟,输出为 192MHz 和 96MHz 时钟信号。PLL,即锁相环,一种反馈控制电路,具有时钟倍频、分频、相位偏移和可编程占空比的功能。
2024-07-15 16:16:31
863
原创 FPGA上板项目(一)——点灯熟悉完整开发流程、ILA在线调试
从简单的点灯项目开始,熟悉完整的FPGA开发流程,最终使用ILA进行在线调试查看波形
2024-07-11 14:25:28
1729
原创 野火FPGA跟练(四)——串口RS232、亚稳态、串口RS485
介绍FPGA-RS232中完整的原理和实现内容,包括RS232 RS485简介、接口、亚稳态的定义、RS232发送模块和接收模块的框图、功能描述、时序波形图、波形图分析、RTL代码、TESTBENCH代码
2024-06-09 18:03:59
2512
原创 野火FPGA跟练(三)——IP核(PLL、ROM、RAM、FIFO)
锁相环 PLL 功能:可以对输入到 FPGA 的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望时钟。只读存储器 ROM(Read-Only Memory) 功能:只能读出事先所存数据的固态半导体存储器,一旦存储不可更改,且资料不会因断电而消失。随机存取存储器(Random Access Memory)功能:可随时对任一地址的数据进行读取或写入操作,但断电资料便消失。FIFO(First In First Out)先入先出式数据缓冲器,用来实现数据先入先出的读写方式。
2024-05-27 22:21:10
1539
原创 野火FPGA跟练(二)——状态机
根据野火视频讲解的状态机内容进行相应整理,包括状态参数的编码方式、模块框图、功能描述、状态转移图、代码、testbench代码以及结果输出。
2024-05-07 23:50:29
702
原创 野火FPGA跟练(一)——计数器、边沿检测
对应野火FPGA视频的第十三讲——计数器、第十七讲——触摸按键控制LED灯。分别进行功能需求的确定、波形图绘制、时序图分析、design代码、testbench代码以及仿真波形的显示
2024-04-29 11:36:27
800
1
原创 ESP32开发路程LVGL篇(三)——显示图片
本文利用的方式:通过工具将图片转化为.c文件,写入单片机程序并进行烧录,这种方式实现起来较为简单,但是由于硬件限制,图片的大小会受限,且占用内存,可以用在加载界面等地方。可以仿照我的做法,在 components 文件夹下新建 images 文件夹,包含刚才生成的 .c 文件并新建一个 CMakeLists.txt。main.c 的代码基本不变,变化在 LVGL 应用程序部分,替换成以下代码,代码的其余部分参考。仿照下图进行设置,convert 后生成 one.c 文件。
2023-06-29 11:10:41
2333
5
原创 ESP32开发路程LVGL篇(二)——例程代码浅析,可视化界面设计器
lv_task_handler 在LVGL中是用于处理任务和事件的函数。lv_tick_task 相当于 LVGL 的心跳,可以用来了解动画和其他任务的经过时间,以 LV_TICK_PERIOD_MS 个毫秒为单位告知。这一部分的代码相当于LVGL的初始化,包括配置显示驱动、创建显示缓冲区、注册显示驱动器,并创建一个周期性定时器。可以不用过度关注这一部分的代码。本例程针对 lv_port_esp32 工程中的 main.c 代码进行了删减并添加了相应的注释(完整的工程移植见。
2023-06-28 15:30:31
1678
原创 ESP32开发路程LVGL篇(一)——移植完整过程,花屏问题解决,ST7735显示方向
使用 ESP32 驱动 ST7735 128*160屏幕,使用 lvgl 和 lvgl_esp32_drivers,参考 lv_port_esp32 创建工程,完整说明移植过程,同时解决ST7735显示方向受限问题,并给出常见的花屏问题解决方案
2023-06-27 16:54:53
8442
1
原创 ST-LINK Utility 烧录 hex、bin 文件——软件下载、驱动安装、使用教程、连接问题解决
选择需要的 hex 或 bin 文件,若是 bin 文件,需要手动选择烧录的起始位置。可以尝试更换 Target -> Settings -> Mode 里面的三种模式。点击 Start 后,完成烧写。擦除后所有数据变为 0xFF。
2023-06-06 11:55:00
4367
1
原创 ESP32开发路程I2S篇——音频播放,自定义分区
自定义分区,自建分区表,将自建分区烧录至 ESP32,通过 I2S 播放音频文件,完整代码展示
2023-04-19 10:29:29
5655
5
原创 随手记——舵机、WS2812异常、电机死区和异响、对%c %d的理解、ESP32不断重启、ESP32CAM迷惑行为
舵机占空比和转角,不同芯片驱动 WS2812 时的区别,电机死区控制和异响问题,对%c和%d的理解,ESP32不断重启的问题,ESP32CAM各种异常问题
2023-03-09 14:04:47
1401
原创 上手MySQL——安装,常用数据类型,常用操作,pymysql基本操作
入门级MySQL。如何安装及启动,常用数据类型,数据库、数据表常见操作,表的增删查改,pymysql 基本操作。create table 表名(列名 类型,列名 类型…insert into 表名 values(值,值,值…查看数据库所含的所有数据表:show tables;以下操作需要先选中数据库:use 数据库名;此操作十分危险,谨慎使用:drop 表名;查看表里的列和类型:desc 表名;select * from 表名;
2023-02-15 15:13:50
318
原创 随手记——break continue;c++基本概念;anaconda虚拟环境;arduino自添加库;VSCODE创建c++项目;VS使用教程
break continue;c++ 基本概念;anaconda 虚拟环境;arduino 自添加库;VSCODE 创建c++项目;VS 使用教程
2022-12-19 11:24:08
307
原创 上手阿里云服务器(二)——监听TCP端口,ESP32与服务器的连接
python 语言编写监听 TCP 端口的代码,ESP32 与云服务器的连接,附完整客户端、服务器端代码
2022-11-22 15:56:51
1431
原创 上手阿里云服务器(一)——搭建LAMP开发环境、防火墙、文件传输
在轻量应用服务器上搭建LAMP开发环境,简单了解防火墙规则,利用FTP进行文件传输
2022-11-21 21:58:22
755
原创 ESP32开发路程WIFI篇——极简连接WIFI,模拟设备连接阿里云,ESP32连接阿里云
ESP32开发 WIFI篇——极简代码连接wifi,模拟设备连接阿里云
2022-10-31 15:42:15
3079
原创 ESP32开发路程蓝牙篇——BLE(GATT),修改设备名称,添加characteristic,发送数据,接收数据
蓝牙实用指南——根据BLE(GATT协议),修改设备名称,添加 characteristic,发送数据,接收数据
2022-10-28 17:54:02
8493
原创 ESP32开发路程——环境搭建、引脚、烧录、UART、ADC、WS2812、RFID、DAC、PWM、FreeRTOS、CJSON、常见报错
ESP32开发:VSCODE+ESP IDF环境搭建问题、常见操作、引脚说明、UART、ADC、WS2812、RFID驱动程序(完整工程)、DAC、Freertos、CJSON
2022-10-15 12:38:02
2691
原创 STM32F103C8T6 多个HAL库完整工程——RFID、WS2812、数码管、ADC、UART、GPIO
多个HAL库完整工程,基于STM32F103C8T6:基于SPI的RFID读取、基于PWM+DMA控制WS2812、数码管、ADC、UART的printf重定向与接收数据解析、GPIO
2022-10-05 10:20:59
1678
原创 通信学科概念理解汇总——线代、概统、信号、数字信号、通信原理
知识点汇总:行列式的几何意义:特征值的理解:相似矩阵的理解:相似对角化的理解:全概率公式、贝叶斯公式:协方差:重点内容:知识点汇总:卷积、单位冲激响应、传递函数:FT、DTFT、DFT:通信原理知识点:Rmax与B的关系:
2022-09-29 22:02:58
342
原创 QT+OPENCV——打开摄像头完整工程,HOG+SVM行人检测算法
QT框架下的OPENCV应用打开摄像头的完整代码,HOG+SVM实现行人检测(图片+视频)
2022-09-09 16:02:42
1356
2
多个HAL库完整工程,基于STM32F103C8T6——RFID、WS2812、数码管、ADC、UART、GPIO
2022-10-05
OpenCV 实时物体检测,框出物体轮廓,设计交互界面
2022-01-24
Balance.rar
2021-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅