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

📄 ps2_keyboard_interface.fit.eqn

📁 本实验实现PS/2接口与RS-232接口的数据传输
💻 EQN
📖 第 1 页 / 共 5 页
字号:
--B1L892 is ps2_keyboard_interface:inst|timer_60usec_done~82 at LC_X16_Y8_N6
--operation mode is normal

B1L892 = B1L792 # B1L692 # B1L592;


--B1_m1_state.m1_rx_clk_h is ps2_keyboard_interface:inst|m1_state.m1_rx_clk_h at LC_X16_Y9_N0
--operation mode is normal

B1_m1_state.m1_rx_clk_h_lut_out = reset & !B1_m1_state.m1_rx_rising_edge_marker & (!B1L13 # !B1_ps2_clk_s);
B1_m1_state.m1_rx_clk_h = DFFEAS(B1_m1_state.m1_rx_clk_h_lut_out, GLOBAL(C1_clk), VCC, , , , , , );


--B1L61 is ps2_keyboard_interface:inst|bit_count[3]~184 at LC_X16_Y7_N8
--operation mode is normal

B1_ps2_clk_s_qfbk = B1_ps2_clk_s;
B1L61 = !B1_m1_state.m1_rx_clk_h & !B1L892 & B1_ps2_clk_s_qfbk # !B1L51;

--B1_ps2_clk_s is ps2_keyboard_interface:inst|ps2_clk_s at LC_X16_Y7_N8
--operation mode is normal

B1_ps2_clk_s = DFFEAS(B1L61, GLOBAL(C1_clk), VCC, , , A1L3, , , VCC);


--B1L1 is ps2_keyboard_interface:inst|always5~4 at LC_X15_Y8_N8
--operation mode is normal

B1L1 = B1_m1_state.m1_tx_rising_edge_marker # B1_m1_state.m1_rx_falling_edge_marker;


--B1_q[0] is ps2_keyboard_interface:inst|q[0] at LC_X16_Y7_N7
--operation mode is normal

B1_q[0]_lut_out = B1_q[1] & reset;
B1_q[0] = DFFEAS(B1_q[0]_lut_out, GLOBAL(C1_clk), VCC, , B1L94, , , , );


--B1_m1_state.m1_tx_clk_h is ps2_keyboard_interface:inst|m1_state.m1_tx_clk_h at LC_X15_Y7_N6
--operation mode is normal

B1_m1_state.m1_tx_clk_h_lut_out = B1_m1_state.m1_tx_rising_edge_marker # B1_tx_shifting_done & B1_ps2_clk_s & B1_m1_state.m1_tx_clk_h;
B1_m1_state.m1_tx_clk_h = DFFEAS(B1_m1_state.m1_tx_clk_h_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1_m1_state.m1_tx_clk_l~30 is ps2_keyboard_interface:inst|m1_state.m1_tx_clk_l~30 at LC_X16_Y7_N2
--operation mode is normal

B1_m1_state.m1_tx_clk_l~30 = !B1_m1_state.m1_tx_rising_edge_marker & (!B1_m1_state.m1_tx_clk_h);


--B1_m1_state.m1_tx_wait_clk_h is ps2_keyboard_interface:inst|m1_state.m1_tx_wait_clk_h at LC_X15_Y7_N2
--operation mode is normal

B1_m1_state.m1_tx_wait_clk_h_lut_out = B1_ps2_clk_s & (B1_m1_state.m1_tx_clk_l # B1_timer_5usec_done & B1_m1_state.m1_tx_wait_clk_h) # !B1_ps2_clk_s & (B1_m1_state.m1_tx_wait_clk_h);
B1_m1_state.m1_tx_wait_clk_h = DFFEAS(B1_m1_state.m1_tx_wait_clk_h_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1_m1_state.m1_tx_clk_l is ps2_keyboard_interface:inst|m1_state.m1_tx_clk_l at LC_X15_Y7_N8
--operation mode is normal

B1_m1_state.m1_tx_clk_l_lut_out = !B1_ps2_clk_s & (B1_m1_state.m1_tx_clk_l # B1_tx_shifting_done & B1_m1_state.m1_tx_clk_h);
B1_m1_state.m1_tx_clk_l = DFFEAS(B1_m1_state.m1_tx_clk_l_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1L33 is ps2_keyboard_interface:inst|ps2_data_hi_z~29 at LC_X16_Y7_N6
--operation mode is normal

B1L33 = B1_q[0] # !B1_m1_state.m1_tx_wait_clk_h & B1_m1_state.m1_tx_clk_l~30 & !B1_m1_state.m1_tx_clk_l;


--J1_wrn2 is uart_if:inst3|uart:U1|txmit:u2|wrn2 at LC_X11_Y5_N5
--operation mode is normal

J1_wrn2_lut_out = J1_wrn1;
J1_wrn2 = DFFEAS(J1_wrn2_lut_out, GLOBAL(D1_acc[12]), B1_rx_released, , , , , , );


--J1L2 is uart_if:inst3|uart:U1|txmit:u2|always1~13 at LC_X11_Y5_N8
--operation mode is normal

J1_wrn1_qfbk = J1_wrn1;
J1L2 = J1_wrn1_qfbk & !J1_wrn2;

--J1_wrn1 is uart_if:inst3|uart:U1|txmit:u2|wrn1 at LC_X11_Y5_N8
--operation mode is normal

J1_wrn1 = DFFEAS(J1L2, GLOBAL(D1_acc[12]), B1_rx_released, , , E1_wrn, , , VCC);


--J1L63 is uart_if:inst3|uart:U1|txmit:u2|tbre~72 at LC_X11_Y5_N6
--operation mode is normal

J1L63 = J1_no_bits_sent[1] # !J1_no_bits_sent[3] # !J1_no_bits_sent[2] # !J1_no_bits_sent[0];


--J1_tsr[2] is uart_if:inst3|uart:U1|txmit:u2|tsr[2] at LC_X12_Y3_N7
--operation mode is normal

J1_tsr[2]_lut_out = J1L02 & (J1_tsr[3]) # !J1L02 & J1_tbr[2];
J1_tsr[2] = DFFEAS(J1_tsr[2]_lut_out, !GLOBAL(J1_clkdiv[3]), B1_rx_released, , J1L44, , , , );


--J1_tbr[1] is uart_if:inst3|uart:U1|txmit:u2|tbr[1] at LC_X12_Y7_N8
--operation mode is normal

J1_tbr[1]_lut_out = E1_din[1];
J1_tbr[1] = DFFEAS(J1_tbr[1]_lut_out, GLOBAL(E1_wrn), B1_rx_released, , , , , , );


--E1_din[0] is uart_if:inst3|din[0] at LC_X13_Y10_N8
--operation mode is normal

E1_din[0]_lut_out = F1L2Q;
E1_din[0] = DFFEAS(E1_din[0]_lut_out, GLOBAL(E1_cnt[3]), B1_rx_released, , E1L45, , , , );


--D1_acc[11] is div_4:inst2|acc[11] at LC_X8_Y10_N5
--operation mode is arithmetic

D1_acc[11]_carry_eqn = D1L13;
D1_acc[11]_lut_out = D1_acc[11] $ D1_acc[11]_carry_eqn;
D1_acc[11] = DFFEAS(D1_acc[11]_lut_out, GLOBAL(mclk), VCC, , , , , , );

--D1L33 is div_4:inst2|acc[11]~96 at LC_X8_Y10_N5
--operation mode is arithmetic

D1L33_cout_0 = !D1L13 # !D1_acc[11];
D1L33 = CARRY(D1L33_cout_0);

--D1L43 is div_4:inst2|acc[11]~96COUT1_152 at LC_X8_Y10_N5
--operation mode is arithmetic

D1L43_cout_1 = !D1L13 # !D1_acc[11];
D1L43 = CARRY(D1L43_cout_1);


--J1L9 is uart_if:inst3|uart:U1|txmit:u2|clkdiv[2]~41 at LC_X11_Y5_N9
--operation mode is normal

J1L9 = J1_clkdiv[0] & J1_clk1x_enable & J1_clkdiv[1];


--J1L7 is uart_if:inst3|uart:U1|txmit:u2|clkdiv[1]~42 at LC_X11_Y5_N7
--operation mode is normal

J1L7 = J1_clk1x_enable & J1_clkdiv[0];


--B1L05 is ps2_keyboard_interface:inst|reduce_nor~1 at LC_X19_Y8_N2
--operation mode is normal

B1L05 = !B1_q[5] # !B1L93;


--C1_count[6] is div_256:inst1|count[6] at LC_X9_Y10_N0
--operation mode is normal

C1_count[6]_lut_out = GND;
C1_count[6] = DFFEAS(C1_count[6]_lut_out, GLOBAL(mclk), GLOBAL(reset), , , C1L1, , , VCC);


--C1L2 is div_256:inst1|add~111 at LC_X9_Y10_N6
--operation mode is arithmetic

C1L2_carry_eqn = (!C1L9 & C1L6) # (C1L9 & C1L7);
C1L2 = C1_count[5] $ (C1L2_carry_eqn);

--C1L3 is div_256:inst1|add~113 at LC_X9_Y10_N6
--operation mode is arithmetic

C1L3_cout_0 = !C1L6 # !C1_count[5];
C1L3 = CARRY(C1L3_cout_0);

--C1L4 is div_256:inst1|add~113COUT1_145 at LC_X9_Y10_N6
--operation mode is arithmetic

C1L4_cout_1 = !C1L7 # !C1_count[5];
C1L4 = CARRY(C1L4_cout_1);


--B1_timer_5usec_count[2] is ps2_keyboard_interface:inst|timer_5usec_count[2] at LC_X14_Y8_N2
--operation mode is arithmetic

B1_timer_5usec_count[2]_lut_out = B1_timer_5usec_count[2] $ (!B1L142);
B1_timer_5usec_count[2] = DFFEAS(B1_timer_5usec_count[2]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L442 is ps2_keyboard_interface:inst|timer_5usec_count[2]~149 at LC_X14_Y8_N2
--operation mode is arithmetic

B1L442_cout_0 = B1_timer_5usec_count[2] & (!B1L142);
B1L442 = CARRY(B1L442_cout_0);

--B1L542 is ps2_keyboard_interface:inst|timer_5usec_count[2]~149COUT1_183 at LC_X14_Y8_N2
--operation mode is arithmetic

B1L542_cout_1 = B1_timer_5usec_count[2] & (!B1L242);
B1L542 = CARRY(B1L542_cout_1);


--B1_timer_5usec_count[1] is ps2_keyboard_interface:inst|timer_5usec_count[1] at LC_X14_Y8_N1
--operation mode is arithmetic

B1_timer_5usec_count[1]_lut_out = B1_timer_5usec_count[1] $ (B1L832);
B1_timer_5usec_count[1] = DFFEAS(B1_timer_5usec_count[1]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L142 is ps2_keyboard_interface:inst|timer_5usec_count[1]~153 at LC_X14_Y8_N1
--operation mode is arithmetic

B1L142_cout_0 = !B1L832 # !B1_timer_5usec_count[1];
B1L142 = CARRY(B1L142_cout_0);

--B1L242 is ps2_keyboard_interface:inst|timer_5usec_count[1]~153COUT1_182 at LC_X14_Y8_N1
--operation mode is arithmetic

B1L242_cout_1 = !B1L932 # !B1_timer_5usec_count[1];
B1L242 = CARRY(B1L242_cout_1);


--B1_timer_5usec_count[0] is ps2_keyboard_interface:inst|timer_5usec_count[0] at LC_X14_Y8_N0
--operation mode is arithmetic

B1_timer_5usec_count[0]_lut_out = B1_timer_5usec_done $ B1_timer_5usec_count[0];
B1_timer_5usec_count[0] = DFFEAS(B1_timer_5usec_count[0]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L832 is ps2_keyboard_interface:inst|timer_5usec_count[0]~157 at LC_X14_Y8_N0
--operation mode is arithmetic

B1L832_cout_0 = B1_timer_5usec_done & B1_timer_5usec_count[0];
B1L832 = CARRY(B1L832_cout_0);

--B1L932 is ps2_keyboard_interface:inst|timer_5usec_count[0]~157COUT1_181 at LC_X14_Y8_N0
--operation mode is arithmetic

B1L932_cout_1 = B1_timer_5usec_done & B1_timer_5usec_count[0];
B1L932 = CARRY(B1L932_cout_1);


--B1L162 is ps2_keyboard_interface:inst|timer_5usec_done~40 at LC_X14_Y8_N8
--operation mode is normal

B1L162 = B1_timer_5usec_count[1] # !B1_timer_5usec_count[0];


--B1_timer_5usec_count[6] is ps2_keyboard_interface:inst|timer_5usec_count[6] at LC_X14_Y8_N6
--operation mode is arithmetic

B1_timer_5usec_count[6]_carry_eqn = (!B1L052 & B1L452) # (B1L052 & B1L552);
B1_timer_5usec_count[6]_lut_out = B1_timer_5usec_count[6] $ (!B1_timer_5usec_count[6]_carry_eqn);
B1_timer_5usec_count[6] = DFFEAS(B1_timer_5usec_count[6]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L752 is ps2_keyboard_interface:inst|timer_5usec_count[6]~161 at LC_X14_Y8_N6
--operation mode is arithmetic

B1L752_cout_0 = B1_timer_5usec_count[6] & (!B1L452);
B1L752 = CARRY(B1L752_cout_0);

--B1L852 is ps2_keyboard_interface:inst|timer_5usec_count[6]~161COUT1_185 at LC_X14_Y8_N6
--operation mode is arithmetic

B1L852_cout_1 = B1_timer_5usec_count[6] & (!B1L552);
B1L852 = CARRY(B1L852_cout_1);


--B1_timer_5usec_count[4] is ps2_keyboard_interface:inst|timer_5usec_count[4] at LC_X14_Y8_N4
--operation mode is arithmetic

B1_timer_5usec_count[4]_lut_out = B1_timer_5usec_count[4] $ !B1L742;
B1_timer_5usec_count[4] = DFFEAS(B1_timer_5usec_count[4]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L052 is ps2_keyboard_interface:inst|timer_5usec_count[4]~165 at LC_X14_Y8_N4
--operation mode is arithmetic

B1L052 = B1L152;


--B1_timer_5usec_count[5] is ps2_keyboard_interface:inst|timer_5usec_count[5] at LC_X14_Y8_N5
--operation mode is arithmetic

B1_timer_5usec_count[5]_carry_eqn = (!B1L052 & GND) # (B1L052 & VCC);
B1_timer_5usec_count[5]_lut_out = B1_timer_5usec_count[5] $ B1_timer_5usec_count[5]_carry_eqn;
B1_timer_5usec_count[5] = DFFEAS(B1_timer_5usec_count[5]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L452 is ps2_keyboard_interface:inst|timer_5usec_count[5]~169 at LC_X14_Y8_N5
--operation mode is arithmetic

B1L452_cout_0 = !B1L052 # !B1_timer_5usec_count[5];
B1L452 = CARRY(B1L452_cout_0);

--B1L552 is ps2_keyboard_interface:inst|timer_5usec_count[5]~169COUT1_184 at LC_X14_Y8_N5
--operation mode is arithmetic

B1L552_cout_1 = !B1L052 # !B1_timer_5usec_count[5];
B1L552 = CARRY(B1L552_cout_1);


--B1_timer_5usec_count[7] is ps2_keyboard_interface:inst|timer_5usec_count[7] at LC_X14_Y8_N7
--operation mode is normal

B1_timer_5usec_count[7]_carry_eqn = (!B1L052 & B1L752) # (B1L052 & B1L852);
B1_timer_5usec_count[7]_lut_out = B1_timer_5usec_count[7] $ (B1_timer_5usec_count[7]_carry_eqn);
B1_timer_5usec_count[7] = DFFEAS(B1_timer_5usec_count[7]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );


--B1L262 is ps2_keyboard_interface:inst|timer_5usec_done~41 at LC_X15_Y8_N5
--operation mode is normal

B1L262 = B1_timer_5usec_count[6] # !B1_timer_5usec_count[7] # !B1_timer_5usec_count[5] # !B1_timer_5usec_count[4];


--B1_timer_5usec_count[3] is ps2_keyboard_interface:inst|timer_5usec_count[3] at LC_X14_Y8_N3
--operation mode is arithmetic

B1_timer_5usec_count[3]_lut_out = B1_timer_5usec_count[3] $ B1L442;
B1_timer_5usec_count[3] = DFFEAS(B1_timer_5usec_count[3]_lut_out, GLOBAL(C1_clk), VCC, , , , , !B1_m1_state.m1_tx_wait_clk_h, );

--B1L742 is ps2_keyboard_interface:inst|timer_5usec_count[3]~177 at LC_X14_Y8_N3
--operation mode is arithmetic

B1L742_cout_0 = !B1L442 # !B1_timer_5usec_count[3];
B1L742 = CARRY(B1L742_cout_0);

--B1L842 is ps2_keyboard_interface:inst|timer_5usec_count[3]~177COUT1 at LC_X14_Y8_N3
--operation mode is arithmetic

B1L842_cout_1 = !B1L542 # !B1_timer_5usec_count[3];
B1L842 = CARRY(B1L842_cout_1);


--B1_timer_5usec_done is ps2_keyboard_interface:inst|timer_5usec_done at LC_X15_Y8_N6
--operation mode is normal

B1_timer_5usec_done = B1L162 # B1_timer_5usec_count[2] # B1L262 # !B1_timer_5usec_count[3];


--B1_q[10] is ps2_keyboard_interface:inst|q[10] at LC_X16_Y7_N5
--operation mode is normal

B1_q[10]_lut_out = B1_ps2_data_s & reset;
B1_q[10] = DFFEAS(B1_q[10]_lut_out, GLOBAL(C1_clk), VCC, , B1L94, , , , );


--B1_tx_shifting_done is ps2_keyboard_interface:inst|tx_shifting_done at LC_X15_Y8_N9
--operation mode is normal

B1_tx_shifting_done = B1_bit_count[0] # B1_bit_count[2] # !B1_bit_count[1] # !B1_bit_count[3];


--B1_m1_state.m1_rx_clk_l is ps2_keyboard_interface:inst|m1_state.m1_rx_clk_l at LC_X15_Y7_N5
--operation mode is normal

B1_m1_state.m1_rx_clk_l_lut_out = B1_m1_state.m1_rx_falling_edge_marker # !B1_ps2_clk_s & B1_m1_state.m1_rx_clk_l;
B1_m1_state.m1_rx_clk_l = DFFEAS(B1_m1_state.m1_rx_clk_l_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1L341 is ps2_keyboard_interface:inst|reduce_or~0 at LC_X16_Y9_N1
--operation mode is normal

B1L341 = B1_m1_state.m1_rx_clk_h & (!B1_m1_state.m1_rx_clk_l);


--B1_m1_state.m1_rx_rising_edge_marker is ps2_keyboard_interface:inst|m1_state.m1_rx_rising_edge_marker at LC_X16_Y9_N3
--operation mode is normal

B1_m1_state.m1_rx_rising_edge_marker_lut_out = reset & (B1_ps2_clk_s & B1_m1_state.m1_rx_clk_l);
B1_m1_state.m1_rx_rising_edge_marker = DFFEAS(B1_m1_state.m1_rx_rising_edge_marker_lut_out, GLOBAL(C1_clk), VCC, , , , , , );


--B1_m1_state.m1_tx_error_no_keyboard_ack is ps2_keyboard_interface:inst|m1_state.m1_tx_error_no_keyboard_ack at LC_X15_Y7_N9
--operation mode is normal

B1_m1_state.m1_tx_error_no_keyboard_ack_lut_out = B1_ps2_data_s & !B1_ps2_clk_s & (B1_m1_state.m1_tx_error_no_keyboard_ack # B1_m1_state.m1_tx_wait_keyboard_ack) # !B1_ps2_data_s & (B1_m1_state.m1_tx_error_no_keyboard_ack);
B1_m1_state.m1_tx_error_no_keyboard_ack = DFFEAS(B1_m1_state.m1_tx_error_no_keyboard_ack_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1_m1_state.m1_tx_done_recovery is ps2_keyboard_interface:inst|m1_state.m1_tx_done_recovery at LC_X15_Y7_N0
--operation mode is normal

B1_m1_state.m1_tx_done_recovery_lut_out = B1_ps2_clk_s & !B1_ps2_data_s & B1_m1_state.m1_tx_done_recovery # !B1_ps2_clk_s & (B1_m1_state.m1_tx_done_recovery # !B1_ps2_data_s & B1_m1_state.m1_tx_wait_keyboard_ack);
B1_m1_state.m1_tx_done_recovery = DFFEAS(B1_m1_state.m1_tx_done_recovery_lut_out, GLOBAL(C1_clk), VCC, , , , , !reset, );


--B1L13 is ps2_keyboard_interface:inst|m1_state~178 at LC_X16_Y7_N9
--operation mode is normal

B1_ps2_data_s_qfbk = B1_ps2_data_s;
B1L13 = B1_ps2_data_s_qfbk & (B1_m1_state.m1_tx_done_recovery # B1_m1_state.m1_tx_error_no_keyboard_ack) # !B1_m1_state.m1_rx_clk_h;

--B1_ps2_data_s is ps2_keyboard_interface:inst|ps2_data_s at LC_X16_Y7_N9
--operation mode is normal

B1_ps2_data_s = DFFEAS(B1L13, GLOBAL(C1_clk), VCC, , , A1L5, , , VCC);


--J1_tsr[3] is uart_if:inst3|uart:U1|txmit:u2|tsr[3] at LC_X12_Y3_N8
--operation mode is normal

J1_tsr[3]_lut_out = J1L02 & J1_tsr[4] # !J1L02 & (J1_tbr[3]);
J1_tsr[3] = DFFEAS(J1_tsr[3]_lut_out, !GLOBAL(J1_clkdiv[3]), B1_rx_released, , J1L44, , , , );


--J1_tbr[2] is uart_if:inst3|uart:U1|txmit:u2|tbr[2] at LC_X1

⌨️ 快捷键说明

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