FreeCalypso > hg > fc-small-hw
comparison duart28/src/vsrc/application_block.v @ 28:bd7eec55ebc0
duart28: new design ideas
* added input buffers (LVC with Ioff feature) to prevent high current flow
from powered-up target into powered-down FT2232D inputs;
* added series resistors on outputs to limit current flow from powered-up
adapter into powered-down Calypso target;
* buffer IC changed from 74LVC125A to 74LVC541A.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 28 Jun 2020 22:06:24 +0000 |
parents | 22aba3a61a4b |
children |
comparison
equal
deleted
inserted
replaced
27:b58388f57c16 | 28:bd7eec55ebc0 |
---|---|
1 /* | 1 /* |
2 * This module encapsulates the application function of our board: | 2 * This module encapsulates the application function of our board: |
3 * dual UART with 2.8V outputs. | 3 * dual UART with 2.8V outputs. |
4 */ | 4 */ |
5 | 5 |
6 module application_block (GND, P_2V8, ADBUS, BDBUS); | 6 module application_block (GND, P_3V3, P_2V8, ADBUS, BDBUS); |
7 | 7 |
8 input GND, P_2V8; | 8 input GND, P_3V3, P_2V8; |
9 | 9 |
10 inout [7:0] ADBUS, BDBUS; | 10 inout [7:0] ADBUS, BDBUS; |
11 | 11 |
12 /* 2.8V output wires */ | 12 /* 2.8V output wires */ |
13 | 13 |
14 wire TxD_2V8, RTS_2V8, DTR_2V8, TxD2_2V8; | 14 wire TxD_2V8_before_R, RTS_2V8_before_R, DTR_2V8_before_R, TxD2_2V8_before_R; |
15 wire TxD_2V8_after_R, RTS_2V8_after_R, DTR_2V8_after_R, TxD2_2V8_after_R; | |
16 | |
17 /* input signal wires */ | |
18 | |
19 wire RxD_in, CTS_in, DSR_in, DCD_in, RI_in, RxD2_in; | |
15 | 20 |
16 /* output buffers */ | 21 /* output buffers */ |
17 | 22 |
18 buffer_ic_common output_buf_common (.Vcc(P_2V8), .GND(GND)); | 23 buffer_ic_common output_buf_common (.Vcc(P_2V8), |
24 .GND(GND), | |
25 .nOE1(GND), | |
26 .nOE2(GND) | |
27 ); | |
28 | |
19 capacitor output_buf_bypass_cap (P_2V8, GND); | 29 capacitor output_buf_bypass_cap (P_2V8, GND); |
20 | 30 |
21 buffer_ic_slot buf_TxD (.A(ADBUS[0]), .Y(TxD_2V8), .nOE(GND)); | 31 buffer_ic_slot buf_TxD (.A(ADBUS[0]), .Y(TxD_2V8_before_R)); |
22 buffer_ic_slot buf_RTS (.A(ADBUS[2]), .Y(RTS_2V8), .nOE(GND)); | 32 buffer_ic_slot buf_RTS (.A(ADBUS[2]), .Y(RTS_2V8_before_R)); |
23 buffer_ic_slot buf_DTR (.A(ADBUS[4]), .Y(DTR_2V8), .nOE(GND)); | 33 buffer_ic_slot buf_DTR (.A(ADBUS[4]), .Y(DTR_2V8_before_R)); |
24 buffer_ic_slot buf_TxD2 (.A(BDBUS[0]), .Y(TxD2_2V8), .nOE(GND)); | 34 buffer_ic_slot buf_TxD2 (.A(BDBUS[0]), .Y(TxD2_2V8_before_R)); |
35 | |
36 buffer_ic_slot unused_output_buf1 (.A(GND), .Y()); | |
37 buffer_ic_slot unused_output_buf2 (.A(GND), .Y()); | |
38 buffer_ic_slot unused_output_buf3 (.A(GND), .Y()); | |
39 buffer_ic_slot unused_output_buf4 (.A(GND), .Y()); | |
40 | |
41 /* output series resistors */ | |
42 | |
43 resistor TxD_series_R (TxD_2V8_before_R, TxD_2V8_after_R); | |
44 resistor RTS_series_R (RTS_2V8_before_R, RTS_2V8_after_R); | |
45 resistor DTR_series_R (DTR_2V8_before_R, DTR_2V8_after_R); | |
46 resistor TxD2_series_R (TxD2_2V8_before_R, TxD2_2V8_after_R); | |
47 | |
48 /* input buffers */ | |
49 | |
50 buffer_ic_common input_buf_common (.Vcc(P_3V3), | |
51 .GND(GND), | |
52 .nOE1(GND), | |
53 .nOE2(GND) | |
54 ); | |
55 | |
56 capacitor input_buf_bypass_cap (P_3V3, GND); | |
57 | |
58 buffer_ic_slot buf_RxD (.A(RxD_in), .Y(ADBUS[1])); | |
59 buffer_ic_slot buf_CTS (.A(CTS_in), .Y(ADBUS[3])); | |
60 buffer_ic_slot buf_DSR (.A(DSR_in), .Y(ADBUS[5])); | |
61 buffer_ic_slot buf_DCD (.A(DCD_in), .Y(ADBUS[6])); | |
62 buffer_ic_slot buf_RI (.A(RI_in), .Y(ADBUS[7])); | |
63 buffer_ic_slot buf_RxD2 (.A(RxD2_in), .Y(BDBUS[1])); | |
64 | |
65 buffer_ic_slot unused_input_buf1 (.A(GND), .Y()); | |
66 buffer_ic_slot unused_input_buf2 (.A(GND), .Y()); | |
67 | |
68 /* input pull-up resistors */ | |
69 | |
70 resistor RxD_pullup (RxD_in, P_2V8); | |
71 resistor CTS_pullup (CTS_in, P_2V8); | |
72 resistor DSR_pullup (DSR_in, P_2V8); | |
73 resistor DCD_pullup (DCD_in, P_2V8); | |
74 resistor RI_pullup (RI_in, P_2V8); | |
75 resistor RxD2_pullup (RxD2_in, P_2V8); | |
25 | 76 |
26 /* target interface headers */ | 77 /* target interface headers */ |
27 | 78 |
28 target_if target_if ( .GND(GND), | 79 target_if target_if ( .GND(GND), |
29 .UART0_TxD(TxD_2V8), | 80 .UART0_TxD(TxD_2V8_after_R), |
30 .UART0_RxD(ADBUS[1]), | 81 .UART0_RxD(RxD_in), |
31 .UART0_RTS(RTS_2V8), | 82 .UART0_RTS(RTS_2V8_after_R), |
32 .UART0_CTS(ADBUS[3]), | 83 .UART0_CTS(CTS_in), |
33 .UART0_DTR(DTR_2V8), | 84 .UART0_DTR(DTR_2V8_after_R), |
34 .UART0_DSR(ADBUS[5]), | 85 .UART0_DSR(DSR_in), |
35 .UART0_DCD(ADBUS[6]), | 86 .UART0_DCD(DCD_in), |
36 .UART0_RI(ADBUS[7]), | 87 .UART0_RI(RI_in), |
37 .UART1_TxD(TxD2_2V8), | 88 .UART1_TxD(TxD2_2V8_after_R), |
38 .UART1_RxD(BDBUS[1]) | 89 .UART1_RxD(RxD2_in) |
39 ); | 90 ); |
40 | 91 |
41 endmodule | 92 endmodule |