
FPGA学习
文章平均质量分 61
moerjie
Hello World
展开
-
异步fifo学习
FIFO 本质是由 RAM 加上读写逻辑构成的先入先出的数据缓冲器。与 RAM 的区别是 FIFO 没有外部读写地址线,顺序写入顺序读出数据,其数据地址是由内部读写指针自增完成,因此 FIFO 在读写时不需要考虑读写冲突的问题。根据 FIFO 工作的时钟域,可以分为同步 FIFO 和异步 FIFO,同步 FIFO 的读时钟和写时钟是同一个时钟,常用于两边数据位宽不同的临时缓冲,异步 FIFO 的读时钟和写时钟不一致,常用于数据信号跨时钟域处理。原创 2025-02-26 20:19:22 · 789 阅读 · 0 评论 -
ZYNQ-AXI DMA+AXI-S FIFO回环学习
endif#else#endif/**/#elifdefined#elifdefined#elifdefined#endif0x010000000x01000000#else0x01000000#endif#else#endif0x001000000x003000000x004FFFFF#else#endif#else#endif*/100000x10x200101000000U1重新定义了 DDR 3 的基址.。数据读写的基址为。原创 2025-02-01 16:11:32 · 1408 阅读 · 0 评论 -
ZYNQ-IP-AXI-GPIO
AXI GPIO 可以将 PS 端的一个 AXI 4-Lite 接口转化为 GPIO 接口,并且可以被配置为单端口或双端口,每个通道的位宽可以独立配置。通过使能三态门可以将端口动态地配置为输入或输出。AXIGPIO 是 ZYNQ PL 端的一个 IP 核,可以将 AXI-Lite Master 转为 GPIO,并且一个 AXI-Lite 接口可以通过 AXI interconnect 模块控制多个 AXI-GPIO。原创 2025-01-27 15:05:58 · 1708 阅读 · 0 评论 -
Verilog中if语句和case语句综合出的电路区别
case语句适用于无明显优先级的逻辑判断,这些逻辑条件都处于同一个优先级且互斥,比如实现对速度要求较高的编解码;case结构电路速度较快,但占用面积较大,综合为 n 选 1 mux电路。综合出来的电路是一个 2 选 1 选通器。当信号有明显优先级时使用该语句,但是。嵌套太多的话会导致路径延时过大,降低运行速度。所以在判定条件较少的时候使用。的逻辑判断有优先级,最内层的。综合出的电路面积较小。的逻辑判断是并列的。原创 2025-01-27 15:05:11 · 317 阅读 · 0 评论 -
Quartus报错记录
报错如下可以看到 Pin_F 16 既被用于 DAC_DATA,又被用于 nCEO 引脚,因此才会报错不能将多个引脚赋到 Pin_F 16 上。原创 2025-01-08 14:03:51 · 266 阅读 · 0 评论 -
FIR滤波器的架构
全并行脉动滤波器对对称系数、反对称系数和零值系数进行了优化。滤波器的时延受到滤波器系数的对称性影响。当对称系数绝对相等时,它们共享同一个 DSP block。这种配对共享允许在实现的过程中使用 Xilinx 和 Altera 的 dsp block 中的 pre-adder。原创 2025-01-08 13:59:12 · 454 阅读 · 0 评论 -
Testbench仿真脚本编写指北
note]由于 Quartus 的 VWF 仿真只能仿真很短的时间,而且 Vivado 仿真的时候也需要添加激励信号,因此需要编写 testbench 文件进行激励仿真。原创 2024-11-26 10:29:20 · 851 阅读 · 0 评论 -
HDL coder使用手册
💡 由于本科毕设女朋友准备使用FPGA完成,因此写这篇文章帮助她快速上手HDL coder的使用,降低前期入门的难度。原创 2024-09-23 17:08:22 · 1682 阅读 · 0 评论 -
2023年全国赛C题《 电容电感测量装置》设计报告
参考下面网站的方案参考LCR测试仪,基本工作原理为给DUT加上正弦激励信号,然后测得该DUT两端的电压和流过DUT的电流,即可通过计算得到DUT的性质和参数。对于一个理想电容,电流相位应该超前电容两端电压90°。然而实际的电容存在损耗,可以等效为一个理想电容Cp和一个理想电阻Rp的并联,因此电流超前电压的相位将小于90°,这个角度差即为损耗角。假设DUT两端电压V˙Vcosωt,流过DUT的电流为I˙Isinωt−φ。原创 2024-07-25 12:18:38 · 2631 阅读 · 0 评论 -
C标准库读写文件
函数返回一个FILE指针,否则返回NULL。成功读取的元素会以size_t对象返回。返回从whence位置开始查找的字节数。可以看到以188个字节为一行写入txt。whence一般为下面三个常量。返回位置标识符的当前值。原创 2024-07-11 20:30:00 · 309 阅读 · 0 评论 -
MATLAB中使用HDL Coder生成HDL代码时的报错整理
由于时序考虑,在每个模块的输出端添加了1到2级的输入输出流水线,但是在这种带反馈的结构上添加输入输出流水线后,会产生如下的报错可以看出加入的输入输出流水线会导致额外的时钟延时,使得延时平衡失败。原创 2024-07-11 16:21:03 · 622 阅读 · 3 评论 -
Modelsim中使用tcl命令导出仿真数据到txt文件
参考下面的优快云博客。原创 2024-07-10 20:47:49 · 1004 阅读 · 6 评论 -
Xilinx FPGA中的BUFFER
FPGA大型设计中推荐使用同步时序电路,同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动有更高的要求。为满足时序的要求,一般采用全局时钟资源驱动设计的主时钟,FPGA的主时钟一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构。原创 2024-05-29 14:32:16 · 1181 阅读 · 0 评论 -
BU01板卡引脚
BU01 是一款高速采集卡,主要用于高带宽数据采集及传输,应用领域多为数据中心及数据采集领域。端口提供60Gbps 传输带宽,可兼容2 个SFP+万兆网口,和1 个40GE QSFP 光口。和主机通信采用的是PCIE 2.0 x8 模式,最高带宽40Gbps。单板上集成了DDR3存储单元 2GByte(16Gbit) ,可稳定运行在1600 MT/s(800Mhz)。同时单板上还集成了1 颗传感器芯片,用于监控FPGA 温度,方便对FPGA 芯片进行温度监控。原创 2024-05-29 14:31:38 · 522 阅读 · 0 评论 -
Vivado报错集合
报错代码。原创 2024-05-25 17:07:52 · 1074 阅读 · 1 评论 -
Alinx xc7z020部分引脚图
时钟引脚CLK:U18复位RST:N15扩展接口J10J11PL LED原创 2024-05-24 14:45:08 · 574 阅读 · 0 评论 -
Matlab生成txt文件导入到Vivado仿真
使用fopen函数获取文件id,fopen的语法如下其中permisson为文件访问类型,有以下几种权限'r''w''a''r+''w+''a+''A''W'💡 要以文本模式打开的话,要附加’t’原创 2024-04-30 21:26:42 · 1529 阅读 · 0 评论 -
Vivado-IP-DDS and Testbench Learning
首先新建一个工程,创建bd文件,添加DDS Compiler核,此处不多赘述。原创 2024-04-25 18:26:59 · 491 阅读 · 0 评论 -
Vivado-OOC
在Vivado中,对于顶层设计,vivado使用自顶向下的全局(global)综合,将顶层文件下的所有模块都进行综合,但是在实际设计过程中,顶层设计会被多次修改和综合,但是有些子模块创建后就不会因为顶层设计的修改而变化,例如IP核。所以把它们设置为OOC模式,这样的话它们只会在综合顶层设计的之前综合一次,大大减少了设计周期。原创 2024-04-25 18:24:12 · 460 阅读 · 0 评论 -
AXI-STREAM简介
AXI-Stream总线是一种高效、简单的数据传输协议,主要用于高吞吐量的数据流传输场景。相比于传统的AXI总线,AXI-Stream总线更加简单和轻量级,它通过无需地址的方式,将数据从一个模块传输到另一个模块,适用于需要高速数据传输的应用场景。原创 2024-01-03 21:06:55 · 834 阅读 · 1 评论 -
vivado仿真(无需testbench)
添加simulation clock模块后如果进行RTL分析和综合的话会报错,目测可能是因为该模块只能用来行为级仿真。由于本人刚刚入门使用vivado,很多操作不甚熟悉,如有错误欢迎指正。原创 2023-11-25 11:52:37 · 1654 阅读 · 1 评论 -
CycloneIII内部资源介绍
@FilePath: \undefinedd:\desktop\FPGA\DE0\cyclone3内部资源.md。原创 2023-11-17 15:35:26 · 848 阅读 · 1 评论 -
filterDesigner生成Fir滤波器【FPGA】
filterDesigner设计滤波器参数通过命令行输入filterDesigner或在顶部菜单栏里的app中点击filterDesigner图标打开选择低通fir滤波器,设计方法为等波纹过渡带不要太窄,否则需要极高的滤波器阶数才能实现80dB的衰减通过左侧菜单栏进入量化参数的设定应减少乘积字长,否则会消耗大量的逻辑单元,本人的DE0曾多次被撑爆生成HDL代码然后选择目标HDL语言和目标文件夹,由于该滤波器的目的是用于音频处理,所以选择全串行结构,节省乘法器资源Global se原创 2023-11-15 21:14:06 · 780 阅读 · 0 评论 -
I2S协议简单介绍及接收端Verilog实现
I2S(Inter-IC Sound)是一种数字音频传输协议,通常用于在数字音频设备之间传输音频数据。它是一种同步的串行数据传输协议,用于将音频信号从一个设备传输到另一个设备,例如从麦克风到音频编解码器、音频接口到音频处理器等。SCLK:对应数字音频的每一位数据,fSCLK2∗采样频率∗采样位宽f_{SCLK}=2*采样频率*采样位宽fSCLK2∗采样频率∗采样位宽。LRCLK:用于同步左右声道的采样数据,低电平为左声道,高电平为右声道。原创 2023-11-08 15:48:09 · 1436 阅读 · 1 评论 -
Matlab&Quartus 联合生成多周期计数器并读取ROM生成正弦波
D触发器输出的数据反馈回来加1,与计数最大值比较,小于max值选通器输出累加器的值,大于max值选通器输出0,将计数值清零。添加一个256点的RAM,连接最大计数值为255的Counter,可生成正弦波。原创 2023-10-05 14:11:33 · 317 阅读 · 0 评论 -
MATLAB/simulink HDLCoder生成DDS quartus项目
为了提升FPGA学习过程的生活品质,在此记录一下使用simulink搭建模型以后直接使用HDL Coder生成Quartus 项目的过程。HDL Coder 通过从 MATLAB 函数、Simulink 模型和 Stateflow 图中生成可移植、可综合的 Verilog® 和 VHDL® 代码来支持 FPGA、SoC 和 ASIC 的高层设计。您可以将生成的 HDL 代码用于 FPGA 编程、ASIC 原型构建和产品级设计。原创 2023-09-19 11:37:13 · 1910 阅读 · 1 评论