在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上

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

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第1张图片

我的FPGA板子型号如下:

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第2张图片

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

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第3张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第4张图片

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

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第5张图片

 编辑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

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第6张图片

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之后,点击红色区域,实现仿真

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第7张图片

仿真页面如下

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第8张图片

编写约束文件

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第9张图片
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;
编译通过
在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第10张图片

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

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第11张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第12张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第13张图片

 在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第14张图片

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第15张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第16张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第17张图片

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第18张图片

 在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第19张图片

 右键: program

 

在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第20张图片
 
在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上_第21张图片

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/shirley-lian/p/8301832.html

你可能感兴趣的:(在ISE平台上实现跑马灯并烧录到FPGA VIRTEX7板子上)