内容概要:本文详细介绍了如何利用Xilinx Artix-7系列FPGA中的Carry4进位链实现71.4ps分辨率的时间数字转换器(TDC),并应用于飞行时间(TOF)测距。文章首先解释了为何选用Carry4进位链进行高精度时间测量,随后展示了具体的Verilog代码实现,包括进位链的搭建、采样寄存器的设计以及跳变点检测。接着讨论了布局布线对延迟的影响及其解决方案,如锁定Carry4的位置以减少延迟波动。此外,还探讨了TOF测距的具体应用场景,包括距离计算公式的推导和实际测试结果。最后提到了一些调试过程中遇到的问题及解决办法。 适合人群:从事FPGA开发、嵌入式系统设计、时间测量技术研究的专业人士和技术爱好者。 使用场景及目标:适用于需要高精度时间测量的应用场合,如激光雷达(LiDAR)、超声波测距、工业自动化等领域。目标是提供一种低成本、低功耗且高精度的时间测量方案。 其他说明:文中提供的代码片段可以直接用于实际项目开发,但需要注意不同型号FPGA之间的差异以及环境温度等因素对测量精度的影响。
2025-06-26 17:18:33 356KB
1
(2)语言设计的捷径 我偶尔到 HDL 语言论坛去看看,看到很多人对语言的学习感到困难,其实语言的学习并不困难, 其捷径是什么,答案:先用原理图设计,尤其是一些基本的逻辑功能单元。分频计数,开关,串并、 并串等等。从某种角度来说语言的本质是原理图设计,如果您脑袋里想的原理图,手指在键盘上敲 出来的是语言,你可以不用担心代码可综合性。其实我学习语言是今两年的事情,我只看两三天 Verilog 语言语法,然后看看基本逻辑单元的表示方法和例子,就可以用 Verilog 进行设计了,当然会 在设计过程中碰到一些语法表示的困难,翻翻书就可以了。 当然,不是语言不重要,功能的实现也需要语言准确的表达,例如 case 语句如何避免 LATCH。 (3)有关仿真 我曾经有一个做 FPGA 的同事,每当设计完一个功能模块,就看到用 MODELSIM 仿真好几天, 一个设计下来,仿真耗用他很多时间,为什么会这样,原因有两个:基本原因是:功能架构或者说思 路没有想好,在那里凑,第二个原因是因为写代码的时候他脑袋里没有形成时序图。如果这两方面 都想好,仿真的工作量会大大减少的。 在设计和仿真过程时,多想一想被处理的与其他信号的时序关系,这对你的设计能力大有益处。 我刚开始 FPGA 设计时,一个简单的计数器都要仿真半天,别说一个功能模块了,那个阶段设 计是靠仿真才能设计出来的(汗,数字电路没有学好)。但随着设计的增多,水平的提高,仿真用的 时间越来越少了,为什么?因为当你的脑袋里有时序图时,仿真回归了它真正的本意,只不过验证 你(脑袋里的时序)设计是否正确的一个工具。
2025-06-25 21:25:35 300KB FPGA
1
基于FPGA的高精度五级CIC滤波器设计与Verilog实现,基于FPGA的CIC滤波器设计与实现:五级积分梳状滤波器Verilog代码优化与位宽处理策略,基于FPGA的积分梳状CIC滤波器verilog设计 1.系统概述 这里设计的五级CIC滤波器。 那么其基本结构如上图所示,在降采样的左右都有五个延迟单元。 但是在CIC滤波的时候,会导致输出的位宽大大增加,但是如果单独对中间的处理信号进行截位,这会导致处理精度不够,从而影响整个系统的性能,所以,这里我们首先将输入的信号进行扩展。 由于我们输入的中频信号通过ADC是位宽为14,在下变频之后,通过截位处理,其输出的数据仍为14位,所以,我们将CIC滤波的输入为14位,但是考虑到处理中间的益处情况以及保证处理精度的需要,我们首先将输入位宽扩展为40位,从而保证了处理精度以及溢出的情况。 这里首先说明一下为什么使用的级别是5级。 从硬件资源角度考虑,CIC滤波器的级数太高,会导致最终输出的数据位宽很大,通过简单的验证,当CIC的级数大于5的时候,输出的位宽>50。 这显然会导致硬件资源的大量占用,如果CIC级数太小,比如1,2
2025-06-25 20:33:05 240KB csrf
1
在嵌入式系统开发中,红外遥控驱动层代码的实现是一个关键部分,特别是在GD32F303这样的单片机应用中。GD32F303是基于ARM Cortex-M3内核的高性能微控制器,广泛应用于各种工业和消费电子设备。本章节将深入探讨如何在GD32F303上实现红外遥控驱动层,以实现对家电或其他红外设备的有效控制。 理解红外遥控的工作原理至关重要。红外遥控系统通常由一个发射器(遥控器)和一个接收器(如电视、空调等设备)组成。发射器编码并发送特定的红外信号,接收器则解码这些信号以执行相应的操作。在GD32F303中,我们主要关注接收器部分的实现。 在硬件层面,红外接收模块通常包含一个红外光敏二极管,它能检测到遥控器发出的红外脉冲信号。这些信号需要通过一个适当的滤波和放大电路,然后送入GD32F303的输入引脚。在代码实现时,我们需要配置单片机的GPIO端口来接收这些信号,并设置中断处理程序来捕获脉冲序列。 在软件层面,红外遥控驱动层通常包括以下几个关键部分: 1. GPIO初始化:配置GPIO引脚为中断模式,设置合适的上下拉电阻和中断触发条件,确保能准确捕获红外信号的上升沿和下降沿。 2. 中断服务程序:当接收到红外信号的脉冲时,中断服务程序会被调用。在这个函数中,我们需要记录脉冲的宽度,因为不同的脉冲宽度对应着不同的数据位。常见的编码格式有NEC、RC5等,它们规定了数据位的高电平和低电平持续时间。 3. 解码算法:根据记录的脉冲宽度,使用对应的解码算法(如NEC或RC5解码)来解析出实际的指令码。这个过程可能涉及位同步、数据校验和等步骤。 4. 事件处理:解码后的指令码会被传递给上层应用,例如用户界面或特定的功能模块,执行相应的操作。 5. 错误处理:在接收过程中可能会遇到信号干扰或错误解码,因此需要有合理的错误检测和处理机制。 在"7.5 红外遥控驱动层代码实现"中,你将找到具体的源码示例,展示如何在GD32F303上实现这些功能。通过分析和理解这些代码,你可以学习到如何与红外接收模块交互,以及如何设计和实现一个完整的红外遥控驱动层。这将有助于你开发自己的嵌入式系统,尤其是在需要红外控制功能的应用中。 红外遥控驱动层的实现是GD32F303单片机应用中的一个重要组成部分。通过掌握相关知识和实践,开发者可以构建出高效、可靠的红外遥控解决方案,使得产品更加智能化和便捷。对于深入理解ARM架构下的嵌入式编程,以及增强硬件驱动开发能力,都是非常有益的。
2025-06-25 16:12:20 2.69MB GD32 ARM 源码
1
win10系统下利用QEMU安装ARM架构的银河麒麟桌面操作系统V10 双击qemu-w64-setup-20210505.exe,指定安装目录,例:D:\qemu 安装好后,利用如下步骤qemu创建一个虚拟硬盘文件: 在D:\qemu文件夹下,打开cmd命令行 在命令行中键入: qemu-img create -f qcow2 D:\Kylin\kylindisk.qcow2 40G (最好选择40G,20G不够分配磁盘) 此时,会在Kylin文件夹下产生一个kylindisk.qcow2文件。 2.安装虚拟机 在D:\qemu文件夹下,打开cmd命令行 在命令行中键入: qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\Kylin\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\Kylin\ky
2025-06-25 15:15:24 190.61MB qume 国产系统 虚拟机
1
OFDM水声通信系统定时同步的FPGA实现涉及到了正交频分复用(OFDM)技术,线性调频(LFM)信号以及现场可编程门阵列(FPGA)的应用。 OFDM是一种多载波调制技术,可以将宽带信道分解成多个窄带子信道。OFDM技术之所以能够广泛应用,是因为它在抗多径干扰、频谱利用率高以及能够支持高速数据传输方面具有优势。OFDM通过在频域上将数据分割成子载波进行传输,每个子载波上的调制信号占据一定的频带宽度,并且这些子载波彼此正交,从而保证在频域上的充分利用,而不会相互干扰。由于OFDM的这些特点,它成为水声通信领域的重要技术。 水声通信系统是利用声波在水下的传播进行信息传输的技术。与电磁波在空气中的传播不同,声波在水下传输具有衰减慢、传播距离远的特点,但同时受到水下多径效应和多普勒频移等复杂因素的影响。为了提高水声通信的可靠性,OFDM技术因其良好的抗干扰性能而被选为调制方式。 定时同步是OFDM系统中非常关键的技术之一。由于OFDM符号在时间上相互重叠,需要精确的定时同步来确保解调时各个OFDM符号能够正确分离,否则会发生符号间的干扰,严重影响通信质量。为了实现OFDM系统的定时同步,常用的方法包括使用循环前缀(CP)来抵御多径效应,以及在系统中引入同步信号来辅助同步过程。 LFM信号因其良好的时频聚集特性,被认为适合用作OFDM水声通信系统的定时同步信号。LFM信号也称为线性调频连续波(LFM-CW)信号,其频率随时间线性变化。LFM信号具有尖锐的自相关特性,能在时域中获得压缩的窄脉冲,这使得其在接收端容易被检测到并用来进行定时同步。 为了产生LFM信号,文中提到了直接数字合成(DDS)技术,这是一种基于数字技术生成模拟信号的方法。DDS技术通常包括直接数字波形合成(DDWS)和直接数字频率合成(DDFS)。DDWS采用预先存储的理想采样的数字波形,通过查表得到所需模拟信号,具有良好的脉冲压缩特性。这种方法适用于带宽要求不高的水声通信系统。 在接收端,LFM信号的检测是通过滑动相关检测法实现的,该方法不需要复杂的FFT和IFFT变换处理,节省了FPGA的资源,降低了解算复杂度。滑动相关检测利用LFM信号尖锐的自相关特性,通过滑动接收信号与本地参考信号进行相关运算,当相关值最大时,可以确定相关峰的位置,从而实现信号的定时同步。 FPGA技术在OFDM水声通信系统中的应用,体现在它能够提供高性能并行处理能力,适合完成IFFT、FFT等复杂算法的实时处理。由于水下通信环境的复杂性,FPGA能提供的并行计算能力对于信号的快速处理、实时同步至关重要。 总结来说,OFDM水声通信系统定时同步的FPGA实现在技术上涉及到了OFDM技术的原理和优势、LFM信号的特性以及其在同步中的应用,以及FPGA技术在信号处理中的优势。该系统的实现需要解决的关键技术包括OFDM系统对同步误差的敏感性、LFM信号的产生与检测技术、以及FPGA如何高效实现定时同步算法。通过对这些关键技术的掌握和优化,可以有效提高水声通信系统的性能,保障水下通信的稳定性和可靠性。
2025-06-25 13:49:08 189KB GPS|GPRS
1
多轴联动运动控制卡在运动控制领域有着广泛的应用。该运动控制卡是一种基于SoC FPGA芯片, 采用以太网通信的运动控制卡。该卡采用单芯片设计方案,结构简单、通用性好、可靠性高,可以控制4个步进电机系统或交流伺服电机系统实现高速、高精度运动,具备自动加减速控制功能,使用成本较传统运动控制卡降低30%以上。通过在木工雕刻机和点胶机设备上的应用, 验证了该运动控制卡的功能和性能。 标题中的“基于SmartFusion2 SoC FPGA芯片的运动控制卡设计”指的是一项创新的运动控制技术,它利用了Microsemi公司的SmartFusion2系统级芯片(SoC)现场可编程门阵列(FPGA)来构建一个高效、低成本且高可靠性的运动控制卡。SmartFusion2 SoC FPGA结合了FPGA的灵活性与微控制器单元(MCU)的处理能力,内置了ARM Cortex-M3处理器核心,使得该设计能够集成复杂的硬件加速器和实时控制功能。 描述中提到,这种运动控制卡采用了以太网通信,替代了传统的PC+NC架构中PC104或PCI接口,简化了设计并降低了成本。它能控制4个步进电机或交流伺服电机,提供高速、高精度的运动,并具有自动加减速控制功能。这种设计在木工雕刻机和点胶机等设备上得到了验证,证明其功能和性能优越,成本比传统运动控制卡降低了30%以上。 文章的部分内容揭示了系统组成结构,运动控制卡主要由PC主机和运动控制卡两部分构成,两者之间通过以太网进行通信。运动控制卡内部包含了PWM脉冲输出、脉冲计数、输入输出逻辑控制、模拟量输出控制以及串口通信等多种功能。而PC主机则负责人机交互界面和编程语言解析等任务。系统结构的简化使得安装和维护更加便捷,降低了现场使用的复杂度。 SmartFusion2 SoC FPGA芯片的优势在于,它的单芯片解决方案降低了硬件的复杂性,提高了系统的可靠性。Cortex-M3内核用于执行控制逻辑和高级计算任务,FPGA部分则可以定制化实现特定的信号处理和实时控制任务。此外,使用以太网通信不仅提供了高速的数据传输能力,还简化了布线,使得控制卡可以放置在用户设备的电控柜中,减少了电缆的混乱。 总结来说,这篇文章介绍了一种基于SmartFusion2 SoC FPGA的运动控制卡设计,该设计实现了高性能、低成本和高可靠性,尤其适合于木工雕刻机、点胶机等需要简易操作和低成本的工业应用。通过集成Cortex-M3处理器和FPGA,实现了运动控制的智能化和灵活性,同时以太网通信优化了系统架构,降低了系统成本和维护难度。这种创新的运动控制方案为工业自动化领域提供了新的选择,推动了运动控制技术的发展。
2025-06-24 16:23:04 1.64MB FPGA; Cortex-M3
1
内容概要:本文详细介绍了基于AD9173的Verilog源代码驱动实现方案。该方案针对500MHz参考时钟,采用内部PLL方式,实现12G的DA时钟和12G的DA更新率。它支持DA内部上变频及24倍插值技术,JESD204线速率为10Gbps的4x lane双链路模式。代码包含详细的注释,涵盖JESD204B配置、SPI配置、DDS基带数据生成及数据拼接等功能,稍加修改即可应用于实际工程项目。 适合人群:具备FPGA开发经验的研发人员和技术专家。 使用场景及目标:适用于需要高效处理大带宽信号转换的应用场景,如通信设备、雷达系统、测试测量仪器等。目标是帮助工程师快速掌握AD9173的Verilog驱动开发,缩短项目周期并提高系统性能。 其他说明:该方案不仅提供了完整的Verilog源代码,还包括了详细的调试信息和修改指南,有助于开发者进行二次开发和优化。
2025-06-24 15:33:46 685KB FPGA PLL DAC Verilog
1
ARM版本的 rabbitmq 镜像资源 版本 3.8.9 使用拷贝到主机 执行:docker load < rabbitmq_arm3.8.9.tar 生成docker镜像
2025-06-24 07:51:40 182.58MB docker rabbitmq rabbitmq arm
1
arm架构clickhouse镜像文件
2025-06-23 22:06:58 677.27MB arm
1