Инструкции постоянного присваивания
Постоянные присваивания обслуживают связи (тип данных wire). Они представляют структурную связность системы [являются проводниками]. Они используются:
- При моделировании трехстабильных буферов.
- При моделировании комбинационных схем.
- За пределами процедурных блоков (always и initial).
- Превалируют над любыми присваиваниями в процедурах.
- Левое значение оператора должно быть проводникового типа.
Синтаксис: assign (strength, strength) #(delay) net = expression;
Пример однобитовый сумматор
Verilog Code:
module adder_using_assign (); reg a, b; wire sum, carry; assign #5 {carry,sum} = a+b; initial begin $monitor (" A = %b B = %b CARRY = %b SUM = %b",a,b,carry,sum); #10 a = 0; b = 0; #10 a = 1; #10 b = 1; #10 a = 0; #10 b = 0; #10 $finish; end endmodule
Пример трехстабильный буфер
Verilog Code:
module tri_buf_using_assign(); reg data_in, enable; wire pad; assign pad = (enable) ? data_in : 1'bz; initial begin $monitor ("TIME = %g ENABLE = %b DATA : %b PAD %b", $time, enable, data_in, pad); #1 enable = 0; #1 data_in = 1; #1 enable = 1; #1 data_in = 0; #1 enable = 0; #1 $finish; end endmodule