原创 ISE中VHDL test bench模板的错误及修改

2011-3-17 11:33 4077 8 9 分类: FPGA/CPLD

Xilinx的FPGA设计有一套自己的开发工具——ISE。ISE功能强大,其中最重要一个就是它里面自带了大量的程序模板,使得设计人员不需要自己手动敲一些重复的代码。但本人在使用ISE时偶然发现了其中VHDL testbench模板中的一个错误,这也是一般设计人员在编写VHDL代码时容易犯的错误。当我们对模板进行修改后,进行仿真,会发现出现错误,如下图:

c7f14e3b-59a1-43be-b3fe-42b1dcc0b1b3.jpg


可见,在CONSTANT常量的定义处出现错误!

74a8f638-8fa5-4e36-84b3-9f86e42fb676.jpg


这是ISE中VHDL testbench模板自动生成的部分代码,其中红框部分——这句代码的目的在于定义一个TIME类型的常量<clock>_period,也就是将时钟周期定义为一个常量。但很明显,此处有两个错误:


1、常量的定义不能在ARCHITECTURE内部,应该在BEGIN之前。这是很常见的错误。这个错误类似于C语言与C++之间的区别一般,C++中的变量定义可随时定义,即不需要统统都定义在函数开头,而C语言只允许变量在开头定义。VHDL中也一样,信号量、变量、常量等都定义在结构体开始前,所以此处<clock>_period应该定义在结构体的BEGIN前面。


2、<clock>_period的定义没有指定数据类型。因为TIME类型与其它数据类型之间的转换是比较麻烦的,所以此处应该对<clock>_period这个常量指定数据类型。如下:


constant <clock>_period : time := 1ns;


这样修改后再进行语法检查便不再有错误了。

6e01fcc0-7098-4abe-9834-c20e8a46da11.jpg

文章评论1条评论)

登录后参与讨论

用户1593128 2011-6-27 17:07

错误图看不清楚,该图能不能发到我邮箱,zxh@e-works.net.cn
相关推荐阅读
jlx_cuc 2014-06-06 18:19
你真的会socket编程吗(1)
最近的项目都围绕着TCP socket在进行着,VC下的socket,Linux下的socket,感觉很简单,但是却发现其实下面的几个同事对于socket这个东西还只是“会”,但并不一定懂。 ...
jlx_cuc 2014-05-16 18:44
操作系统-读书笔记(1)
最近在业余阅读时找到一本《自己动手编写操作系统》觉得不错,视角很新颖,是有关操作系统书籍中为数不多的看了不想睡觉的读本。   由于这本书的出版时间较早,书中引导盘还使用的是软盘,所以在跟随...
jlx_cuc 2014-05-08 17:13
“改变”后的一丝体会
有两个月没写博客了,现在正是开学之际,有必要对前面两个月的工作做做记录。   经历过从北京到苏州的工作地点转换,生活和工作上的体会和收获颇丰。到苏州来以后会觉得,原来的一些看法还是太过狭隘...
jlx_cuc 2014-05-08 17:13
最终我又不要脸的回来了——成为一名“管理者”后的心得
之前的很长一段时间都没再更新过这个博客,一直在EDN潜水,一直在做伸手党。原因有两个,一个是忙,一个是懒。 最终我还是不要脸的回来了。还是想以后好好把这个博客经营下去,也好等咱们的娃长大了给它...
jlx_cuc 2013-07-11 17:13
【博客大赛】写给“即将入学”的硕士研究生们
原本题目定的是《写给即将入学的硕士研究生们》,后来想了想便加上了双引号。先来说说这个双引号。   早在一个多月前全国考研的最后结果便出来了,对于考上研的同学们来说,马上就要开始自己的研究生...
jlx_cuc 2013-04-08 23:22
【博客大赛】老罗和他的锤子之我的见解
事先说明,个人感觉我的观点还算是中立观点,并不是要感叹老罗和锤子有多好,也不想批评它们是否一无是处。只是想在时隔这么就没来EDN,恰巧又遇到锤子的发布这个时间点,发表些个人的感想和见解。 ...
我要评论
1
8
关闭 站长推荐上一条 /2 下一条