首先新建工程文件File-New Project

我的FPGA板子型号如下:

建好工程文件后编写代码:在红色区域右键New Source


定义引脚:因为V7时钟为差分时钟,所以需要两个时钟信号clk_in_p、clk_in_n

编辑led.v
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 22:33:25 01/15/2018 // Design Name: // Module Name: led // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module led( input clk_in_p, input clk_in_n, input reset, output [3:0] led_out ); reg [26:0] counter; wire clk; IBUFGDS clkgen(.O(clk),.I(clk_in_p),.IB(clk_in_n)); always @(posedge clk) if (reset) counter <= 0; else counter <= counter + 1; assign led_out = counter[26:23]; //用于烧写 //assign led_out = counter[3:0]; //用于仿真 endmodule
接下来进行仿真,编辑test.v

test.v如下
`timescale 1ns / 1ps //////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 11:06:12 01/16/2018 // Design Name: led // Module Name: C:/Users/dell/Desktop/led/led/test.v // Project Name: led // Target Device: // Tool versions: // Description: // // Verilog Test Fixture created by ISE for module: led // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //////////////////////////////////////////////////////////////////////////////// module test; // Inputs reg clk_in_p; reg clk_in_n; reg reset; // Outputs wire [3:0] led_out; parameter PERIOD = 10; // Instantiate the Unit Under Test (UUT) led uut ( .clk_in_p(clk_in_p), .clk_in_n(clk_in_n), .reset(reset), .led_out(led_out) ); always begin #(PERIOD/2) clk_in_p = 1'b1;clk_in_n = 1'b0; #(PERIOD/2) clk_in_p = 1'b0;clk_in_n = 1'b1; end initial begin // Initialize Inputs clk_in_p = 1'b0; clk_in_n = 1'b0; reset = 1; // Wait 100 ns for global reset to finish #500; // Add stimulus here reset = 0; end endmodule
编辑完test.v之后,点击红色区域,实现仿真

仿真页面如下

编写约束文件

NET "clk_in_p" LOC = E19; NET "clk_in_n" LOC = E18; NET "led_out[0]" LOC = AM39; NET "led_out[1]" LOC = AN39; NET "led_out[2]" LOC = AR37; NET "led_out[3]" LOC = AT37; NET "reset" LOC = AV40; NET "clk_in_p" IOSTANDARD = LVDS; NET "clk_in_n" IOSTANDARD = LVDS; NET "led_out[0]" IOSTANDARD = LVCMOS18; NET "led_out[1]" IOSTANDARD = LVCMOS18; NET "led_out[2]" IOSTANDARD = LVCMOS18; NET "led_out[3]" IOSTANDARD = LVCMOS18; NET "reset" IOSTANDARD = LVCMOS18;

实现烧写:红色区域——run







