⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps2_keyboard_interface.fit.eqn

📁 键盘输入串口输出显示字符,通过串口显示键盘输入的字符
💻 EQN
📖 第 1 页 / 共 5 页
字号:

--B1L703 is ps2_keyboard_interface:inst|timer_60usec_count[6]~245 at LCCOMB_X9_Y7_N12
B1L703 = CARRY(B1_timer_60usec_count[6] & !B1L403);


--B1L903 is ps2_keyboard_interface:inst|timer_60usec_count[7]~246 at LCCOMB_X9_Y7_N14
B1L903 = B1_timer_60usec_count[7] & !B1L703 # !B1_timer_60usec_count[7] & (B1L703 # GND);

--B1L013 is ps2_keyboard_interface:inst|timer_60usec_count[7]~247 at LCCOMB_X9_Y7_N14
B1L013 = CARRY(!B1L703 # !B1_timer_60usec_count[7]);


--B1L213 is ps2_keyboard_interface:inst|timer_60usec_count[8]~248 at LCCOMB_X9_Y7_N16
B1L213 = B1_timer_60usec_count[8] & (B1L013 $ GND) # !B1_timer_60usec_count[8] & !B1L013 & VCC;

--B1L313 is ps2_keyboard_interface:inst|timer_60usec_count[8]~249 at LCCOMB_X9_Y7_N16
B1L313 = CARRY(B1_timer_60usec_count[8] & !B1L013);


--B1L513 is ps2_keyboard_interface:inst|timer_60usec_count[9]~250 at LCCOMB_X9_Y7_N18
B1L513 = B1_timer_60usec_count[9] & !B1L313 # !B1_timer_60usec_count[9] & (B1L313 # GND);

--B1L613 is ps2_keyboard_interface:inst|timer_60usec_count[9]~251 at LCCOMB_X9_Y7_N18
B1L613 = CARRY(!B1L313 # !B1_timer_60usec_count[9]);


--B1L813 is ps2_keyboard_interface:inst|timer_60usec_count[10]~252 at LCCOMB_X9_Y7_N20
B1L813 = B1_timer_60usec_count[10] & (B1L613 $ GND) # !B1_timer_60usec_count[10] & !B1L613 & VCC;

--B1L913 is ps2_keyboard_interface:inst|timer_60usec_count[10]~253 at LCCOMB_X9_Y7_N20
B1L913 = CARRY(B1_timer_60usec_count[10] & !B1L613);


--B1L123 is ps2_keyboard_interface:inst|timer_60usec_count[11]~254 at LCCOMB_X9_Y7_N22
B1L123 = B1L913 $ B1_timer_60usec_count[11];


--B1_m1_state.m1_rx_rising_edge_marker is ps2_keyboard_interface:inst|m1_state.m1_rx_rising_edge_marker at LCFF_X9_Y7_N25
B1_m1_state.m1_rx_rising_edge_marker = DFFEAS(B1L64, GLOBAL(C1L61),  ,  ,  ,  ,  ,  ,  );


--B1_ps2_data_s is ps2_keyboard_interface:inst|ps2_data_s at LCFF_X9_Y10_N17
B1_ps2_data_s = DFFEAS(UNCONNECTED_DATAIN, GLOBAL(C1L61),  ,  ,  , A1L6,  ,  , VCC);


--B1_m1_state.m1_tx_error_no_keyboard_ack is ps2_keyboard_interface:inst|m1_state.m1_tx_error_no_keyboard_ack at LCFF_X9_Y8_N29
B1_m1_state.m1_tx_error_no_keyboard_ack = DFFEAS(B1L72, GLOBAL(C1L61),  ,  ,  ,  ,  , !reset,  );


--B1_m1_state.m1_tx_done_recovery is ps2_keyboard_interface:inst|m1_state.m1_tx_done_recovery at LCFF_X9_Y8_N1
B1_m1_state.m1_tx_done_recovery = DFFEAS(B1L62, GLOBAL(C1L61),  ,  ,  ,  ,  , !reset,  );


--B1L44 is ps2_keyboard_interface:inst|m1_state~199 at LCCOMB_X9_Y10_N16
B1L44 = B1_ps2_data_s & (B1_m1_state.m1_tx_error_no_keyboard_ack # B1_m1_state.m1_tx_done_recovery) # !B1_m1_state.m1_rx_clk_h;


--B1L54 is ps2_keyboard_interface:inst|m1_state~200 at LCCOMB_X9_Y7_N28
B1L54 = reset & !B1_m1_state.m1_rx_rising_edge_marker & (!B1L44 # !B1_ps2_clk_s);


--B1L47 is ps2_keyboard_interface:inst|q~6029 at LCCOMB_X9_Y8_N10
B1L47 = reset & B1_q[1];


--B1L42 is ps2_keyboard_interface:inst|m1_next_state.m1_tx_clk_h~47 at LCCOMB_X9_Y8_N12
B1L42 = B1_m1_state.m1_tx_rising_edge_marker # B1_ps2_clk_s & B1_m1_state.m1_tx_clk_h & B1_tx_shifting_done;


--B1L82 is ps2_keyboard_interface:inst|m1_next_state.m1_tx_wait_clk_h~119 at LCCOMB_X9_Y8_N2
B1L82 = B1_ps2_clk_s & (B1_m1_state.m1_tx_clk_l # B1_m1_state.m1_tx_wait_clk_h & B1_timer_5usec_done) # !B1_ps2_clk_s & (B1_m1_state.m1_tx_wait_clk_h);


--B1L52 is ps2_keyboard_interface:inst|m1_next_state.m1_tx_clk_l~94 at LCCOMB_X9_Y8_N24
B1L52 = !B1_ps2_clk_s & (B1_m1_state.m1_tx_clk_l # B1_m1_state.m1_tx_clk_h & B1_tx_shifting_done);


--J1_tsr[3] is uart_if:inst3|uart:U1|txmit:u2|tsr[3] at LCFF_X26_Y21_N25
J1_tsr[3] = DFFEAS(J1L17, !GLOBAL(J1L71), !GLOBAL(B1L352),  , J1L36,  ,  ,  ,  );


--J1_tbr[2] is uart_if:inst3|uart:U1|txmit:u2|tbr[2] at LCFF_X27_Y20_N1
J1_tbr[2] = DFFEAS(J1L54, GLOBAL(E1L38), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--J1L07 is uart_if:inst3|uart:U1|txmit:u2|tsr~539 at LCCOMB_X26_Y21_N2
J1L07 = J1L23 & (J1_tsr[3]) # !J1L23 & J1_tbr[2];


--E1_din[1] is uart_if:inst3|din[1] at LCFF_X23_Y21_N19
E1_din[1] = DFFEAS(F1L7, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L86,  ,  ,  ,  );


--F1L3Q is data_buf:inst4|data_in_buf[0]~603 at LCFF_X23_Y21_N17
F1L3Q = DFFEAS(F1L2, GLOBAL(D1L14), !GLOBAL(B1L352),  , F1L1,  ,  ,  ,  );


--F1L4 is data_buf:inst4|data_in_buf[0]~605 at LCCOMB_X23_Y21_N10
F1L4 = B1_rx_released & (F1L3Q $ F1L2) # !B1_rx_released & (B1_rx_ascii[0]);


--E1_cnt[3] is uart_if:inst3|cnt[3] at LCFF_X49_Y14_N7
E1_cnt[3] = DFFEAS(E1L41, GLOBAL(D1L14), !GLOBAL(B1L352),  , E1L4,  ,  ,  ,  );


--E1_read_en is uart_if:inst3|read_en at LCFF_X24_Y23_N21
E1_read_en = DFFEAS(E1L97, GLOBAL(E1L51), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--E1_read_once is uart_if:inst3|read_once at LCFF_X23_Y23_N17
E1_read_once = DFFEAS(E1L18, GLOBAL(E1L51),  ,  , B1_rx_released,  ,  , E1_read_en,  );


--J1_tsre is uart_if:inst3|uart:U1|txmit:u2|tsre at LCFF_X25_Y23_N7
J1_tsre = DFFEAS(J1L66, !GLOBAL(J1L71), !GLOBAL(B1L352),  , !J1_no_bits_sent[1],  ,  ,  ,  );


--J1_tbre is uart_if:inst3|uart:U1|txmit:u2|tbre at LCFF_X24_Y23_N15
J1_tbre = DFFEAS(J1L55, GLOBAL(D1L14), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--E1L86 is uart_if:inst3|din[6]~63 at LCCOMB_X24_Y23_N24
E1L86 = !E1_read_once & !E1_read_en & !J1_tsre & !J1_tbre;


--B1L062 is ps2_keyboard_interface:inst|timer_5usec_count[0]~156 at LCCOMB_X9_Y9_N10
B1L062 = B1_timer_5usec_count[0] & (B1_timer_5usec_done $ VCC) # !B1_timer_5usec_count[0] & B1_timer_5usec_done & VCC;

--B1L162 is ps2_keyboard_interface:inst|timer_5usec_count[0]~157 at LCCOMB_X9_Y9_N10
B1L162 = CARRY(B1_timer_5usec_count[0] & B1_timer_5usec_done);


--B1L362 is ps2_keyboard_interface:inst|timer_5usec_count[1]~158 at LCCOMB_X9_Y9_N12
B1L362 = B1_timer_5usec_count[1] & !B1L162 # !B1_timer_5usec_count[1] & (B1L162 # GND);

--B1L462 is ps2_keyboard_interface:inst|timer_5usec_count[1]~159 at LCCOMB_X9_Y9_N12
B1L462 = CARRY(!B1L162 # !B1_timer_5usec_count[1]);


--B1L662 is ps2_keyboard_interface:inst|timer_5usec_count[2]~160 at LCCOMB_X9_Y9_N14
B1L662 = B1_timer_5usec_count[2] & (B1L462 $ GND) # !B1_timer_5usec_count[2] & !B1L462 & VCC;

--B1L762 is ps2_keyboard_interface:inst|timer_5usec_count[2]~161 at LCCOMB_X9_Y9_N14
B1L762 = CARRY(B1_timer_5usec_count[2] & !B1L462);


--B1L962 is ps2_keyboard_interface:inst|timer_5usec_count[3]~162 at LCCOMB_X9_Y9_N16
B1L962 = B1_timer_5usec_count[3] & !B1L762 # !B1_timer_5usec_count[3] & (B1L762 # GND);

--B1L072 is ps2_keyboard_interface:inst|timer_5usec_count[3]~163 at LCCOMB_X9_Y9_N16
B1L072 = CARRY(!B1L762 # !B1_timer_5usec_count[3]);


--B1L272 is ps2_keyboard_interface:inst|timer_5usec_count[4]~164 at LCCOMB_X9_Y9_N18
B1L272 = B1_timer_5usec_count[4] & (B1L072 $ GND) # !B1_timer_5usec_count[4] & !B1L072 & VCC;

--B1L372 is ps2_keyboard_interface:inst|timer_5usec_count[4]~165 at LCCOMB_X9_Y9_N18
B1L372 = CARRY(B1_timer_5usec_count[4] & !B1L072);


--B1L572 is ps2_keyboard_interface:inst|timer_5usec_count[5]~166 at LCCOMB_X9_Y9_N20
B1L572 = B1_timer_5usec_count[5] & !B1L372 # !B1_timer_5usec_count[5] & (B1L372 # GND);

--B1L672 is ps2_keyboard_interface:inst|timer_5usec_count[5]~167 at LCCOMB_X9_Y9_N20
B1L672 = CARRY(!B1L372 # !B1_timer_5usec_count[5]);


--B1L872 is ps2_keyboard_interface:inst|timer_5usec_count[6]~168 at LCCOMB_X9_Y9_N22
B1L872 = B1_timer_5usec_count[6] & (B1L672 $ GND) # !B1_timer_5usec_count[6] & !B1L672 & VCC;

--B1L972 is ps2_keyboard_interface:inst|timer_5usec_count[6]~169 at LCCOMB_X9_Y9_N22
B1L972 = CARRY(B1_timer_5usec_count[6] & !B1L672);


--B1L182 is ps2_keyboard_interface:inst|timer_5usec_count[7]~170 at LCCOMB_X9_Y9_N24
B1L182 = B1_timer_5usec_count[7] $ B1L972;


--B1L57 is ps2_keyboard_interface:inst|q~6030 at LCCOMB_X9_Y9_N0
B1L57 = B1_ps2_data_s & reset;


--B1L32 is ps2_keyboard_interface:inst|m1_next_state.m1_rx_clk_l~8 at LCCOMB_X9_Y8_N16
B1L32 = B1_m1_state.m1_rx_falling_edge_marker # !B1_ps2_clk_s & B1_m1_state.m1_rx_clk_l;


--B1L64 is ps2_keyboard_interface:inst|m1_state~201 at LCCOMB_X9_Y7_N24
B1L64 = reset & B1_m1_state.m1_rx_clk_l & B1_ps2_clk_s;


--B1L72 is ps2_keyboard_interface:inst|m1_next_state.m1_tx_error_no_keyboard_ack~52 at LCCOMB_X9_Y8_N28
B1L72 = B1_ps2_data_s & !B1_ps2_clk_s & (B1_m1_state.m1_tx_wait_keyboard_ack # B1_m1_state.m1_tx_error_no_keyboard_ack) # !B1_ps2_data_s & (B1_m1_state.m1_tx_error_no_keyboard_ack);


--B1L62 is ps2_keyboard_interface:inst|m1_next_state.m1_tx_done_recovery~62 at LCCOMB_X9_Y8_N0
B1L62 = B1_ps2_data_s & (B1_m1_state.m1_tx_done_recovery & !B1_ps2_clk_s) # !B1_ps2_data_s & (B1_m1_state.m1_tx_done_recovery # B1_m1_state.m1_tx_wait_keyboard_ack & !B1_ps2_clk_s);


--J1_tsr[4] is uart_if:inst3|uart:U1|txmit:u2|tsr[4] at LCFF_X26_Y21_N31
J1_tsr[4] = DFFEAS(J1L27, !GLOBAL(J1L71), !GLOBAL(B1L352),  , J1L36,  ,  ,  ,  );


--J1_tbr[3] is uart_if:inst3|uart:U1|txmit:u2|tbr[3] at LCFF_X23_Y20_N1
J1_tbr[3] = DFFEAS(UNCONNECTED_DATAIN, GLOBAL(E1L38), !GLOBAL(B1L352),  ,  , E1_din[3],  ,  , VCC);


--J1L17 is uart_if:inst3|uart:U1|txmit:u2|tsr~540 at LCCOMB_X26_Y21_N24
J1L17 = J1L23 & J1_tsr[4] # !J1L23 & (J1_tbr[3]);


--E1_din[2] is uart_if:inst3|din[2] at LCFF_X23_Y21_N23
E1_din[2] = DFFEAS(F1L01, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L86,  ,  ,  ,  );


--F1L6Q is data_buf:inst4|data_in_buf[1]~606 at LCFF_X23_Y21_N31
F1L6Q = DFFEAS(F1L5, GLOBAL(D1L14), !GLOBAL(B1L352),  , F1L1,  ,  ,  ,  );


--F1L7 is data_buf:inst4|data_in_buf[1]~608 at LCCOMB_X23_Y21_N18
F1L7 = B1_rx_released & (F1L6Q $ (F1L5)) # !B1_rx_released & (B1_rx_ascii[1]);


--F1_i[3] is data_buf:inst4|i[3] at LCFF_X24_Y21_N1
F1_i[3] = DFFEAS(F1L82, GLOBAL(D1L14), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--F1_i[2] is data_buf:inst4|i[2] at LCFF_X24_Y21_N7
F1_i[2] = DFFEAS(F1L92, GLOBAL(D1L14), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--F1_i[1] is data_buf:inst4|i[1] at LCFF_X24_Y21_N11
F1_i[1] = DFFEAS(F1L03, GLOBAL(D1L14), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--F1L1 is data_buf:inst4|LessThan~60 at LCCOMB_X23_Y21_N12
F1L1 = F1_i[2] & F1_i[1] & F1_i[3];


--F1L2 is data_buf:inst4|data_in_buf[0]~41 at LCCOMB_X23_Y21_N16
F1L2 = GLOBAL(B1L352) & (F1L2) # !GLOBAL(B1L352) & B1_rx_ascii[0];


--E1_cnt[2] is uart_if:inst3|cnt[2] at LCFF_X48_Y14_N15
E1_cnt[2] = DFFEAS(E1L21, GLOBAL(D1L14), !GLOBAL(B1L352),  , E1L5,  ,  ,  ,  );


--E1_cnt[1] is uart_if:inst3|cnt[1] at LCFF_X49_Y14_N1
E1_cnt[1] = DFFEAS(E1L01, GLOBAL(D1L14), !GLOBAL(B1L352),  , E1_cnt[0],  ,  ,  ,  );


--E1_cnt[0] is uart_if:inst3|cnt[0] at LCFF_X49_Y13_N13
E1_cnt[0] = DFFEAS(E1L8, GLOBAL(D1L14), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--E1L4 is uart_if:inst3|add~202 at LCCOMB_X49_Y14_N14
E1L4 = E1_cnt[0] & E1_cnt[1] & E1_cnt[2];


--E1L22Q is uart_if:inst3|data_out[6]~reg0 at LCFF_X25_Y23_N5
E1L22Q = DFFEAS(E1L25, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L12Q is uart_if:inst3|data_out[5]~reg0 at LCFF_X25_Y23_N9
E1L12Q = DFFEAS(E1L35, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L02Q is uart_if:inst3|data_out[4]~reg0 at LCFF_X25_Y23_N3
E1L02Q = DFFEAS(E1L45, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L91Q is uart_if:inst3|data_out[3]~reg0 at LCFF_X25_Y23_N31
E1L91Q = DFFEAS(E1L55, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L1 is uart_if:inst3|LessThan~170 at LCCOMB_X24_Y23_N28
E1L1 = !E1L91Q # !E1L12Q # !E1L02Q # !E1L22Q;


--E1L81Q is uart_if:inst3|data_out[2]~reg0 at LCFF_X23_Y23_N5
E1L81Q = DFFEAS(E1L65, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L71Q is uart_if:inst3|data_out[1]~reg0 at LCFF_X23_Y23_N11
E1L71Q = DFFEAS(E1L75, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L61Q is uart_if:inst3|data_out[0]~reg0 at LCFF_X23_Y23_N15
E1L61Q = DFFEAS(E1L85, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1L2 is uart_if:inst3|LessThan~171 at LCCOMB_X24_Y23_N6
E1L2 = E1L1 # !E1L61Q # !E1L81Q # !E1L71Q;


--E1L42Q is uart_if:inst3|data_out[7]~reg0 at LCFF_X23_Y23_N3
E1L42Q = DFFEAS(E1L95, GLOBAL(E1L51), !GLOBAL(B1L352),  , E1L32,  ,  ,  ,  );


--E1_rdn is uart_if:inst3|rdn at LCFF_X24_Y23_N27
E1_rdn = DFFEAS(E1L47, GLOBAL(E1L51), !GLOBAL(B1L352),  ,  ,  ,  ,  ,  );


--E1L67 is uart_if:inst3|read_en~134 at LCCOMB_X24_Y23_N12
E1L67 = E1L2 & !E1_read_en & !E1_rdn & !E1L42Q;


--H1_rbr[6] is uart_if:inst3|uart:U1|rcvr:u1|rbr[6] at LCFF_X24_Y16_N15
H1_rbr[6] = DFFEAS(H1L54, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74,  ,  ,  ,  );


--H1_rbr[5] is uart_if:inst3|uart:U1|rcvr:u1|rbr[5] at LCFF_X24_Y16_N19
H1_rbr[5] = DFFEAS(UNCONNECTED_DATAIN, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74, H1_rsr[5],  ,  , VCC);


--H1_rbr[7] is uart_if:inst3|uart:U1|rcvr:u1|rbr[7] at LCFF_X24_Y16_N3
H1_rbr[7] = DFFEAS(H1L84, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74,  ,  ,  ,  );


--E1L77 is uart_if:inst3|read_en~135 at LCCOMB_X24_Y16_N18
E1L77 = E1_rdn & H1_rbr[6] & H1_rbr[5] & !H1_rbr[7];


--H1_rbr[4] is uart_if:inst3|uart:U1|rcvr:u1|rbr[4] at LCFF_X24_Y16_N7
H1_rbr[4] = DFFEAS(UNCONNECTED_DATAIN, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74, H1_rsr[4],  ,  , VCC);


--H1_rbr[1] is uart_if:inst3|uart:U1|rcvr:u1|rbr[1] at LCFF_X24_Y16_N17
H1_rbr[1] = DFFEAS(UNCONNECTED_DATAIN, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74, H1_rsr[1],  ,  , VCC);


--H1_rbr[3] is uart_if:inst3|uart:U1|rcvr:u1|rbr[3] at LCFF_X24_Y16_N21
H1_rbr[3] = DFFEAS(H1L14, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74,  ,  ,  ,  );


--H1_rbr[2] is uart_if:inst3|uart:U1|rcvr:u1|rbr[2] at LCFF_X24_Y16_N27
H1_rbr[2] = DFFEAS(H1L93, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74,  ,  ,  ,  );


--E1L87 is uart_if:inst3|read_en~136 at LCCOMB_X24_Y16_N16
E1L87 = !H1_rbr[3] & !H1_rbr[2] & H1_rbr[1] & H1_rbr[4];


--H1_rbr[0] is uart_if:inst3|uart:U1|rcvr:u1|rbr[0] at LCFF_X24_Y16_N5
H1_rbr[0] = DFFEAS(H1L63, GLOBAL(H1L91), GLOBAL(B1L352),  , H1L74,  ,  ,  ,  );


--E1L97 is uart_if:inst3|read_en~137 at LCCOMB_X24_Y23_N20
E1L97 = !E1L67 & (H1_rbr[0] # !E1L87 # !E1L77);


--E1_data_out_d[7] is uart_if:inst3|data_out_d[7] at LCFF_X25_Y23_N25
E1_data_out_d[7] = DFFEAS(E1L05, GLOBAL(E1L51), !GLOBAL(B1L352),  , 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -