先建立一个工程
参考文章
如何及建立一个veivado 的工程,详细的请参考下面的这篇文章
https://blog.csdn.net/weixin_42066185/article/details/106421611
回顾
作为基本新手入门vivdado , 我从新进行熟悉了一下,跟着教程实现了一下 led 的闪烁,具体代码即过程请参考后面的led实现过程
实现led即helloworld
led.v code
led.v
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/07/04 11:36:08
// Design Name:
// Module Name: led
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module led(
input sys_clk_p,
input sys_clk_n,
output reg [3:0] led
);
reg [31:0] timer_cnt;
wire sys_clk;
IBUFDS #(
.DIFF_TERM("FALSE"), // Differential Termination
.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE"
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(sys_clk), // Buffer output
.I(sys_clk_p), // Diff_p buffer input (connect directly to top-level port)
.IB(sys_clk_n) // Diff_n buffer input (connect directly to Top-level port)
);
always@(posedge sys_clk)
begin
if(timer_cnt >= 32 'd199_999_999)
begin
led <= ~led;
timer_cnt <= 32'd1;
end
else
begin
led <= led;
timer_cnt <= timer_cnt + 32'd1;
end
end
endmodule
led.v code 理解
其实实现的是每秒钟闪烁一次,我们设定系统的时钟的频率就是125MHz的速度。
led.xdc code
led.xdc
set_property PACKAGE_PIN AE13 [get_ports {led[3]}]
set_property PACKAGE_PIN AF13 [get_ports {led[2]}]
set_property PACKAGE_PIN AB14 [get_ports {led[1]}]
set_property PACKAGE_PIN AB15 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property PACKAGE_PIN C8 [get_ports sys_clk_p]
set_property IOSTANDARD DIFF_SSTL15 [get_ports sys_clk_p]
create_clock -period 5.000 -name sys_clk_p -waveform {0.000 2.500} [get_ports sys_clk_p]
led.xdc code 理解
实验效果
总结
如上,总共了解了建立一个工程,和烧录的整体的过程,为实现udp的整体的实现,提供了一个基本流程的更新