В текстовом описании на языке Verilog представлены два процедурных блока. Для каждого процедурного блока определите сколько будет синтезировано триггеров и нарисуйте синтезированную структуру
module labT (di1, di2, clk, do1, do2);
input clk, di1, di2;
output reg do1, do2;
reg tmp1, tmp2;
always @(posedge clk)
begin
tmp1 = di1;
do1 = tmp1;
end
always @(posedge clk)
begin
tmp2 <= di2;
do2 <= tmp2;
end
endmodule
Другие предметы Университет Синтез цифровых устройств на языке Verilog дискретные устройства Verilog синтез триггеров процедурные блоки синтезированная структура модуль labT clk do1 do2 tmp1 tmp2 входные сигналы выходные сигналы
В данном вопросе мы рассматриваем код на языке Verilog, который описывает модуль с двумя процедурными блоками. Давайте подробно разберем, сколько триггеров будет синтезировано и как будет выглядеть синтезированная структура.
Модуль называется labT и имеет следующие порты:
Теперь давайте проанализируем каждый из блоков always в этом модуле.
always @(posedge clk) begin tmp1 = di1; do1 = tmp1; end
Этот блок срабатывает на положительном фронте сигнала clk. Он присваивает значение di1 переменной tmp1, а затем значение tmp1 присваивается выходу do1. Поскольку do1 является регистром, этот блок фактически будет синтезировать триггер, который хранит значение di1.
always @(posedge clk) begin tmp2 <= di2; do2 <= tmp2; end
Этот блок также срабатывает на положительном фронте сигнала clk. Он использует оператор <=, что означает, что присваивание происходит с задержкой (неблокирующее присваивание). Значение di2 присваивается tmp2, а затем значение tmp2 присваивается выходу do2. Этот блок также будет синтезировать триггер, который хранит значение di2.
Таким образом, у нас есть:
В итоге, в данном модуле будет синтезировано два триггера.
Теперь давайте представим синтезированную структуру. Она будет представлять собой два D-триггера, которые принимают сигнал clk и имеют входы di1 и di2, а также выходы do1 и do2.
Синтезированная структура может быть представлена следующим образом:
Таким образом, структура будет состоять из двух D-триггеров, каждый из которых будет связан с соответствующими входами и выходами.