FPGA软件篇——ISE软件使用

ISE软件使用

写博客主要是为了记录学习过程,一来是初入门的时候,一小段时间不学就容易忘,日后方便查阅;二来是有些东西刚入门的时候学习,理解不深刻,记录下来日后可以深入理解。如有错误,欢迎留言。之后会继续学习下去。



单片机与FPGA比较

在这里插入图片描述

工程步骤

1.编写代码 .v
2.编写UCF约束文件
3.仿真 testbench
4.生成bit流文件
5.生成固化文件.msc

一、ISE软件界面介绍

(一). 新建工程文件夹

  • doc 文件夹(用来存放一些参考资料或者工程描述文档)
  • prj 文件夹(用来存放工程文件和时序约束文件)
  • rtl 文件夹(用来存放设计输入文件即 Verilog 源文件)存放 .v 文件,移植时不需要打开工程,只需要将rtl文件夹复制粘贴,然后添加进工程即可。
  • sim 文件夹(用来存放仿真文件)在里面建立一个tb文件夹,仿真时需要写一个仿真激励文件testbench,
    在这里插入图片描述

(二). ISE 工具栏_上半部分

建立完工程后,新建.v文件并添加进工程。如下图
在这里插入图片描述
下面开始介绍上半部分工具栏的功能。
如果要修改源文件顺序,如下
编译: 标号为1的是 全编译,即从头开始编译,而有的时候我们只修改了一小部分代码,所以编译的时候不用全编译,就用标号2的 SmartGuide
在这里插入图片描述
SmartGuide 这个ISE中的全局优化选项,使能这个选项,编译器在Implementation时会比较前一次编译的Implementation结果,未修改部分则沿用前一次的结果,但是如果时序比较紧张,会根据情况重新实现相应未修改部分来达到时序要求。

设计属性 可以重新对工程属性进行编辑。如下图

(三). ISE 工具栏_下半部分

Create Schematic Symbol:将当前源文件创建成一个原理图模块,可以被其他原理图模块调用。如图在这里插入图片描述View HDL Instantiation Template:查看当前源文件HDL例化模板,生成之后,其他工程可以直接调用这个模块,是很常用的功能。

1. Synthesize

在这里插入图片描述
View RTL Schematic:查看 RTL 视图,一般点击的选项,直接生成图片,如下在这里插入图片描述
在这里插入图片描述

2. Implement Design

综合完之后,就对工程进行编译等
在这里插入图片描述
Map:映射;
Place&Route:布局布线;

3. 创建UCF文件

Create Timing Constraints:创建时序约束文件(UCF 文件),一般用new_Source创建UCF约束文件,然后用这个运行
在这里插入图片描述
run完之后的效果如下图在这里插入图片描述
I/O Pin Planning (PlanAhead) - Pre-Synthesis:一般不用这个,而是直接用UCF写代码。运行效果如下图:在这里插入图片描述

二、ISE软件仿真

1.创建tb文件
在这里插入图片描述
2.编写代码



***************************************************************
以下为源程序代码
module flow_led(
    input               sys_clk  ,  //系统时钟
    input               sys_rst_n,  //系统复位,低电平有效
	 
    output  reg  [3:0]  led         //4个LED灯
    );
    
 而由源程序代码编写tb文件;input——>reg代替,output由wire代替 
***************************************************************
`timescale 1ns / 1ps //仿真的 时间单位/时间精度

module flow_led_tb;

 //input——>reg代替,output由wire代替 
	// Inputs
	reg sys_clk;
	reg sys_rst_n;

	// Outputs
	wire [3:0] led;

//创建激励
	// Instantiate the Unit Under Test (UUT)
	flow_led uut (
		.sys_clk(sys_clk), 
		.sys_rst_n(sys_rst_n), 
		.led(led)
	);
	
 //初始化语句,只执行一次
	initial begin  
		// Initialize Inputs
		sys_clk = 0;
		sys_rst_n = 0;

//等待100个时间单位,即100个1ns
		// Wait 100 ns for global reset to finish
		#100;     
        sys_rst_n = 1;//等待100ns之后,把复位信号拉高,不再复位

	// Add stimulus here
	end
//接下来给流水灯的时钟			
	//因为开发板的时钟是50MHz的,所以时钟周期为20ns,此处让时钟信号每10ns翻转一次,那完整的周期就是20ns,实现了模拟时钟周期的功能。
      always#10 sys_clk = ~sys_clk;
endmodule

然后运行,可以看到如下图在这里插入图片描述
额,其实这里出现过一个bug,如下图,在这里插入图片描述
整了好一会,最后错误出现在我仿真的时候选错了文件,选成了下面的设计文件,应该选上面的tb文件才对在这里插入图片描述

工具栏使用

1.运行方式
在这里插入图片描述
左边箭头为连续运行,右边箭头为步进运行,运行时间为后面的数字所示的时间。
2.移动光标
(黄线)在name先选择,然后没点击一次,黄线就会换一个节点;图示为在sys_clk上的
在这里插入图片描述

ISE与notepad++关联

edit——preference——Editors——custom——notepad++安装路径
注意在路径的首尾添加大括号 { }再加1个空格,之后输入 $1
(注意把路径中的右斜杠 \ 改成左斜杠 / ) 之后apply即可
在这里插入图片描述
在notepad++中修改代码后必须保存之后再到ISE中编译才有效!!

三、ISE生成bit流文件

点击Generate Programming File即可

下载bit流文件

点击Configure Target Device,在弹出的界面点击Boundary Scan再点击这个绿色的按钮
在这里插入图片描述
这个弹窗是为了让我们添加下载文件的,Yes之后添加bit流文件
在这里插入图片描述
添加完bit文件后,此弹窗是为了让我们生成固化文件,此处先不生成。点击No
在这里插入图片描述
下一个弹窗是为了让我们确认,点击OK。最后,双击program即可
然后,点击

四、ISE下载固化文件

1.生成固化文件 .msc

在这里插入图片描述
16Mbit 注意是Mbit,除以8才是 M字节 ,但是选择的时候选16M
输出文件存储在prj的工程名文件夹中。
然后依据弹窗添加bit流文件。MCS文件就是在bit流文件的基础上通过一些算法生成的。
在这里插入图片描述
这个选择No。然后点击Generate。
在这里插入图片描述
来到这步之后一定要点generate才能真正生成。

2.下载固化文件

在这里插入图片描述
重新添加bit流文件,然后这次弹窗选择Yes,添加msc文件,之后选择flash型号,这要依据开发板,此处选择M25P16。之后选择Flash,对其进行program,需要等待一段时间。
当断电重启的时候,需要等一段时间才能正常运行,这是生成bit流文件的时候属性导致的,修改方法如下:在这里插入图片描述
在这里插入图片描述
把这个设大一点,比如22,然后重新再来一遍,就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值