自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐大康的博客

学习记录

  • 博客(156)
  • 问答 (1)
  • 收藏
  • 关注

原创 如何提高Vivado编译速度10--总结

本文为《如何提高Vivado编译速度》系列文章的最终篇。本文将会对本系列之前发布的所有文章进行总结,最终给出提高Vivado编译速度的建议。仅关注结果的同学其实只看这一篇文章就够了,如果对某个影响因素的结论有疑问,可再去相应的文章详细查看。本系列所有文章均详细说明了测试用的示例工程,确保各位同学可方便的在自己电脑上复现实验,同时也给出了测试截图,保证数据真实可信。

2025-09-17 22:30:25 1872 3

原创 如何提高Vivado编译速度09--模块化综合(OOC)能提高编译速度吗?

本文以 MB、ZYNQU、VCT 三类含 Block Design 的工程为测试对象,基于 Vivado 2024.2 版本,对比 OOC per IP 与 Global 两种模式在工程第一次编译情况下的耗时。

2025-09-17 22:29:38 1293

原创 如何提高Vivado编译速度08--不使用GUI以及Non-Project Mode能提升编译速度吗?

书接上文,本文测试Vivado的两种非GUI模式即Tcl-Project Mode和Tcl-Non-Project Mode能否提高编译速度。先说结论,测试结果表明:两种模式均无法提升编译速度,甚至更慢。

2025-09-17 22:28:36 1078

原创 如何提高Vivado编译速度07--不同的综合和实现策略是否影响编译速度?影响多大?

本文聚焦问题——不同综合与实现策略是否影响编译速度及影响程度。以Vivado 2024.2为环境,选取CPU、MB、ZYNQU、VCT工程测试,对比默认与编译时间优化策略的耗时,剖析策略作用,为Vivado编译提速提供参考。

2025-09-17 22:27:09 1308

原创 如何提高Vivado编译速度06--禁用报告和抑制信息能否加快编译速度?

书接上文,本文测试禁用报告和抑制信息能否加快编译速度?先说结论:1. 禁用报告能略微提升Vivado编译速度,但副作用很大(看不到资源利用率、时序等报告了),不推荐;2. 抑制信息不能提升Vivado编译速度。具体测试详见正文。

2025-09-17 22:26:14 940

原创 如何提高Vivado编译速度05--Ubuntu下的Vivado比Win11下的编译更快?

Vivado 编译速度是 FPGA 开发的关键瓶颈,此前已探讨线程、内存等提速方案,本次聚焦核心问题:Win11 与 Ubuntu(Linux)谁更能提升编译效率?尤其在虚拟机环境下。实验统一硬件(AMD 9950X、64G 内存)、Vivado 2024.2、32 线程,测试 4 类不同复杂度工程,用数据验证系统差异 —— 既看简单工程表现,更关注复杂工程是否因 Ubuntu 实现显著提速,为开发者选系统提供参考。

2025-09-17 22:23:39 1499

原创 如何提高Vivado编译速度04--哪个版本的Vivado编译最快

本文针对 Vivado 2018.3 ~ 2025.1 的 8 个主流版本,选取三类典型工程(纯 Verilog 逻辑的 CPU 工程、包含 MicroBlaze 的 MB 工程、基于 Zynq MPSoC 的 ZYNQU 工程),在统一硬件环境(固定 32 线程)和测试标准下,量化对比各版本的综合、实现及总编译时间,旨在找出 “编译速度最快” 的版本,并结合功能兼容性、工具链适配等需求,为不同场景下的 Vivado 版本选择提供客观依据。

2025-09-17 22:21:21 2047 1

原创 如何提高Vivado编译速度03--CPU和内存频率对编译速度的影响

本文基于前文所述硬件平台,研究CPU和内存的性能提升对Vivado编译速度的影响。因可测试的硬件平台有限,故将CPU是否超频、内存是否超频也作为不同的测试条件。测试结果表明,CPU和内存的性能提升均能加快Vivado编译速度,CPU/内存如果有代差提升就非常明显,另一方面,工程越复杂提升越明显。本文最后分享了测试工程,各位同学如有兴趣。可自行编译工程并记录时间,然后附上CPU+内存型号,将编译时间发送在评论区,以增加样本数量,给笔者和其他同学提供参考。

2025-09-17 22:06:09 1439

原创 如何提高Vivado编译速度02--最大线程与使用线程对编译速度的影响

现代电脑都支持多线程,目前个人电脑基本都是16线程起步,一个优秀的软件应该有调用多线程加快运行速度的能力,那Vivado满足这个优秀的条件吗?这里的job就是线程的意思,因为你会发现,jobs的最大值总是和你电脑CPU的最大线程数一致。无论最大线程怎么设置,在编译时,都会弹出一个对话框,让我们选择用本机的多少jobs来进行编译,如下图所示。Vivado最多能利用的线程数应该是16,可以发现使用线程32和16,两者编译时间几乎没区别。最大线程设置有用,设置成2确实拖慢了Vivado编译速度,所以,

2025-09-17 22:03:48 1009

原创 如何提高Vivado编译速度01--编译速度影响因素与对比实验设计

本系列文章将设置不同条件对Vivado编译速度进行详细测试,评估哪些手段能提高Vivado的编译速度。

2025-09-17 22:01:37 982

原创 Verilog功能模块--SPI主机和从机(06)--MAX31865 Demo SPI驱动实测

本文介绍了基于Verilog的SPI主机模块驱动MAX31865温度传感器的实测过程。MAX31865是一款专为铂电阻温度检测器(RTD)设计的电阻-数字转换器,具有15位ADC分辨率、±45V输入保护等特性。文章详细分析了MAX31865的SPI时序特性(CPOL=1,CPHA=1)和驱动设计思路,包括配置寄存器读写、故障阈值设置等关键功能。通过模块框图展示了硬件接口设计,并开源了全部Verilog源码。实测证明该SPI主机模块能够稳定工作,为后续RTD温度测量应用奠定了基础。

2025-08-22 16:47:07 1255

原创 Verilog功能模块--SPI主机和从机(05)--ADX112 SPI驱动实测

本文介绍了基于FPGA的SPI主机模块驱动ADX112 ADC芯片的实测验证。文章首先概述了ADX112芯片特性(16位精度、SPI接口、内置基准源等),随后详细分析了其SPI时序要求(最大4MHz时钟、CPOL=0/CPHA=1模式等)。驱动设计采用分层架构,通过通用SPI主机模块实现底层通信,上层逻辑完成配置寄存器的写入和转换结果的读取。实测结果表明该SPI主机模块在硬件环境中工作正常,并开源了全部Verilog代码。该方案为FPGA与SPI从机设备的实际应用提供了可靠参考。

2025-08-22 16:44:30 926

原创 Verilog功能模块--SPI主机和从机(04)--SPI主机从机回环仿真

本文基于Verilog设计的SPI主从机模块,通过回环仿真测试验证其功能正确性。实验使用Vivado工具,在不同时钟频率(100/120MHz)下设置多种SPI模式(0-3)、数据位宽(8/10/12/16)和时序参数进行测试。通过分析波形图,验证了SCLK频率、通信模式、数据位宽等参数符合设定,且主从机数据收发一致。仿真结果表明,SPI主从机模块在多种配置下均能正常工作,满足设计要求。测试代码展示了回环测试的实现方法,包括主从机数据交互和时序控制逻辑。

2025-08-22 16:35:34 1254

原创 Verilog功能模块--SPI主机和从机(03)--SPI从机设计思路与代码解析

本文介绍了一个基于Verilog的4线SPI从机模块设计,采用同步通信方式工作,直接使用主机的sclk作为时钟源。文章详细阐述了模块的设计思路和实现方法,包括与常见高频时钟模拟方案的区别,并提供了完整的使用说明和源代码。这是继SPI主机模块后的又一功能完善的设计方案。

2025-08-22 16:27:37 1290

原创 Verilog功能模块--SPI主机和从机(02)--SPI主机设计思路与代码解析

本文介绍了使用Verilog设计4线SPI主机模块的实现方法。在阐述SPI四种工作模式及时序特性后,文章详细讲解了SPI主机的设计思路,包括模块功能说明、Verilog编码实现要点以及使用注意事项。通过纯Verilog代码实现了完整的SPI主机功能,并提供了源代码供读者参考。该设计适用于嵌入式系统中需要SPI通信的场景,帮助开发者快速构建可靠的SPI主机模块。

2025-08-13 09:34:15 675

原创 Verilog功能模块--SPI主机和从机(01)--SPI简介

SPI(串行外设接口)是由Motorola开发的全双工同步串行通信协议,自1980年代问世以来经历了显著发展。从最初的四线制设计(1-5MHz)演进到现代Octal-SPI(>400MB/s),SPI通过增加数据线(Dual/Quad/Octal)和引入DDR模式大幅提升带宽。作为事实标准,SPI凭借简单高效、灵活配置等优势,广泛应用于嵌入式存储、传感器、汽车电子及AI设备等领域。文章详细梳理了SPI的技术演进历程,分析其核心特性与行业应用场景,为Verilog实现SPI主从机模块提供理论基础。

2025-08-11 09:10:26 1215

原创 如何在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 4806

原创 Verilog 功能模块--RAM 和 ROM(03)--自编 RAM 与 Vivado RAM IP 功能对比实测

摘要:本文对自编RAM与Vivado RAM IP的功能特性进行了对比测试,重点分析了两者在初始化、使能控制、输出寄存器和操作模式等方面的差异。测试主要针对TDPRAM实现,在300MHz高频条件下验证了模块性能,并采用冲突抑制机制避免读写冲突(包括写-写冲突和读-写冲突)对测试结果的影响。文章通过随机信号测试方法,对比了两种RAM实现的关键功能表现,为FPGA存储器设计提供了实践参考。

2025-06-07 12:11:10 907

原创 Verilog功能模块--RAM和ROM(02)--同步写-写冲突与读-写冲突实测

本文主要探讨Xilinx FPGA中RAM IP模块的冲突行为测试方法。文章通过上板实测方式,重点分析了TDPRAM在同步时钟下的写-写冲突和读-写冲突行为。实验设计思路包括高频性能验证、使能信号测试、三种操作模式验证以及初始化功能测试等内容。测试方案采用ILA抓取信号的方式,在顶层文件中专门设计了写冲突检测信号,如write_collision_clka_locked和addr_locked等寄存器,用于观测冲突发生时的具体行为。作者指出,由于仿真不能完全反映真实硬件行为,因此需要通过实测来确保自编RAM

2025-06-07 12:09:54 998

原创 Verilog功能模块--RAM和ROM(01)--功能说明与关键代码解析

FPGA内存模块自研实现方案解析 摘要:本文介绍了FPGA开发中自研RAM/ROM模块的必要性与实现方案。与商业IP核相比,自研模块具有更好的代码移植性,适用于基础功能场景。文章详细阐述了模块支持的三种RAM类型(单端口、简单双端口、真双端口)和两种ROM类型,实现了写优先/读优先/无变化三种操作模式,并兼容COE文件初始化功能。模块设计参考了Vivado BRAM IP的接口标准,但暂未实现字节写和位宽转换等高级功能。通过参数化设计,该方案能满足多数基础应用需求,同时保持代码的跨平台兼容性。 (148字)

2025-06-07 12:08:25 1310

原创 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 1202

原创 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 1737

原创 Verilog编程技巧01——如何编写三段式状态机

规范更注重编码的格式,像变量命名、缩进、注释风格等,而编程技巧则更偏重更直观易读、更便于维护、综合效果更好的Verilog/SV代码写法,像:如何编写状态机、如何进行参数化设计、如何进行流水线设计等。四段式的综合效果在非常复杂场景可能略好于三段式,但绝大多数场景下,三段式的综合效果同样优异,两者区别不大,所以两者都标注为三颗星。最后,本文分享了Verilog与SV的三段式状态机模板。中的内容,四段式状态机在复杂逻辑的综合中会有一定优势,但三段式代码更加简洁,更符合直观逻辑,所以在FPGA开发中,作者推荐。

2025-06-06 23:31:30 796

原创 Verilog仿真模块--真随机数生成器

因为波形配置文件(如 genRandomNum_behav.wcfg),文件内部是保存了参数值 SEED 值,所以再次运行 tcl,SEED 值改变,原本的波形配置文件会因为 SEED 值改变而失效(会报警告),所以,在重启仿真之前,需要读取 wcfg 文件,替换 SEED 值为新值,这部分代码对应以下 tcl 文件的。除此之外,在实际应用时,还考虑到,保存波形配置文件与恢复波形的问题。要产生真随机数,其实就是要改变每次仿真时,初始用到的种子,通常的做法是使用系统时间作为种子,有的方案里使用的是。

2025-04-30 19:59:37 2603 3

原创 CRC算法原理与实现01——概述

本系列文章对CRC算法进行了详解,认真读一遍,你就能对实现CRC自由

2025-02-15 11:00:45 1185

原创 Win7虚拟机分享(已安装VMware Tools)

Win7虚拟机分享(已安装VMware Tools)

2024-08-03 11:03:44 1978 4

原创 Vmware中安装Win7并利用360安装Vmware tools

之前写过Vmware安装Win7并安装Vmware tools的博客,但近期可能是因为VMware Workstation Pro升级了,原本的安装Vmware tools的方法失效了,网上的很多解决办法既复杂又没用,让人失望。这里通过安装360的办法成功解决了Vmware tools安装失败的问题,简单有效,故写此博客分享一下。

2024-07-13 00:14:34 1555

原创 Cadence 16.6与17.4个人学习版推荐

Cadence 16.6与17.4个人学习版推荐

2024-06-23 14:57:14 19228 3

原创 LTspice新版配色方案分享

LTspice新版配色方案分享

2024-06-13 00:03:10 2134

原创 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 4808 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 5540 4

原创 Xilinx IP解析之Multiplier v12.0

乘法器是Xilinx的数学运算IP核中最基础的IP核之一,熟练掌握它是使用FPGA进行数字信号处理的基础。本文详细介绍了其应用与各种可能产生疑问的点。

2024-04-30 15:37:55 4816 3

原创 Verilog功能模块——读写位宽不同的同步FIFO

前面的博文已经讲了异步FIFO、读写位宽不同的异步FIFO与同步FIFO,本文使用纯Verilog实现了读写位宽不同的同步FIFO,并仿真验证了设计的正确性。

2023-10-24 16:32:05 2021

原创 Verilog功能模块——读写位宽不同的异步FIFO

前面的博文已经讲了异步FIFO和同步FIFO,但并没有实现FIFO的读写位宽转换功能,此功能是FIFO的主要功能之一,应用十分广泛,因此,在前面两个模块的基础上,本文使用纯Verilog实现了读写位宽不同的FIFO,并仿真验证了设计的正确性。

2023-10-24 11:18:21 4986 4

原创 Verilog功能模块——同步FIFO

实现了纯Verilog的同步FIFO,包含FWFT功能与almost信号功能

2023-10-12 22:23:38 1455 1

原创 Verilog功能模块——异步FIFO

Verilog自编实现异步FIFO,并实现了FWFT、Almost_full与Almost_empty功能

2023-10-12 11:24:39 1926 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 2495 2

原创 Cadence Orcad导出BOM的方法与整理BOM的脚本分享

在电路原理图和PCB设计完成后,我们需要导出BOM,用于器件采购和焊接。在使用Cadence Orcad时,不同的设计方式对应不同的导出BOM的操作。这里总结了普通的设计方式如何导出BOM,以及基于数据库CIS的设计方式如何导出BOM。考虑到普通设计方式BOM可能比较混乱,这里分享一段Python脚本用于整理BOM。

2023-08-01 23:25:18 28482 24

原创 电子元器件解析之电容(二)——电容分类与应用场景

本文总结了各种不同介质电容的特性,包括陶瓷电容、电解电容、薄膜电容等;同时对一些特殊场合的电容,如安规电容、穿心电容、超级电容等进行了简要说明,旨在帮助大家了解不同种类电容的特性和使用场景。

2023-06-10 15:40:13 11979 2

原创 电子元器件解析之电容(一)——定义与性能参数

电容是最基本的电子元器件之一,本文介绍了电容的定义,并总结了电容的各个性能参数,包括标称值、精度、额定电压、工作温度范围、温度系数、ESR、频率特性、纹波电流和寿命等,旨在帮助大家全面了解电容的特性。

2023-06-10 15:07:45 29999 8

空空如也

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

TA关注的人

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