eugen_pcad_ru
Значение disp_dat состоит из 4 бит и чисто физически может принимать значения от 0h до Fh. Все 16 состояний у меня описаны и последовательно отрабатываются. Это видно по приложенной к первому сообщению картинке - все значения строго от 0h до Fh.
Я слышал, что в Verylog бывают неопределённые состояния... Даже если предположить, что в disp_dat могло попасть другое значение, оно было бы проигнорировано, т.к. не подходит ни под одно из условий CASE.
Для верности, дописал обработку для значения default, запустил на отладочной плате, но ничего не поменялось.
andrew_b
Каждый раз, когда меняется значение count[24], в disp_dat заносятся 4 бита count[28] - count[25].
Можно заменить count[24] на count[25] или на posedge clock, на конечный результат в данном случае это никак не повлияет.
И ещё, Verilog пишет следующее предупреждение, касательно dig: Warning (13012): Latch dig[0]$latch has unsafe behavior
Нашёл статью по теме: https://marsohod.org/verilog/155-verilogmux
Но всё равно пока не могу понять, как значения могут меняться на самопроизвольные, если я конкретно описал нужные мне случаи и значения?