VHDL中,有哪些命令不能综合的?可以详细的讲讲么?如果能对照Verilog就最好不过了。
1个回答
展开全部
具体的记不清,不能综合的语句多是用来仿真的,比如wait for 600ms,这个可以用来做仿真,但是不能被综合成实际的电路。
因为实际的电路不懂得怎么去等600ms,这是人在想,想让某个信号等待一段时间后变化,但是要让电路实现你就得用计数器去数或者用某些其他合适的信号去控制它,就得写一堆代码来构建出一个电路来实现等待600ms的功能。
其他不能被综合的语句也是基于同样的原理,所以哪些代码不能被综合一般都能够判断出来,自己想想实现的原理就明白了。
VHDL大多数语句还是可以被综合的。各种信号和变量类型的声明,结构,运算,条件语句等都是用来设计实际产生的电路的,都是可以被综合的。
procedure属于我上面提到的结构类的语句,它和process,architecture之类的都是可以被综合的,但它里面包含的语句不一定是能被综合的。
比如写一个test bench,里面的process或者procedure里就可以有wait for 600ms这类的语句,这句就不能被综合。
但是如果procedure里没有包含这类的语句,那就可以被综合为一个实体了。
重在理解,多实践。
因为实际的电路不懂得怎么去等600ms,这是人在想,想让某个信号等待一段时间后变化,但是要让电路实现你就得用计数器去数或者用某些其他合适的信号去控制它,就得写一堆代码来构建出一个电路来实现等待600ms的功能。
其他不能被综合的语句也是基于同样的原理,所以哪些代码不能被综合一般都能够判断出来,自己想想实现的原理就明白了。
VHDL大多数语句还是可以被综合的。各种信号和变量类型的声明,结构,运算,条件语句等都是用来设计实际产生的电路的,都是可以被综合的。
procedure属于我上面提到的结构类的语句,它和process,architecture之类的都是可以被综合的,但它里面包含的语句不一定是能被综合的。
比如写一个test bench,里面的process或者procedure里就可以有wait for 600ms这类的语句,这句就不能被综合。
但是如果procedure里没有包含这类的语句,那就可以被综合为一个实体了。
重在理解,多实践。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询