FPGA实验3:DAC FIFO实验

1. 实验内容

  1. 基于“FPGA实验1:DDS IP 数字波形合成DAC ”“FPGA实验2:ADDA测试” 实验方案
  2. 用MMCM 把 合成出100MHz的时钟,让DDS工作在100MHz时钟
  3. 让DAC和DAC的接口电路工作在50MHz,此时DAC的采样率为50MHz
  4. 在DDS和DAC接口电路之间,放置一个带独立时钟的AXI-Stream-Data FIFO,FIFO两端的时钟分别为DDS的工作时钟100MHz和DAC的工作时钟50MHz
  5. 生成FIFO需要带data count信号(本实验仅用于观察,以后的实验中这些信号有用。)
  6. DDS的数据输出接口需要有TREADY信号
  7. DAC接口电路需要将FIFO输出端的AXI-S接口转换成DAC的接口格式,自行编写RTL代码完成该功能。另外由于DAC的工作频率小于DDS工作频率,所以DAC接口控制器给FIFO的RDY信号应该一直为高。
  8. 以上结构的意义在于,把接口电路和信号处理电路分离在不同的时钟域,从而使得各部分保持独立
  9. 本实验添加2个system ILA,分别观察FIFO两端接口的信号时序,注意观察 data count端口的变化。
  10. 用VIO配置频率字,分别生成1MHz和3MHz的DDS正弦波形,用system ILA抓取DAC的输入数据,用Matlab分析频谱,验证频率正确。
  11. 本实验是一个典型的带反向流控的跨时钟域传输信号的例子

2. 实验背景知识

2.1. FIFO

FIFO即First In First Out,是一种先进先出数据存储、缓冲器,我们知道一般的存储器是用外部的读写地址来进行读写,而FIFO这种存储器的结构并不需要外部的读写地址而是通过自动的加一操作来控制读写,这也就决定了FIFO只能顺序的读写数据
FIFO 的典型结构如下,主要分为读和写两部分,另外就是状态信号,空和满信号,同时还有数据的数量状态信号,与RAM 最大的不同是 FIFO 没有地址线,不能进行随机地址读取数据,什么是随机读取数据呢,也就是可以任意读取某个地址的数据。而 FIFO 则不同,不能进行随机读取,这样的好处是不用频繁地控制地址
线。
在这里插入图片描述
虽然用户看不到地址线,但是在 FIFO 内部还是有地址的操作的,用来控制 RAM 的读写接口。其地址在读写操作时如下图所示,其中==深度值也就是一个 FIFO 里最大可以存放多少个数据。==初始状态下,读写地址都为 0,在向 FIFO 中写入一个数据后,写地址加 1,从 FIFO 中读出一个数据后,读地址加 1。此时 FIFO 的状态即为空,因为写了一个数据,又读出了一个数据。
可以把 FIFO 想象成一个水池,写通道即为加水,读通道即为放水,假如不间断的加水和放水,如果加水速度比放水速度快,那么 FIFO 就会有满的时候,如果满了还继续加水就会溢出overflow,如果放水速度比加水速度快,那么 FIFO 就会有空的时候,所以把握好加水与放水的时机和速度,保证水池一直有水是一项很艰巨的任务。也就是判断空与满的状态,择机写数据或读数据。
在这里插入图片描述

2.2. 同步FIFO和异步FIFO

根据读写时钟,可以分为同步 FIFO(读写时钟相同)和异步 FIFO(读写时钟不同)。
同步FIFO,读和写应用同一个时钟。它的作用一般是做交互数据的一个缓冲,也就是说它的主要作用就是一个buffer。
异步FIFO,读写应用不同的时钟,它有两个主要的作用,一个是实现数据在不同时钟域进行传递,另一个作用就是实现不同数据宽度的数据接口。

3. 实验步骤

1. 本实验基于“FPGA实验1:DDS IP 数字波形合成DAC ”“FPGA实验2:ADDA测试”做进一步实验,使用vivado的IP Catalog工具,配置IP参数,其中VIO参数配置与实验2相同。

DDS参数配置:
在这里插入图片描述

在这里插入图片描述
Clocking wizard参数配置:
其余参数配置与前两个实验相同。
在这里插入图片描述
AXI4-Stream Data FIFO参数配置
在这里插入图片描述FIFO depth
FIFO的深度,可以在16到32768之间变化,具体情况视情况而定,但要是2的n次幂。

Enable packet mode
使能包模式:此项设定需要TLAST信号被使能。FIFO的操作在包模式下被修改为存储传送的数据,直到TLAST信号被响应。当TLAST信号被响应或者FIFO满了,存储的数据将被送至AXI4-Stream master i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值