Привет!
Назрела насущная задача: необходимо реализовать протокол dht11 на верилоге для симуляции датчика температуры и влажности.
Вот даташит на протокол: http://robocraft.ru/files/datasheet/DHT11.pdf
Собственно возникли следующие вопросы, тк я привык работать только с синхронной логикой и с синтезируемым кодом:
1) Как в асинхронной логике выдержать заданный промежуток времени? В реальной железке там скорее всего стоит собственный счетчик, который отмеряет время, но как быть в симуляции?
2) Как в симуляции сделать inout порт? При программировании для фпга я бы инстанциировал iobuf. Получится ли тут сделать что-то вроде
module test(
inout port
);
reg out = 0;
reg data = 1;
assign port = (out) ? data : 1'Z;
always @ ( inout )
begin
out = port;
end
endmodule