VHDLwhiz UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್
ಉತ್ಪನ್ನ ಮಾಹಿತಿ
ವಿಶೇಷಣಗಳು:
- ಉತ್ಪನ್ನದ ಹೆಸರು: VHDL UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್ ಅನ್ನು ನೋಂದಾಯಿಸುತ್ತದೆ
- ಆವೃತ್ತಿ: 1.0.4
- ದಿನಾಂಕ: ಆಗಸ್ಟ್ 18, 2024
- ಲೇಖಕ: ಜೊನಾಸ್ ಜೂಲಿಯನ್ ಜೆನ್ಸನ್
- ಉತ್ಪನ್ನ URL: ಉತ್ಪನ್ನ ಲಿಂಕ್
- ಸಂಪರ್ಕ ಇಮೇಲ್: jonas@vhdlwhiz.com
ವಿವರಣೆ
ಈ ಉತ್ಪನ್ನವು UART ಬಳಸಿಕೊಂಡು FPGA ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ರಚಿಸಲಾದ VHDL ಮಾಡ್ಯೂಲ್ ಮತ್ತು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ನಿಮ್ಮ FPGA ವಿನ್ಯಾಸದಲ್ಲಿ ವಿವಿಧ ರೀತಿಯ ರಿಜಿಸ್ಟರ್ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಅವಶ್ಯಕತೆಗಳು
- ಪೈಥಾನ್ 3 ಇಂಟರ್ಪ್ರಿಟರ್
- ಪೈಸೀರಿಯಲ್ ಪ್ಯಾಕೇಜ್
ಪ್ರೋಟೋಕಾಲ್
ಉತ್ಪನ್ನವು ನಾಲ್ಕು ನಿಯಂತ್ರಣ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ಡೇಟಾ ಫ್ರೇಮಿಂಗ್ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ:
- ಹೆಸರು: ಓದಿ_REQ, ಮೌಲ್ಯ: 0x0A – ಎಲ್ಲಾ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು UART ಮೂಲಕ ಹಿಂದಕ್ಕೆ ಕಳುಹಿಸಲು ಬರೆಯುವ ಅನುಕ್ರಮವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಹೋಸ್ಟ್ನಿಂದ FPGA ಗೆ ಆದೇಶ.
- ಹೆಸರು: START_ಬರೆಯಿರಿ, ಮೌಲ್ಯ: 0x0B – ಎರಡೂ ದಿಕ್ಕಿನಲ್ಲಿ ಬರೆಯುವ ಅನುಕ್ರಮದ ಆರಂಭವನ್ನು ಗುರುತಿಸುತ್ತದೆ
- ಹೆಸರು: ಬರೆಯಿರಿ, ಮೌಲ್ಯ: 0x0C – ಎರಡೂ ದಿಕ್ಕಿನಲ್ಲಿ ಬರೆಯುವ ಅನುಕ್ರಮದ ಅಂತ್ಯವನ್ನು ಗುರುತಿಸುತ್ತದೆ
- ಹೆಸರು: ತಪ್ಪಿಸಿಕೊಳ್ಳಿ, ಮೌಲ್ಯ: 0x0D – ನಿಯಂತ್ರಣ ಪದಗಳಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು ಬಳಸುವ ಎಸ್ಕೇಪ್ ಅಕ್ಷರ.
ಉತ್ಪನ್ನ ಬಳಕೆಯ ಸೂಚನೆಗಳು
ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ
ಉತ್ಪನ್ನವನ್ನು ಬಳಸಲು, ನೀವು ಪೈಥಾನ್ 3 ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೀರಿ ಮತ್ತು ಪೈಸೀರಿಯಲ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಹೊಂದಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಪೈಥಾನ್ 3 ಇಂಟರ್ಪ್ರಿಟರ್ ಮೂಲಕ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ರನ್ ಮಾಡಿ.
ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ
FPGA ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ರಚಿಸಲು gen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿ. ಔಟ್ಪುಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುವಾಗ ನೀವು ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ರಿಜಿಸ್ಟರ್ಗಳು ಮತ್ತು ಪ್ರಕಾರಗಳ ಸಂಯೋಜನೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. files.
ರಿಜಿಸ್ಟರ್ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವುದು
ನೀವು ರಚಿಸಲಾದ VHDL ಮಾಡ್ಯೂಲ್ ಮತ್ತು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ FPGA ವಿನ್ಯಾಸದಲ್ಲಿ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ರಿಜಿಸ್ಟರ್ಗಳಿಂದ ಓದಬಹುದು ಅಥವಾ ಬರೆಯಬಹುದು. ಪ್ರವೇಶಿಸಬಹುದಾದ ರಿಜಿಸ್ಟರ್ಗಳು std_logic, std_logic_vector, ಸಹಿ ಮಾಡಿದ ಅಥವಾ ಸಹಿ ಮಾಡದಿರುವಂತಹ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರಬಹುದು.
ಪರವಾನಗಿ
- MIT ಪರವಾನಗಿಯು ಮೂಲ ಕೋಡ್ನ ಹಕ್ಕುಸ್ವಾಮ್ಯ ಅಗತ್ಯತೆಗಳು ಮತ್ತು ಬಳಕೆಯ ನಿಯಮಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. LICENSE.txt ಅನ್ನು ನೋಡಿ file ಜಿಪ್ನಲ್ಲಿ file ವಿವರಗಳಿಗಾಗಿ.
ಚೇಂಜ್ಲಾಗ್
- ಈ ಬದಲಾವಣೆಗಳು ಯೋಜನೆಯನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತವೆ files, ಮತ್ತು ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ
ಆವೃತ್ತಿ | ಟೀಕೆಗಳು |
1.0.0 | ಆರಂಭಿಕ ಬಿಡುಗಡೆ |
1.0.1 | ಪೈಥಾನ್ ಮಾಡ್ಯೂಲ್ ಆಗಿ uart_regs.py ಆಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವಾಗ ಕಾಣೆಯಾದ «ಸ್ವಯಂ» ಉಲ್ಲೇಖ ದೋಷವನ್ನು ಸರಿಪಡಿಸಲಾಗಿದೆ. ಬರೆಯಲು ವಿಫಲವಾದ ಮುದ್ರಣವನ್ನು ವಿನಾಯಿತಿಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.
ಆಮದು ಮಾಡ್ಯೂಲ್ ಆಗಿ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಕನ್ಸೋಲ್ಗೆ ಮುದ್ರಣವನ್ನು ತಪ್ಪಿಸಿ. |
1.0.2 | ಔಟ್ ಮೋಡ್ ರೆಗ್ಗಳು ಇಲ್ಲದಿದ್ದಾಗ ವಿವಾಡೋ [ಸಿಂಥ್ 8-248] ದೋಷವನ್ನು ಸರಿಪಡಿಸಿ. |
1.0.3 | ವಿವಾಡೋ ಲಿಂಟರ್ ಎಚ್ಚರಿಕೆಯನ್ನು ಸರಿಪಡಿಸಿ: ರಿಜಿಸ್ಟರ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯನ್ನು ನಡೆಸುತ್ತಿದೆ
ಸಿಂಕ್ರೊನಸ್ ರೀಸೆಟ್ |
1.0.4 | ಕೊನೆಯ ಬೈಟ್ ಆಗಿ ಎಸ್ಕೇಪ್ ಅಕ್ಷರದೊಂದಿಗೆ ದೋಷಪೂರಿತ ಪದವನ್ನು ಸ್ವೀಕರಿಸುವಾಗ ಮೂಲೆಯ ಪ್ರಕರಣವನ್ನು ಸರಿಪಡಿಸಿ. IDLE ಗೆ ಹಿಂತಿರುಗುವಾಗ ನಾವು recv_data_prev_is_escape ಅನ್ನು ತೆರವುಗೊಳಿಸದ ಕಾರಣ ಮುಂದಿನ ಪದವು ಸಹ ಕಳೆದುಹೋಗುತ್ತದೆ.
gen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಈಗ ವಿಶಿಷ್ಟವಾದ reg ಹೆಸರುಗಳನ್ನು ಮಾತ್ರ ಅನುಮತಿಸುತ್ತದೆ. |
ವಿವರಣೆ
- ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ fileಗಳು ಮತ್ತು ಫೋಲ್ಡರ್ಗಳು:
- gen_uart_regs.py
- ರಚಿಸಲಾಗಿದೆ/uart_regs.vhd
- ರಚಿಸಲಾಗಿದೆ/uart_regs.py
- ರಚಿಸಲಾಗಿದೆ/instantiation_template.vho
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- demo/lattice_icestick/
- demo/xilinx_arty_a7_35/
- demo/xilinx_arty_s7_50/
- gen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಬೆಂಬಲಿಸುವ VHDL fileUART ಅನ್ನು ಬಳಸಿಕೊಂಡು ವಿವಿಧ ಪ್ರಕಾರಗಳು ಮತ್ತು ಅಗಲಗಳ FPGA ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ರಚಿಸಲು ಈ ಯೋಜನೆಯಲ್ಲಿ ರು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ.
- ನಿಮ್ಮ ವಿನ್ಯಾಸದಲ್ಲಿ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ರೆಜಿಸ್ಟರ್ಗಳಿಂದ ಓದಲು ಅಥವಾ ಬರೆಯಲು ನೀವು ರಚಿಸಲಾದ VHDL ಮಾಡ್ಯೂಲ್ ಮತ್ತು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಬಹುದು. UART ಪ್ರವೇಶಿಸಬಹುದಾದ ರೆಜಿಸ್ಟರ್ಗಳು std_logic, std_logic_vector, ಸಹಿ ಅಥವಾ ಸಹಿ ಮಾಡದ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಬಹುದು.
- ಔಟ್ಪುಟ್ ಉತ್ಪಾದಿಸುವಾಗ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ರೆಜಿಸ್ಟರ್ಗಳು ಮತ್ತು ಪ್ರಕಾರಗಳ ನಿಖರವಾದ ಸಂಯೋಜನೆಯನ್ನು ನೀವು ನಿರ್ಧರಿಸಬಹುದು filegen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದಾರೆ.
- ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ChatGPT ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಉಪಕರಣದ ಸಹಾಯದಿಂದ ಭಾಗಶಃ ರಚಿಸಲಾಗಿದೆ, ಆದರೆ VHDL ಕೋಡ್ ಕರಕುಶಲವಾಗಿದೆ.
ಅವಶ್ಯಕತೆಗಳು
- ಈ ಯೋಜನೆಯಲ್ಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಪೈಥಾನ್ 3 ಇಂಟರ್ಪ್ರಿಟರ್ ಮೂಲಕ ಚಲಾಯಿಸಬೇಕು ಮತ್ತು ಪೈಸೆರಿಯಲ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಬೇಕು.
- ನೀವು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು Pip ಮೂಲಕ pyserial ಅನ್ನು ಸ್ಥಾಪಿಸಬಹುದು: pip install pyserial
ಪ್ರೋಟೋಕಾಲ್
- VHDL files ಮತ್ತು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ನಾಲ್ಕು ನಿಯಂತ್ರಣಗಳೊಂದಿಗೆ ಡೇಟಾ-ಫ್ರೇಮಿಂಗ್ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತವೆ
ಹೆಸರು | ಮೌಲ್ಯ | ಕಾಮೆಂಟ್ ಮಾಡಿ |
ಓದಿ_REQ | 0x0A | ಬರೆಯುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಹೋಸ್ಟ್ನಿಂದ FPGA ಗೆ ಆಜ್ಞೆ
ಎಲ್ಲಾ ರಿಜಿಸ್ಟರ್ಗಳನ್ನು UART ಮೂಲಕ ವಾಪಸ್ ಕಳುಹಿಸುವ ಅನುಕ್ರಮ |
START_ಬರೆಯಿರಿ | 0x0 ಬಿ | ಯಾವುದಾದರೂ ಒಂದು ಬರವಣಿಗೆಯ ಅನುಕ್ರಮದ ಆರಂಭವನ್ನು ಗುರುತಿಸುತ್ತದೆ
ನಿರ್ದೇಶನ |
END_WRITE | 0x0 ಸಿ | ಎರಡೂ ದಿಕ್ಕಿನಲ್ಲಿ ಬರೆಯುವ ಅನುಕ್ರಮದ ಅಂತ್ಯವನ್ನು ಗುರುತಿಸುತ್ತದೆ |
ತಪ್ಪಿಸಿಕೊಳ್ಳು | 0x0D | START_WRITE ಮತ್ತು END_WRITE ಮಾರ್ಕರ್ಗಳ ನಡುವೆ ಡೇಟಾದಂತೆ ಕಾಣಿಸಿಕೊಂಡಾಗ ESCAPE ಅಕ್ಷರ ಸೇರಿದಂತೆ ಯಾವುದೇ ನಿಯಂತ್ರಣ ಪದಗಳಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು ಎಸ್ಕೇಪ್ ಅಕ್ಷರವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. |
FPGA ಗೆ ಕಳುಹಿಸಲಾದ ಯಾವುದೇ ತಪ್ಪಿಸಿಕೊಳ್ಳಲಾಗದ READ_REQ ಬೈಟ್ ಅದರ ಎಲ್ಲಾ UART- ಪ್ರವೇಶಿಸಬಹುದಾದ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು (ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಔಟ್ಪುಟ್ಗಳು) UART ಮೂಲಕ ಹೋಸ್ಟ್ಗೆ ಕಳುಹಿಸುವ ಸೂಚನೆಯಾಗಿದೆ. ಈ ಆಜ್ಞೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಮಾತ್ರ ನೀಡಲಾಗುತ್ತದೆ.
ಈ ಆಜ್ಞೆಯನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಎಲ್ಲಾ ರೆಜಿಸ್ಟರ್ಗಳ ವಿಷಯವನ್ನು ಹೋಸ್ಟ್ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ FPGA ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಮೊದಲು, ಇನ್ಪುಟ್ ಸಿಗ್ನಲ್ಗಳು, ನಂತರ ಔಟ್ಪುಟ್ ಸಿಗ್ನಲ್ಗಳು. ಅವುಗಳ ಉದ್ದಗಳು 8 ಬಿಟ್ಗಳ ಗುಣಾಕಾರವನ್ನು ಸೇರಿಸದಿದ್ದರೆ, ಕೊನೆಯ ಬೈಟ್ನ ಕೆಳಗಿನ ಬಿಟ್ಗಳು ಪ್ಯಾಡ್ಡ್ ಸೊನ್ನೆಗಳಾಗಿರುತ್ತದೆ.
ಬರೆಯುವ ಅನುಕ್ರಮವು ಯಾವಾಗಲೂ START_WRITE ಬೈಟ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗಿ END_WRITE ಬೈಟ್ನೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. ಅವುಗಳ ನಡುವಿನ ಯಾವುದೇ ಬೈಟ್ಗಳನ್ನು ಡೇಟಾ ಬೈಟ್ಗಳು ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಯಾವುದೇ ಡೇಟಾ ಬೈಟ್ಗಳು ನಿಯಂತ್ರಣ ಅಕ್ಷರದಂತೆಯೇ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದ್ದರೆ, ಡೇಟಾ ಬೈಟ್ ಅನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಕು. ಇದರರ್ಥ ಡೇಟಾ ಬೈಟ್ನ ಮೊದಲು ಹೆಚ್ಚುವರಿ ESCAPE ಅಕ್ಷರವನ್ನು ಕಳುಹಿಸುವುದು ಅದು ವಾಸ್ತವವಾಗಿ ಡೇಟಾ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.
ತಪ್ಪಿಸಿಕೊಳ್ಳಲಾಗದ START_WRITE ಬೈಟ್ಗಳ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ಬಂದರೆ, ಅದನ್ನು ಬರೆಯುವ ಅನುಕ್ರಮದ ಪ್ರಾರಂಭವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. uart_regs_backend ಮಾಡ್ಯೂಲ್ ಸಂವಹನವು ಸಿಂಕ್ನಿಂದ ಹೊರಬಂದರೆ ಮರುಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ಈ ಮಾಹಿತಿಯನ್ನು ಬಳಸುತ್ತದೆ.
gen_uart_regs.py
- ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ರಚಿಸಲು ನೀವು ಪ್ರಾರಂಭಿಸಬೇಕಾದ ಸ್ಕ್ರಿಪ್ಟ್ ಇದು. ರನ್ನಿಂಗ್ ಮೂಲಕ ನೀವು ಪಡೆಯಬಹುದಾದ ಸಹಾಯ ಮೆನುವಿನ ಸ್ಕ್ರೀನ್ಶಾಟ್ ಕೆಳಗೆ ಇದೆ: python gen_uart_regs.py -h
- ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ರಚಿಸಲು, ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳಾಗಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ನಿಮ್ಮ ಅಪೇಕ್ಷಿತ UART ನಿಯಂತ್ರಿಸಬಹುದಾದ ರೆಜಿಸ್ಟರ್ಗಳೊಂದಿಗೆ ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಬೇಕು. ಲಭ್ಯವಿರುವ ಪ್ರಕಾರಗಳು std_logic, std_logic_vector, ಅನ್ಸೈನ್ಡ್ ಮತ್ತು ಸೈನ್ಡ್.
- ಡೀಫಾಲ್ಟ್ ಮೋಡ್ (ದಿಕ್ಕು) ನಲ್ಲಿದೆ ಮತ್ತು ರಿಜಿಸ್ಟರ್ ಉದ್ದವಿಲ್ಲದಿದ್ದರೆ ಡೀಫಾಲ್ಟ್ ಪ್ರಕಾರವು std_logic_vector ಆಗಿರುತ್ತದೆ: 1. ನಂತರ, ಇದು std_logic ಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ.
- ಹೀಗಾಗಿ, ನೀವು std_logic ಇನ್ಪುಟ್ ಸಿಗ್ನಲ್ ಅನ್ನು ರಚಿಸಲು ಬಯಸಿದರೆ, ನೀವು ಈ ಯಾವುದೇ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಬಳಸಬಹುದು:
- my_sl=1
- my_sl=1:in
- my_sl=1:in:std_logic
- ಮೇಲಿನ ಎಲ್ಲಾ ರೂಪಾಂತರಗಳು ಈ UART-ಪ್ರವೇಶಿಸಬಹುದಾದ ಸಂಕೇತವನ್ನು ಉತ್ಪಾದಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ಗೆ ಕಾರಣವಾಗುತ್ತವೆ:
- ವಿಭಿನ್ನ ದಿಕ್ಕುಗಳು, ಉದ್ದಗಳು ಮತ್ತು ಪ್ರಕಾರಗಳ ಹಲವಾರು ರೆಜಿಸ್ಟರ್ಗಳೊಂದಿಗೆ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ರಚಿಸಲು ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳೊಂದಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡೋಣ.
ರಚಿಸಲಾಗಿದೆ files
- gen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ನ ಯಶಸ್ವಿ ಓಟವು ಮೂರರೊಂದಿಗೆ ರಚಿಸಲಾದ ಔಟ್ಪುಟ್ ಫೋಲ್ಡರ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ fileಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ. ಅವರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅವುಗಳನ್ನು ತಿದ್ದಿ ಬರೆಯಲಾಗುತ್ತದೆ.
- ರಚಿಸಲಾಗಿದೆ/uart_regs.vhd
- ರಚಿಸಲಾಗಿದೆ/uart_regs.py
- ರಚಿಸಲಾಗಿದೆ/instantiation_template.vho
- uart_regs.vhd
- ಇದು ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ರಚಿಸಲಾದ ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ ಮಾಡ್ಯೂಲ್ ಆಗಿದೆ. ನಿಮ್ಮ ವಿನ್ಯಾಸದಲ್ಲಿ ನೀವು ಅದನ್ನು ತತ್ಕ್ಷಣ ಮಾಡಬೇಕಾಗಿದೆ, ಅಲ್ಲಿ ನೀವು UART ಬಳಸಿಕೊಂಡು ನಿಯಂತ್ರಿಸಲು ಬಯಸುವ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.
- "- UART ಪ್ರವೇಶಿಸಬಹುದಾದ ರೆಜಿಸ್ಟರ್ಗಳು" ವಿಭಾಗದ ಮೇಲಿನ ಎಲ್ಲವೂ ಪ್ರತಿ uart_regs ಮಾಡ್ಯೂಲ್ಗೆ ಒಂದೇ ಆಗಿರುತ್ತದೆ, ಆದರೆ ಆ ಸಾಲಿನ ಕೆಳಗಿನ ಪೋರ್ಟ್ ಸಿಗ್ನಲ್ಗಳ ಸಂಯೋಜನೆಯು ಜನರೇಟರ್ ಸ್ಕ್ರಿಪ್ಟ್ಗೆ ನೀಡಿದ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.
- ಕೆಳಗಿನ ಪಟ್ಟಿಯು uart_regs ಮಾಡ್ಯೂಲ್ಗಾಗಿ ಉತ್ಪತ್ತಿಯಾಗುವ ಕಮಾಂಡ್ನಿಂದ ಉಂಟಾಗುವ ಘಟಕವನ್ನು ತೋರಿಸುತ್ತದೆ example gen_uart_regs.py ವಿಭಾಗದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ
- ನೀವು uart_rx ಸಿಗ್ನಲ್ ಅನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಅದನ್ನು uart_rx ನಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ಘಟಕ.
- ಮಾಡ್ಯೂಲ್ ಓದುವ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ಪ್ರಸ್ತುತ ಗಡಿಯಾರದ ಚಕ್ರದಲ್ಲಿ ಎಲ್ಲಾ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಸಿಗ್ನಲ್ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಅದು ಸೆರೆಹಿಡಿಯುತ್ತದೆ. ತತ್ಕ್ಷಣದ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಅನ್ನು ನಂತರ UART ಮೂಲಕ ಹೋಸ್ಟ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
- ಬರೆಯುವಿಕೆಯು ಸಂಭವಿಸಿದಾಗ, ಎಲ್ಲಾ ಔಟ್ಪುಟ್ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಅದೇ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಹೊಸ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ನವೀಕರಿಸಲಾಗುತ್ತದೆ. ಔಟ್ಪುಟ್ ಸಿಗ್ನಲ್ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
- ಆದಾಗ್ಯೂ, uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಕೆದಾರರಿಗೆ ಎಲ್ಲಾ ರೆಜಿಸ್ಟರ್ಗಳ ಪ್ರಸ್ತುತ ಮೌಲ್ಯಗಳನ್ನು ಮೊದಲು ಓದುವ ಮೂಲಕ ಆಯ್ದ ಔಟ್ಪುಟ್ಗಳನ್ನು ಮಾತ್ರ ನವೀಕರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಇದು ನವೀಕರಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳನ್ನು ಮತ್ತೆ ಬರೆಯುತ್ತದೆ.
- uart_regs.py
- ಉತ್ಪಾದಿಸಿದ/uart_regs.py file uart_regs VHDL ಮಾಡ್ಯೂಲ್ನೊಂದಿಗೆ ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಕಸ್ಟಮ್ ರಿಜಿಸ್ಟರ್ ಮಾಹಿತಿಯನ್ನು ಹೆಡರ್ನಲ್ಲಿ ಒಳಗೊಂಡಿದೆ file. ಈ ಸ್ಕ್ರಿಪ್ಟ್ನೊಂದಿಗೆ, ನಿಮ್ಮ ಕಸ್ಟಮ್ ರೆಜಿಸ್ಟರ್ಗಳಿಂದ ನೀವು ಸುಲಭವಾಗಿ ಓದಬಹುದು ಅಥವಾ ಬರೆಯಬಹುದು.
ಸಹಾಯ ಮೆನು
- ಸಹಾಯ ಮೆನುವನ್ನು ಮುದ್ರಿಸಲು python uart_regs.py -h ಎಂದು ಟೈಪ್ ಮಾಡಿ:
UART ಪೋರ್ಟ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ
- -c ಸ್ವಿಚ್ ಬಳಸಿ UART ಪೋರ್ಟ್ ಅನ್ನು ಹೊಂದಿಸಲು ಸ್ಕ್ರಿಪ್ಟ್ ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿದೆ. ಇದು ವಿಂಡೋಸ್ ಮತ್ತು ಲಿನಕ್ಸ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಸಹಾಯ ಮೆನುವಿನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಲಭ್ಯವಿರುವ ಪೋರ್ಟ್ಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಅದನ್ನು ಹೊಂದಿಸಿ. ಡೀಫಾಲ್ಟ್ ಪೋರ್ಟ್ ಅನ್ನು ಹೊಂದಿಸಲು, ನೀವು uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ UART_PORT ವೇರಿಯೇಬಲ್ ಅನ್ನು ಸಹ ಸಂಪಾದಿಸಬಹುದು.
ಪಟ್ಟಿ ನೋಂದಣಿಗಳು
- ರಿಜಿಸ್ಟರ್ ಮ್ಯಾಪಿಂಗ್ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು gen_uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ನ ಹೆಡರ್ನಲ್ಲಿ ಇರಿಸುತ್ತದೆ. ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ, -l ಸ್ವಿಚ್ನೊಂದಿಗೆ ಲಭ್ಯವಿರುವ ರಿಜಿಸ್ಟರ್ಗಳನ್ನು ನೀವು ಪಟ್ಟಿ ಮಾಡಬಹುದು. ಇದು ಸ್ಥಳೀಯ ಆಜ್ಞೆಯಾಗಿದ್ದು, ಗುರಿ FPGA ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವುದಿಲ್ಲ.
ರಿಜಿಸ್ಟರ್ಗಳಿಗೆ ಬರೆಯುವುದು
- -w ಸ್ವಿಚ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಯಾವುದೇ ಔಟ್ ಮೋಡ್ ರೆಜಿಸ್ಟರ್ಗಳಿಗೆ ಬರೆಯಬಹುದು. ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ "=" ನಂತರದ ರಿಜಿಸ್ಟರ್ ಹೆಸರನ್ನು ಮತ್ತು ಬೈನರಿ, ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಅಥವಾ ದಶಮಾಂಶ ಮೌಲ್ಯವಾಗಿ ನೀಡಲಾದ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸಿ.
- VHDL ಅನುಷ್ಠಾನವು ಸ್ಕ್ರಿಪ್ಟ್ ಎಲ್ಲಾ ಔಟ್ಪುಟ್ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಬರೆಯುವ ಅಗತ್ಯವಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಆದ್ದರಿಂದ, ನೀವು ಸಂಪೂರ್ಣ ಔಟ್ಪುಟ್ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಮೊದಲು ಗುರಿ FPGA ಯಿಂದ ಓದುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಕಾಣೆಯಾದವುಗಳಿಗೆ ಆ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ರೆಜಿಸ್ಟರ್ಗಳು ಮಾತ್ರ ಬದಲಾಗುತ್ತವೆ.
- ನೀವು ಬರೆಯುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಿದಾಗ, ಎಲ್ಲಾ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ರೆಜಿಸ್ಟರ್ಗಳು ಅದೇ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಬದಲಾಗುತ್ತವೆ, UART ಮೂಲಕ ಸ್ವೀಕರಿಸಿದ ತಕ್ಷಣ ಅಲ್ಲ.
ರಿಜಿಸ್ಟರ್ಗಳನ್ನು ಓದುವುದು
- ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ ಎಲ್ಲಾ ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಓದಲು -r ಸ್ವಿಚ್ ಬಳಸಿ. ಹಳದಿ ಬಣ್ಣದಲ್ಲಿ ಗುರುತಿಸಲಾದ ಮೌಲ್ಯಗಳನ್ನು ನಾವು ಹಿಂದಿನ ಬರಹದಲ್ಲಿ ಬದಲಾಯಿಸಿದ್ದೇವೆample
- ಪ್ರತಿ ಓದುವಿಕೆ ಎಲ್ಲಾ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ರೆಜಿಸ್ಟರ್ಗಳ ತತ್ಕ್ಷಣದ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ. ಅವರೆಲ್ಲರೂ ರುampಅದೇ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಮುನ್ನಡೆಸಿತು
ಡೀಬಗ್ ಮಾಡಲಾಗುತ್ತಿದೆ
ನೀವು ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಡೀಬಗ್ ಮಾಡಬೇಕಾದರೆ -d ಸ್ವಿಚ್ ಅನ್ನು ಇತರ ಯಾವುದೇ ಸ್ವಿಚ್ಗಳೊಂದಿಗೆ ಬಳಸಿ. ನಂತರ, ಸ್ಕ್ರಿಪ್ಟ್ ಎಲ್ಲಾ ಕಳುಹಿಸಿದ ಮತ್ತು ಸ್ವೀಕರಿಸಿದ ಬೈಟ್ಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ ಮತ್ತು tag ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ ಅವು ನಿಯಂತ್ರಣ ಪಾತ್ರಗಳಾಗಿದ್ದರೆ.
ಇತರ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಳಸುವುದು
- uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ UartRegs ವರ್ಗವನ್ನು ಹೊಂದಿದೆ ಅದನ್ನು ನೀವು ಇತರ ಕಸ್ಟಮ್ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಸಂವಹನ ಇಂಟರ್ಫೇಸ್ ಆಗಿ ಸುಲಭವಾಗಿ ಬಳಸಬಹುದು. ವರ್ಗವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ, ಅದರ ವಸ್ತುವನ್ನು ರಚಿಸಿ ಮತ್ತು ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ ವಿಧಾನಗಳನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿ.
- ವಿಧಾನ ಮತ್ತು ವಿವರಣೆಗಳು ಮತ್ತು ಮೌಲ್ಯದ ಪ್ರಕಾರಗಳನ್ನು ಹಿಂತಿರುಗಿಸಲು ಪೈಥಾನ್ ಕೋಡ್ನಲ್ಲಿರುವ ಡಾಕ್ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ನೋಡಿ.
instantiation_template.vho
- ನಿಮ್ಮ ಅನುಕೂಲಕ್ಕಾಗಿ uart_regs ಮಾಡ್ಯೂಲ್ ಜೊತೆಗೆ ತತ್ಕ್ಷಣದ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ. ಕೋಡಿಂಗ್ ಸಮಯವನ್ನು ಉಳಿಸಲು, ನೀವು ಮಾಡ್ಯೂಲ್ ತತ್ಕ್ಷಣ ಮತ್ತು ಸಿಗ್ನಲ್ ಘೋಷಣೆಗಳನ್ನು ನಿಮ್ಮ ವಿನ್ಯಾಸಕ್ಕೆ ನಕಲಿಸಬಹುದು.
ಸ್ಥಿರ RTL files
- ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ fileನಿಮ್ಮ VHDL ಪ್ರಾಜೆಕ್ಟ್ನಲ್ಲಿ ಅವುಗಳನ್ನು uart_regs ಮಾಡ್ಯೂಲ್ನಂತೆಯೇ ಅದೇ ಲೈಬ್ರರಿಯಲ್ಲಿ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ:
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- uart_regs_backend ಮಾಡ್ಯೂಲ್ ರಿಜಿಸ್ಟರ್ ಡೇಟಾದಲ್ಲಿ ಗಡಿಯಾರ ಮಾಡುವ ಸೀಮಿತ-ಸ್ಥಿತಿಯ ಯಂತ್ರಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಹೋಸ್ಟ್ನೊಂದಿಗೆ UART ಸಂವಹನವನ್ನು ನಿರ್ವಹಿಸಲು ಇದು uart_rx ಮತ್ತು uart_tx ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ.
ಡೆಮೊ ಯೋಜನೆಗಳು
- ಜಿಪ್ನಲ್ಲಿ ಮೂರು ಡೆಮೊ ಯೋಜನೆಗಳಿವೆ file. ವಿವಿಧ ಬೋರ್ಡ್ಗಳಲ್ಲಿ ಪೆರಿಫೆರಲ್ಗಳನ್ನು ಮತ್ತು ಕೆಲವು ದೊಡ್ಡ, ಆಂತರಿಕ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಅವರು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತಾರೆ.
- ಡೆಮೊ ಫೋಲ್ಡರ್ಗಳು ಪೂರ್ವ-ರಚಿತ uart_regs.vhd ಮತ್ತು uart_regs.py ಅನ್ನು ಒಳಗೊಂಡಿವೆ fileಆ ವಿನ್ಯಾಸಗಳಿಗಾಗಿ ನಿರ್ದಿಷ್ಟವಾಗಿ ಮಾಡಲ್ಪಟ್ಟಿದೆ.
ಲ್ಯಾಟಿಸ್ iCEstick
- demo/icecube2_icestick ಫೋಲ್ಡರ್ ಲ್ಯಾಟಿಸ್ iCEstick FPGA ಬೋರ್ಡ್ಗಾಗಿ ರಿಜಿಸ್ಟರ್ ಪ್ರವೇಶ ಡೆಮೊ ಅನುಷ್ಠಾನವನ್ನು ಹೊಂದಿದೆ.
- ಅನುಷ್ಠಾನ ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಚಲಾಯಿಸಲು, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project ತೆರೆಯಿರಿ file ಲ್ಯಾಟಿಸ್ iCEcube2 ವಿನ್ಯಾಸ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ.
- iCEcube2 GUI ನಲ್ಲಿ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬಿಟ್ಮ್ಯಾಪ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು Tools→Run All ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ file.
- ರಚಿಸಲಾದ ಬಿಟ್ಮ್ಯಾಪ್ನೊಂದಿಗೆ FPGA ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನೀವು ಲ್ಯಾಟಿಸ್ ಡೈಮಂಡ್ ಪ್ರೋಗ್ರಾಮರ್ ಸ್ಟ್ಯಾಂಡಲೋನ್ ಟೂಲ್ ಅನ್ನು ಬಳಸಬಹುದು file. ಡೈಮಂಡ್ ಪ್ರೋಗ್ರಾಮರ್ ತೆರೆದಾಗ, ಸ್ವಾಗತ ಸಂವಾದ ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಮರ್ ಯೋಜನೆಯನ್ನು ತೆರೆಯಿರಿ ಕ್ಲಿಕ್ ಮಾಡಿ.
- ಯೋಜನೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ file Zip ನಲ್ಲಿ ಕಂಡುಬರುತ್ತದೆ: demo/lattice_icestick/diamond_programmer_project.xcf ಮತ್ತು ಸರಿ ಕ್ಲಿಕ್ ಮಾಡಿ.
- ಯೋಜನೆಯು ಲೋಡ್ ಆದ ನಂತರ, ಮೂರು ಚುಕ್ಕೆಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ File ಮೇಲೆ ತೋರಿಸಿರುವಂತೆ ಕಾಲಮ್ ಅನ್ನು ಹೆಸರಿಸಿ. ಬಿಟ್ಮ್ಯಾಪ್ ಆಯ್ಕೆ ಮಾಡಲು ಬ್ರೌಸ್ ಮಾಡಿ file ನೀವು iCEcube2 ನಲ್ಲಿ ರಚಿಸಿದ
- ಡೆಮೊ/ಲ್ಯಾಟಿಸ್_ಐಸ್ಸ್ಟಿಕ್/ಐಸ್ಕ್ಯೂಬ್2_ಪ್ರೊಜ್/ಯುಆರ್ಟ್_ರೆಗ್ಸ್_ಇಂಪ್ಲಿಮ್ಂಟ್/ಎಸ್ಬಿಟಿ/ಔಟ್ಪುಟ್ಗಳು/ಬಿಟ್ಮ್ಯಾಪ್/ಟಾಪ್_ಐಸ್ಸ್ಟಿಕ್_ಬಿಟ್ಮ್ಯಾಪ್.ಬಿನ್
- ಅಂತಿಮವಾಗಿ, iCEstick ಬೋರ್ಡ್ ಅನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ USB ಪೋರ್ಟ್ಗೆ ಪ್ಲಗ್ ಮಾಡುವುದರೊಂದಿಗೆ, SPI ಫ್ಲ್ಯಾಷ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ವಿನ್ಯಾಸ→ಪ್ರೋಗ್ರಾಮ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ ಮತ್ತು FPGA ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.
- uart_regs.py ವಿಭಾಗದಲ್ಲಿ ವಿವರಿಸಿದಂತೆ demo/lattice_icestick/uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈಗ ರಿಜಿಸ್ಟರ್ಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಮುಂದುವರಿಯಬಹುದು.
Xilinx ಡಿಜಿಲೆಂಟ್ ಆರ್ಟಿ A7-35T
- ನೀವು Demo/arty_a7_35 ಫೋಲ್ಡರ್ನಲ್ಲಿ Artix-7 35T ಆರ್ಟಿ FPGA ಮೌಲ್ಯಮಾಪನ ಕಿಟ್ಗಾಗಿ ಡೆಮೊ ಅನುಷ್ಠಾನವನ್ನು ಕಾಣಬಹುದು.
- Vivado ತೆರೆಯಿರಿ ಮತ್ತು ಹೊರತೆಗೆಯಲು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ fileGUI ಇಂಟರ್ಫೇಸ್ನ ಕೆಳಭಾಗದಲ್ಲಿ ಕಂಡುಬರುವ Tcl ಕನ್ಸೋಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಡೆಮೊ ಪ್ರಾಜೆಕ್ಟ್ ಫೋಲ್ಡರ್ ಅನ್ನು ನಮೂದಿಸಲು ಈ ಆಜ್ಞೆಯನ್ನು ಟೈಪ್ ಮಾಡಿ:
- ಸಿಡಿ /ಡೆಮೊ/arty_a7_35/ವಿವಾದೋ_ಪ್ರೋಜ್/
- Vivado ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಮರುಸೃಷ್ಟಿಸಲು create_vivado_proj.tcl Tcl ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ:
- ಮೂಲ ./create_vivado_proj.tcl
- ಎಲ್ಲಾ ಅನುಷ್ಠಾನ ಹಂತಗಳ ಮೂಲಕ ಚಲಾಯಿಸಲು ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬಿಟ್ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸಲು ಸೈಡ್ಬಾರ್ನಲ್ಲಿ ಬಿಟ್ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ file.
- ಅಂತಿಮವಾಗಿ, ಓಪನ್ ಹಾರ್ಡ್ವೇರ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು GUI ಮೂಲಕ FPGA ಅನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಿ.
- uart_regs.py ವಿಭಾಗದಲ್ಲಿ ವಿವರಿಸಿದಂತೆ demo/arty_a7_35/uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈಗ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಮುಂದುವರಿಯಬಹುದು.
Xilinx ಡಿಜಿಲೆಂಟ್ ಆರ್ಟಿ S7-50
- Demo/arty_s7_7 ಫೋಲ್ಡರ್ನಲ್ಲಿ ಆರ್ಟಿ S7: Spartan-50 FPGA ಡೆವಲಪ್ಮೆಂಟ್ ಬೋರ್ಡ್ಗಾಗಿ ಡೆಮೊ ಅನುಷ್ಠಾನವನ್ನು ನೀವು ಕಾಣಬಹುದು.
- Vivado ತೆರೆಯಿರಿ ಮತ್ತು ಹೊರತೆಗೆಯಲು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ fileGUI ಇಂಟರ್ಫೇಸ್ನ ಕೆಳಭಾಗದಲ್ಲಿ ಕಂಡುಬರುವ Tcl ಕನ್ಸೋಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಡೆಮೊ ಪ್ರಾಜೆಕ್ಟ್ ಫೋಲ್ಡರ್ ಅನ್ನು ನಮೂದಿಸಲು ಈ ಆಜ್ಞೆಯನ್ನು ಟೈಪ್ ಮಾಡಿ:
- ಸಿಡಿ /ಡೆಮೊ/arty_s7_50/ವಿವಾದೋ_ಪ್ರೋಜ್/
- Vivado ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಮರುಸೃಷ್ಟಿಸಲು create_vivado_proj.tcl Tcl ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ:
- ಮೂಲ ./create_vivado_proj.tcl
- ಎಲ್ಲಾ ಅನುಷ್ಠಾನ ಹಂತಗಳ ಮೂಲಕ ಚಲಾಯಿಸಲು ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಬಿಟ್ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸಲು ಸೈಡ್ಬಾರ್ನಲ್ಲಿ ಬಿಟ್ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ file.
- ಅಂತಿಮವಾಗಿ, ಓಪನ್ ಹಾರ್ಡ್ವೇರ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು GUI ಮೂಲಕ FPGA ಅನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಿ.
- uart_regs.py ವಿಭಾಗದಲ್ಲಿ ವಿವರಿಸಿದಂತೆ demo/arty_s7_50/uart_regs.py ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈಗ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಮುಂದುವರಿಯಬಹುದು.
ಅನುಷ್ಠಾನ
- ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಅನುಷ್ಠಾನದ ಅವಶ್ಯಕತೆಗಳಿಲ್ಲ.
ನಿರ್ಬಂಧಗಳು
- ಈ ವಿನ್ಯಾಸಕ್ಕೆ ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಸಮಯದ ನಿರ್ಬಂಧಗಳ ಅಗತ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ UART ಇಂಟರ್ಫೇಸ್ ನಿಧಾನವಾಗಿರುತ್ತದೆ ಮತ್ತು ಅಸಮಕಾಲಿಕ ಇಂಟರ್ಫೇಸ್ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.
- uart_regs ಮಾಡ್ಯೂಲ್ಗೆ uart_rx ಇನ್ಪುಟ್ ಅನ್ನು uart_rx ಮಾಡ್ಯೂಲ್ನಲ್ಲಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲಾಗಿದೆ. ಹೀಗಾಗಿ, ಇದನ್ನು ಉನ್ನತ ಮಟ್ಟದ ಮಾಡ್ಯೂಲ್ನಲ್ಲಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.
ತಿಳಿದಿರುವ ಸಮಸ್ಯೆಗಳು
- ನಿಮ್ಮ ಎಫ್ಪಿಜಿಎ ಆರ್ಕಿಟೆಕ್ಚರ್ ಡೀಫಾಲ್ಟ್ ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ಅವಲಂಬಿಸಿ, ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸುವ ಮೊದಲು ನೀವು ಅದನ್ನು ಮರುಹೊಂದಿಸಬೇಕಾಗಬಹುದು.
ಹೆಚ್ಚಿನ ಮಾಹಿತಿ
- ಹಕ್ಕುಸ್ವಾಮ್ಯ VHDLwhiz.com
FAQ ಗಳು
ಪ್ರಶ್ನೆ: UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್ನ ಉದ್ದೇಶವೇನು?
A: UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್, UART ಸಂವಹನವನ್ನು ಬಳಸಿಕೊಂಡು FPGA ರಿಜಿಸ್ಟರ್ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಕಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಪ್ರಶ್ನೆ: ಪೈಸೀರಿಯಲ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ನಾನು ಹೇಗೆ ಸ್ಥಾಪಿಸುವುದು?
A: ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು Pip ಮೂಲಕ Pyserial ಅನ್ನು ಸ್ಥಾಪಿಸಬಹುದು: pip install pyserial
ದಾಖಲೆಗಳು / ಸಂಪನ್ಮೂಲಗಳು
![]() |
VHDLwhiz UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್ [ಪಿಡಿಎಫ್] ಬಳಕೆದಾರರ ಕೈಪಿಡಿ UART ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್, ಪರೀಕ್ಷಾ ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್, ಇಂಟರ್ಫೇಸ್ ಜನರೇಟರ್, ಜನರೇಟರ್ |