显示页面 讨论 修订记录 反向链接 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 assign过程连续赋值的使用规则如下。 - 对变量的assign过程连续赋值优先于(override)所有的其他过程赋值。 - deassign过程语句用于终止对此变量的assign过程连续赋值。 - 对变量做assign过程连续赋值时,变量的值就保持不变,直到通过过程赋值或过程连续赋值对这个变量赋一个新值。 例子:assign和deassign可以用来模拟D触发器的异步复位/置位(clear/preset)。 <code verilog> module dff (q, d, claer, preset, clock); output q; input d, clear, preset, clock; reg q; always @(clear or preset) if (!clear) assign q = 0; else if (!preset)assign q = 1; else deassign q; always @(posedge clock) q = d; endmodule </code> 如果clear或preset为0,那么输出q就保持为常数0或1(使用assign),posedge clock对q没有任何影响。当clear和preset都为1时,那么就取消assign过程连续赋值(使用deassign),然后posedge clock对q就有影响。