今天学习了米联客的DMA第二课时,写个博客记录一下学习心得,防止以后忘记。
这一章的硬件工程是在上一章的基础上添加几个新的IP重新生成的。其实只新添加了一个IP,就是DATE FIFO这个IP,并且整个工程的IP配置也做了变化。变化如下:
1. 新添加了一个FIFO,原先的FIFO用作PL端数据的输入,并且改为了异步时钟(没有明白这里异步时钟的作用),还将数据位宽设为16bit也就是2个byte 。引出了写入端口、写入时钟、写入复位三个引脚。后添加的FIFO当作数据的输出,将FIFO的数据输入端与DMA的数据输出端相连。同样改为异步时钟,引出读复位、读时钟、读出端口三个引脚。并将两个FIFO增加last与keep两个信号,以便观察。
2. 将DMA的读通道改为16bit。
3. 增加一路100MHZ的时钟,提供给FIFO,这个时钟应小于或等于DMA的时钟
4. 增加一个GPIO用于复位。
5. 在数据传输的过程中MAKE DEBUG
6. 在写入FIFO端加上Verilog代码,用于写入数据。在这过程中,我是直接复制给的教程里的顶层文件,在这里出了很多错,比如说我对模块设计的名称和源代码的不一样,这里就得修改顶层文件中的模块例化名才能在保存之后显示模块设计。还有就是一些信号和名和源代码不同,这里就得修改名字。所以说最好还是自己写一个顶层文件这样比较好!(修改信号名字时要和系统生成的模块.v文件对应修改)
下面就是SDK部分的分析。算了,明天写吧。