VHDL的语句常见错误分析
2012-06-21王延斌冯光升马春光
电气电子教学学报 2012年4期
赵 靖,王延斌,冯光升,马春光
(1.哈尔滨工程大学计算机学院,黑龙江 哈尔滨 1500012.哈尔滨工业大学机电学院,黑龙江 哈尔滨 150001)
在“VLSI及硬件描述语言”课程中,用VHDL语言描述系统硬件行为时,按语句执行顺序对其进行分类,可以分为顺序(Sequential)描述语句和并发(Concurrent)描述语句。顺序描述语句只能再现在进程(Process)或子程序(Subprogram)中,由它定义进程或子程序所执行的算法[1,2]。并发描述语句执行没有先后顺序,定义相互关联的模块和进程从而描述设计的行为或结构,但是它不能出现在上述的两处[2]。
教师对这两种描述语句进行讲解的过程中,常会只偏重介绍各种语句的用法,却忽视了其应用场所。笔者认为,在对变量和信号的教学中,除了强调变量赋值的立即性外,还要重视其初始化的方法与时刻。在循环体中涉及到对信号和变量的赋值情况,对信号进行多次赋值,只有最后一次生效。
1 顺序与并发描述语句
如果顺序与并发描述语句的书写格式正确但位置出错,则会出现语句错用的情况。将顺序描述语句书写在 architecture里,将并发描述语句书写在process里。我们在教学中以三八译码器为例,用选择语句可以实现对三八译码器的描述。程序一使用并发描述语句WITH SELECT实现。程序二使用顺序描述语句CASE实现。关键点在于,顺序描述语句书写在process内部,且其有相应的敏感变量。
Process的重要应用就是用来描述寄存器,即以时钟为敏感变量且进行上升/下降沿判断。若不进行时序功能的描述(如本例中的三八译码器),则在process内部的顺序描述语句CASE和并发描述语句WITH SELECT在功能上是完全相同。……
登录APP查看全文
