snifer

【赛灵思FPGA】[原创]基于Xilinx FPGA ISE软件教程

0
阅读(4536)

一直热衷于Xilinx FPGA 的基础性工作,最喜欢用的一款软件就是 ISE,今天给大家一起探讨一下这款软件的使用。

(一) 软件安装

       安装Xilinx公司的WebPACK_63_fcfull_i,读者也可以到xilinx公司的网站上去下载最新的ISE版本。

 (二) 实验步骤:

下面以实验2的运算器做为例子介绍一下ISE的使用:

1. 单击“开始->程序->Xilinx ISE6->Project Navigator”,进入ISE 软件。

2. 选择File->New Project…,出现如图所示的窗口。我们先选择工程存放的路径,然后输入工程名称。系统自动为每一个工程设定一个目录,目录名为工程名。再选择顶层模块类型为HDL。

3. 单击“下一步”,出现如图所示的窗口,在该窗口中来选择设计实现时所用的器件。在这里的选择与目标板上的FPGA 必须一致,否则生成的下载文件无法配置到FPGA 中。此处若选择错了,也没有关系,因为后面可以随时修改这些设置。其中DeviceFamily 表示目标器件的类型;Device 表示目标器件的具体型号;Package 表示器件的封装;SpeedGrade 表示器件的速度等级。此处选择器件为Spartan2,xc2s200,PQ208,-5。Generated Simulation Language选择Verilog。

4. 因为这里我们重新编写Verilog 源代码,而不是使用以前设计好的源代码,故再单击“下一步”,“下一步”,单击“完成”,工程创建完毕。

5. 这时的界面如图 所示。

这里需要关注的是界面左上角出现的小框为我们所有的源文件的管理窗口,在其下面的窗口为我们选择不同的源文件时其所有可能操作的显示窗口;右半部分窗口为我们设计输入代码的窗口;下面的窗口为编译等信息的显示窗口。我们可以在输入不同文件后选中不同的文件,看看进程窗口中的变化。这样,新建了一个工程,下一步就要在工程中输入一些设计文件来实现我们的设计。

6. 选择Project->New Source;(或在Sources in Project 窗口中单击鼠标右键选择“New Source…”)出现如图 所示的窗口;选择Verilog Module作为新建源文件的类型;在文件名中键入“arith”;

                   

7. 单击“下一步”;“下一步”;单击“完成”,完成这个新源程序的创建。如图所示。

 

8. 我们把输入源文件内容如下:

module arith(a, b, op, result);

       input [3:0] a, b;

       input [2:0] op;

       output [3:0] result;

       reg result;

       always @(a, b, op)

       begin

              case (op)

              3'b000 : result = a + b;

              3'b001 : result = a - b;

              3'b010 : result = a & b;

              3'b011 : result = a | b;

              3'b100 : result = a ^ b;

              default : result = 4'hx;

              endcase

       end

endmodule

9.点击保存所有文件,下面开始编译一下看有没有错误。我们在Sources inProject: 窗口中选中arith(arith.v) ,在Processes for Source:“arith”窗口中双击Synthesize – XST,如果编译没有问题,我们继续往下进行设计。

10. 为设计添加约束文件,约束文件的作用是把设计中的外部端口与目标板上具体的芯片引脚对应起来,我们点击Project->New Source…,会出现一个新建源文件的窗口,我们选择新建文件类型为Implementation Constraints File,文件名为arith.ucf,在Add to Project 前打勾,表示将该文件添加到工程中,点击下一步,选中与“arith”关联,直接点击下一步,这时候出现刚刚新建的文件的一些信息,我们点击完成。

11. 在Sources in Project:窗口中选中myucf.ucf,在Processes for Source: arith.ucf”窗口中点击UserConstraints 前面的加号以展开它,再双击下面的EditConstraints (Text),这时候会出现以文本方式来编译约束文件的窗口,我们在其中输入如下内容:

net a<0> loc = p126;

net a<1> loc = p123;

net a<2> loc = p121;

net a<3> loc = p119;

 

net b<0> loc = p114;

net b<1> loc = p112;

net b<2> loc = p110;

net b<3> loc = p108;

 

net op<0> loc = p102;

net op<1> loc = p100;

net op<2> loc = p98;

 

net result<0> loc = p205;

net result<1> loc = p203;

net result<2> loc = p201;

net result<3> loc = p199;

12. 点击保存所有文件,下面就开始具体的实现了,我们在Sources in Project:窗口中选中arith(arith.v),在Processes for Source: “arith”窗口中双击Generate Programming File,运行完毕后会产生编程文件。

13. 下面就开始将设计文件下载到FPGA 了,我们使用并口线或下载电缆将目标板与电脑并口相连,接上的电源,在Processes for Source: “arith”窗口中点击GenerateProgramming File 前的加号展开它,再双击下面的Configure Device (iMPACT),这时候会打开iMPACT 的窗口,并出现对话框提示我们配置器件,我们直接点击下一步,这时出现选择边界扫描模式,我们直接按照缺省模式点击完成,这时候如果正常将出现边界扫描模式总结信息的对话框,提示找到了两个器件,我们点击“确定”。

14. 这时候出现为目标器件选择下载文件的对话框,我们双击arith.bit 以其作为下载文件。(如果没有出来该对话框,可以在FPGA 器件的图标上点击右键,并选择“Assign New Configuration File”)

15. 接下来会有警告信息提示开始时钟已经更改为Jtag 时钟,我们直接点击确定就行了。

16. 下面就开始下载了,我们在FPGA 器件的图标上点击右键,并选择rogram…,这时候会出现编程选项设置的窗口,我们直接点击OK,系统开始自动下载设计文件到FPGA 中,如果编程正确,则出现Programming Succeeded 提示。

 好了,开始Xilinx FPGA的快乐旅程吧,不要忘记给我投票哦,谢啦

-----------------------版权所有,盗链必究-----------------------------