这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » ISE入门三部曲

共9条 1/1 1 跳转至

ISE入门三部曲

专家
2013-08-28 16:14:51     打赏

  写在前面的话

      本文引用地址:http://www.eepw.com.cn/article/159138.htm

  本着方便后来人,不用那么苦逼的去看英文资料,可以更快的入门,同时也为了这接近一年的时间天天写Verilog作结,马上就要去上一年课了,不用再写代码,也不用再熬夜咯。为了方便阐述,以一个简单的8路选择器作为例子。

  初识ISE

ISE入门三部曲

  如图 1所示为ISE的主界面(版本为ISE14.4 P.49d),和大多书编译环境一样,在界面的下方是软件的信息栏,包括了控制台信息(里面包含了你所见工程的所有信息),错误信息,警告信息,还有查询信息。如果你发现我们的界面不一样,可以通过查看菜单栏中 View -> Panels 选择显示这些信息或者不显示这些信息,如图 2所示。

ISE入门三部曲

  8路选择器第一步

  首选要做的就是新建工程,请看图3,File -> New Project ,然后在弹出的对话框中选择文件存放的位置,以及文件的名字,如图4所示。需要注意的是文件存放的位置不能有中文路径,工程的名字也不能有中文,且首字符不能为数字,那么我们将我们的工程命名为Test8to1,顶层模块的类型选择HDL(hardware Description Language 硬件描述语言)。然后点击Next。

ISE入门三部曲



关键词: ISE     8路选择器     Verilog     工程建立     入门    

专家
2013-08-28 16:16:57     打赏
2楼
ISE入门三部曲

  现在进入工程设置界面,选择你使用的器件,这里只是演示如何使用ISE,不用下载程序到真实的开发板中,器件可以随便选择,只要逻辑资源能够满足你的要求即可。这里选择Virtex6的XC6VSX475T,封装为FF1156,速度为-1,仿真工具选择ISE自带的ISim(VHDL/Verilog),设计语言选择Verilog,如图5所示,然后点击Next,将出现工程的一个总结,可以看到刚刚配置的信息,如果发现有误,可以点击Cancel,重新建立工程,如果没有错误点击Finish,我们的工程就建立完成了。

  此时的软件界面如图6所示,

ISE入门三部曲

专家
2013-08-28 16:19:44     打赏
3楼

  8路选择器第二步

  新建文件:在菜单栏中 Project -> New Source,弹出如图7所示的的对话框,选中Verilog Module并输入文件的名字(首字符不能为数字),并点击next,进入模块设置对话框。

ISE入门三部曲

  在模块对话框中,可以设置模块的输入和输出,不过都不是必须的,可以直接在新建的文件中输入即可,这里就直接点击Next(图8),接着点击Finish,这样刚刚新建的文件就完成了,此时ISE的软件界面如图9所示。

ISE入门三部曲

专家
2013-08-28 16:22:08     打赏
4楼

  现在就可以在文件的编辑窗口中输入你的代码了,需要设计的是一个八路选择器,代码如下:

ISE入门三部曲

  编写完代码后就需要测试代码是否正确,首选需要做的是,检查代码是否具有语法错误。一般如果有严重的语法错误,比如begin缺少end等会直接在控制台信息中显示,点击到相应的错误,即可定位到相应的行,还有一些错误,编译器没法直接检测出来,则需要主动的点击 Synthesize – XST 中的 Check Syntax,如图10所示,双击Check Syntax,Check完后在控制台信息栏将出现结果,如果没有错误,将出现如图11所示的界面,且Check Syntax前面将有一个绿色的对勾。

ISE入门三部曲

  此时我们的设计基本结束,现在需要做的就是开始检验写的代码是否实现了我们所需的功能。

  8路选择器第三步

  双击Synthesize – XST开始做综合,如果没有错误,综合成功后在Synthesize – XST的前面也会出现一个绿色的对勾。如图12所示

ISE入门三部曲

专家
2013-08-28 16:23:30     打赏
5楼

  此时我们可以查看RTL级的原理图,双击 View RTL Schematic,并选择Start With a schematic of the top-level block,点击OK如图13所示,然后将出现一个模块,上面有我们写的输入输出。

ISE入门三部曲

  双击模块,将出现如图14所示的原理图,查看原理图,可以查看原理图是否与自己的设计一致,利于检查连线错误等。如果逻辑比较简单,查看原理图即可知道设计的目标是否达到,例如本例中的8路选择器,从综合生成的原理图可以看出,正常情况(Reset_n信号无效)是一个8路选择器,复位时输出为零;当逻辑比较复杂时,原理图庞大,无法仔细去比对是否达到自己的目的,此时就需要进行软件仿真。

ISE入门三部曲

  那么我们首先编写TestBench程序,点击菜单栏的Project(或者右键单击到工程的文件),NewSource 选择 Verilog Test Fixture,输入文件名TestModule ,点击Next,选择要关联的源文件,这里只有一个源文件 Test8to1,如果有多个源文件,则需选择对应的需要仿真的文件,然后点击Next。

ISE入门三部曲

专家
2013-08-28 16:26:53     打赏
6楼

  点击Finish就完成了仿真文件的建立,ISE会帮助你将测试模块与被测模块建立好连接,并给出初始化代码,在文件中添加进自己的测试代码,示列代码如下:

ISE入门三部曲

  同编写程序一样,编写完成后也需要检查是否有语法错误,点击 Behavioral Check Syntax(如果在建立项目时,选择的不是Isim,将不会出现图16所示的界面,即无法检查语法错误),如果没有语法错误则会出现一个绿色的对勾,如图16所示,此时距离胜利只剩一步了。

ISE入门三部曲

  双击 Simulate Behavioral Model,将进入ISE自带的仿真软件,如图17所示,从波形图中可以清楚的看到自己写的程序是否达到了自己所需的功能要求,当然也可以利用Isim进行断点调试,查看中间变量是否正确,也可以利用Isim查看用IP核生成的存储器内部的值。Isim虽然是ISE自带的仿真软件,与专业的仿真软件还有一定距离,但是不可否认的是Isim很方便快捷,很多时候利用Isim进行仿真已经完全足够了。

  如果你只是完成一个功能任务,不用下载到硬件板卡上,仿真结果也是正确的,那么此时你的任务已经完成了,深深的祝福你,完成了任务哈。

  如果需要下载到硬件平台上,下一步需要建立引脚约束文件(即将模块的输入和输出连接到真实的引脚上),然后生成bit文件,下载到板卡上即可。

ISE入门三部曲

  在编写Verilog时常见的错误如下:

  写了begin,忘了写end,检查时将代码的缩进调整好,每一级都有不同的缩进,这样一眼就看出哪里少了end。

  case语句少了endcase,这个地方比较容易遗忘,一旦少了endcase,endcase之后的语句都会报语法错误(Syntax error),如果只是根据编译器提示的错误行,那就没法找到错误了,编程的时候习惯一定要好,写一个case,顺便就把,default和endcase都写上吧。

  if语句少了else,这个和第二错误类似,else之后的语句都会报语法错误,加上else之后,错误全都没有了。

  输入了中文标点符号,如逗号和分号,这个时候一般错误只定位到一行上,你可能觉得没有错误,不妨把这行删掉再写一次试试。

  信号没有初始化,仿真是全是x,一个原因是真的没有初始化,ISE定义的一个信号,如果不给初始值的话,默认就是x;另外一个原因是,模块与模块之间连线没有连上,如果一个模块的信号不是和顶层连在一起而是和另外一个模块连接在一起,则需要再定义,否则是没有连上的。笔者曾经因为犯了这个错误,仿真时一直没有信号输出,苦恼了很久的。

  阻塞赋值和非阻塞赋值用在了同一个always里面,这个是不允许的,阻塞(=)赋值是执行完了这一句才会执行下一句,非阻塞(<=)赋值是整个always都跑完了才执行。不过这个错误比较容易找,ISE报错时会定位到相应的行。


助工
2013-11-06 22:29:05     打赏
7楼
感谢楼主分享

菜鸟
2014-02-24 20:01:08     打赏
8楼
谢谢楼主

高工
2014-02-25 22:42:42     打赏
9楼
ISE没用过,学习了。

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]