组合逻辑设计要点
组合逻辑的两种Verilog HDL表示:
-用 assign 语句:
assign q = (al==1?) d : 0 ;
-用 always 块:
always @(al or d)
begin
if (al==1) q = d ;
else q = 0;
End
用always块时,必须注意电平敏感的信号表是否完全,如:
always @ (a or b or c or d )
begin
out = (a & b & c) | (d & e);
end
此时生成的不是纯组合逻辑,因为当 e 变化时,out 不
能立即跟着变化。只有当a 或 b 或 c 或 d 变化时e 的
变化后果才显示出来。可见需要有一个寄存器来储存 e
的变化。
组合逻辑举例之一
一个八位数据通路控制器
`define ON 1 ‘b 1
`define OFF 1 ‘b 0
wire ControlSwitch;
wire [7:0] out, in;
assign out = (ControlSwith== `ON) ? in : 8 ‘h00