- 博客(779)
- 收藏
- 关注
原创 符号位拓展不影响数值的大小吗
当你将一个有符号的 N 位数扩展成M 位(M > N)复制最高位(符号位)若干次到左边\text{复制最高位(符号位)若干次到左边}复制最高位(符号位)若干次到左边这是因为有符号数在 FPGA 和 CPU 中使用的是补码表示。**只要你使用的是“正确的符号扩展方式”(即在高位复制符号位),数值大小在数学上是完全不变的。**这也是补码表示的最大优点之一 ——支持任意位宽扩展而不改变数值含义。
2025-07-09 17:54:21
318
原创 在verilog中声明有符号数和无符号数,在FPGA看来,计算方式不一样吗?声明有什么意义
Verilog 中的signed声明是为了告诉工具链:请用“补码有符号规则”去理解这个变量的意义,从而生成正确的硬件电路。虽然布线看上去一样,但数学规则完全不同。比较点signed / unsigned 差异存储比特位✅ 完全一样加法/乘法❗不同的符号扩展、进位规则(补码 vs 无符号)右移(>>>)❗左边补 1 还是补 0 不一样(算术右移 vs 逻辑右移)比较运算❗signed 比较 -1 < 0 正确,unsigned 会看作 255 > 0综合结果。
2025-07-09 17:45:59
922
原创 C语言中的浮点数为什么可以直接十进制表示
C 语言允许你用十进制写浮点数,是为了让程序更易读和书写。编译器会在编译时将这些十进制数值精确地转化为最接近的 IEEE 754 二进制浮点数进行存储和计算。
2025-07-09 17:04:45
465
原创 为什么浮点数要有无穷大的表示
无穷大的设计是 IEEE 754 浮点标准的一部分,它的目的是为数值计算提供一种数学上有意义的异常处理机制。浮点数要有无穷大的表示,是为了优雅、安全地处理溢出和除以零等异常情况,使程序不会崩溃,后续计算仍可进行,同时保持数学上的可解释性。
2025-07-09 16:56:15
298
原创 动态重配置 DRP 接口,有什么使用场景
使用场景DRP 作用优势动态调整时钟频率修改倍频/分频系数不需重新配置比特流多协议通信切换 GT 物理层参数实现多速率、多模式实时自适应控制调节 IDELAY tap 值、相位适应信号变化,增强鲁棒性智能传感控制 XADC 多通道采样减少资源占用,提高灵活性。
2025-07-05 10:51:32
277
原创 .CLKINSTOPPED, .CLKFBSTOPPED 提供时钟停顿检测。
和是MMCME2_ADV模块中用于的两个状态输出信号,它们非常实用,尤其在做动态时钟管理或者调试时钟异常时。
2025-07-05 10:37:29
163
原创 Receiver Timing Considerations(接收时序考量)
要点内容🎯 分析目标确保采样点落在数据眼中心,避免误码🛠 工具支持提供 Excel 工具,辅助 RSKM 计算❗ 关键变量PLL 抖动、延迟精度、延迟抖动、PCB 偏差等💡 最佳实践建议使用 per-bit deskew 以最大限度抵消不确定性建议使用 300 MHz 可提升精度,但最低速率需 >641 Mbps。
2025-07-05 08:24:56
222
原创 SDR Data Reception with Per-Bit Deskew(逐位去偏斜的SDR数据接收)
标准的 SDR 接收方案要求 通道内所有数据线对时钟对齐良好,否则容易导致采样错误。而逐位 deskew 的方案可以在运行时自动调整每一位的采样延迟,从而 对抗 PCB 走线、IO delay、发送端偏差 等带来的时序失配。每个数据引脚使用:👉 通常使用 LVDS 输入标准(差分输入),FPGA 每对管脚两个 IO,因此可以“白嫖”使用双套 ISERDES。👉 这样就得到同一数据位 两个采样点(相差 ½ UI)由于不能实时判断采样点位置,实际对比的是:若 delay 环绕(比如 tap 加到最大或最小)
2025-07-05 07:47:46
815
原创 DDR数据接收 + 每比特去偏斜(Per-Bit Deskew)
项目说明工作模式DDR(双沿采样)ISERDES 配置Master 和 Slave 都设为 1:4 模式延迟调节使用两个 IODELAYE2,延迟相差 0.5 UI数据采样两个 ISERDES 同时采样,结果比较判断采样点早晚对齐方式实时自动 deskew 每一位,不同通道也可以独立处理输出方式用 gearbox 将 4-bit DDR 数据整合为 pixel clock 域的 7-bit 并行数据。
2025-07-05 07:37:10
290
原创 Xilinx 7 系列 FPGA 中使用 IODELAYE2 做接收延迟校准(尤其是 per-bit deskew)时的最小数据速率限制
这段内容解释了。
2025-07-05 07:33:48
464
原创 《DDR Data Reception without Per-Bit Deskew(无逐位去偏斜的 DDR 数据接收)》
该方案是在不进行逐位 deskew 的前提下,接收1:7 DDR 格式的串行数据,适用于结构简单、线路对齐良好的系统。
2025-07-05 06:26:50
249
原创 LVDS无逐位去偏斜的SDR数据接收
该方法用于1:7 SDR 接收场景,通过ISERDES 原语配置为 1:7 模式,不采用逐位延迟调节(deskew),适用于所有数据线和时钟线在 PCB 上布线良好且对齐误差较小的情况。这是 Xilinx 提供的一种简化型 1:7 SDR 数据接收方案,依赖 ISERDES + 状态机对时钟延迟进行一次性粗调,不支持每一条数据线独立校准,适合通道间时序一致性较好的系统场景。
2025-07-05 06:23:49
386
原创 MMCM与PLL驱动范围的区别
Xilinx 7 系列 FPGA 在使用 MMCM/PLL 管理时钟时需考虑其驱动能力和对应的缓冲器网络。如果设计中涉及高速 LVDS、SERDES、摄像头、视频接口,推荐使用 MMCM 搭配 BUFIO/BUFR;如果是简单的数据采样或标准 SDR 接收,就足够;高速 DDR 接收通常要使用等组合,并严格遵循最大频率约束。
2025-07-05 06:21:03
255
原创 Xilinx 7系列 FPGA 中进行 1:7 数据反序列化(Deserialization)时的基础数据接收架构
在 Xilinx 7 系列 FPGA 中做 1:7 SDR 或 DDR 数据接收时,推荐根据是否跨 bank、工作模式(SDR/DDR)合理选择 BUFG、BUFIO、BUFR 或 BUFH 构成时钟网络,以实现高效、准确的数据采样与反序列化。
2025-07-05 06:06:41
205
原创 LVDS无逐位去偏斜的 SDR 数据接收
这是针对布线良好的视频类接口(如 7:1 LVDS)设计的一种简单反序列化方案,只对时钟做一次 delay 训练,全通道统一对齐,不对每根线单独调 delay,省资源,配置简单。
2025-07-05 06:01:40
314
原创 ISERDESE2 参数配置
如果你做的是DDR 接收、LVDS 接收器.DATA_WIDTH(4), // 若你要 4 bit 输出.IOBDELAY("NONE") // 通常前级接 IDELAYE2若,需要额外实例化一个 ISERDESE2 从模块,设为"SLAVE"并级联使用。
2025-07-04 18:24:15
346
原创 ISERDESE2 为什么分为Master 、 Slave?
属性MASTERSLAVE数据接收接收串行输入不接收是否可单独使用✅ 是❌ 否最大位宽8bit 并行用于扩展至 10 或 14 位接口。
2025-07-04 17:54:59
311
原创 ISERDESE2 原语中端口 .DYNCLKSEL 和 .DYNCLKDIVSEL的作用
端口名控制对象值为 1 的效果应用场景DYNCLKSELCLKCLKB翻转输入时钟极性DDR采样错位、调边沿CLKDIV翻转低速并行时钟极性Q口输出对齐、调采样时序如果你遇到 ISERDES Q 口输出数据不稳定、错位、不对齐的情况,可以尝试设为TRUE并用逻辑扫一遍DYNCLKSEL和的组合,观察效果,类似于时钟边沿扫相位的过程。极性反转(polarity inversion)在本质上就相当于将时钟相位反转了 180 度。
2025-07-04 17:30:38
889
原创 ISERDES2的.D、.DDLY 和 .OFB数据接口的作用与区别
Xilinx 的ISERDESE2原语将.D.DDLY和.OFB,是为了。这三路输入,而是根据你的设计需要,选择其中之一作为有效输入通路。
2025-07-04 17:25:11
342
原创 `IDELAYE2` 模块最小延迟的计算
模块用于精确控制输入信号的延迟。最小延迟是由参考时钟频率和。决定的,每个 tap 表示一个固定的延迟单位。
2025-07-04 09:56:49
536
原创 IDELAY2:HIGH_PERFORMANCE_MODE:选择是否启用高性能模式。什么时候启用
是模块中的一个配置选项,用于选择是否启用高性能模式。该参数的作用是调节 IDELAYE2模块的性能与功耗之间的权衡。"FALSE""TRUE"启用。
2025-07-04 09:28:58
473
原创 .REFCLK_FREQUENCY(200.0),
REFCLK_FREQUENCY(200.0) // 单位MHz,支持200MHz或300MHz附近物理意义:指定IDELAYCTRL模块使用的参考时钟频率单位:MHz(必须带小数点)有效范围190.0-210.0 MHz(通常使用200MHz)290.0-310.0 MHz(通常使用300MHz)必须与IDELAYCTRL的实际参考时钟频率严格匹配只能在190-210MHz或290-310MHz范围内选择直接影响延迟精度和系统时序。
2025-07-04 09:27:59
684
原创 IDELAYE2
使用一个 5 位宽度的计数器来精确调整延迟。你可以选择固定的延迟值或者通过增量控制信号来动态调整延迟。此模块支持流水线操作,有助于提高延迟精度,并可通过时钟信号进行同步。它可以精确地调节输入信号的延迟,以便与时钟信号对齐,常用于高速数据传输接口中的时序优化。原语的功能是为输入信号(如 LVDS 信号)添加延迟,并提供相应的配置选项。:输入时钟频率,单位为 MHz,决定了延迟控制模块的工作频率。模块的实例化,下面我将逐项详细解释每个参数和信号。:设置输入信号的延迟值。:定义输入信号的类型。
2025-07-04 09:18:31
750
原创 xilinx gt接口的上电顺序和复位顺序
Xilinx 的模块在上电和复位时序上是有明确要求的。不遵循正确的上电和复位时序,可能会导致收发器工作不稳定、无法锁定时钟或无法通信。
2025-07-03 23:07:36
380
原创 GT收发器接口含义
DRP接口允许FPGA动态调整GT收发器的配置,能够在运行时修改参数,以适应不同的操作条件或优化性能。通过这些端口,用户可以精确控制收发器的行为,例如时钟设置、功率管理等,从而保证高速通信链路的可靠性和灵活性。**) 详解1. 信号功能是Xilinx GT/GTH/GTY 高速收发器链路质量监测(如信号强度、均衡器状态)调试与诊断(识别误码、时钟偏移等问题)自适应校准(为RX均衡器等模块提供反馈)2. 位宽与数据格式位宽:8位(具体含义取决于IP核版本和配置)典型数据内容。
2025-07-03 20:23:30
748
原创 LINUX驱动采用的技术机制有哪些
硬件类型建议机制AXI-GPIOplatform + 字符设备platform + 中断 + pollAXI-DMA + 缓冲区DMA + mmap简单状态寄存器读取UIOplatform + file_operations(大多数标准驱动)mmap + poll + 中断(高性能读写)UIO + 用户空间控制(快速测试开发)DMA + 中断 + 缓冲(高速采集系统)
2025-07-02 19:08:32
700
原创 LINUX驱动代码的编写思路
Linux 驱动代码的编写,其核心目的是:让用户空间可以通过标准接口(如 /dev/xxx、sysfs、ioctl、mmap 等)访问 FPGA 硬件(如 AXI 外设、DMA、中断),对上屏蔽硬件细节,对下控制底层资源。
2025-07-02 19:06:23
546
原创 FPGA测试DDR带宽,带宽跑不满的原因有哪些
带宽(GB/s)数据总线位宽×2×时钟频率÷8\text{带宽(GB/s)} = \text{数据总线位宽} × 2 × \text{时钟频率} ÷ 8带宽(GB/s数据总线位宽×2×时钟频率÷8DDR3-1600,64-bit 总线 → 理论带宽 = 1600 × 2 × 64 ÷ 8 =25.6 GB/sDDR3-1333,32-bit 总线 → 理论带宽 =10.6 GB/s实际测试中,能达到 50~80% 理论值已属优秀。项目建议burst 长度。
2025-07-02 17:31:12
625
原创 AD7606过采样模式
过采样是指 ADC 内部将每个通道采样多次,然后进行数字平均滤波,以减少随机噪声、提升信号质量。每次外部采样触发 → 芯片在内部进行多次转换 → 平均值输出对外仍只输出 1 个 16 位数据 → 时序不变,但采样速度变慢特性描述开启方式设置 OS2~OS0 三个引脚功能内部多次采样 → 平均 → 输出更干净的值优点有效分辨率提升、SNR 提高、抗干扰能力增强缺点BUSY 时间变长、采样速率变慢适用场景低速高精度采集、电压监控、慢变信号。
2025-07-02 07:56:11
530
原创 xilinx PS 如何收数据并通过以太网发送
DMA 从 PL 接收数据(RX)接收完成后(通过中断设置 flag)如果 TCP 可以发数据 → 把数据通过 tcp_write() 发出去然后启动下一次 DMA 接收(乒乓缓存)步骤作用1第一次启动 DMA 接收2检查 DMA 是否完成 + TCP 是否可发数据3发送数据给 PC4清除 DMA 完成标志5启动下一次 DMA(实现乒乓切换)
2025-07-01 18:26:10
681
原创 DMA数据传输什么时候需要使用乒乓操作
问题回答DMA 传输什么时候需要乒乓操作?当数据流是连续、高速、需要无间断读写时(如高速采集、视频、音频、网络等)为什么要用?避免 DMA 与 CPU 同时访问同一缓冲区,确保数据完整性和实时性不用乒乓有何风险?数据覆盖、丢包、缓存一致性问题、系统不稳定。
2025-07-01 17:15:52
297
原创 PS的中断优先级如何确定?假如一个定时器中断和DMA中断,先执行哪个
你问的问题答案PS 中断优先级如何确定?由 GIC 控制,通过 XScuGic_SetPriorityTriggerType 显式设置数值小优先级高?是,0 是最高优先级定时器和 DMA 中断哪个先执行?谁的优先级值更小,谁先执行;若相同,则看谁先触发会抢占吗?若优先级不同且允许嵌套中断,会抢占正在执行的低优先级中断。
2025-07-01 11:21:16
234
原创 PS侧一旦上电初始化完成DMA并且打开了接收和发送,DMA的READY就会一直拉高吗
在裸核系统中,PS 侧上电后初始化完成 DMA(特别是 AXI DMA)并打开发送和接收通道后,DMA IP 核的 AXI-Stream 接口的 tready 信号(S_AXIS_TREADY 或 M_AXIS_TREADY)是否一直拉高,取决于 DMA 当前是否处于“空闲 + 准备接收/发送”的状态。🟢 只要 DMA 被设置好处于“接收中”,它的 S_AXIS_TREADY 就会持续为高(告诉对端可以发送数据)。
2025-07-01 11:04:08
341
原创 ps访问非memory mapped外设时,使用哪些函数
是基于串行通信协议(如 SPI、I2C、UART、USB、CAN)控制寄存器虽然是 memory-mapped,但数据交互依赖协议栈和状态机控制无法像 AXI GPIO/FIFO 那样通过裸指针直接完成数据收发外设配置寄存器是否 memory-mapped数据是否推荐裸指针访问建议方式UART是❌ 不推荐SPI是❌ 不推荐XSpiPs APII2C是❌ 不推荐XIicPs APIUSB是❌ 不推荐XUsbPs + 协议栈CAN是❌ 不推荐。
2025-07-01 10:34:21
390
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人