ошибкой является ситуация, в которой от этого состояния что либо зависит)
ничего подозрительного в этом нет. мне рассказывали, там непредсказуемо от многих физических факторов зависит состояние, но по факту оно объяснимо.
или простите, что значит выдать x:x??? нет такого состояния "x") неопределенное состояние в том что оно не определено, а не в том, что логика знает что оно "неопределенное")
PS прошивки не пишу, но приходится часто в отладке участвовать.
Так я и не пишу, что оно ошибочно, просто в начале опыта vvp показал, что способен на анализ неопределённых состояний, а потом как-то огорчил. Так-то Вы правы, даже мультивибратор, собранный из идеализированных компонентов запуститься не способен, и в реальной схеме всегда присутствует асимметрия. Строго говоря это означает, что две разные микросхемы при переходе из неопределённого состояния будут переключаться по разному, одной ближе будет "0", а другой "1".
Далее, существует некоторое различие между булевой алгеброй и физической аппаратурой. Естественно, модель, его описывающая, прорабатывается более тщательно, и помимо "0" и "1" вводятся дополнительные типы аргументов "х" - неопределёное, и "z" - высокоомное состояние. В контексте этого, таблицы операций также изменяются, например:
Из курса алгебры "И":
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
Из представлений HDL "И":
0 & x = 0
1 & 0 = 0
1 & 1 = 1
x & x = x
Собственно, что интересно: пользователем xilinx доступен анализатор vivado - существенно более продвинутый инструмент. Вот что покажет он?
Сейчас маленько занят, но попробую собрать более сложные виды тиггеров: D-latch и JK. Думаю, последний будет даже более показателен, но будет ли он работать при анализе? Естественно, что при реальной прошивке он может и запустится как надо, просто сопутствующий вопрос - это: могу ли я доверять программному анализатору и какому?