ໂລໂກ້ VHDLwhiz

ເຄື່ອງສ້າງການໂຕ້ຕອບ VHDLwhiz UART

VHDLwhiz-UART-Test-Interface-Generator-PRODUCT

ຂໍ້ມູນຜະລິດຕະພັນ

ຂໍ້ມູນຈໍາເພາະ:

ລາຍລະອຽດ

ຜະລິດຕະພັນນີ້ອະນຸຍາດໃຫ້ທ່ານສ້າງການໂຕ້ຕອບທີ່ກໍາຫນົດເອງສໍາລັບການອ່ານແລະຂຽນຄ່າລົງທະບຽນ 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 -hVHDLwhiz-UART-Test-Interface-Generator-FIG-1
  • ເພື່ອສ້າງການໂຕ້ຕອບແບບກໍານົດເອງ, ທ່ານຕ້ອງແລ່ນສະຄິບກັບແຕ່ລະຕົວລົງທະບຽນທີ່ຄວບຄຸມ 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:VHDLwhiz-UART-Test-Interface-Generator-FIG-2
  • ໃຫ້ແລ່ນສະຄຣິບດ້ວຍການໂຕ້ຖຽງເພື່ອສ້າງການໂຕ້ຕອບທີ່ມີທະບຽນຫຼາຍທິດທາງ, ຄວາມຍາວ, ແລະປະເພດທີ່ແຕກຕ່າງກັນ.VHDLwhiz-UART-Test-Interface-Generator-FIG-3

ສ້າງຂຶ້ນ 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 sectiVHDLwhiz-UART-Test-Interface-Generator-FIG-4
  • ທ່ານບໍ່ຈໍາເປັນຕ້ອງ 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 ເພື່ອພິມເມນູຊ່ວຍເຫຼືອ:VHDLwhiz-UART-Test-Interface-Generator-FIG-5

ການຕັ້ງຄ່າພອດ UART

  • ສະຄຣິບມີທາງເລືອກໃນການຕັ້ງພອດ UART ໂດຍໃຊ້ປຸ່ມ -c. ນີ້ເຮັດວຽກຢູ່ໃນ Windows ແລະ Linux. ຕັ້ງມັນໃສ່ໜຶ່ງໃນພອດທີ່ມີລາຍຊື່ຢູ່ໃນເມນູຊ່ວຍເຫຼືອ. ເພື່ອຕັ້ງພອດເລີ່ມຕົ້ນ, ທ່ານຍັງສາມາດແກ້ໄຂຕົວແປ UART_PORT ໃນສະຄຣິບ uart_regs.py ໄດ້.

ການລົງທະບຽນລາຍຊື່

  • ຂໍ້ມູນກ່ຽວກັບການສ້າງແຜນທີ່ການລົງທະບຽນແມ່ນຖືກຈັດໃສ່ຢູ່ໃນສ່ວນຫົວຂອງສະຄຣິບ uart_regs.py ໂດຍສະຄຣິບ gen_uart_regs.py. ທ່ານສາມາດລາຍຊື່ການລົງທະບຽນທີ່ມີປຸ່ມ -l, ດັ່ງທີ່ເຫັນຂ້າງລຸ່ມນີ້. ນີ້ແມ່ນຄໍາສັ່ງທ້ອງຖິ່ນແລະຈະບໍ່ພົວພັນກັບ FPGA ເປົ້າຫມາຍVHDLwhiz-UART-Test-Interface-Generator-FIG-6

ຂຽນ​ລົງ​ທະ​ບຽນ​

  • ທ່ານສາມາດຂຽນໃສ່ການລົງທະບຽນໂຫມດອອກໃດໆໂດຍໃຊ້ປຸ່ມ -w. ສະໜອງຊື່ລົງທະບຽນຕາມດ້ວຍ “=” ແລະຄ່າທີ່ເປັນຖານສອງ, ເລກຖານສິບຫົກ, ຫຼືຄ່າທົດສະນິຍົມ, ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້.VHDLwhiz-UART-Test-Interface-Generator-FIG-7
  • ໃຫ້ສັງເກດວ່າການປະຕິບັດ VHDL ຕ້ອງການສະຄິບເພື່ອຂຽນບັນທຶກຜົນຜະລິດທັງຫມົດພ້ອມໆກັນ. ດັ່ງນັ້ນ, ຖ້າທ່ານບໍ່ລະບຸຊຸດບັນທຶກຜົນຜະລິດທີ່ສົມບູນ, script ຈະດໍາເນີນການອ່ານຈາກເປົ້າຫມາຍ FPGA ທໍາອິດແລະຫຼັງຈາກນັ້ນນໍາໃຊ້ຄ່າເຫຼົ່ານັ້ນສໍາລັບສິ່ງທີ່ຂາດຫາຍໄປ. ຜົນໄດ້ຮັບຈະເປັນພຽງແຕ່ການລົງທະບຽນທີ່ລະບຸໄວ້ມີການປ່ຽນແປງ
  • ເມື່ອທ່ານເຮັດການຂຽນ, ການລົງທະບຽນທີ່ລະບຸໄວ້ທັງຫມົດຈະປ່ຽນແປງໃນລະຫວ່າງວົງຈອນໂມງດຽວກັນ, ບໍ່ແມ່ນທັນທີທີ່ພວກມັນໄດ້ຮັບຫຼາຍກວ່າ UART.

ການ​ຈົດ​ທະ​ບຽນ​ການ​ອ່ານ​

  • ໃຊ້ປຸ່ມ -r ເພື່ອອ່ານຄ່າລົງທະບຽນທັງໝົດ, ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້. ຄ່າທີ່ໝາຍເປັນສີເຫຼືອງແມ່ນອັນທີ່ພວກເຮົາປ່ຽນແປງໃນການຂຽນກ່ອນໜ້າampleVHDLwhiz-UART-Test-Interface-Generator-FIG-8
  • ທຸກໆການອ່ານສະແດງໃຫ້ເຫັນພາບຖ່າຍທັນທີຂອງທະບຽນຂາເຂົ້າ ແລະຜົນຜະລິດທັງໝົດ. ພວກເຂົາທັງຫມົດແມ່ນ sampນໍາພາໃນລະຫວ່າງວົງຈອນໂມງດຽວກັນ

ການດີບັກ

ໃຊ້ປຸ່ມ -d ກັບສະວິດອື່ນໃດນຶ່ງຫາກທ່ານຕ້ອງການແກ້ໄຂໂປຣໂຕຄໍການສື່ສານ. ຫຼັງຈາກນັ້ນ, script ຈະພິມອອກທັງຫມົດທີ່ຖືກສົ່ງແລະໄດ້ຮັບ bytes ແລະ tag ພວກເຂົາຖ້າພວກເຂົາເປັນຕົວລະຄອນຄວບຄຸມ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.VHDLwhiz-UART-Test-Interface-Generator-FIG-9

ການນໍາໃຊ້ການໂຕ້ຕອບໃນສະຄິບ Python ອື່ນໆ

  • ສະຄຣິບ uart_regs.py ປະກອບມີຫ້ອງຮຽນ UaartRegs ທີ່ທ່ານສາມາດໃຊ້ເປັນສ່ວນຕິດຕໍ່ສື່ສານໃນສະຄຣິບ Python ແບບກຳນົດເອງອື່ນໆໄດ້ຢ່າງງ່າຍດາຍ. ພຽງແຕ່ນໍາເຂົ້າຫ້ອງຮຽນ, ສ້າງວັດຖຸຂອງມັນ, ແລະເລີ່ມຕົ້ນການນໍາໃຊ້ວິທີການ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.VHDLwhiz-UART-Test-Interface-Generator-FIG-10
  • ອ້າງອີງເຖິງ docstrings ໃນລະຫັດ Python ສໍາລັບວິທີການແລະຄໍາອະທິບາຍແລະປະເພດຄ່າກັບຄືນ.

instantiation_template.vho

  • ແມ່ແບບ instantiation ແມ່ນຖືກສ້າງຂຶ້ນພ້ອມກັບໂມດູນ uart_regs ເພື່ອຄວາມສະດວກຂອງທ່ານ. ເພື່ອປະຫຍັດເວລາການຂຽນລະຫັດ, ທ່ານສາມາດຄັດລອກໂມດູນ instantiation ແລະການປະກາດສັນຍານເຂົ້າໄປໃນການອອກແບບຂອງທ່ານ.VHDLwhiz-UART-Test-Interface-Generator-FIG-11VHDLwhiz-UART-Test-Interface-Generator-FIG-12

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.VHDLwhiz-UART-Test-Interface-Generator-FIG-13
  • ຫຼັງ​ຈາກ​ການ​ໂຫຼດ​ໂຄງ​ການ​, ໃຫ້​ຄລິກ​ໃສ່​ສາມ​ຈຸດ​ໃນ​ 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 ຂອງທ່ານສະຫນັບສະຫນູນຄ່າລົງທະບຽນເລີ່ມຕົ້ນ.

ຂໍ້ມູນເພີ່ມເຕີມ

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

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *