Цитата Сообщение от Titus Посмотреть сообщение
ВМ3 - это уже КМОП или еще НМОП?
Все тот же n-МОП.

- - - Добавлено - - -

Цитата Сообщение от gid Посмотреть сообщение
Vslav, вот есть такая штука "always @(posedge pin_clk_p)", в ней регистр mjres меняет своё значение, допустим с 0 на 1.
Как в таком случае должен выполняться "always @(posedge pin_clk_p or posedge mjres)"? Сперва часть кода в соответствии с "posedge pin_clk_p", как и для предыдущего alwaysа, а затем в этой же итерации - часть кода в соответствии с вновь возникшим "posedge mjres", затирая результаты выполнения этого alwaysа для "posedge pin_clk_p" или всё таки обрабатывать "posedge mjres" в следующей итерации?
При положительном фронте clk_p для always @(posedge pin_clk_p or posedge mjres) надо сначала обработать событие положительного фронта. Там в блоке стоит обычно сразу if (mjres), если он ненулевой на момент наступления фронта, то объект и останется в сбросе. Если же mjres нулевой, то отрабатывается смысловая часть объекта, на выходе получается набор каких-то значений, которые еще не перенесены в основное состояние, а находятся в промежуточном буфере, то есть оно ни на что еще не повлияло. Потом вычисляется mjres, и оказывается что его состояние изменилось с 0 в 1, и возникло событие posedge mjres, тогда снова обрабатывается объект, он переходит в состояние сброса, но значения на выходе опять-таки попадают в промежуточный буфер. Когда в процессе итераций всякие изменения закончились - можно считать что событие фронта clk_p полностью обработано, можно переносить новые состояния всех сигналов в постоянный буфер. Поэтому порядок обработки событий posedge pin_clk_p и posedge mjres никак не должен влиять на результат.

Еще есть особенность что новый mjres находится в промежуточном буфере и ни на что вроде бы не должен влиять, но поскольку он упомянут в posedge, то для него надо делать исключение. Там собственно всего четыре исключительных сигнала - reset, mjres, abort и qbus_tena (и в ВЕ-таймере еще парочка). Возможно их надо вычислить в начале обработки clk_p (они фиксируются по clk_p и более не изменяются), а дальше вычислять все остальное, учитывая новые значения 'исключительных'.