自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(494)
  • 收藏
  • 关注

原创 【复习】汇总

【数据结构】导航-CSDN博客【导航】OS复习-CSDN博客【导航】计组复习-CSDN博客【复习】计网导航-CSDN博客

2025-10-13 15:43:12 899 1

原创 【计网】导航

【计算机网络】一二章-CSDN博客【计算机网络】第三章 物理层-CSDN博客【计算机网络】第四章 数据链路层-CSDN博客【计算机网络】第五章 局域网技术-CSDN博客【计算机网络】第六章 网络层-CSDN博客【计算机网络】第七章 运输层-CSDN博客。

2025-06-15 18:13:03 582

原创 【编译原理】导航

空符号串中间代码https://blog.csdn.net/wuyufei_sun/article/details/146402079https://blog.csdn.net/wuyufei_sun/article/details/146222472

2025-03-26 09:51:41 636

原创 【FPGA】导航

fpga模型机设计

2025-03-08 12:38:08 840 1

原创 【数据库】导航

【数据库】数据库的学习_数据库学习-CSDN博客。

2024-12-03 11:23:27 657 1

原创 【计组】导航

【计组】计算机组成原理-CSDN博客【计组】例题&课后题-CSDN博客【计组】复习总结期末-CSDN博客。

2024-12-03 11:21:23 343

原创 【Verilog】导航

【Verilog】基于Verilog HDL的FPGA设计基础_verilog设计超大规模集成电路-CSDN博客。

2024-12-03 11:15:33 473

原创 【嵌入式】嵌入式复习

第一章 嵌入式系统概述第二章 ARM技术与Cortex-M3体系结构第三章 ARM Cortex-M3处理器第四章 Cortex-M3指令系统第五章 Cortex-M3汇编语言程序设计第六章 Cortex-M3的低层编程第七章 STM32F103 GPIO原理及应用第八章 STM32F103定时器原理及应用第九章 STM32F103中断及应用

2024-06-10 21:40:15 704

原创 【SystemVerilog】面向对象编程的高级技巧指南

第八章

2026-06-20 21:27:47 64

原创 【SystemVerilog】线程以及线程间的通信

第七章。

2026-06-20 21:24:04 51

原创 【SystemVerilog】随机化

随着设计变得越来越复杂,要产生一个完整的激励集来测试设计的功能也变得越来越困难了。可以编写一个定向测试集来检查某些功能项,但当一个项目的功能项成倍增加时,编写足够多的定向测试集就不可能了。更严重的是,这些功能项之间的关系是大多数错误(Bug)的来源,而且这种 Bug 很难按清单检查功能项的方法来排查。

2026-06-19 19:54:39 131

原创 【SystemVerilog】面向对象编程基础

本文摘要: SystemVerilog面向对象编程(OOP)指南深入探讨了如何利用OOP构建高效测试平台。文章首先对比了传统Verilog与OOP方法的差异,强调OOP通过封装数据和操作来提升代码可维护性和重用性。核心内容包括: 类与对象基础 类作为蓝图封装变量和方法 通过new()创建对象实例 句柄作为对象指针的使用方法 关键OOP特性 静态变量和方法在类层面的共享 作用域规则和this指针的应用 类的嵌套与分层调用 对象操作技术 对象传递(引用传递与值传递) 深层复制与浅层复制的实现 使用流操作符进行对

2026-06-19 19:26:56 440

原创 【SystemVerilog】连接设计和测试平台

本文介绍了SystemVerilog中验证设计的关键技术,重点阐述了接口(interface)、程序块(program block)和时钟块(clocking block)的应用。通过仲裁器和ATM路由器的案例,展示了接口如何封装复杂信号连接,减少代码量和连线错误。程序块将测试平台与设计在时序上分离,避免竞争状态。时钟块则确保测试信号在正确时间点被驱动和采样。文章还讲解了SystemVerilog断言(assertion)的使用方法,以及如何通过编译单元作用域($unit)和$root实现跨模块访问。

2026-06-14 22:36:01 225

原创 【SystemVerilog验证】过程语句和子程序

SystemVerilog对Verilog进行了多方面的改进,使代码编写更加高效和安全。文章摘要如下: 语法增强:引入C风格语法,支持循环内声明变量、自动递增/递减操作符、do-while循环以及带标签的代码块,提高代码简洁性和可读性。 子程序改进:任务和函数支持参数默认值、引用传递(ref)和const修饰,void函数替代不消耗时间的任务,增加return语句实现灵活返回控制。 时间管理:提供timeunit/timeprecision替代`timescale,支持$timeformat精细控制时间显示

2026-06-14 22:15:03 345

原创 【SystemVerilog验证】数据类型

SystemVerilog相比Verilog在数据结构方面有显著改进,主要包括: 增强的数据类型 引入双状态数据类型(bit, byte等)提升性能并减少内存消耗 新增logic类型解决reg/wire选择困惑 支持字符串(string)处理 灵活的数组类型 动态数组:运行时确定大小 队列:结合数组和链表优点,支持高效增删 关联数组:稀疏存储,支持复杂索引 合并数组:紧凑存储,支持多种访问方式 结构化数据类型 结构体(struct)组织相关数据 联合体(union)实现多格式数据访问 枚举类型(enum)增

2026-06-04 21:27:47 393 1

原创 【SystemVerilog验证】验证导论

本文系统阐述了硬件功能验证的流程、方法与技术体系。首先指出验证的本质是确认设计是否符合规范,而非单纯寻找漏洞。验证流程需要与设计并行,验证工程师应独立解读规范。 文章详细分析了分层验证方法:从代码块级、边界级到系统级,强调边界交互和错误恢复能力的重要性。重点介绍了受约束的随机验证方法学的六大原则,包括随机激励生成、功能覆盖率、分层测试平台等核心技术。通过事务处理器、总线功能模型等构件,构建包含信号层、命令层、功能层和场景层的测试平台。 最后提出验证的三步工作法:建立分层测试平台、创建激励约束、实施功能覆盖率

2026-06-04 19:56:38 373

原创 芯片验证、数字芯片验证流程

芯片验证是确保芯片设计正确性的关键环节,通过EDA仿真等手段在流片前发现并修复设计缺陷。验证方法学以随机激励、覆盖率驱动和重用为核心,利用UVM等标准化框架提升验证效率。验证流程包括测试点提取、环境搭建、仿真执行和回归测试等阶段,要求功能覆盖率达到100%。验证工程师需参与架构设计评审,分解完备细致的测试点,这是衡量验证质量的关键指标。整个验证过程贯穿芯片开发周期,通过严格的回归测试确保设计可靠性,对缩短产品上市周期具有重要作用。

2026-05-09 12:32:16 418

原创 Systemverilog和Verilog区别

SystemVerilog是Verilog的扩展超集,完全兼容Verilog语法。两者关系类似于C++与C语言的关系。Verilog主要用于RTL级硬件设计,而SystemVerilog在继承其设计功能的基础上,重点增强了验证特性,包括面向对象编程、随机激励生成、功能覆盖率和断言验证等。Verilog专注于数字电路设计,SystemVerilog则成为芯片验证的标准语言,广泛应用于复杂IC和SoC的验证流程。虽然语法兼容,但在实际应用中二者形成了设计(Verilog)与验证(SystemVerilog)的明

2026-04-13 17:19:34 551

原创 HDLBits-Verilog Practice

本文介绍了使用Verilog实现5分频电路的设计方法。该电路通过双边沿触发技术生成精确的50%占空比输出时钟,主要特点包括:1) 采用3位计数器实现0-4循环计数;2) 利用上升沿和下降沿分别生成中间时钟信号clk_p和clk_n;3) 通过或运算合成最终输出时钟clk_out;4) 使用异步复位确保电路初始状态稳定。仿真结果显示输出时钟周期为输入时钟的5倍,且严格保持50%占空比,验证了设计的正确性。该设计方法可推广到其他奇数分频电路实现中。

2026-04-13 12:11:11 443

原创 牛客Verilog刷题篇(未完结)

首先,由于不能在硬件上进行小数的运算(比如2.1个时钟这种是不现实的,也不存在3.3个寄存器),小数分频不能做到分频后每个时钟周期都是源时钟的nn倍,也无法实现占空比为1/2,因此,考虑小数分频,其实现方式应当为53个clkout时钟周期是10个clkin时钟周期的8.7倍。数据拼接时先接收到的数据放到data_b的低位。请编写一个序列检测模块,检测输入信号a是否满足011XXX110序列(长度为9位数据,前三位是011,后三位是110,中间三位不做要求),当信号满足该序列,给出指示信号match。

2026-04-11 22:30:38 614

原创 【Verilog】阻塞/非阻塞赋值

本文介绍了Verilog中阻塞赋值(=)与非阻塞赋值(<=)的区别及其应用原则。阻塞赋值立即执行并阻塞后续语句,而非阻塞赋值在当前时间槽结束时更新且不阻塞其他语句。文章提出了Verilog编码的8个重要原则,包括时序电路用非阻塞赋值、组合逻辑用阻塞赋值等。通过对比实验显示:在相同初始条件下,使用阻塞赋值的q3最终值为0(直接传递in值),而使用非阻塞赋值的q3保留原q2值2。正确答案为D(0、2),这验证了两种赋值方式的行为差异。文末的电路图进一步直观展示了信号传递路径的不同。

2026-04-10 18:00:44 223

原创 FPGA&数字前端

本文摘要:文章系统介绍了FPGA和ASIC的开发流程,重点对比了两者在设计、仿真、验证等环节的差异。详细阐述了数字电路基础知识,包括数制转换、逻辑函数化简、竞争冒险消除等。深入分析了时序逻辑电路的核心概念,如建立/保持时间、时钟抖动/偏移、亚稳态等。特别讨论了ASIC低功耗设计方法,包括门控时钟、多电压供电等技术。此外,还涵盖了MOS逻辑门特性、触发器设计、反相器速度优化等数字集成电路关键内容,并配有Verilog代码实例和电路原理图说明。全文兼顾理论与工程实践,为数字IC设计提供了全面的技术参考。

2026-04-10 16:30:00 637

原创 RTL代码

本文总结了数字电路设计中常见模块的Verilog实现方法,主要包括:1) 跨时钟域处理技术(两级触发器同步、异步FIFO、握手协议);2) 时序电路设计(边沿检测、序列检测器、分频电路);3) 存储模块实现(同步/异步FIFO、双端口RAM);4) 接口设计(IIC协议、按键消抖);5) 特殊电路(无毛刺时钟切换、PWM脉冲展宽)。重点介绍了慢到快和快到慢时钟域的同步方法,以及三分频、异步复位同步释放等典型电路的设计要点。所有实现方案均注重可综合性和实际应用需求。

2026-04-10 13:15:00 751

原创 数字芯片流程

本文系统介绍了芯片设计的完整流程,分为前端设计和后端设计两大部分。前端设计包括需求分析、功能架构设计、RTL编码、功能仿真、逻辑综合、静态时序分析和形式验证7个关键步骤,重点在于逻辑功能的实现与验证。后端设计则包含DFT可测性设计、布局规划、时钟树综合、布线、寄生参数提取和物理版图验证6个核心环节,主要解决与工艺相关的物理实现问题。文章详细说明了每个环节的工作内容、技术要点和常用工具(如Modelsim、Design Compiler等),并指出前后端设计界限在于是否涉及工艺相关设计。最终生成的GDSII版

2026-04-08 22:41:42 325

原创 数字积木(IP)设计流程

本文介绍了在Vivado中进行IP设计与调用的完整流程。IP设计部分包括创建工程、编写源文件、封装为IP核;IP调用部分涵盖添加IP库、创建Block Design、端口连接及生成HDL包装文件等步骤。通过图文并茂的方式,详细演示了从设计四输入与非门IP到在其他工程中实例化调用的全过程,包括关键设置选项和常见问题的解决方法。该教程为FPGA开发者提供了清晰的IP核开发与应用指导,帮助用户实现设计复用和模块化开发。

2026-04-08 22:25:58 261

原创 逻辑设计工程技术基础

本文介绍了影响逻辑系统设计质量的几项关键技术,主要包括:数字电路稳定性问题(竞争冒险、时间抖动、亚稳态)、组合逻辑中的毛刺现象及其分类与处理方法(增加冗余项、小电容滤波、选通法)、异步电路毛刺处理方案(延迟元件法、多次转换法等),以及同步电路改造的优势。同时还涉及Verilog编码风格和Xilinx开发工具的使用。这些技术对提高数字系统的可靠性和稳定性具有重要意义,是逻辑设计中需要重点考虑的实际工程问题。

2026-04-08 21:51:51 370

原创 有限状态机设计基础

有限状态机(Finite State Machine,FSM)简称状态机,是用来表示系统中的有限个状态及这些状态之间的转移和动作的模型这些转移和动作依赖于当前状态和外部输入,它下一步的状态逻辑通常是重新建立的,也称之为随机逻辑输出dout仅由当前状态决定,与输入无关仅在s4状态输出1,其余状态输出0,完美匹配 Moore 状态机定义状态编码功能zero3'b000sw 稳定为 0,输出 db=0wait1_13'b001检测到 sw=1,第 1 次 10ms 等待wait1_23'b010。

2026-04-08 15:27:40 531

原创 同步FIFO

摘要:本文介绍了同步FIFO的设计原理与实现方法。FIFO是一种先入先出的存储器队列,其特点是通过顺序而非地址访问数据。同步FIFO的读写操作共用同一时钟,主要包含写指针、读指针和状态标志(满/空)等核心组件。文章详细分析了标准模式和FWFT模式的读取时序差异,并给出了基于Verilog的RTL实现方案,包括存储阵列定义、指针管理逻辑和状态控制机制。测试验证了该设计能正确处理读写操作,满足FIFO的基本功能要求。

2026-04-07 20:51:58 391

原创 时序逻辑电路设计基础

本文摘要: 本文系统介绍了数字电路中的时序逻辑设计,重点讲解了触发器、锁存器、寄存器、移位寄存器、计数器等基本时序元件的Verilog实现。通过多个实际项目案例,包括数码管扫描显示、秒表、可编程方波发生器、PWM调光器和增强型秒表,详细阐述了时序电路的设计方法和优化技巧。文章涵盖了时钟分频、状态机设计、按键消抖、动态扫描显示等关键技术,并提供了完整的代码实现和测试验证方案。这些设计均基于FPGA平台,具有实际应用价值,可作为数字系统设计的参考范例。

2026-04-07 20:49:32 888

原创 组合逻辑电路设计基础

本文摘要: 本文系统介绍了Verilog HDL中组合逻辑电路的设计方法,重点讲解了always块的使用规范。内容包括组合逻辑的基本概念、always块语法结构、过程赋值方式(阻塞/非阻塞)、常见数据类型,以及条件语句和循环语句的实现。详细分析了组合电路设计中的常见错误,如敏感列表不全、多always块赋值冲突等,并提出了编码原则。通过多个典型电路实例(比较器、译码器、优先编码器、BCD增量器等)演示了组合逻辑的实现方法,强调硬件思维与代码规范的重要性,特别说明了如何避免意外生成锁存器。文中还对比了if-e

2026-03-28 21:15:02 576

原创 布尔代数和Verilog HDL基础

本文摘要:文章系统介绍了数字逻辑基础与Verilog HDL语言核心知识。主要内容包括:1)计算机数制与编码体系,重点分析二进制、8421码等常用编码的优缺点;2)布尔代数基本定律与逻辑函数表示方法(真值表、卡诺图、逻辑表达式等)及其相互转换;3)逻辑化简的原理与方法,强调其在降低电路成本和提高性能方面的重要性;4)Verilog HDL基础,涵盖数据类型(常量、参数、线网型/寄存器型变量)和运算符优先级。全文为数字电路设计提供了完整的理论基础和实践指导框架。

2026-03-28 17:27:24 335

原创 逻辑设计概念及Vivado基础

本文系统介绍了数字电路设计的基本概念和开发流程。首先阐述了数字信号与模拟信号的区别,以及数字电路在保真度、抗干扰性等方面的优势。重点讲解了硬件描述语言Verilog HDL的发展历程和特点,对比了PLD与ASIC、MCU等器件的差异。文章详细分析了CPLD和FPGA这两种主流可编程逻辑器件的架构差异、发展历程及选型要点。最后通过Vivado开发环境的操作演示,展示了从新建工程、编写代码到编译下载的完整FPGA开发流程,突出了Vivado在支持新一代器件和高层次综合方面的优势。全文为数字电路设计提供了从理论到

2026-03-28 16:31:30 410

原创 PS/2 键盘接收模块代码

本文设计了一个PS/2键盘接口模块,主要功能包括:检测PS/2时钟下降沿,接收11位串行数据(含起始位、8位按键码、校验位和停止位),通过有限状态机实现数据采样和拼接。模块能够识别按键松开标记0xF0,并将26个字母键的扫描码转换为ASCII码输出。系统提供数据有效标志psRecDataVd和按键松开标记markFlag,采用时钟同步设计确保稳定采样。该模块实现了PS/2键盘数据的完整接收、解析和转换流程。

2026-03-25 18:55:03 752

原创 FPGA与CPU数据通信(待补充)

本文系统梳理了FPGA与CPU/外设通信的各类接口,分为低速和高速两大类。低速接口包括SPI(同步串行)、LPC(Intel低速并行)、UART(异步串行)、IIC(两线制)和自定义总线,适用于控制信号和小数据量传输。高速接口涵盖PCIe(主流CPU互联)、SRIO(低延迟集群)、MIPI(视频专用)、LVDS(差分传输)等,适合大数据量传输。文章详细分析了各类接口的核心特点、应用场景及实现要点,为FPGA系统设计中的接口选型提供了实用参考,特别强调要根据传输需求、平台特性和应用场景选择最优方案。

2026-03-25 13:29:42 495

原创 Flask + UniApp + MySQL

本文介绍了一套轻量级全栈技术组合Flask+UniApp+MySQL。UniApp基于Vue.js实现跨平台开发,Flask提供Python后端API,MySQL作为数据库。该方案具有开发效率高、成本低、灵活性强等特点,特别适合中小型项目。文章详细阐述了各层技术选型理由、核心组件及交互流程,并与SpringBoot+Vue方案进行了对比,突出了其在微信生态、快速开发等方面的优势。

2026-03-23 09:33:52 412

原创 Vue+SpingBoot+MyBaits框架

MyBatis 可通过简洁的 XML 文件或注解配置,将 SQL 语句与 Java 对象(POJO)的映射关系绑定;2.Spring MVC 是 Spring Framework 核心生态的重要组成部分,它严格遵循 MVC 设计模式,分离了前端控制器(DispatcherServlet)、控制器(Controller)、模型(Model)、视图(View)等核心角色,这种清晰的职责分离让每个组件都可以独立定制和扩展,大幅提升了 Web 开发的灵活性。(3)配置路由(src/router/index.js)

2026-03-14 22:06:51 514

原创 微信小程序开发(四)

本文系统介绍了微信小程序自定义组件的开发全流程,主要内容包括:1. 组件基础:创建与引用方式(局部/全局)、样式隔离机制、数据监听器、生命周期管理;2. 高级功能:插槽使用、父子组件通信(属性/事件绑定)、Behavior代码共享;3. 工程化实践:npm包使用(Vant组件库)、API Promise化改造、MobX全局状态管理;4. 性能优化:分包策略(普通分包/独立分包)、预下载机制及配置规则。文章详细阐述了各功能模块的实现方法和最佳实践,为小程序组件化开发提供了完整解决方案。

2026-03-14 17:26:10 402

原创 【鸿蒙智能硬件】(六)使用鸿蒙app展示环境监测数据

本文介绍了基于SpringBoot+MyBatis构建的环境监测系统Web服务端应用。系统实现了环境数据(温度、湿度、气味)的采集、存储和可视化展示功能。后端采用三层架构设计,包含EnvDao(数据访问层)、EnvService(业务逻辑层)和EnvController(控制层),提供数据分页查询、平均值计算等接口。前端使用ECharts图表库实现柱状图和饼图数据可视化,展示最新5条记录和各项指标平均值。同时开发了鸿蒙移动端应用,通过轮播图和列表形式展示环境数据,支持定时刷新功能。系统实现了从数据采集到展示

2026-03-14 15:42:32 219

原创 微信小程序(三)视图与逻辑

本文摘要:文章系统介绍了小程序开发的核心技术点,包括页面导航(声明式和编程式导航方法及传参)、页面事件(下拉刷新和上拉触底的配置与监听)、生命周期(应用和页面的生命周期函数)以及WXS脚本(特性、语法及与JavaScript的区别)。重点讲解了各种导航方式的实现、事件处理机制、生命周期管理,并详细说明了WXS的隔离性、性能优势和使用限制,为小程序开发者提供了全面的技术参考。

2026-03-13 14:30:00 371

原创 【鸿蒙智能硬件】(五)使用springboot+mybatis构建web服务器端应用

摘要:本文介绍了使用SpringBoot+MyBatis构建Web服务器端应用的完整流程。首先创建SpringBoot项目并配置数据库连接,安装EasyCode和MyBatis插件自动生成实体类、DAO和Mapper文件。然后通过Vue+HTML5实现前端页面,包含数据展示和分页功能。详细说明了项目结构搭建、代码生成、前后端交互等关键步骤,最终实现了一个环境监测数据管理系统。系统采用Maven构建,JDK17环境,具备基本的CRUD功能和自动刷新特性。

2026-03-13 10:30:00 268

PCIe相关,资料总结,存档

PCIe相关,资料总结,存档

2025-07-10

微机原理课程设计-洗衣机

微机原理课程设计-洗衣机

2024-10-19

操作系统 思维导图 汇总资源1

操作系统 思维导图 汇总资源1

2024-06-10

MATLAB实验三四 综合应用

MATLAB实验三四 综合应用

2024-06-10

MATLAB实验一二 数值计算

MATLAB实验一二 数值计算

2024-06-10

MATLAB实验五六 图像相关应用

MATLAB实验五六 图像相关应用

2024-06-10

06按键控制0000000000000000000

06按键控制0000000000000000000

2024-06-03

Jlink-windows-v7967

Jlink-windows-v7967

2024-06-03

定时器,定时到8,可修改代码中的时间间隔

定时器,定时到8,可修改代码中的时间间隔

2024-06-03

流水灯,8个灯,不同花样

流水灯,8个灯,不同花样

2024-06-03

嵌入式流水灯的实现,三个灯

嵌入式流水灯的实现,三个灯

2024-06-03

流水灯(库函数)三个灯依次亮灭

流水灯(库函数)三个灯依次亮灭

2024-06-03

空空如也

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

TA关注的人

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