6、组合逻辑的两种赋值方式
由于数字电路由与导线连接的逻辑门组成,因此任何电路都可以表示为模块和分配语句的某种组合。但是,有时这不是描述电路的最方便的方法。过程(始终以块为例)为描述电路提供了另一种语法。
对于综合硬件,两种类型的始终块是相关的:
组合总是块等同于赋值语句,因此总有一种方法可以用两种方式表示组合电路。使用哪种选择主要是哪种语法更方便的问题。程序块内部代码的语法与外部代码不同。过程块具有更丰富的语句集(例如,if-then,case),不能包含连续的赋值*,但是还引入了许多新的非直观的错误处理方式。 (* 过程上的连续分配确实存在,但是与连续分配有些不同,并且不能综合。)
例如,分配和组合始终块描述了同一电路。两者都创建相同的组合逻辑块。每当任何输入(右侧)更改值时,两者都将重新计算输出。
assignout1 = a & b | c ^ d;
always @*out2 = a & b | c ^ d;