这里写自定义目录标题
- PL端 纯Verilog语言创建IP核实现点亮LED灯工
- 使用设备 ZYNQ 7010,选择设备型号XC7Z010CLG400-1
- 根据以下流程完成本次创建
- 时钟频率50MHZ,周期T=20ns,因此计数50_000_000次,1sLED灯闪烁一次
PL端 纯Verilog语言创建IP核实现点亮LED灯工
确保开发板没有问题,可以先烧一个例程验证板子完好
本教程要实现的是自创建IP核点亮LED灯。
大致创建流程为:1.创建纯Verilog文件
2.封装成IP核,保存完整
3.新建工程,添加ZNYQ 和 我们新建的LED灯 IP核,按照流程走完后,实现点灯。
使用设备 ZYNQ 7010,选择设备型号XC7Z010CLG400-1
根据我的开发板电路原理图,所要点亮的LED灯为EMIO口的T14
DDR Configuration选择型号为MT41K128M16 JT-125
根据以下流程完成本次创建
1.创建verilog工程,用于设计IP核
2.工程名字可以命名为LED_IP
3.设备型号,我的是XC7Z010CLG400-1
4.给我们要创建的Verilog文件命名,如LED_flash,表示使LED灯闪烁
5.接下来编写Verilog程序
时钟频率50MHZ,周期T=20ns,因此计数50_000_000次,1sLED灯闪烁一次
module LED_Flash(input clk,input rst_n,output reg led);reg [25:0] cnt;always@(posedge clk or negedge rst_n)if(!rst_n)cnt <= 26'd0;else if(cnt < 26'd49_999_999)cnt <= cnt + 1'b1;elsecnt <= 26'd0;always@(posedge clk or negedge rst_n)if(!rst_n)led <= 1'b0;else if(cnt == 26'd49_999_999)led <= ~led;elseled <= led;
endmodule
6.开始封装纯Verilog的IP
依次点击Tools,第一个Create and Package New IP
按照图片红色箭头依次点击,对于IP Location文件路径不用更改
7.点击Finish后的新界面,可以看到一些相关信息
本例程中基本没有什么需要改变的
8.点击完Package IP后,这个Vivado 工程可以不用管,或者最小化关闭都可,新建Vivao工程
重复上述步骤1-3,这个工程名字可以为For_IP_Led_Flash,表示使用IP核来完成LED灯闪烁。
9.添加我们创建的IP核的路径
10.路径添加完成后我们就可以添加IP核了
11.添加完两个IP核后开始连线
以及点击两个红色箭头后,如下图
LED_Flash_0 IP核的led管教点击选中后引出引脚,可以使用快捷键crtl+T,结果如第二幅图所示
10.选择添加一个UART串口和DDR型号选择
接着选择DDR型号,根据自己开发板的型号来选择
11.红色数字1点击完毕后,出现的对话框,选择Synthesis Options中的第一个Global,然后点击Generate,等待程序运行完毕,可执行红色数字2“Let Vivado manage wrapper and auto-update” OK。
12.在11执行完毕后,执行Run Implementation
13.给我们的EMIO LED约束引脚,我的开发板引脚是T14
如此选择完毕后,按crtl+s,给弹出来的对话窗口,选择赋值LED_Flash
14.生成比特流文件
15.没有特殊说明,运行完毕弹出来的对话框,可以都选择“View reports”
16.准备运行SDK
17.由于我们电灯的逻辑电路在Verilog中搭建好了,因此SDK中不需要对灯T14的引脚做额外操作,随便来个串口程序就好。(之前步骤中我们选择好的ZYNQ中的UART1)
18.将数据线连接好,准备烧录程序
18.实验结果
2
19.内容较长,请仔细操作。如有问题,可添加作者QQ:1018931844。欢迎讨论