Да, интересно.
На модели Async не подтверждается, пробовал разные режимы снятия/установки RPLY.
На реальном процессоре 1801ВМ1А тоже не подтверждается:
RPLY синхронизирован по спаду CLC []
RPLY синхронизирован по фронту CLC []
Диаграмма снималась на БК-0010, вспомнилось что там схема RPLY не на ТМ2 сделана, там 155ИР1 стоит на синхронизацию RPLY, надо достать ту плату и восстановить реальную схему.
Посмотрел уравнения:
Получается такое - DIN снимается по второму RPLY на фронте CLC, что наблюдается на диаграмме. Значит был активен din_done и qbus_done, qbus_flag очистился. oe_clr не активируется. А потом оно ждет снятия RPLY (комбинации ~rply_ack[0] & rply_ack[2]), тут видимо снятие RPLY на процессор не успело поступить через схему синхронизации, другого варианта для такой диаграммы я не вижу.Код:always @(*) begin if (~slk) sync_out <= qbus_win_h; if (slk) qbus_win_h <= qbus_win; end always @(*) begin if (oe_clr) qbus_win <= 1'b0; else if (dmr_req_l & qbus_gnt_l) qbus_win <= 1'b1; end assign oe_clr = mj_res | (~rply_ack[0] & rply_ack[2] & ~qbus_flag); assign qbus_done = (din_done & ~plrt[7]) | dout_done | mj_res; assign din_done = din_out_l & rply_ack[3]; always @(*) begin if (qbus_done) qbus_flag <= 1'b0; else if (sync_fedge) qbus_flag <= 1'b1; end always @(*) begin if (~slk) rply_ack[0] <= (pin_rply_in & pin_bsy); if ( slk) rply_ack[1] <= rply_ack[0]; if (~slk) rply_ack[2] <= rply_ack[1]; if ( slk) rply_ack[3] <= rply_ack[2]; end
Упдата: RPLY на диаграмме формировался РЕ-мулятором (уже и не вспомнить с какой версией циклограмм), точный момент плавает на 10-30нс, так что вариабельность вполне возможна.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

