- 博客(141)
- 问答 (1)
- 收藏
- 关注
原创 如何在Ubuntu系统中安装Vivado
本文详细介绍了在Ubuntu 24.04 LTS系统中安装Vivado 2024.2的全过程。首先建议将虚拟机硬盘扩容至300GB以上,并配置共享文件夹以方便文件传输。安装步骤包括:通过VMware Workstation扩展虚拟硬盘空间,设置共享文件夹并手动挂载到/mnt/hgfs目录。文中提供了详细的操作截图和命令行示例,特别强调了使用vmhgfs-fuse命令挂载共享文件夹的方法。该教程还提及Ubuntu环境下Vivado可能具有比Windows更快的编译速度,后续将进行对比验证。适合需要在Linux
2025-06-07 12:12:44
1358
原创 Verilog 功能模块--RAM 和 ROM(03)--自编 RAM 与 Vivado RAM IP 功能对比实测
摘要:本文对自编RAM与Vivado RAM IP的功能特性进行了对比测试,重点分析了两者在初始化、使能控制、输出寄存器和操作模式等方面的差异。测试主要针对TDPRAM实现,在300MHz高频条件下验证了模块性能,并采用冲突抑制机制避免读写冲突(包括写-写冲突和读-写冲突)对测试结果的影响。文章通过随机信号测试方法,对比了两种RAM实现的关键功能表现,为FPGA存储器设计提供了实践参考。
2025-06-07 12:11:10
713
原创 Verilog功能模块--RAM和ROM(02)--同步写-写冲突与读-写冲突实测
本文主要探讨Xilinx FPGA中RAM IP模块的冲突行为测试方法。文章通过上板实测方式,重点分析了TDPRAM在同步时钟下的写-写冲突和读-写冲突行为。实验设计思路包括高频性能验证、使能信号测试、三种操作模式验证以及初始化功能测试等内容。测试方案采用ILA抓取信号的方式,在顶层文件中专门设计了写冲突检测信号,如write_collision_clka_locked和addr_locked等寄存器,用于观测冲突发生时的具体行为。作者指出,由于仿真不能完全反映真实硬件行为,因此需要通过实测来确保自编RAM
2025-06-07 12:09:54
795
原创 Verilog功能模块--RAM和ROM(01)--功能说明与关键代码解析
FPGA内存模块自研实现方案解析 摘要:本文介绍了FPGA开发中自研RAM/ROM模块的必要性与实现方案。与商业IP核相比,自研模块具有更好的代码移植性,适用于基础功能场景。文章详细阐述了模块支持的三种RAM类型(单端口、简单双端口、真双端口)和两种ROM类型,实现了写优先/读优先/无变化三种操作模式,并兼容COE文件初始化功能。模块设计参考了Vivado BRAM IP的接口标准,但暂未实现字节写和位宽转换等高级功能。通过参数化设计,该方案能满足多数基础应用需求,同时保持代码的跨平台兼容性。 (148字)
2025-06-07 12:08:25
1049
原创 Xilinx IP 解析之 Block Memory Generator v8.4 ——02-如何配置 IP(仅 Native 接口)
本文介绍了Xilinx IP核Block Memory Generator v8.4的配置方法,重点针对原生接口(Native)的BRAM进行说明。主要内容包括: 基础配置选项:包括接口类型选择、存储类型设置(5种RAM/ROM模式)、时钟配置等; ECC纠错码功能:详细解析了Soft ECC和BuiltIn ECC两种纠错模式的应用限制; 错误注入功能:提供了单bit、双bit及组合错误注入选项。 文章还提供了相关技术文档和代码解析的参考链接,帮助开发者深入理解BRAM的实现与应用。通过本文的配置指导,用
2025-06-07 12:02:08
698
原创 Xilinx IP 解析之 Block Memory Generator v8.4 ——01-手册重点解读(仅 Native R
本文介绍了Xilinx Block Memory Generator v8.4 IP核的主要特性,重点解析了原生接口BRAM的使用方法。该IP核支持创建单端口/双端口RAM、ROM,性能高达450MHz,数据宽度1-4096位,深度2-128k,并提供可变读写比例、字节写使能、ECC校验等功能。文章还对比了原生接口与AXI接口的区别,并详细说明了端口操作模式、读写冲突行为等关键特性。相关内容来自Xilinx官方手册前三章的翻译整理,关于IP具体配置方法将在后续文章中介绍。
2025-06-07 11:59:36
880
原创 Verilog编程技巧01——如何编写三段式状态机
规范更注重编码的格式,像变量命名、缩进、注释风格等,而编程技巧则更偏重更直观易读、更便于维护、综合效果更好的Verilog/SV代码写法,像:如何编写状态机、如何进行参数化设计、如何进行流水线设计等。四段式的综合效果在非常复杂场景可能略好于三段式,但绝大多数场景下,三段式的综合效果同样优异,两者区别不大,所以两者都标注为三颗星。最后,本文分享了Verilog与SV的三段式状态机模板。中的内容,四段式状态机在复杂逻辑的综合中会有一定优势,但三段式代码更加简洁,更符合直观逻辑,所以在FPGA开发中,作者推荐。
2025-06-06 23:31:30
322
原创 Verilog仿真模块--真随机数生成器
因为波形配置文件(如 genRandomNum_behav.wcfg),文件内部是保存了参数值 SEED 值,所以再次运行 tcl,SEED 值改变,原本的波形配置文件会因为 SEED 值改变而失效(会报警告),所以,在重启仿真之前,需要读取 wcfg 文件,替换 SEED 值为新值,这部分代码对应以下 tcl 文件的。除此之外,在实际应用时,还考虑到,保存波形配置文件与恢复波形的问题。要产生真随机数,其实就是要改变每次仿真时,初始用到的种子,通常的做法是使用系统时间作为种子,有的方案里使用的是。
2025-04-30 19:59:37
1330
原创 Vmware中安装Win7并利用360安装Vmware tools
之前写过Vmware安装Win7并安装Vmware tools的博客,但近期可能是因为VMware Workstation Pro升级了,原本的安装Vmware tools的方法失效了,网上的很多解决办法既复杂又没用,让人失望。这里通过安装360的办法成功解决了Vmware tools安装失败的问题,简单有效,故写此博客分享一下。
2024-07-13 00:14:34
1216
原创 Xilinx IP解析之DDS Compiler v6.0(2)—— IP配置与仿真
因篇幅关系,此IP解析分为两篇文章:1. Xilinx IP解析之DDS Compiler v6.0(1)—— 基础概念 主要说明DDS的一些基础概念,只有了解清楚基础概念,才能理解IP的运行原理和各个输入输出信号的含义,以便在使用此IP时心中有数。2. Xilinx IP解析之DDS Compiler v6.0(2)—— IP信号接口、配置与仿真 主要说明IP各个信号的含义,如何配置IP,最后仿真试验了IP的基础功能。**此为第二篇**。
2024-05-31 17:23:27
3300
2
原创 Xilinx IP解析之DDS Compiler v6.0(1)—— 基础概念
**DDS**(Direct Digital Synthesis,直接数字综合器)是一种**正弦波发生器**,在Quartus中它被称为**NCO**(Numerically Controlled Oscillator,数控振荡器),两者是对同一功能IP核的不同称呼。因篇幅关系,此IP解析分为两篇文章:1. Xilinx IP解析之DDS Compiler v6.0(1)—— 基础概念2. Xilinx IP解析之DDS Compiler v6.0(2)—— IP信号接口、配置与仿真
2024-05-31 17:02:25
4008
4
原创 Xilinx IP解析之Multiplier v12.0
乘法器是Xilinx的数学运算IP核中最基础的IP核之一,熟练掌握它是使用FPGA进行数字信号处理的基础。本文详细介绍了其应用与各种可能产生疑问的点。
2024-04-30 15:37:55
3159
原创 Verilog功能模块——读写位宽不同的同步FIFO
前面的博文已经讲了异步FIFO、读写位宽不同的异步FIFO与同步FIFO,本文使用纯Verilog实现了读写位宽不同的同步FIFO,并仿真验证了设计的正确性。
2023-10-24 16:32:05
1744
原创 Verilog功能模块——读写位宽不同的异步FIFO
前面的博文已经讲了异步FIFO和同步FIFO,但并没有实现FIFO的读写位宽转换功能,此功能是FIFO的主要功能之一,应用十分广泛,因此,在前面两个模块的基础上,本文使用纯Verilog实现了读写位宽不同的FIFO,并仿真验证了设计的正确性。
2023-10-24 11:18:21
4127
4
原创 Verilog功能模块——异步FIFO
Verilog自编实现异步FIFO,并实现了FWFT、Almost_full与Almost_empty功能
2023-10-12 11:24:39
1666
2
原创 Verilog功能模块——标准FIFO转FWFT FIFO
我使用FWFT FIFO作为读端口的接口,但是在使用安路的EG4系列FPGA时,开发工具TD(TangDanasty)只提供了标准FIFO,没有FWFT FIFO选项。为了解决这个问题,我设计了一个名为standardFIFO2FWFTFIFO.v的模块,可以将标准FIFO的读端口转换为FWFT FIFO的读端口,以确保模块逻辑正常工作。
2023-09-21 21:21:59
1967
原创 Cadence Orcad导出BOM的方法与整理BOM的脚本分享
在电路原理图和PCB设计完成后,我们需要导出BOM,用于器件采购和焊接。在使用Cadence Orcad时,不同的设计方式对应不同的导出BOM的操作。这里总结了普通的设计方式如何导出BOM,以及基于数据库CIS的设计方式如何导出BOM。考虑到普通设计方式BOM可能比较混乱,这里分享一段Python脚本用于整理BOM。
2023-08-01 23:25:18
23640
24
原创 电子元器件解析之电容(二)——电容分类与应用场景
本文总结了各种不同介质电容的特性,包括陶瓷电容、电解电容、薄膜电容等;同时对一些特殊场合的电容,如安规电容、穿心电容、超级电容等进行了简要说明,旨在帮助大家了解不同种类电容的特性和使用场景。
2023-06-10 15:40:13
9268
2
原创 电子元器件解析之电容(一)——定义与性能参数
电容是最基本的电子元器件之一,本文介绍了电容的定义,并总结了电容的各个性能参数,包括标称值、精度、额定电压、工作温度范围、温度系数、ESR、频率特性、纹波电流和寿命等,旨在帮助大家全面了解电容的特性。
2023-06-10 15:07:45
25777
8
原创 keil MDK5插件推荐-Clang-format代码格式化插件
本文将介绍一款名为 Clang-format 的代码格式化工具,并详细讲解如何在 Keil MDK5 中使用 Clang-format 插件进行代码格式化,同时展示 Clang-format 对代码的格式化效果。如果您是一名 C/C++ 程序员,本文对您的日常开发工作会有所帮助。
2023-05-18 22:35:08
4556
6
原创 keil MDK5插件推荐——Astyle代码格式化插件
代码格式化是提高代码质量和可读性的重要手段之一。然而,在Keil MDK5中并没有内置代码格式化工具,因此需要寻找第三方工具来解决这个问题。开源的代码格式化工具Astyle能以插件的形式集成到Keil中以满足我们对代码格式化的需求。本文将详细介绍如何下载、配置Astyle,并在Keil中设置Astyle,以及使用快捷键调用Astyle的方法。
2023-05-17 00:24:12
9854
1
原创 keil MDK5软件包介绍、下载、安装与分享
本文介绍了Keil MDK5软件包的分类、作用、下载、安装与更新。软件包下载可通过Keil自带的Pack Installer、进入Keil Pack下载网站手动下载、去芯片厂家官网下载三种方式。同时分享了一个小技巧,可以直接分享已安装好的软件包给别人。
2023-05-07 20:43:46
16965
2
原创 keil MDK软件配置介绍与仿VSCode主题分享
Keil MDK的默认配置是不方便使用的,包括编码方式,缩进,Tab键,自动保存,界面主题,自动补全等,都需要清楚怎么根据个人使用习惯进行配置。本文对Keil的各个配置选项进行了较详细的说明,并分享了三款仿VSCode的界面主题以改善在Keil中编码的糟糕体验。
2023-05-04 23:24:00
8339
33
原创 AD原理图符号与PCB封装转Cadence
在使用Cadence过程中,经常碰到需要把AD的原理图符号转为Orcad,相应的PCB封装转成Allegro的需求,对我来说主要有以下几种情况:1. 立创EDA上元器件封装只支持导出AD格式,想在Cadence中使用需要AD转Cadence2. 国内有些厂家只提供AD格式的元器件封装,这可能跟AD在国内比较流行有关3. 借鉴一些AD绘制的旧板上的元器件封装
2023-03-31 16:27:06
11156
6
原创 ARM简介及其发展历史
ARM名声很大,最近在学习STM32,也借机梳理一下关于ARM的各种概念和信息。本文内容主要包含:ARM一词的含义,ARM的发展历史,ARM cortex系列处理器简介与ARM在不同市场的应用情况。
2023-03-01 00:18:11
11405
原创 传输线理论基础01——相关定义、信号速率、分布参数与电报方程
本文主要介绍传输线的理论基础,内容包括传输线相关定义、信号速率、分布参数与电报方程的详细推导等。
2022-11-28 21:47:11
12846
4
原创 Allegro中如何进行尺寸标注
本文介绍了如何在Allegro中进行尺寸标注,包含各种标注样式的区别、如何设置参数、如何显示单位、如何导出带尺寸的PDF与DXF等信息。
2022-11-26 23:27:36
14274
7
原创 电子元器件解析01——电阻
电阻是最基本的电子元器件之一,了解电阻的各方面特性对正确选用合适的电阻很有帮助。本文总结了关于电阻的各个性能参数,包括电阻的标称值、精度、温度系数、耐压、封装与功率;总结了电阻的分类,有多种分类依据,包括按封装分类。按功能分类。按材料分类等;最后总结了贴片电阻的阻值标注方法与色环电阻表示法。
2022-11-16 21:20:25
3514
2
原创 Verilog功能模块——Uart收发
本文分享了一种通用的Uart收发模块,可实现Uart协议所支持的任意波特率,任意位宽数据(5~8),任意校验位(无校验、奇校验、偶校验、1校验、0校验),任意停止位(1、1.5、2)的数据传输。此模块需要搭配FIFO使用,以消除发送端和接收端波特率不一致导致的累计误差。此模块经过多次测试与实际使用验证,可实现连续10万+数据无间隔连续发送与接收无错误。
2022-11-09 17:28:44
3172
5
原创 FPGA时序约束02——不同时序路径的分析方法
本文介绍了FPGA不同时序路径的分析方法,包括触发器到触发器、触发器到输出端、输入端到触发器,还引入了最小/最大输出延迟,最小/最大输入延迟的概念,并给出了它们的计算公式,这些对理解FPGA时序都很有帮助。
2022-11-08 19:40:00
1958
原创 FPGA时序约束01——基本概念
本文介绍了FPGA时序约束的发展,总结了时序分析与约束相关的基本概念,包括建立时间,保持时间,时钟抖动,时钟偏斜等。
2022-11-04 22:39:46
2879
6
原创 滤波器基础06——滤波器设计软件
模拟滤波器的设计要考虑的因素很多,包括截止频率的选取、Q值确定、衰减速度、元器件选值与误差等等,如果都靠手算的话将非常复杂,特别是对于高阶滤波器,几乎是不可能完成的任务,而借助于成熟的滤波器设计软件,我们就可以快捷的设计出符合要求的滤波器,然后再仿真验证一下,基本就能够保证设计的正确性。本博文介绍了几款流行的滤波器设计软件。
2022-10-17 23:41:43
17332
8
原创 滤波器基础05——巴特沃斯、切比雪夫与贝塞尔滤波器
通常,滤波器模块或芯片通常会这样来描述自己,如5阶巴特沃斯低通滤波器,2阶切比雪夫滤波器,4阶贝塞尔滤波器,这些初看很奇怪的称呼其实是表达出了这些滤波器的一些关键特性。巴特沃斯、切比雪夫等可统称为函数型滤波器。本博文将介绍这些函数型滤波器的定义与滤波器特性的区分。
2022-10-17 20:40:30
26307
1
空空如也
编辑器中一个数字占两列的奇怪现象? 已解决!
2019-05-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人