
FPGA
文章平均质量分 71
FPGA学习心得及代码分享
FPGAeer
这个作者很懒,什么都没留下…
展开
-
DDR3的使用(五)利用XILINX MIGIP核(native)读写DDR3—AXI接口
我们在生成mig ip核控制DDR3时有一个选项,用来生选择生成IP核的类型,如果勾选则生成AXI接口,否则接口类型是native类型:那么什么是AXI接口,他有什么优势呢?一.AXI 的英文全称是AdvancedeXtensible Interface,即高级可扩展接口,它是 ARM 公司所提出的 AMBA(AdvancedMicrocontroller Bus Architecture)协议的一部分。原创 2024-08-02 16:42:39 · 2012 阅读 · 4 评论 -
DDR3的使用(四)利用XILINX MIGIP核(native)读写DDR3—IP核信号分析
我们这一节继续结合仿真波形和逻辑分析仪测试波形来分析下MIGIP核的各个信号使用,这里主要说的是用户端的信号,这些信号直接与ip核进行交互,只有正确使用才能按我们的要求来读写数据。1.我们先打开modelsim仿真软件,查看下example的仿真波形:modelsim仿真波形12.通过官方仿真波形我们来做一下初步分析: DDR3读写指令信号。原创 2024-08-01 16:47:58 · 1290 阅读 · 3 评论 -
DDR3的使用(三)利用XILINX MIGIP核(native)读写DDR3代码分析
这里重点讲下37行,{(MEM_DATA_BITS/8){rd_cnt}}中MEM_DATA_BITS=512,所以也就等效于{64{rd_cnt}},意思就是64个rd_cnt,rd_cnt是8位数据,所以{64{rd_cnt}}就是将rd_cnt复制64次连在一起,一共512位。2=1600M,我们逻辑代码使用mig ip给的ui时钟位200M,1600/200=8,也就说ddr3接口处数据速率是我们逻辑代码处速率的8倍,如果速率要一样,那么接口处位宽为64位,我们只需要给一个64。原创 2024-07-25 22:29:35 · 788 阅读 · 2 评论 -
DDR3的使用(二)利用XILINX MIGIP核(native)读写DDR3
如下图,1处为给ddr3芯片的时钟,我们使用800M,2处comporment表示是芯片颗粒,下拉菜单里有其他选项,表示内存条。然后我们将写入的数据读出来,我们先发出读请求,当rd_burst_data_valid拉高时,表示读取数据有效。可以看到在1处我们发出了wr_burst_req,当wr_burst_data_valid拉高时我们开始往芯片里面写数据,每次数据累加1,直到7f为止。到这里我们就初步完成了读写实验,但是代码逻辑是怎样的,我们后面再分析,进行仿真实验。我们使用的芯片位ddr3。原创 2024-07-25 16:09:41 · 1266 阅读 · 1 评论 -
DDR3的使用(一)XILINX MIGIP核里面的时钟结构
这里设置的参数就是 MIG 的PHY 接口对DDR3的时钟,也就是DDR3芯片实际跑的IO时钟频率,它由system clock(主时钟)倍频而来,最大频率不能超过DDR3 和MIG支持的最大频率中的最小值,如:我们的DDR3芯片最高支持933Mhz的IO时钟,我们使用的FPGA芯片的MIG最高只支持800Mhz的时钟,所以这里我们选择800Mhz(当然也可以选择比这个小)。4.)此处时钟要给到ddr3芯片,具体给多少,要关注两个,一个是fpga支持的时钟频率,另一个是ddr3芯片能跑到的时钟速率。原创 2024-07-24 16:39:35 · 2624 阅读 · 1 评论 -
quartus联合modelsim仿真
2.生成testbench文件模版 在菜单栏依次点击processing>start>start testbench template write后会在modelsin文件夹下生成testbench模版。5.在quartus中启动仿真 在菜单栏点击tools>run simulation>rtl simulation后启动modelsim。可以看到代码仿真后的结果和我们的设计一样。这里主要记录下仿真流程,testbench编写语法后面再详细介绍。我们记录下quartus联合modelsim仿真步骤。原创 2024-07-23 15:08:44 · 748 阅读 · 1 评论 -
FPGA读写操作SRAM_CY7C1051DV33
总结下,就是读写时间不能小于10nS,也就是最高频率100M,所以我们程序设计按100M时钟速率进行设计。注意,读写时,控制信号按下表进行设计。我们可以看到,在计数器delay分别计数到999 1999和2999时刻进行了写入,读出和比较。可以看到,写入数据和读出数据一致,并且led一直为低。手上有一块sram需要验证下功能是否正常,我门通过fpga来进行读写测试。时序图中读写时间都为一个时钟周期也就是10NS,我们使用芯片的极限速率。2.我们大概画下时序图,整理下思路。4.我们进行上板测试看下。原创 2024-07-23 11:12:37 · 976 阅读 · 2 评论 -
FPGA GT 高速收发器的一些认识(一)
FPGA内部的高速收发器一般称为GT(GT的意思是Gigabyte Transceiver),速度根据器件的不同能够支持的速率也不相同。在Xilinx 7系列的FPGA中,按支持的最高线速率排序,GTP是最低的,GTZ是最高的。例:假设线速度需要跑到1G,那么我们FPGA内部逻辑就需要跑到1GHz,才可以对外发出1G的bit流(即使采用DDR的方式发出,也需要内部500MHz)。下面简单介绍一下FPGA内部的高速收发器(主要以Xilinx的A7 FPGA为例,其他的“大概”大同小异)。原创 2024-07-16 16:00:32 · 1764 阅读 · 3 评论 -
FPGA读写操作24lc64
FPGA读写操作常用的EEPROM芯片24lc64速度250k,刚好400个时钟周期,容易计数。代码如下:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 2020/07/25 09:21:01// Design Name:// Module Name:原创 2020-08-15 18:12:10 · 2357 阅读 · 3 评论 -
Vivado联合modelsim仿真时modelsim进行异步FIFO仿真
Vivado联合modelsim仿真时modelsim进行异步FIFO仿真1.生成fifo IP核如图所示,8位数据输入,深度1024,8位数据输出2.编写testbench代码,进行仿真测试程序如下module fifo_test_tb;reg Rst;reg Clk_wr;reg Wr_en;reg [7:0] Data_in;reg Clk_rd;reg Rd_en;wire [7:原创 2020-08-08 16:06:01 · 1145 阅读 · 1 评论 -
ASK信号的滤波解调
vivado 与modelsim联合进行ASK信号的滤波解调求得了外包络。可以下载参考工程链接:https://pan.baidu.com/s/1fZW6svSUoAeCoxpZHtBI9w提取码:1234原创 2020-07-14 18:45:01 · 759 阅读 · 1 评论 -
vivado fir 滤波器IP仿真
vivado fir 滤波器IP仿真vivado与modelsim进行fir滤波器仿真vivado与modelsim进行fir滤波器仿真vivado2017.4与modelsim se10.5进行联合仿真,验证了fir滤波器的ip。仿真结果如下图,由两个dds模块分别生成一个4M和一个5M的信号,再由一个乘法器模块进行混频,混频后生成一个1M和一个9M的信号,用fir模块进行滤波,滤掉2M以上高频信号,剩下最终1M信号,结果如图。工程链接如下:提取码1234链接: link.图片: ![Alt]原创 2020-07-14 17:27:28 · 1174 阅读 · 2 评论