VIVADO MICROBLAZE K7 ADMA用法步骤

1、新建工程,选择正确的芯片,新建bd工程。
2、点击添加ip,加入microblaze模块,点击自动连接模块。添加常数模块,将复位模块的两个复位引脚连接。
在这里插入图片描述
对clk_wiz模块进行修改,修改为自己板卡硬件的时钟输入频率。如果有外接复位引脚则引出,无则取消。
3、添加DDR3模块,添加mig 7。双击进行设置,(下列图中对设置的修改也做截图,未截图为默认配置)
在这里插入图片描述
说明:
(1)、确定DDR接口时钟需要根据
a、DDR所选型号,
b、外部接口时钟,
c、VCCAUX_IO硬件实际所接电平,当接口速率不同时,电压也不同。2.0时,约束为HIGH,1.8V 约束为normal。
(2)、根据实际硬件PCB中VCCAUX_IO所接电平,虽然不可更改,但是根据(1)中速率的不同,电平也不同。
(3)、选择ddr型号。
(4)、实际中PCB的数据位宽。
4、在这里插入图片描述
说明:
(1)根据片外晶振,选择时钟频率,这个和3中接口时钟频率有关。
(2)同时该模块可以输出5个自定义的时钟,在这里我未到。
5、在这里插入图片描述
说明:选择use system clock。
6、在这里插入图片描述
说明:
(1)、根据硬件PCB使能是否级联,因为我用了四片DDR,64位,横跨32 33 34 bank,所以使能级联,当不选择级联时,会发生错误,同时,在约束文件中,加上set_property DCI_CASCADE {32 34} [get_iobanks 33]。
(2)、匹配电阻,选择40。
7、在这里插入图片描述
说明:如果是自己画的电路图,自定义的引脚,选择固定引脚选项,根据PCB将引脚映射完成。
8、在这里插入图片描述
说明:约束文件中,当实际的VCCAUX_IO为2.0v时,VCCAUX_IO = HIGN, 当实际的VCCAUX_IO为1.8v时,VCCAUX_IO = NORMAL ,这个如果不对应不清楚会不会发生问题,当时因为别的问题改过这里,后来一直按照正确的测试。
9、点击生成。
10、点击自动连接。
11、将差分时钟和DDR3接口引出,加上uart模块,uart波特率设置为115200。下图是,完成后的连接工程。
在这里插入图片描述
12、添加adma模块。
在这里插入图片描述
13、添加FIFO模块
在这里插入图片描述
说明:模块中,主要使能tlast信号。
14、对模块进行连接,下图是连接完成后的工程。
在这里插入图片描述
15、由于adma模块是有中断信号控制的,所以要加入中断模块,添加axi interrupt controller 和 xlconcat模块,连接后的工程如下图。
在这里插入图片描述
16、至此,工程搭建结束。综合,约束个别iob,生成bit文件,导入sdk hdf文件。约束文件如下图所示。
在这里插入图片描述
17、增加约束文件DEBUG,把此文件作为目标文件,即以后对约束文件所作的修改均在此文件生效。设置debug信号,抓取adma的四个数据通道,或者说抓取你感兴趣的信号。
18、在SDK中新建xilinx工程,在mss中选择adma的例程,
在这里插入图片描述
19、选中工程后,点击debug。
20、点击run,可在串口助手中打印测试成功。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章