ເຄື່ອງສ້າງການໂຕ້ຕອບ VHDLwhiz UART
ຂໍ້ມູນຜະລິດຕະພັນ
ຂໍ້ມູນຈໍາເພາະ:
- ຊື່ຜະລິດຕະພັນ: VHDL ລົງທະບຽນເຄື່ອງສ້າງການໂຕ້ຕອບການທົດສອບ UART
- ລຸ້ນ: 1.0.4
- ວັນທີ: 18 ສິງຫາ 2024
- ຜູ້ຂຽນ: Jonas Julian Jensen
- ຜະລິດຕະພັນ URL: ການເຊື່ອມຕໍ່ຜະລິດຕະພັນ
- ອີເມວຕິດຕໍ່: jonas@vhdlwhiz.com
ລາຍລະອຽດ
ຜະລິດຕະພັນນີ້ອະນຸຍາດໃຫ້ທ່ານສ້າງການໂຕ້ຕອບທີ່ກໍາຫນົດເອງສໍາລັບການອ່ານແລະຂຽນຄ່າລົງທະບຽນ FPGA ໂດຍໃຊ້ UART. ໂມດູນ VHDL ທີ່ສ້າງຂຶ້ນແລະສະຄິບ Python ສະຫນອງຄວາມສາມາດໃນການພົວພັນກັບປະເພດຕ່າງໆຂອງທະບຽນໃນການອອກແບບ FPGA ຂອງທ່ານ.
ຄວາມຕ້ອງການ
- ນາຍພາສາ Python 3
- ຊຸດ pyserial
ພິທີການ
ຜະລິດຕະພັນໃຊ້ໂປໂຕຄອນກອບຂໍ້ມູນທີ່ມີສີ່ຕົວຄວບຄຸມ:
- ຊື່: READ_REQ, ມູນຄ່າ: 0x0A - ຄໍາສັ່ງຈາກເຈົ້າພາບໄປຫາ FPGA ເພື່ອເລີ່ມຕົ້ນລໍາດັບການຂຽນເພື່ອສົ່ງການລົງທະບຽນທັງຫມົດກັບຄືນໄປບ່ອນ UART
- ຊື່: START_WRITE, ມູນຄ່າ: 0x0B – ໝາຍຈຸດເລີ່ມຕົ້ນຂອງລຳດັບການຂຽນໃນທິດທາງໃດນຶ່ງ
- ຊື່: END_WRITE, ມູນຄ່າ: 0x0C – ໝາຍຈຸດສິ້ນສຸດຂອງລຳດັບການຂຽນໃນທິດທາງໃດນຶ່ງ
- ຊື່: ໜີ, ມູນຄ່າ: 0x0D - ຕົວອັກສອນ Escape ທີ່ໃຊ້ສໍາລັບການຫນີຄໍາທີ່ຄວບຄຸມ
ຄໍາແນະນໍາການນໍາໃຊ້ຜະລິດຕະພັນ
ແລ່ນສະຄຣິບ
ເພື່ອນໍາໃຊ້ຜະລິດຕະພັນ, ໃຫ້ແນ່ໃຈວ່າທ່ານມີ Python 3 ຕິດຕັ້ງແລະຊຸດ Pyserial. ແລ່ນສະຄຣິບຜ່ານຕົວແປ Python 3.
ການສ້າງການໂຕ້ຕອບແບບກຳນົດເອງ
ໃຊ້ສະຄຣິບ gen_uart_regs.py ເພື່ອສ້າງສ່ວນຕິດຕໍ່ແບບກຳນົດເອງສຳລັບການອ່ານ ແລະຂຽນຄ່າລົງທະບຽນ FPGA. ທ່ານສາມາດກໍານົດອົງປະກອບຂອງການປ້ອນຂໍ້ມູນແລະຜົນຜະລິດບັນທຶກແລະປະເພດໃນເວລາທີ່ການຜະລິດຜົນຜະລິດໄດ້ files.
ປະຕິສໍາພັນກັບທະບຽນ
ທ່ານສາມາດອ່ານຈາກຫຼືຂຽນໄປຫາຈໍານວນການລົງທະບຽນໃດໆໃນການອອກແບບ FPGA ຂອງທ່ານໂດຍໃຊ້ໂມດູນ VHDL ແລະສະຄິບ Python. ທະບຽນທີ່ເຂົ້າເຖິງສາມາດມີປະເພດເຊັ່ນ: std_logic, std_logic_vector, ເຊັນ, ຫຼືບໍ່ໄດ້ເຊັນ.
ໃບອະນຸຍາດ
- ໃບອະນຸຍາດ MIT ກວມເອົາຂໍ້ກໍານົດລິຂະສິດຂອງລະຫັດແຫຼ່ງແລະເງື່ອນໄຂການນໍາໃຊ້. ອ້າງອີງເຖິງ LICENSE.txt file ໃນ Zip ໄດ້ file ສໍາລັບລາຍລະອຽດ.
ບັນທຶກການປ່ຽນແປງ
- ການປ່ຽນແປງເຫຼົ່ານີ້ຫມາຍເຖິງໂຄງການ files, ແລະເອກະສານນີ້ໄດ້ຖືກປັບປຸງຕາມຄວາມເຫມາະສົມ
ຮຸ່ນ | ຂໍ້ສັງເກດ |
1.0.0 | ການປ່ອຍຕົວໃນເບື້ອງຕົ້ນ |
1.0.1 | ແກ້ໄຂຂໍ້ຜິດພາດການອ້າງອິງ «ຕົວຕົນ» ທີ່ຂາດຫາຍໄປເມື່ອນໍາເຂົ້າເປັນ uart_regs.py ເປັນໂມດູນ Python. ການປ່ຽນແປງການພິມບໍ່ສໍາເລັດເປັນຂໍ້ຍົກເວັ້ນ
ຫຼີກເວັ້ນການພິມໃສ່ຄອນໂຊເມື່ອແລ່ນເປັນໂມດູນທີ່ນໍາເຂົ້າ. |
1.0.2 | ແກ້ໄຂຂໍ້ຜິດພາດ Vivado [Synth 8-248] ເມື່ອບໍ່ມີລະບົບອອກ regs. |
1.0.3 | ແກ້ໄຂຄໍາເຕືອນ Vivado Linter: ລົງທະບຽນໄດ້ເປີດໃຊ້ງານໂດຍ
ຣີເຊັດ synchronous |
1.0.4 | ແກ້ໄຂກໍລະນີມຸມໃນເວລາທີ່ໄດ້ຮັບຄໍາທີ່ບໍ່ຖືກຕ້ອງທີ່ມີຕົວອັກສອນ escape ເປັນ byte ສຸດທ້າຍ. ຄຳສັບຕໍ່ໄປກໍຍັງຈະສູນເສຍໄປອີກ ເພາະພວກເຮົາບໍ່ໄດ້ລຶບລ້າງ recv_data_prev_is_escape ເມື່ອກັບຄືນໄປຫາ IDLE.
ຕອນນີ້ສະຄຣິບ gen_uart_regs.py ອະນຸຍາດໃຫ້ສະເພາະຊື່ reg ເທົ່ານັ້ນ. |
ລາຍລະອຽດ
- ເອກະສານນີ້ອະທິບາຍຕໍ່ໄປນີ້ files ແລະ folders:
- gen_uart_regs.py
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/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 files ໃນໂຄງການນີ້ຊ່ວຍໃຫ້ທ່ານສ້າງການໂຕ້ຕອບທີ່ກໍາຫນົດເອງສໍາລັບການອ່ານແລະຂຽນຄ່າລົງທະບຽນ FPGA ຂອງປະເພດຕ່າງໆແລະຄວາມກວ້າງໂດຍໃຊ້ UART.
- ທ່ານສາມາດນໍາໃຊ້ໂມດູນ VHDL ແລະສະຄິບ Python ທີ່ສ້າງຂຶ້ນເພື່ອອ່ານຫຼືຂຽນໄປຫາຈໍານວນການລົງທະບຽນໃດໆໃນການອອກແບບຂອງທ່ານ. ການລົງທະບຽນ UART ທີ່ສາມາດເຂົ້າເຖິງໄດ້ສາມາດມີປະເພດ std_logic, std_logic_vector, ເຊັນ, ຫຼືບໍ່ໄດ້ເຊັນ.
- ທ່ານສາມາດຕັດສິນໃຈກ່ຽວກັບອົງປະກອບທີ່ຊັດເຈນຂອງການປ້ອນແລະຜົນຜະລິດບັນທຶກແລະປະເພດໃນເວລາທີ່ການຜະລິດຜົນຜະລິດໄດ້ files ໃຊ້ສະຄິບ gen_uart_regs.py.
- ສະຄຣິບ Python ໄດ້ຖືກສ້າງຂື້ນບາງສ່ວນໂດຍການຊ່ວຍເຫຼືອຂອງເຄື່ອງມືປັນຍາປະດິດ ChatGPT, ໃນຂະນະທີ່ລະຫັດ VHDL ແມ່ນເຮັດດ້ວຍມື.
ຄວາມຕ້ອງການ
- ສະຄຣິບໃນໂຄງການນີ້ຕ້ອງດໍາເນີນການຜ່ານຕົວແປພາສາ Python 3 ແລະຊຸດ Pyserial ຕ້ອງໄດ້ຮັບການຕິດຕັ້ງ.
- ທ່ານສາມາດຕິດຕັ້ງ pyserial ຜ່ານ Pip ໂດຍໃຊ້ຄໍາສັ່ງນີ້: pip ຕິດຕັ້ງ pyserial
ພິທີການ
- VHDL files ແລະ Python script ໃຊ້ໂປໂຕຄອນກອບຂໍ້ມູນທີ່ມີສີ່ການຄວບຄຸມ
ຊື່ | ມູນຄ່າ | ຄໍາເຫັນ |
READ_REQ | 0x0A | ຄໍາສັ່ງຈາກເຈົ້າພາບໄປຫາ FPGA ເພື່ອເລີ່ມຕົ້ນການຂຽນ
ລໍາດັບເພື່ອສົ່ງການລົງທະບຽນທັງຫມົດກັບຄືນຜ່ານ UART |
START_WRITE | 0x0B | ໝາຍຈຸດເລີ່ມຕົ້ນຂອງລຳດັບການຂຽນໃນອັນໃດນຶ່ງ
ທິດທາງ |
END_WRITE | ຂະ ໜາດ 0x0C | ໝາຍຈຸດສິ້ນສຸດຂອງລຳດັບການຂຽນໃນທິດທາງໃດນຶ່ງ |
ໜີ | 0x0D | ຕົວອັກສອນ Escape ທີ່ໃຊ້ສໍາລັບການຫລົບຫນີຂອງຄໍາສັບໃດຫນຶ່ງຂອງການຄວບຄຸມ, ລວມທັງຕົວອັກສອນ ESCAPE ຕົວມັນເອງ, ໃນເວລາທີ່ພວກເຂົາເຈົ້າປະກົດວ່າເປັນຂໍ້ມູນລະຫວ່າງເຄື່ອງຫມາຍ START_WRITE ແລະ END_WRITE. |
ໄບຕ໌ READ_REQ ໃດໆທີ່ຍັງບໍ່ໄດ້ຖືກສົ່ງໄປຫາ FPGA ແມ່ນຄໍາແນະນໍາທີ່ຈະສົ່ງການລົງທະບຽນທີ່ເຂົ້າເຖິງ UART ທັງໝົດ (ວັດສະດຸປ້ອນ ແລະຜົນຜະລິດ) ກັບຄືນໄປຫາເຈົ້າພາບຜ່ານ UART. ຄຳສັ່ງນີ້ປົກກະຕິແລ້ວແມ່ນອອກໂດຍສະຄຣິບ uart_regs.py ເທົ່ານັ້ນ.
ເມື່ອໄດ້ຮັບຄໍາສັ່ງນີ້, FPGA ຈະຕອບສະຫນອງໂດຍການສົ່ງເນື້ອໃນຂອງການລົງທະບຽນທັງຫມົດກັບຄືນໄປບ່ອນເຈົ້າພາບ. ຫນ້າທໍາອິດ, ສັນຍານ input, ຫຼັງຈາກນັ້ນສັນຍານຜົນຜະລິດ. ຖ້າຄວາມຍາວຂອງພວກມັນບໍ່ເພີ່ມເປັນຄູນ 8 ບິດ, ບິດລຸ່ມສຸດຂອງໄບຕ໌ສຸດທ້າຍຈະຖືກ padded zeros.
ລຳດັບການຂຽນເລີ່ມຕົ້ນດ້ວຍ START_WRITE byte ແລະລົງທ້າຍດ້ວຍ END_WRITE byte. ໄບຕ໌ໃດນຶ່ງລະຫວ່າງນັ້ນຖືວ່າເປັນໄບຕ໌ຂໍ້ມູນ. ຖ້າໄບຕ໌ຂໍ້ມູນໃດນຶ່ງມີຄ່າເທົ່າກັບຕົວຄວບຄຸມ, ໄບຕ໌ຂໍ້ມູນຈະຕ້ອງຖືກຫລົບໜີ. ນີ້ຫມາຍຄວາມວ່າການສົ່ງຕົວອັກສອນ ESCAPE ເພີ່ມເຕີມກ່ອນ byte ຂໍ້ມູນເພື່ອຊີ້ບອກວ່າມັນເປັນຂໍ້ມູນຈິງ.
ຖ້າ START_WRITE ທີ່ບໍ່ໄດ້ຫຼົບໜີໄປຮອດບ່ອນໃດກໍໄດ້ໃນກະແສໄບຕ໌, ມັນຖືວ່າເປັນການເລີ່ມຕົ້ນຂອງລຳດັບການຂຽນ. ໂມດູນ uart_regs_backend ໃຊ້ຂໍ້ມູນນີ້ເພື່ອ synchronize ຄືນໃໝ່ໃນກໍລະນີທີ່ການສື່ສານຂາດການຊິ້ງ.
gen_uart_regs.py
- ນີ້ແມ່ນສະຄຣິບທີ່ທ່ານຕ້ອງເລີ່ມຕົ້ນດ້ວຍເພື່ອສ້າງການໂຕ້ຕອບ. ຂ້າງລຸ່ມນີ້ແມ່ນຮູບໜ້າຈໍຂອງເມນູຊ່ວຍເຫຼືອທີ່ທ່ານສາມາດໄດ້ຮັບໂດຍການແລ່ນ: python gen_uart_regs.py -h
- ເພື່ອສ້າງການໂຕ້ຕອບແບບກໍານົດເອງ, ທ່ານຕ້ອງແລ່ນສະຄິບກັບແຕ່ລະຕົວລົງທະບຽນທີ່ຄວບຄຸມ UART ທີ່ຕ້ອງການຂອງທ່ານທີ່ມີລາຍຊື່ເປັນ arguments. ປະເພດທີ່ມີຢູ່ແມ່ນ std_logic, std_logic_vector, ບໍ່ໄດ້ເຊັນ, ແລະເຊັນ.
- ຮູບແບບເລີ່ມຕົ້ນ (ທິດທາງ) ແມ່ນຢູ່ໃນແລະປະເພດເລີ່ມຕົ້ນແມ່ນ std_logic_vector ເວັ້ນເສຍແຕ່ວ່າການລົງທະບຽນມີຄວາມຍາວ: 1. ຫຼັງຈາກນັ້ນ, ມັນຈະເປັນຄ່າເລີ່ມຕົ້ນຂອງ std_logic.
- ດັ່ງນັ້ນ, ຖ້າທ່ານຕ້ອງການສ້າງສັນຍານ input std_logic, ທ່ານສາມາດນໍາໃຊ້ arguments ເຫຼົ່ານີ້:
- my_sl=1
- my_sl=1:ໃນ
- my_sl=1:in:std_logic
- ຕົວແປທັງໝົດຂ້າງເທິງຈະສົ່ງຜົນໃຫ້ສະຄຣິບສ້າງສັນຍານທີ່ເຂົ້າເຖິງໄດ້ UART:
- ໃຫ້ແລ່ນສະຄຣິບດ້ວຍການໂຕ້ຖຽງເພື່ອສ້າງການໂຕ້ຕອບທີ່ມີທະບຽນຫຼາຍທິດທາງ, ຄວາມຍາວ, ແລະປະເພດທີ່ແຕກຕ່າງກັນ.
ສ້າງຂຶ້ນ files
- ການດໍາເນີນການທີ່ປະສົບຜົນສໍາເລັດຂອງສະຄິບ gen_uart_regs.py ຈະສ້າງໂຟນເດີຜົນຜະລິດທີ່ມີຊື່ທີ່ສ້າງຂຶ້ນດ້ວຍສາມອັນ. files ໄດ້ລະບຸໄວ້ຂ້າງລຸ່ມນີ້. ຖ້າພວກມັນມີຢູ່ແລ້ວ, ພວກມັນຈະຖືກຂຽນທັບ.
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/instantiation_template.vho
- uart_regs.vhd
- ນີ້ແມ່ນໂມດູນການໂຕ້ຕອບແບບກຳນົດເອງທີ່ສ້າງຂຶ້ນໂດຍສະຄຣິບ. ທ່ານຈໍາເປັນຕ້ອງເຮັດໃຫ້ທັນທີໃນການອອກແບບຂອງທ່ານ, ບ່ອນທີ່ມັນສາມາດເຂົ້າເຖິງການລົງທະບຽນທີ່ທ່ານຕ້ອງການຄວບຄຸມການນໍາໃຊ້ UART.
- ທຸກສິ່ງທຸກຢ່າງຂ້າງເທິງ "– ການລົງທະບຽນທີ່ສາມາດເຂົ້າເຖິງ UART" ຈະຄືກັນສໍາລັບທຸກໂມດູນ uart_regs, ໃນຂະນະທີ່ອົງປະກອບຂອງສັນຍານພອດຂ້າງລຸ່ມນີ້ແມ່ນຂຶ້ນກັບການໂຕ້ຖຽງທີ່ໃຫ້ script generator.
- ລາຍຊື່ຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນເຖິງຫນ່ວຍງານສໍາລັບໂມດູນ uart_regs ທີ່ມາຈາກຄໍາສັ່ງ generate example ສະແດງໃຫ້ເຫັນໃນ gen_uart_regs.py secti
- ທ່ານບໍ່ຈໍາເປັນຕ້ອງ synchronize ສັນຍານ uart_rx, ຍ້ອນວ່າມັນຖືກຈັດການຢູ່ໃນ uart_rx. ໂມດູນ.
- ເມື່ອໂມດູນໄດ້ຮັບການຮ້ອງຂໍການອ່ານ, ມັນຈະເກັບກໍາຄ່າຂອງສັນຍານຂາເຂົ້າແລະຜົນຜະລິດທັງຫມົດພາຍໃນວົງຈອນໂມງປະຈຸບັນ. ພາບຖ່າຍທັນທີແມ່ນຖືກສົ່ງໄປຫາເຈົ້າພາບຜ່ານ UART.
- ເມື່ອການຂຽນເກີດຂື້ນ, ບັນທຶກຜົນຜະລິດທັງຫມົດຈະຖືກປັບປຸງດ້ວຍຄ່າໃຫມ່ພາຍໃນວົງຈອນໂມງດຽວກັນ. ບໍ່ສາມາດປ່ຽນຄ່າສັນຍານອອກເປັນແຕ່ລະອັນໄດ້.
- ແນວໃດກໍ່ຕາມ, script uart_regs.py ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດປັບປຸງພຽງແຕ່ຜົນໄດ້ຮັບທີ່ເລືອກໂດຍການອ່ານຄືນຄ່າປັດຈຸບັນຂອງທຸກທະບຽນ. ຈາກນັ້ນມັນຂຽນຄືນຄ່າທັງໝົດ, ລວມທັງຄ່າທີ່ອັບເດດແລ້ວ.
- uart_regs.py
- ທີ່ສ້າງຂຶ້ນ/uart_regs.py file ຖືກສ້າງຂື້ນພ້ອມກັບໂມດູນ uart_regs VHDL ແລະມີຂໍ້ມູນການລົງທະບຽນແບບກຳນົດເອງຢູ່ໃນສ່ວນຫົວຂອງ file. ດ້ວຍ script ນີ້, ທ່ານສາມາດອ່ານຈາກຫຼືຂຽນໄປຫາທະບຽນທີ່ກໍາຫນົດເອງຂອງທ່ານດ້ວຍຄວາມສະດວກສະບາຍ.
ເມນູຊ່ວຍເຫຼືອ
- ພິມ python uart_regs.py -h ເພື່ອພິມເມນູຊ່ວຍເຫຼືອ:
ການຕັ້ງຄ່າພອດ UART
- ສະຄຣິບມີທາງເລືອກໃນການຕັ້ງພອດ UART ໂດຍໃຊ້ປຸ່ມ -c. ນີ້ເຮັດວຽກຢູ່ໃນ Windows ແລະ Linux. ຕັ້ງມັນໃສ່ໜຶ່ງໃນພອດທີ່ມີລາຍຊື່ຢູ່ໃນເມນູຊ່ວຍເຫຼືອ. ເພື່ອຕັ້ງພອດເລີ່ມຕົ້ນ, ທ່ານຍັງສາມາດແກ້ໄຂຕົວແປ UART_PORT ໃນສະຄຣິບ uart_regs.py ໄດ້.
ການລົງທະບຽນລາຍຊື່
- ຂໍ້ມູນກ່ຽວກັບການສ້າງແຜນທີ່ການລົງທະບຽນແມ່ນຖືກຈັດໃສ່ຢູ່ໃນສ່ວນຫົວຂອງສະຄຣິບ uart_regs.py ໂດຍສະຄຣິບ gen_uart_regs.py. ທ່ານສາມາດລາຍຊື່ການລົງທະບຽນທີ່ມີປຸ່ມ -l, ດັ່ງທີ່ເຫັນຂ້າງລຸ່ມນີ້. ນີ້ແມ່ນຄໍາສັ່ງທ້ອງຖິ່ນແລະຈະບໍ່ພົວພັນກັບ FPGA ເປົ້າຫມາຍ
ຂຽນລົງທະບຽນ
- ທ່ານສາມາດຂຽນໃສ່ການລົງທະບຽນໂຫມດອອກໃດໆໂດຍໃຊ້ປຸ່ມ -w. ສະໜອງຊື່ລົງທະບຽນຕາມດ້ວຍ “=” ແລະຄ່າທີ່ເປັນຖານສອງ, ເລກຖານສິບຫົກ, ຫຼືຄ່າທົດສະນິຍົມ, ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້.
- ໃຫ້ສັງເກດວ່າການປະຕິບັດ VHDL ຕ້ອງການສະຄິບເພື່ອຂຽນບັນທຶກຜົນຜະລິດທັງຫມົດພ້ອມໆກັນ. ດັ່ງນັ້ນ, ຖ້າທ່ານບໍ່ລະບຸຊຸດບັນທຶກຜົນຜະລິດທີ່ສົມບູນ, script ຈະດໍາເນີນການອ່ານຈາກເປົ້າຫມາຍ FPGA ທໍາອິດແລະຫຼັງຈາກນັ້ນນໍາໃຊ້ຄ່າເຫຼົ່ານັ້ນສໍາລັບສິ່ງທີ່ຂາດຫາຍໄປ. ຜົນໄດ້ຮັບຈະເປັນພຽງແຕ່ການລົງທະບຽນທີ່ລະບຸໄວ້ມີການປ່ຽນແປງ
- ເມື່ອທ່ານເຮັດການຂຽນ, ການລົງທະບຽນທີ່ລະບຸໄວ້ທັງຫມົດຈະປ່ຽນແປງໃນລະຫວ່າງວົງຈອນໂມງດຽວກັນ, ບໍ່ແມ່ນທັນທີທີ່ພວກມັນໄດ້ຮັບຫຼາຍກວ່າ UART.
ການຈົດທະບຽນການອ່ານ
- ໃຊ້ປຸ່ມ -r ເພື່ອອ່ານຄ່າລົງທະບຽນທັງໝົດ, ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້. ຄ່າທີ່ໝາຍເປັນສີເຫຼືອງແມ່ນອັນທີ່ພວກເຮົາປ່ຽນແປງໃນການຂຽນກ່ອນໜ້າample
- ທຸກໆການອ່ານສະແດງໃຫ້ເຫັນພາບຖ່າຍທັນທີຂອງທະບຽນຂາເຂົ້າ ແລະຜົນຜະລິດທັງໝົດ. ພວກເຂົາທັງຫມົດແມ່ນ sampນໍາພາໃນລະຫວ່າງວົງຈອນໂມງດຽວກັນ
ການດີບັກ
ໃຊ້ປຸ່ມ -d ກັບສະວິດອື່ນໃດນຶ່ງຫາກທ່ານຕ້ອງການແກ້ໄຂໂປຣໂຕຄໍການສື່ສານ. ຫຼັງຈາກນັ້ນ, script ຈະພິມອອກທັງຫມົດທີ່ຖືກສົ່ງແລະໄດ້ຮັບ bytes ແລະ tag ພວກເຂົາຖ້າພວກເຂົາເປັນຕົວລະຄອນຄວບຄຸມ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.
ການນໍາໃຊ້ການໂຕ້ຕອບໃນສະຄິບ Python ອື່ນໆ
- ສະຄຣິບ uart_regs.py ປະກອບມີຫ້ອງຮຽນ UaartRegs ທີ່ທ່ານສາມາດໃຊ້ເປັນສ່ວນຕິດຕໍ່ສື່ສານໃນສະຄຣິບ Python ແບບກຳນົດເອງອື່ນໆໄດ້ຢ່າງງ່າຍດາຍ. ພຽງແຕ່ນໍາເຂົ້າຫ້ອງຮຽນ, ສ້າງວັດຖຸຂອງມັນ, ແລະເລີ່ມຕົ້ນການນໍາໃຊ້ວິທີການ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.
- ອ້າງອີງເຖິງ docstrings ໃນລະຫັດ Python ສໍາລັບວິທີການແລະຄໍາອະທິບາຍແລະປະເພດຄ່າກັບຄືນ.
instantiation_template.vho
- ແມ່ແບບ instantiation ແມ່ນຖືກສ້າງຂຶ້ນພ້ອມກັບໂມດູນ uart_regs ເພື່ອຄວາມສະດວກຂອງທ່ານ. ເພື່ອປະຫຍັດເວລາການຂຽນລະຫັດ, ທ່ານສາມາດຄັດລອກໂມດູນ instantiation ແລະການປະກາດສັນຍານເຂົ້າໄປໃນການອອກແບບຂອງທ່ານ.
RTL ຄົງທີ່ files
- ທ່ານຈໍາເປັນຕ້ອງປະກອບມີດັ່ງຕໍ່ໄປນີ້ files ໃນໂຄງການ VHDL ຂອງທ່ານເພື່ອໃຫ້ພວກເຂົາຖືກລວບລວມເຂົ້າໄປໃນຫ້ອງສະຫມຸດດຽວກັນກັບໂມດູນ uart_regs:
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- ໂມດູນ uart_regs_backend ປະຕິບັດເຄື່ອງຈັກ finite-state ທີ່ໂມງເຂົ້າ ແລະອອກຂໍ້ມູນການລົງທະບຽນ. ມັນໃຊ້ໂມດູນ uart_rx ແລະ uart_tx ເພື່ອຈັດການການສື່ສານ UART ກັບເຈົ້າພາບ.
ໂຄງການສາທິດ
- ມີສາມໂຄງການຕົວຢ່າງລວມຢູ່ໃນ Zip file. ພວກມັນໃຫ້ທ່ານຄວບຄຸມອຸປະກອນຕໍ່ພ່ວງຢູ່ໃນກະດານທີ່ແຕກຕ່າງກັນເຊັ່ນດຽວກັນກັບການລົງທະບຽນພາຍໃນທີ່ມີຂະຫນາດໃຫຍ່ກວ່າຈໍານວນຫນ້ອຍ.
- ໂຟນເດີຕົວຢ່າງປະກອບມີ uart_regs.vhd ແລະ uart_regs.py ທີ່ສ້າງຂຶ້ນກ່ອນ files ເຮັດໂດຍສະເພາະສໍາລັບການອອກແບບເຫຼົ່ານັ້ນ.
Lattice iCEstick
- ໂຟນເດີ demo/icecube2_icestick ປະກອບມີການປະຕິບັດການລົງທະບຽນການເຂົ້າເຖິງສໍາລັບກະດານ Lattice iCEstick FPGA.
- ເພື່ອດໍາເນີນການຜ່ານຂັ້ນຕອນການປະຕິບັດ, ເປີດ demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project. file ໃນຊອບແວອອກແບບ Lattice iCEcube2.
- ຫຼັງຈາກການໂຫຼດໂຄງການໃນ iCEcube2 GUI, ໃຫ້ຄລິກໃສ່ເຄື່ອງມື→ການດໍາເນີນການທັງຫມົດເພື່ອສ້າງໂຄງການ bitmap ໄດ້. file.
- ທ່ານສາມາດໃຊ້ເຄື່ອງມື Lattice Diamond Programmer Standalone ເພື່ອຕັ້ງຄ່າ FPGA ດ້ວຍແຜນທີ່ບິດທີ່ສ້າງຂຶ້ນ. file. ເມື່ອ Diamond Programmer ເປີດ, ຄລິກເປີດໂຄງການໂປຣແກຣມເມີທີ່ມີຢູ່ແລ້ວຢູ່ໃນກ່ອງໂຕ້ຕອບຍິນດີຕ້ອນຮັບ.
- ເລືອກໂຄງການ file ພົບໃນ Zip: demo/lattice_icestick/diamond_programmer_project.xcf ແລະຄລິກ OK.
- ຫຼັງຈາກການໂຫຼດໂຄງການ, ໃຫ້ຄລິກໃສ່ສາມຈຸດໃນ File ຊື່ຖັນ, ດັ່ງທີ່ສະແດງຂ້າງເທິງ. ຄົ້ນຫາເພື່ອເລືອກແຜນທີ່ບິດ file ທີ່ທ່ານສ້າງຂຶ້ນໃນ iCEcube2
- demo/lattice_icestick/icecube2_proj/uart_regs_Implmnt/sbt/outputs/bitmap/top_icestick_bitmap.bin
- ສຸດທ້າຍ, ດ້ວຍກະດານ iCEstick ສຽບໃສ່ພອດ USB ໃນຄອມພິວເຕີຂອງທ່ານ, ເລືອກການອອກແບບ→ໂຄງການເພື່ອຂຽນໂປຣແກຣມ SPI flash ແລະຕັ້ງຄ່າ FPGA.
- ດຽວນີ້ທ່ານສາມາດສືບຕໍ່ອ່ານ ແລະຂຽນການລົງທະບຽນໂດຍການໃຊ້ສະຄຣິບ demo/lattice_icestick/uart_regs.py ຕາມທີ່ອະທິບາຍໄວ້ໃນພາກ uart_regs.py.
Xilinx Digilent Arty A7-35T
- ທ່ານສາມາດຊອກຫາການປະຕິບັດຕົວຢ່າງສໍາລັບຊຸດການປະເມີນຜົນ Artix-7 35T Arty FPGA ໃນ demo/arty_a7_35 folder.
- ເປີດ Vivado ແລະທ່ອງໄປຫາທີ່ສະກັດ files ໃຊ້ Tcl console ທີ່ພົບເຫັນຢູ່ດ້ານລຸ່ມຂອງການໂຕ້ຕອບ GUI. ພິມຄໍາສັ່ງນີ້ເພື່ອເຂົ້າໄປໃນໂຟນເດີໂຄງການຕົວຢ່າງ:
- cd /demo/arty_a7_35/vivado_proj/
- ປະຕິບັດ script create_vivado_proj.tcl Tcl ເພື່ອສ້າງໂຄງການ Vivado ຄືນໃໝ່:
- ແຫຼ່ງ ./create_vivado_proj.tcl
- ຄລິກສ້າງ Bitstream ໃນແຖບດ້ານຂ້າງເພື່ອດໍາເນີນການຜ່ານຂັ້ນຕອນການປະຕິບັດທັງຫມົດແລະສ້າງ bitstream ການຂຽນໂປຼແກຼມ file.
- ສຸດທ້າຍ, ໃຫ້ຄລິກໃສ່ Open Hardware Manager ແລະດໍາເນີນໂຄງການ FPGA ຜ່ານ GUI.
- ດຽວນີ້ທ່ານສາມາດສືບຕໍ່ອ່ານ ແລະຂຽນການລົງທະບຽນໂດຍການໃຊ້ສະຄຣິບ demo/arty_a7_35/uart_regs.py ຕາມທີ່ອະທິບາຍໄວ້ໃນພາກ uart_regs.py.
Xilinx Digilent Arty S7-50
- ທ່ານສາມາດຊອກຫາການປະຕິບັດຕົວຢ່າງສໍາລັບຄະນະພັດທະນາ Arty S7: Spartan-7 FPGA ໃນ demo/arty_s7_50 folder.
- ເປີດ Vivado ແລະທ່ອງໄປຫາທີ່ສະກັດ files ໃຊ້ Tcl console ທີ່ພົບເຫັນຢູ່ດ້ານລຸ່ມຂອງການໂຕ້ຕອບ GUI. ພິມຄໍາສັ່ງນີ້ເພື່ອເຂົ້າໄປໃນໂຟນເດີໂຄງການຕົວຢ່າງ:
- cd /demo/arty_s7_50/vivado_proj/
- ປະຕິບັດ script create_vivado_proj.tcl Tcl ເພື່ອສ້າງໂຄງການ Vivado ຄືນໃໝ່:
- ແຫຼ່ງ ./create_vivado_proj.tcl
- ຄລິກສ້າງ Bitstream ໃນແຖບດ້ານຂ້າງເພື່ອດໍາເນີນການຜ່ານຂັ້ນຕອນການປະຕິບັດທັງຫມົດແລະສ້າງ bitstream ການຂຽນໂປຼແກຼມ file.
- ສຸດທ້າຍ, ໃຫ້ຄລິກໃສ່ Open Hardware Manager ແລະດໍາເນີນໂຄງການ FPGA ຜ່ານ GUI.
- ດຽວນີ້ທ່ານສາມາດສືບຕໍ່ອ່ານ ແລະຂຽນການລົງທະບຽນໂດຍການໃຊ້ສະຄຣິບ demo/arty_s7_50/uart_regs.py ຕາມທີ່ອະທິບາຍໄວ້ໃນພາກ uart_regs.py.
ການຈັດຕັ້ງປະຕິບັດ
- ບໍ່ມີຂໍ້ກໍານົດການປະຕິບັດສະເພາະ.
ຂໍ້ຈໍາກັດ
- ບໍ່ມີຂໍ້ຈໍາກັດກໍານົດເວລາສະເພາະສໍາລັບການອອກແບບນີ້ເພາະວ່າການໂຕ້ຕອບ UART ແມ່ນຊ້າແລະຖືກປະຕິບັດເປັນການໂຕ້ຕອບແບບບໍ່ຊິ້ງ.
- ວັດສະດຸປ້ອນ uart_rx ໄປຫາໂມດູນ uart_regs ຖືກ synchronized ພາຍໃນໂມດູນ uart_rx. ດັ່ງນັ້ນ, ມັນບໍ່ຈໍາເປັນຕ້ອງຖືກ synchronized ໃນໂມດູນລະດັບເທິງ.
ບັນຫາທີ່ຮູ້ຈັກ
- ທ່ານອາດຈະຈໍາເປັນຕ້ອງໄດ້ຕັ້ງໂມດູນໃຫມ່ກ່ອນທີ່ຈະສາມາດຖືກນໍາໃຊ້, ຂຶ້ນກັບວ່າສະຖາປັດຕະຍະກໍາ FPGA ຂອງທ່ານສະຫນັບສະຫນູນຄ່າລົງທະບຽນເລີ່ມຕົ້ນ.
ຂໍ້ມູນເພີ່ມເຕີມ
- ລິຂະສິດ VHDLwhiz.com
FAQs
Q: ຈຸດປະສົງຂອງຕົວສ້າງການໂຕ້ຕອບການທົດສອບ UART ແມ່ນຫຍັງ?
A: ເຄື່ອງສ້າງການໂຕ້ຕອບຂອງການທົດສອບ UART ອະນຸຍາດໃຫ້ສ້າງການໂຕ້ຕອບທີ່ກໍາຫນົດເອງເພື່ອພົວພັນກັບມູນຄ່າການລົງທະບຽນ FPGA ໂດຍໃຊ້ການສື່ສານ UART.
Q: ຂ້ອຍຈະຕິດຕັ້ງຊຸດ Pyserial ໄດ້ແນວໃດ?
A: ທ່ານສາມາດຕິດຕັ້ງ Pyserial ຜ່ານ Pip ໂດຍໃຊ້ຄໍາສັ່ງ: pip ຕິດຕັ້ງ pyserial
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ເຄື່ອງສ້າງການໂຕ້ຕອບ VHDLwhiz UART [pdf] ຄູ່ມືຜູ້ໃຊ້ UART Test Interface Generator, Test Interface Generator, Interface Generator, Generator |