- 博客(73)
- 资源 (4)
- 收藏
- 关注
原创 FPGA教程系列-通过FIFO实现延时与跨时钟域
跨时钟域的话要考虑读和写的时钟,在这里简单的用读快写慢来进行实验,FIFO核中,有data count 的功能,其实原理很简单,当数据大于一个值后开始读,小于一个值后停止读就可以实现,当然,都是一些基本的操作,用于加深下FIFO的应用,并没有太多的实际用途,以后还是要具体情况具体分析,这里仅作为一个熟悉FIFO核的过程。简单的描述下逻辑,延时的话,是在同一个时钟域下,设置一个计数器,当写数据的时候开始计数,计数到需要的延时后读信号开始读取数据,这样就可以进行延时的操作。2、不同时钟下的读取。
2025-11-24 21:03:20
103
原创 FPGA教程系列-Vivado复数乘法的实现(IP核与非IP核)
在Vivado中,复数乘法的实现方式有很多种,可以用乘法器IP核,甚至可以直接用操作符*,还有复数乘法器的IP核,直接输出结果。需要注意的是位宽的不一致,应该是与AXI通信协议有关,所以只要满足例化需求就可以了。这个的优点是相对于4个乘法器,用了三个,资源占用少了一些。:非阻塞式流控制(持续发送数据,忽略接收端状态)。:设置希望IP核实现的最小延迟(时钟周期数)。使用FPGA的专用乘法器(DSP48E)实现。仿真,观察输出,与diy的结果应该保持一致。使用FPGA的查找表(LUT)实现乘法器。
2025-11-21 20:27:03
1268
原创 FPGA教程系列-Vivado IP核Clock Wizard核解析及测试
锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号来控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。Vivado中的生成锁相环的IP核为Clocking Wizard:用来监控时钟是否停止、故障和频率变化。一般不用。选项用于选择是使用MMCM还是PLL来完成时钟需求。
2025-11-20 23:09:14
912
原创 FPGA教程系列-Vivado IP核Divider核解析及测试
除法器的IP核比较简单,所以把除法器的IP核跟仿真放到一起进行分析。可以看到,延时复位以后,大概延时了200ns,才得到输出结果。:与被除数通道中的对应选项完全相同,但作用于除数数据流。:被除数和除数都是有符号整数(使用二进制补码表示)。这个选项决定了除法器如何输出“除不尽”的部分。:设置完成一次除法运算所需的时钟周期数。时,此选项用于设置小数部分的精度。:输出传统的整数除法余数。需要注意的是除数与被除数的关系。:输出商的小数部分。:设置被除数输入的位宽。:显示或设置IP核的延迟。:设置除数输入的位宽。
2025-11-19 20:28:22
807
原创 FPGA教程系列-计数器和分频器的仿真(非IP核)
但是这种分频有时候受限于PLL 本身的特性,比如输入100Mhz 时钟,很多PLL 都实现不了1Mhz 的时钟分频,这个就是PLL 本身特性限制的。在F PGA 的设计中,由于板卡的晶振一般是固定的,而对于一些工程而言晶振时钟并不是都能满足设计需求,所以在项目设计中经常使用分频器对输入时钟进行分频。奇数分频器相对偶数分频来说比较复杂, 需要知道的可以自己去查,这里只是针对于偶数分频来做一个仿真, 在具体的项目中,大多数使用的都是PLL来实现时钟的分频,因此这部分仅仅是作为一个了解。溢出以后重新归零开始。
2025-11-18 20:53:43
334
原创 FPGA教程系列-双口RAM的读写实验
由于只有一个例化的IP核,再封装一次的意义不大,所以就步编写top文件了,直接在testbench中调用ip核就可以了。RAM的IP核已经在其他文章里讲过了,就不再做过多的赘述。可以看到数据的正常写入与读取。
2025-11-17 20:46:08
229
原创 FPGA教程系列-Vivado中读取ROM中数据
最终输出的结果,就是读取coe文件中的波形,即sin函数。当然可以用matlab生成各种各样的波形来进行读取。本实验主要读取rom中的数据。rom中存储的数据为coe文件,用matlab可以生成。本仿真采用ROM核,位数11位,深度512.
2025-11-14 21:26:57
375
原创 FPGA教程系列-Vivado IP核BMG核
用于设置端口的复位信号,可以添加一个复位信号(RSTA Pin)、设置复位时ram 输出总线上的数据值(Output Reset Value )、设置是否复位内置锁存器(Reset Memory Latch)和设置复位信号与时钟使能之间的优先级(Reset Priority)。• No Change(不变模式):在该模式下,进行写操作时,读数据线上的数据保持不变。:读深度,当写数据位宽、读数据位宽和写深度的值确定后,读深度的值就会自动确定。:写深度,设置成32代表RAM 所能访问的地址范围为0-31。
2025-11-13 20:18:40
866
原创 FPGA教程系列-Vivado中FIFO的简单仿真分析
本着看十遍不如操作一遍的原则,对FIFO进行一个简单的仿真,加深一下印象。生成一个IP核:(8位,16深度,其他默认)
2025-11-12 20:21:01
249
原创 FPGA教程系列-Vivado IP核FIFO核
FIFO(First In First Out Out,即先入先出),是一种数据缓存器,用来实现数据先入先出的读写方式。在FPGA 或者ASIC 中使用到的FIFO 一般指的是对数据的存储具有先入先出特性的缓存器,常被用于多比特数据跨时钟域的转换、读写数据带宽不同步等场合。
2025-11-11 20:06:36
665
原创 FPGA教程系列-Vivado中乘法器不同模式资源对比
在乘法器的IP核中,有两种实现方式,使用。来实现核心,现在主要进行一个对比。简单的乘法,-20×5=-100.直接例化一个乘法器即可。
2025-11-10 20:35:38
296
原创 FPGA教程系列-Vivado IP核DDS核
直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统的重要组成部分。正交合成器用于构建数字下行和上行转换器和解调器。它们还用于实现各种类型的调制方案,包括 PSK(相移键控)、FSK(频移键控)和 MSK(最小移位键控)。数字生成复值或实值正弦波的常用方法是采用查找表方案。查找表存储正弦波的样本。数字积分器用于生成合适的相位参数,该参数由查找表映射到所需的输出波形。简单的用户界面可接受系统级参数,如所需的输出频率和生成波形的杂散抑制。
2025-11-08 22:00:19
654
原创 FPGA教程系列-Vivado中串行FIR设计(非FIR核)
有限冲激响应滤波器,是数字信号处理里最常用、最基础、也最稳定的一类滤波器。只有零点,没有极点”的滤波器:输出只依赖有限个过去和当前的输入样本,不依赖以前的输出,因此系统总是稳定的。FIR 滤波器是有限长单位冲击响应滤波器。直接型结构如下:冲激响应(滤波器系数)h[n]是FIR滤波器的冲激响应,即滤波器对单位冲激信号的响应序列。h[n]直接对应系数b_n(如h[0]=b₀, h[1]=b₁, …),用于加权输入信号及其延迟值。通俗理解:h是滤波器的“权重”,决定了滤波器的特性(如低通、高通等)。
2025-11-07 19:25:35
711
原创 2.4 卷积2
2.4.2 复正弦波与整体方案在2.3节中,我们提出了关于复正弦输入的频域输出及其意义的两个问题。为了研究这些问题,我们让一个具有真实脉冲响应 h[n]h[n]h[n](即 hQ[n]=0h_Q[n] = 0hQ[n]=0)的LTI系统通过输入复正弦波 V[n]V[n]V[n] 来激发。对于复脉冲响应,也可以得到类似的结果。VI[n]=cos2πkNnV_I[n] = \cos 2 \pi \frac{k}{N} nVI[n]=cos2πNknVQ[n]=sin2πkNnV_Q[n]
2024-09-20 10:05:51
495
1
Zynq7045-2FFG900开发板PDF原理图+Cadence16.3 PCB16层文件
2024-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅