/* verilator lint_off LITENDIAN */ module m706( ad2, // mb03_ ae1, // mb04_ ae2, // kcc_ af1, // mb05_ af2, // keyboard_flag ah1, // mb06_ ah2, // mb07_ aj1, // mb08_ aj2, // tti3_set ak1, // ak2, // al1, // al2, // iop4 am1, // am2, // an1, // tti_clk_in an2, // ap2, // ar1, // tti0_set ar2, // as2, // at2, // au2, // av1, // av2, // reader_run_clr_ bd1, // clr_flag bd2, // iop1 be2, // bf2, // initialize bh2, // bj2, // iop2 bm2, // rx_data bn2, // br1, // enable br2, // in_stop bs1, // bt2, // bu1, // clock_scale_in bu2, // bv2 // ); input ad2, ae1, af1, ah1, ah2, aj1; assign { mb03_, mb04_, mb05_, mb06_, mb07, mb08 } = { ad2, ae1, af1, ah1, ah2, aj1 }; input aj2; assign tti3_set = aj2; input bd2, bj2, al2; assign { iop1, iop2, iop4 } = { bd2, bj2, al2 }; input av2; assign reader_run_clr_ = av2; input bf2; assign initialize = bf2; input an1; assign tti_clock_in = an1; // s//ynthesis attribute CLOCK_SIGNAL of tti_clock_in is "yes"; input ar1; assign tti0_set = ar1; input bm2; assign rx_data = bm2; // Serial input input bd1; assign clr_flag = bd1; input br1; assign enable = br1; input bu1; assign clock_scale_in = bu1; // s//ynthesis attribute CLOCK_SIGNAL of clock_scale_in is "yes"; input br2; assign in_stop_ = br2; wire tt_ac_clr_; wire kcc_; reg keyboard_flag; wire tti_skip_; reg [0:2] tti02; reg [3:7] tti37; wire [0:7] tt_; reg reader_run; reg [2:0] clock_scale; reg [1:2] in_stop; reg spike_detector; reg in_active; reg in_last_unit; wire start_enable; wire spike_; wire active_clear_; wire mb03_, mb04_, mb05_, mb06_, mb07, mb08; wire tti3_set; wire iop1, iop2, iop4; wire initialize, tti_clock_in, tti0_set, rx_data, clr_flag; wire enable, clock_scale_in, in_stop_, keyboard_select; wire tti_shift, tti_shift_, preset_, active_clock, krs; wire reader_run_clr_; output ae2; assign ae2 = kcc_; output af2; assign af2 = keyboard_flag; output ak1; assign ak1 = tti02[2]; output ak2, ar2, as2, al1, am1, ap2, at2, an2; assign { ak2, ar2, as2, al1, am1, ap2, at2, an2 } = tt_; output au2; assign au2 = ~reader_run; output av1; assign av1 = al2 & keyboard_select; output be2; assign be2 = tt_ac_clr_; output bh2; assign bh2 = tti_skip_; output am2; assign am2 = ~rx_data; output bs1, bt2; assign { bs1, bt2 } = { ~clock_scale[2], clock_scale[2] }; output bu2, bv2; assign { bu2, bv2 } = ~in_stop; output bn2; assign bn2 = ~in_active; assign keyboard_select = mb03_ & mb04_ & mb05_ & mb06_ & mb07 & mb08; assign tt_ac_clr_ = (keyboard_select & iop2); // KCC instruction assign kcc_ = tt_ac_clr_ & ~initialize & ~clr_flag; assign tti_shift = in_active & clock_scale_in; assign tti_shift_ = ~tti_shift; assign start_enable = ~in_active & ~in_last_unit; assign preset_ = ~(tti_clock_in & start_enable & rx_data & enable); always @(posedge tti_clock_in, posedge start_enable) begin if (start_enable) clock_scale <= 0; else clock_scale <= clock_scale + 1; end always @(posedge clock_scale_in, negedge preset_) begin if (~preset_) in_stop <= 0; else in_stop <= { in_active, in_stop[1] }; end assign spike_ = ~(tti_shift & spike_detector & ~rx_data); assign active_clear_ = ~initialize & spike_; assign active_clock = tti_shift_ & in_last_unit; always @(posedge active_clock, negedge active_clear_, negedge preset_) begin if (~active_clear_) in_active <= 0; else if (~preset_) in_active <= 1; else in_active <= 0; end always @(posedge tti_shift_, posedge initialize, negedge preset_) begin if (initialize) spike_detector <= 0; else if (~preset_) spike_detector <= 1; else spike_detector <= 0; end always @(negedge reader_run_clr_, negedge preset_) begin if (~reader_run_clr_) reader_run <= 1; else reader_run <= 0; end assign tti_skip_ = ~(keyboard_select & iop1 & keyboard_flag); always @(posedge tti_shift, negedge preset_) begin if (~preset_) { tti02, tti37 } <= ~0; else begin tti02 <= { tti0_set, tti02[0:1] }; { tti37, keyboard_flag } <= { tti3_set, tti37 }; end end assign krs = keyboard_select & iop4; // KRS instruction assign tt_ = krs? { ~tti02, ~tti37 } : ~0; always @(posedge tti_shift, negedge in_stop_) begin if (~in_stop_) in_last_unit <= 0; else in_last_unit <= ~tti37[7]; end endmodule