混合设计描述方式

在模块中,结构的和行为的结构可以自由混合。也就是说,模块描述中可以包含实例化的门、模块实例化语句、连续赋值语句以及 always 语句和 initial 语句的混合。它们之间可以相互包含。来自 always 语句和 initial 语句(切记只有寄存器类型数据可以在这两种语句中赋值)的值能够驱动门或开关,而来自于门或连续赋值语句(只能驱动线网)的值能够反过来用于触发 always 语句和 initial 语句。

下面是混合设计方式的 1 位全加器实例。

module FA_Mix (A, B, Cin, Sum, Cout);
input A,B, Cin;
output Sum, Cout;
reg Cout;
reg T1, T2, T3;
wire S1;

xor X1(S1, A, B); // 门实例语句。

always
@ ( A or B or Cin ) begin // always 语句。
T1 = A & Cin;
T2 = B & Cin;
T3 = A & B;
Cout = (T1| T2) | T3;
end

assign Sum = S1 ^ Cin; // 连续赋值语句。
endmodule

只要 A 或 B 上有事件发生,门实例语句即被执行。只要 A 、 B 或 Cin 上有事件发生,就执行 always 语句,并且只要 S1 或 Cin 上有事件发生,就执行连续赋值语句。

 



  Verilog HDL简介|

Copyright © 2005-2008 All Rights Reserved
ARM开发板网 版权所有