FPGA
文章平均质量分 89
Chenxr32
博学而约取,厚积而薄发
展开
-
ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR
PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。对于数据量较少、地址不连续、长度规则的情况,BRAM 比较适用。而对于传输速度要求高、数据量大、地址连续的情况,比如 ADC,可以通过 AXI DMA 来完成。本文介绍如何在 ZYNQ 上使用 AXI DMA 实现从 PL 发送大量连续数据到 PS 的 DDR 存储器,适用于搬运 ADC 连续采样数据。原创 2023-11-10 11:04:17 · 9637 阅读 · 31 评论 -
HLS实现CORDIC算法计算正余弦并上板验证
本文介绍CORDIC算法计算正余弦的HLS代码,并上板验证的代码的可行性。原创 2023-08-26 18:36:29 · 1128 阅读 · 0 评论 -
HLS实现FIR低通滤波器并上板验证
本文介绍用HLS编写FIR滤波器代码并做相应优化,HLS代码编写好后导入System Generator进行仿真,最后上板验证代码的可行性。原创 2023-08-13 22:21:34 · 1141 阅读 · 0 评论 -
基于插值算法和Gardner定时误差检测的OOK信号定时同步的FPGA实现
本文介绍如何用FPGA实现基于插值算法的OOK信号定时同步。定时同步的主要模块包括插值滤波器、定时误差检测器、环路滤波器和数控振荡器。我们的目标是用外部提供50MHz时钟的zynq7100芯片实现400MHz采样频率和100Mbps的OOK数字基带信号的定时同步。...原创 2022-04-30 21:33:54 · 3745 阅读 · 57 评论 -
Vivado的DDS IP核实现连续相位2FSK
本文介绍如何使用DDS IP核实现连续相位二进制频移键控。输入比特速率1MHz,1 bit对应的载波为4MHz正弦信号,0 bit对应的载波为6MHz正弦信号,系统时钟频率50MHz。原创 2022-02-05 01:31:25 · 5151 阅读 · 11 评论 -
Vivado的FIR IP核实现低通滤波器
本文介绍如何使用Vivado的FIR IP核实现低通滤波器。我们将设计一个采样频率为10MHz,通带0~1MHz,阻带高于2MHz的FIR低通滤波器。测试时,滤波器的输入信号为1MHz和3MHz的正弦波的叠加信号,期望滤波器能输出失真较小的1MHz的正弦信号。原创 2022-01-24 22:47:33 · 19402 阅读 · 30 评论 -
Vivado将.v文件作为模块加入Block Design
本文介绍在Vivado中,如何在不封装IP core的情况下将HDL写的模块放入Block Design。原创 2021-09-13 23:51:18 · 16508 阅读 · 8 评论 -
VHDL的GENERATE语句实现四位全加器
1位全加器接口有:A被加数输入端,为加数输入端,C进位输入端,CO进位输出端,S和数输出端。1位全加器表达式如下:S=A xor B xor C, CO=(AB)+(AC)+(BC)。本文用VHDL语言的GENERATE语句用四个一位全加器实现一个四位全加器。原创 2020-05-24 00:27:34 · 5724 阅读 · 2 评论 -
VHDL语言实现32位二进制数转BCD码
使用FPGA开发板上的数码管显示数值,需要将数值转换成对应的BCD码,再通过七段译码器将数值显示在数码管上。我用除十取余的方法,用VHDL写了32位二进制数转BCD码代码。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTI...原创 2019-06-09 10:51:30 · 4877 阅读 · 6 评论