赞
踩
最近,博主在学习FPGA,用的开发软件是ISE14.7,开发板是Spartan-3E starter board。本文主要记录下ISE14.7软件的使用,怎样从头开始建立工程,写代码,仿真,到下载bit流到板子上,还有程序的固化,用示波器看波形。最后还会记录下中间遇到的一些坑。
到这里,工程就新建完成了,接下来需要添加各种文件。下边是我的一段代码。
在这里,我们可以创建新的代码文件(或者可以选择Add Sourse添加已有的代码)。
这里我用的是Verilog语言,所以选择了Verilog Module,如果你是VHDL语言,可以选择VHDL Module。
然后点击finish,就完成了新文件的建立。我们可以在这里写我们的代码。
这里是设计了一个流水灯,每隔1S小灯流动一次。
代码如下:
`timescale 1ns / 1ps module led( input clk, input reset, output reg[7:0]led ); reg [25:0] cnt; parameter TIME = 26'd50_000_000; always @(posedge clk) begin if (reset) begin cnt <= 26'd0; end else if (cnt == TIME - 1'b1) begin cnt <=26'd0; end else begin cnt <= cnt + 1'd1; end end always @(posedge clk) begin if (reset) begin led <= 8'b0000_0001; end else if (cnt == TIME - 1'b1) begin led <= {led[0],led[7:1]}; end else begin led <= led; end end endmodule
这里,我们双击Synthesize -XST进行综合。可以检查代码的语法错误,查看RTL图等。前边出现绿色圈圈里对号,说明综合成功了。
可以双击View RTL Schematic查看RTL图。
继续双击RTL图可以产看详细的图。
顾名思义,就是将我们设计中的input,output和FPGA对应的管脚相连接。
然后会打开PlanAhead,时间较久,需要稍等一会。
在这里,我们根据FPGA的数据手册分配管脚。
最后,save。
管脚约束完后,我们会看到有一个ucf文件。
双击Implement Design,完成后前边会变绿。
这里说的仿真,是对我们的代码进行功能仿真。可以用modelsim进行仿真,也可以在ISE内进行仿真。
用modelsim进项仿真可以参考文章:modelsim仿真
我们下边介绍的是在ISE14.7内进行仿真:
输入testbench代码:
`timescale 1ns / 1ps module test_tb; // Inputs reg clk; reg reset; // Outputs wire [7:0] led; // Instantiate the Unit Under Test (UUT) led uut ( .clk(clk), .reset(reset), .led(led) ); always #10 clk =~clk; initial begin // Initialize Inputs clk = 0; reset = 1; // Wait 100 ns for global reset to finish #100; reset = 0; // Add stimulus here end endmodule
仿真成功后,可以将bit流下载到板子验证。
下载bit文件到FPGA 的方式,掉电后会被擦除。
需要先将板子和电脑连接。当usb和电脑连接时,会自动加载驱动。
打开电脑的设备管理器,当出现下图的标志时说明连接成功:
软件会自动检测到板子上的芯片,由于我的板子上有三个芯片,所以检测到三个。在这里,我们只需要将bit加载到FPGA(第一个xc3s500e)。
剩下的两个,都选择bypass.
出现Program suceeded,就成功将bit流文件下载到FPGA内了。
可以在板子上看到流水灯的效果。
fpga流水灯演示
参考方法:ISE14.7程序固化步骤
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。