FPGA教程系列
文章平均质量分 71
Wishell2015
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FPGA教程系列-Vivado实现低延时除法器与generate用法
2、generate简单用法,生成三个乘法器,分别将除法器的结果乘以1、2、3然后相加输出结果,其实就相当于将除法器的结果乘以6.还涉及到一些截断等,想了解的可以自行百度一下。其实就是用乘法器代替除法器,在matlab中编写一个1/x的查找表,然后通过值来查找对应的结果,y*1/x就相当于y/x了。1、第一个乘法器用来y与1/x相乘,也就是用来模拟除法器,输出o_P,可以用来查看延时。这些IP核在前面都讲过,就不再赘述了,不懂的可以翻一翻。结果放大看,是一个1/x的函数。可以看到,一共用了4个乘法器。原创 2025-12-03 20:39:16 · 102 阅读 · 0 评论 -
FPGA教程系列-番外篇Model Composer之滤波器优化设计仿真
;;在 设计中,双击 HDL_filter 子系统,然后双击 Gateway In 块打开属性编辑器。更换变量:在 Vitis Model Composer Hub 中,将采样频率更新为 120 MHz (6 * 20 MHz):单击 "分析 "将设计编译成硬件描述。现在,硬件设计只使用了一个 DSP48 资源(一个乘法器),与配置 HDL 块部分末尾的结果相比,使用的资源明显减少。。原创 2025-12-02 20:13:40 · 164 阅读 · 0 评论 -
FPGA教程系列-番外篇Model Composer之HDL滤波器仿真
采用Simulink对滤波器进行仿真以后,可以添加HDL模块了。原创 2025-12-01 19:49:53 · 327 阅读 · 0 评论 -
FPGA教程系列-番外篇Model Composer之滤波器仿真
在vivado中仿真了濾波器,現在看看怎么用simulink进行仿真,算是一种互相的印证与学习。原创 2025-11-28 18:49:26 · 671 阅读 · 0 评论 -
FPGA教程系列-番外篇Model Composer初探
某些原因,接触到这个东西,感觉还挺有用的,就本着记录下的原则,进行一个学习的记录。早期应该是叫System Generator ,后来应该是改名成Model Composer,其实名字不重要,重要的是功能。System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。原创 2025-11-27 19:13:17 · 424 阅读 · 0 评论 -
FPGA教程系列-滤波器的仿真分析(CIC+FIR)
需要生成一个FIR的IP核,调用如下,可以在一个工程里,可以看到这个滤波器valid信号一直为1,没有抽取。可以看到时域与频率的信号如图,并且生成了一个signal_data.coe文件,用于存储到ROM内。本实验的目的是生成一个带有噪声的信号,通过ROM存储,最终经过滤波器检查滤波器的效果,并验证。配置ROM的IP核:matlab生成的是12位的信号,这里对应的输入。生成IP核以后,输入是16位的,应该是跟AXI协议有关。Ps:TB可以直接写入文件,把滤波的数据直接进行存储。原创 2025-11-26 19:39:50 · 407 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核CIC与FIR解析
控制是否使用TLAST信号标识数据流的结束。原创 2025-11-25 19:17:18 · 449 阅读 · 0 评论 -
FPGA教程系列-通过FIFO实现延时与跨时钟域
跨时钟域的话要考虑读和写的时钟,在这里简单的用读快写慢来进行实验,FIFO核中,有data count 的功能,其实原理很简单,当数据大于一个值后开始读,小于一个值后停止读就可以实现,当然,都是一些基本的操作,用于加深下FIFO的应用,并没有太多的实际用途,以后还是要具体情况具体分析,这里仅作为一个熟悉FIFO核的过程。简单的描述下逻辑,延时的话,是在同一个时钟域下,设置一个计数器,当写数据的时候开始计数,计数到需要的延时后读信号开始读取数据,这样就可以进行延时的操作。2、不同时钟下的读取。原创 2025-11-24 21:03:20 · 240 阅读 · 0 评论 -
FPGA教程系列-Vivado复数乘法的实现(IP核与非IP核)
在Vivado中,复数乘法的实现方式有很多种,可以用乘法器IP核,甚至可以直接用操作符*,还有复数乘法器的IP核,直接输出结果。需要注意的是位宽的不一致,应该是与AXI通信协议有关,所以只要满足例化需求就可以了。这个的优点是相对于4个乘法器,用了三个,资源占用少了一些。:非阻塞式流控制(持续发送数据,忽略接收端状态)。:设置希望IP核实现的最小延迟(时钟周期数)。使用FPGA的专用乘法器(DSP48E)实现。仿真,观察输出,与diy的结果应该保持一致。使用FPGA的查找表(LUT)实现乘法器。原创 2025-11-21 20:27:03 · 1306 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核Clock Wizard核解析及测试
锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号来控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。Vivado中的生成锁相环的IP核为Clocking Wizard:用来监控时钟是否停止、故障和频率变化。一般不用。选项用于选择是使用MMCM还是PLL来完成时钟需求。原创 2025-11-20 23:09:14 · 979 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核Divider核解析及测试
除法器的IP核比较简单,所以把除法器的IP核跟仿真放到一起进行分析。可以看到,延时复位以后,大概延时了200ns,才得到输出结果。:与被除数通道中的对应选项完全相同,但作用于除数数据流。:被除数和除数都是有符号整数(使用二进制补码表示)。这个选项决定了除法器如何输出“除不尽”的部分。:设置完成一次除法运算所需的时钟周期数。时,此选项用于设置小数部分的精度。:输出传统的整数除法余数。需要注意的是除数与被除数的关系。:输出商的小数部分。:设置被除数输入的位宽。:显示或设置IP核的延迟。:设置除数输入的位宽。原创 2025-11-19 20:28:22 · 832 阅读 · 0 评论 -
FPGA教程系列-计数器和分频器的仿真(非IP核)
但是这种分频有时候受限于PLL 本身的特性,比如输入100Mhz 时钟,很多PLL 都实现不了1Mhz 的时钟分频,这个就是PLL 本身特性限制的。在F PGA 的设计中,由于板卡的晶振一般是固定的,而对于一些工程而言晶振时钟并不是都能满足设计需求,所以在项目设计中经常使用分频器对输入时钟进行分频。奇数分频器相对偶数分频来说比较复杂, 需要知道的可以自己去查,这里只是针对于偶数分频来做一个仿真, 在具体的项目中,大多数使用的都是PLL来实现时钟的分频,因此这部分仅仅是作为一个了解。溢出以后重新归零开始。原创 2025-11-18 20:53:43 · 337 阅读 · 0 评论 -
FPGA教程系列-双口RAM的读写实验
由于只有一个例化的IP核,再封装一次的意义不大,所以就步编写top文件了,直接在testbench中调用ip核就可以了。RAM的IP核已经在其他文章里讲过了,就不再做过多的赘述。可以看到数据的正常写入与读取。原创 2025-11-17 20:46:08 · 232 阅读 · 0 评论 -
FPGA教程系列-Vivado中读取ROM中数据
最终输出的结果,就是读取coe文件中的波形,即sin函数。当然可以用matlab生成各种各样的波形来进行读取。本实验主要读取rom中的数据。rom中存储的数据为coe文件,用matlab可以生成。本仿真采用ROM核,位数11位,深度512.原创 2025-11-14 21:26:57 · 378 阅读 · 0 评论 -
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 · 879 阅读 · 0 评论 -
FPGA教程系列-Vivado中FIFO的简单仿真分析
本着看十遍不如操作一遍的原则,对FIFO进行一个简单的仿真,加深一下印象。生成一个IP核:(8位,16深度,其他默认)原创 2025-11-12 20:21:01 · 253 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核FIFO核
FIFO(First In First Out Out,即先入先出),是一种数据缓存器,用来实现数据先入先出的读写方式。在FPGA 或者ASIC 中使用到的FIFO 一般指的是对数据的存储具有先入先出特性的缓存器,常被用于多比特数据跨时钟域的转换、读写数据带宽不同步等场合。原创 2025-11-11 20:06:36 · 680 阅读 · 0 评论 -
FPGA教程系列-Vivado中乘法器不同模式资源对比
在乘法器的IP核中,有两种实现方式,使用。来实现核心,现在主要进行一个对比。简单的乘法,-20×5=-100.直接例化一个乘法器即可。原创 2025-11-10 20:35:38 · 299 阅读 · 0 评论 -
FPGA教程系列-Vivado中实现简单正弦波
采用DDS的IP核,具体IP核设置见ip核的解析。原创 2025-11-09 17:50:24 · 235 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核DDS核
直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统的重要组成部分。正交合成器用于构建数字下行和上行转换器和解调器。它们还用于实现各种类型的调制方案,包括 PSK(相移键控)、FSK(频移键控)和 MSK(最小移位键控)。数字生成复值或实值正弦波的常用方法是采用查找表方案。查找表存储正弦波的样本。数字积分器用于生成合适的相位参数,该参数由查找表映射到所需的输出波形。简单的用户界面可接受系统级参数,如所需的输出频率和生成波形的杂散抑制。原创 2025-11-08 22:00:19 · 672 阅读 · 0 评论 -
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 · 715 阅读 · 0 评论 -
FPGA教程系列-Vivado IP核之乘法器解析
本文主要介绍vivado中的乘法器的IP核,quartus内的IP核其实也一样,大同小异。原创 2025-11-06 20:48:06 · 928 阅读 · 0 评论
分享