VHDLwhiz-ലോഗോ

VHDLwhiz UART ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്റർ

VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-PRODUCT

ഉൽപ്പന്ന വിവരം

സ്പെസിഫിക്കേഷനുകൾ:

  • ഉൽപ്പന്ന നാമം: 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, signed, unsigned എന്നിങ്ങനെയുള്ള തരങ്ങൾ ഉണ്ടാകാം.

ലൈസൻസ്

  • സോഴ്സ് കോഡിന്റെ പകർപ്പവകാശ ആവശ്യകതകളും ഉപയോഗ നിബന്ധനകളും MIT ലൈസൻസ് ഉൾക്കൊള്ളുന്നു. LICENSE.txt കാണുക file സിപ്പിൽ file വിശദാംശങ്ങൾക്ക്.

ചേഞ്ച്ലോഗ്

  • ഈ മാറ്റങ്ങൾ പദ്ധതിയെ സൂചിപ്പിക്കുന്നു files, ഈ പ്രമാണം അതനുസരിച്ച് അപ്ഡേറ്റ് ചെയ്തിരിക്കുന്നു
പതിപ്പ് അഭിപ്രായങ്ങൾ
1.0.0 പ്രാരംഭ റിലീസ്
1.0.1 ഒരു പൈത്തൺ മൊഡ്യൂളായി uart_regs.py ആയി ഇറക്കുമതി ചെയ്യുമ്പോൾ നഷ്ടപ്പെട്ട «self» റഫറൻസ് ബഗ് പരിഹരിച്ചു. റൈറ്റ് പരാജയപ്പെട്ട പ്രിന്റൗട്ട് എക്‌സെപ്ഷനിലേക്ക് മാറ്റി.

ഇറക്കുമതി ചെയ്ത മൊഡ്യൂളായി പ്രവർത്തിക്കുമ്പോൾ കൺസോളിൽ പ്രിന്റ് ചെയ്യുന്നത് ഒഴിവാക്കുക.

1.0.2 ഔട്ട് മോഡ് റെഗുകൾ ഇല്ലാത്തപ്പോൾ വിവാഡോ [സിന്ത് 8-248] പിശക് പരിഹരിക്കുക.
1.0.3 വിവാഡോ ലിന്റർ മുന്നറിയിപ്പ് പരിഹരിക്കുക: രജിസ്റ്ററിൽ

സിൻക്രണസ് റീസെറ്റ്

1.0.4 അവസാന ബൈറ്റായി escape പ്രതീകം ഉപയോഗിച്ച് തെറ്റായ ഒരു വാക്ക് ലഭിക്കുമ്പോൾ കോർണർ കേസ് പരിഹരിക്കുക. 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 - ഷെയർചാറ്റ് പൊളിച്ചു - ShareChat
  • ആർടിഎൽ/യുആർട്ട്_ആർഎക്സ്.വിഎച്ച്ഡി
  • ആർടിഎൽ/യുആർട്ട്_ടിഎക്സ്.വിഎച്ച്ഡി
  • ഡെമോ/ലാറ്റിസ്_ഐസ്റ്റിക്/
  • ഡെമോ/xilinx_arty_a7_35/
  • ഡെമോ/xilinx_arty_s7_50/
  • gen_uart_regs.py സ്ക്രിപ്റ്റും പിന്തുണയ്ക്കുന്ന VHDL ഉം fileUART ഉപയോഗിച്ച് വിവിധ തരങ്ങളുടെയും വീതികളുടെയും FPGA രജിസ്റ്റർ മൂല്യങ്ങൾ വായിക്കുന്നതിനും എഴുതുന്നതിനുമുള്ള ഇഷ്‌ടാനുസൃത ഇന്റർഫേസുകൾ സൃഷ്‌ടിക്കാൻ ഈ പ്രോജക്റ്റിലെ s നിങ്ങളെ അനുവദിക്കുന്നു.
  • നിങ്ങളുടെ ഡിസൈനിലുള്ള എത്ര രജിസ്റ്ററുകളിൽ നിന്നും വായിക്കുന്നതിനോ എഴുതുന്നതിനോ നിങ്ങൾക്ക് ജനറേറ്റ് ചെയ്ത VHDL മൊഡ്യൂളും പൈത്തൺ സ്ക്രിപ്റ്റും ഉപയോഗിക്കാം. UART ആക്സസ് ചെയ്യാവുന്ന രജിസ്റ്ററുകൾക്ക് std_logic, std_logic_vector, സൈൻ ചെയ്തതോ ഒപ്പിടാത്തതോ ആയ തരങ്ങൾ ഉണ്ടാകാം.
  • ഔട്ട്പുട്ട് സൃഷ്ടിക്കുമ്പോൾ ഇൻപുട്ട്, ഔട്ട്പുട്ട് രജിസ്റ്ററുകളുടെയും തരങ്ങളുടെയും കൃത്യമായ ഘടന നിങ്ങൾക്ക് തീരുമാനിക്കാം filegen_uart_regs.py സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു.
  • പൈത്തൺ സ്ക്രിപ്റ്റുകൾ ചാറ്റ്ജിപിടി ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ് ടൂളിന്റെ സഹായത്തോടെ ഭാഗികമായി സൃഷ്ടിച്ചതാണ്, അതേസമയം വിഎച്ച്ഡിഎൽ കോഡ് കൈകൊണ്ട് നിർമ്മിച്ചതാണ്.

ആവശ്യകതകൾ

  • ഈ പ്രോജക്റ്റിലെ സ്ക്രിപ്റ്റുകൾ ഒരു പൈത്തൺ 3 ഇന്റർപ്രെറ്ററിലൂടെ പ്രവർത്തിപ്പിക്കുകയും പൈസറിയൽ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുകയും വേണം.
  • ഈ കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് Pip വഴി pyserial ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും: pip install pyserial

പ്രോട്ടോക്കോൾ

  • വി.എച്ച്.ഡി.എൽ files ഉം പൈത്തൺ സ്ക്രിപ്റ്റും നാല് നിയന്ത്രണങ്ങളുള്ള ഒരു ഡാറ്റ-ഫ്രെയിമിംഗ് പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു
പേര് മൂല്യം അഭിപ്രായം
വായിക്കുക_REQ 0x0A ഒരു എഴുത്ത് ആരംഭിക്കാൻ ഹോസ്റ്റിൽ നിന്ന് FPGA-യിലേക്ക് കമാൻഡ് ചെയ്യുക

എല്ലാ രജിസ്റ്ററുകളും UART വഴി തിരികെ അയയ്ക്കുന്നതിനുള്ള ക്രമം

START_എഴുതുക 0X0B ഒരു എഴുത്ത് ശ്രേണിയുടെ ആരംഭം രണ്ടിലും അടയാളപ്പെടുത്തുന്നു

ദിശ

END_എഴുതുക 0x0 സി ഒരു റൈറ്റിംഗ് സീക്വൻസിൻറെ അവസാനം അടയാളപ്പെടുത്തുന്നു
രക്ഷപ്പെടുക 0x0D START_WRITE, END_WRITE മാർക്കറുകൾക്കിടയിൽ ഡാറ്റയായി ദൃശ്യമാകുമ്പോൾ, ESCAPE പ്രതീകം ഉൾപ്പെടെ, ഏതെങ്കിലും നിയന്ത്രണ പദങ്ങളിൽ നിന്ന് രക്ഷപ്പെടാൻ 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 -hVHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-1
  • ഒരു ഇഷ്‌ടാനുസൃത ഇന്റർഫേസ് സൃഷ്‌ടിക്കുന്നതിന്, ആർഗ്യുമെന്റുകളായി ലിസ്റ്റുചെയ്‌തിരിക്കുന്ന നിങ്ങളുടെ ആവശ്യമുള്ള യുഎആർടി നിയന്ത്രിക്കാവുന്ന രജിസ്‌റ്ററുകൾക്കൊപ്പം സ്‌ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കണം. ലഭ്യമായ തരങ്ങൾ std_logic, std_logic_vector, unsigned, signed എന്നിവയാണ്.
  • ഡിഫോൾട്ട് മോഡ് (ദിശ) ആണ്, രജിസ്റ്ററിന് ദൈർഘ്യമില്ലെങ്കിൽ ഡിഫോൾട്ട് തരം std_logic_vector ആണ്: 1. തുടർന്ന്, അത് std_logic-ലേക്ക് ഡിഫോൾട്ട് ചെയ്യും.
  • അതിനാൽ, നിങ്ങൾക്ക് ഒരു std_logic ഇൻപുട്ട് സിഗ്നൽ സൃഷ്ടിക്കണമെങ്കിൽ, ഈ ആർഗ്യുമെന്റുകളിൽ ഏതെങ്കിലും നിങ്ങൾക്ക് ഉപയോഗിക്കാം:
  • എന്റെ_എസ്എൽ=1
  • my_sl=1:ഇൻ
  • my_sl=1:in:std_logic
  • മുകളിലുള്ള എല്ലാ വേരിയന്റുകളും ഈ UART-ആക്സസ്സബിൾ സിഗ്നൽ സൃഷ്ടിക്കുന്ന സ്ക്രിപ്റ്റിൽ കലാശിക്കും:VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-2
  • വ്യത്യസ്ത ദിശകൾ, നീളങ്ങൾ, തരങ്ങൾ എന്നിവയുള്ള നിരവധി രജിസ്റ്ററുകളുള്ള ഒരു ഇന്റർഫേസ് സൃഷ്ടിക്കുന്നതിന് ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാം.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-3

സൃഷ്ടിച്ചത് files

  • gen_uart_regs.py സ്‌ക്രിപ്‌റ്റിന്റെ വിജയകരമായ ഓട്ടം മൂന്നെണ്ണം ഉപയോഗിച്ച് ജനറേറ്റുചെയ്‌ത ഒരു ഔട്ട്‌പുട്ട് ഫോൾഡർ നിർമ്മിക്കും. fileകൾ താഴെ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു. അവ ഇതിനകം നിലവിലുണ്ടെങ്കിൽ, അവ തിരുത്തിയെഴുതപ്പെടും.
  • ജനറേറ്റഡ്/uart_regs.vhd
  • ജനറേറ്റഡ്/uart_regs.py
  • ജനറേറ്റഡ്/instantiation_template.vho
  • uart_regs.vhd - ക്ലിക്കിലൂടെ
  • സ്ക്രിപ്റ്റ് സൃഷ്ടിച്ച ഇഷ്‌ടാനുസൃത ഇന്റർഫേസ് മൊഡ്യൂളാണിത്. UART ഉപയോഗിച്ച് നിങ്ങൾ നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന രജിസ്റ്ററുകൾ ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന നിങ്ങളുടെ ഡിസൈനിൽ ഇത് ഉടനടി നൽകേണ്ടതുണ്ട്.
  • "- UART ആക്സസ് ചെയ്യാവുന്ന രജിസ്റ്ററുകൾ" വിഭാഗത്തിന് മുകളിലുള്ള എല്ലാം എല്ലാ uart_regs മൊഡ്യൂളിനും സമാനമായിരിക്കും, അതേസമയം ആ ലൈനിന് താഴെയുള്ള പോർട്ട് സിഗ്നലുകളുടെ ഘടന ജനറേറ്റർ സ്ക്രിപ്റ്റിന് നൽകിയിരിക്കുന്ന ആർഗ്യുമെന്റുകളെ ആശ്രയിച്ചിരിക്കുന്നു.
  • താഴെയുള്ള ലിസ്‌റ്റിംഗ്, ജനറേറ്റ് കമാൻഡിന്റെ ഫലമായുണ്ടാകുന്ന uart_regs മൊഡ്യൂളിനുള്ള എന്റിറ്റി കാണിക്കുന്നു exampgen_uart_regs.py വിഭാഗത്തിൽ കാണിച്ചിരിക്കുന്നുVHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-4
  • uart_rx-ൽ കൈകാര്യം ചെയ്യുന്നതിനാൽ നിങ്ങൾ uart_rx സിഗ്നൽ സമന്വയിപ്പിക്കേണ്ടതില്ല. മൊഡ്യൂൾ.
  • മൊഡ്യൂളിന് ഒരു റീഡ് അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, നിലവിലെ ക്ലോക്ക് സൈക്കിളിനുള്ളിലെ എല്ലാ ഇൻപുട്ട്, ഔട്ട്പുട്ട് സിഗ്നലുകളുടെയും മൂല്യങ്ങൾ അത് ക്യാപ്‌ചർ ചെയ്യും. തൽക്ഷണ സ്നാപ്പ്ഷോട്ട് പിന്നീട് UART വഴി ഹോസ്റ്റിലേക്ക് അയയ്ക്കുന്നു.
  • ഒരു എഴുത്ത് സംഭവിക്കുമ്പോൾ, എല്ലാ ഔട്ട്പുട്ട് രജിസ്റ്ററുകളും ഒരേ ക്ലോക്ക് സൈക്കിളിനുള്ളിൽ പുതിയ മൂല്യങ്ങൾ ഉപയോഗിച്ച് അപ്ഡേറ്റ് ചെയ്യപ്പെടും. ഔട്ട്പുട്ട് സിഗ്നൽ മൂല്യങ്ങൾ വ്യക്തിഗതമായി മാറ്റാൻ സാധ്യമല്ല.
  • എന്നിരുന്നാലും, uart_regs.py സ്ക്രിപ്റ്റ് എല്ലാ രജിസ്റ്ററുകളുടെയും നിലവിലെ മൂല്യങ്ങൾ ആദ്യം വായിച്ച് തിരഞ്ഞെടുത്ത ഔട്ട്പുട്ടുകൾ മാത്രം അപ്ഡേറ്റ് ചെയ്യാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു. അത് അപ്ഡേറ്റ് ചെയ്തവ ഉൾപ്പെടെ എല്ലാ മൂല്യങ്ങളും തിരികെ എഴുതുന്നു.
  • uart_regs.py - ക്ലിക്കിലൂടെ
  • ജനറേറ്റഡ്/uart_regs.py file uart_regs VHDL മൊഡ്യൂളിനൊപ്പം ജനറേറ്റുചെയ്‌തതും ഇതിന്റെ ഹെഡറിലെ ഇഷ്‌ടാനുസൃത രജിസ്റ്റർ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു file. ഈ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച്, നിങ്ങൾക്ക് എളുപ്പത്തിൽ നിങ്ങളുടെ ഇഷ്ടാനുസൃത രജിസ്റ്ററുകളിൽ നിന്ന് വായിക്കാനോ എഴുതാനോ കഴിയും.

സഹായ മെനു

  • സഹായ മെനു പ്രിന്റ് ചെയ്യാൻ python uart_regs.py -h എന്ന് ടൈപ്പ് ചെയ്യുക:VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-5

UART പോർട്ട് ക്രമീകരിക്കുന്നു

  • -c സ്വിച്ച് ഉപയോഗിച്ച് UART പോർട്ട് സജ്ജീകരിക്കുന്നതിനുള്ള ഓപ്ഷനുകൾ സ്ക്രിപ്റ്റിലുണ്ട്. ഇത് വിൻഡോസിലും ലിനക്സിലും പ്രവർത്തിക്കുന്നു. സഹായ മെനുവിൽ പട്ടികപ്പെടുത്തിയിരിക്കുന്ന ലഭ്യമായ പോർട്ടുകളിൽ ഒന്നിലേക്ക് ഇത് സജ്ജമാക്കുക. ഒരു ഡിഫോൾട്ട് പോർട്ട് സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾക്ക് uart_regs.py സ്ക്രിപ്റ്റിൽ UART_PORT വേരിയബിൾ എഡിറ്റ് ചെയ്യാനും കഴിയും.

ലിസ്റ്റിംഗ് രജിസ്റ്ററുകൾ

  • രജിസ്റ്റർ മാപ്പിംഗിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ gen_uart_regs.py സ്ക്രിപ്റ്റ് uart_regs.py സ്ക്രിപ്റ്റിന്റെ ഹെഡറിൽ സ്ഥാപിച്ചിരിക്കുന്നു. താഴെ കാണുന്നതുപോലെ -l സ്വിച്ച് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ലഭ്യമായ രജിസ്റ്ററുകൾ ലിസ്റ്റ് ചെയ്യാൻ കഴിയും. ഇതൊരു ലോക്കൽ കമാൻഡാണ്, ടാർഗെറ്റ് FPGA യുമായി ഇത് സംവദിക്കില്ല.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-6

രജിസ്റ്ററുകളിലേക്ക് എഴുതുന്നു

  • -w സ്വിച്ച് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഏത് ഔട്ട് മോഡ് രജിസ്റ്ററിലേക്കും എഴുതാം. "=" എന്നതിന് ശേഷമുള്ള രജിസ്റ്ററിന്റെ പേരും ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ ബൈനറി, ഹെക്സാഡെസിമൽ അല്ലെങ്കിൽ ഡെസിമൽ മൂല്യമായി നൽകിയിരിക്കുന്ന മൂല്യവും നൽകുക.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-7
  • VHDL നടപ്പിലാക്കുന്നതിന് സ്ക്രിപ്റ്റ് എല്ലാ ഔട്ട്പുട്ട് രജിസ്റ്ററുകളും ഒരേസമയം എഴുതണമെന്ന് ആവശ്യപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക. അതിനാൽ, നിങ്ങൾ ഒരു പൂർണ്ണമായ ഔട്ട്പുട്ട് രജിസ്റ്ററുകൾ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, സ്ക്രിപ്റ്റ് ആദ്യം ടാർഗെറ്റ് FPGA-യിൽ നിന്ന് ഒരു റീഡ് നടത്തുകയും തുടർന്ന് നഷ്ടപ്പെട്ടവയ്ക്കായി ആ മൂല്യങ്ങൾ ഉപയോഗിക്കുകയും ചെയ്യും. ഫലം നിർദ്ദിഷ്ട രജിസ്റ്ററുകൾ മാത്രം മാറും എന്നതാണ്.
  • നിങ്ങൾ ഒരു എഴുത്ത് നടത്തുമ്പോൾ, എല്ലാ നിർദ്ദിഷ്‌ട രജിസ്റ്ററുകളും ഒരേ ക്ലോക്ക് സൈക്കിളിൽ മാറും, അവ UART-ൽ ലഭിച്ചാലുടൻ അല്ല.

രജിസ്റ്ററുകൾ വായിക്കുന്നു

  • ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ, എല്ലാ രജിസ്റ്റർ മൂല്യങ്ങളും വായിക്കാൻ -r സ്വിച്ച് ഉപയോഗിക്കുക. മഞ്ഞ നിറത്തിൽ അടയാളപ്പെടുത്തിയ മൂല്യങ്ങൾ മുമ്പത്തെ റൈറ്റ് എക്സിൽ നമ്മൾ മാറ്റിയവയാണ്ampleVHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-8
  • ഓരോ വായനയും എല്ലാ ഇൻപുട്ട്, ഔട്ട്പുട്ട് രജിസ്റ്ററുകളുടെയും തൽക്ഷണ സ്നാപ്പ്ഷോട്ട് കാണിക്കുന്നു. അവരെല്ലാം എസ്ampഒരേ ക്ലോക്ക് സൈക്കിളിൽ നയിച്ചു

ഡീബഗ്ഗിംഗ്

ആശയവിനിമയ പ്രോട്ടോക്കോൾ ഡീബഗ് ചെയ്യണമെങ്കിൽ മറ്റേതെങ്കിലും സ്വിച്ചുകൾക്കൊപ്പം -d സ്വിച്ച് ഉപയോഗിക്കുക. തുടർന്ന്, സ്ക്രിപ്റ്റ് അയച്ചതും സ്വീകരിച്ചതുമായ എല്ലാ ബൈറ്റുകളും പ്രിന്റ് ഔട്ട് ചെയ്യും tag അവ നിയന്ത്രണ പ്രതീകങ്ങളാണെങ്കിൽ, ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-9

മറ്റ് പൈത്തൺ സ്ക്രിപ്റ്റുകളിൽ ഇന്റർഫേസ് ഉപയോഗിക്കുന്നു

  • uart_regs.py സ്ക്രിപ്റ്റിൽ UartRegs ക്ലാസ് അടങ്ങിയിരിക്കുന്നു, അത് മറ്റ് ഇഷ്‌ടാനുസൃത പൈത്തൺ സ്ക്രിപ്റ്റുകളിൽ ആശയവിനിമയ ഇന്റർഫേസായി നിങ്ങൾക്ക് എളുപ്പത്തിൽ ഉപയോഗിക്കാനാകും. ക്ലാസ് ഇംപോർട്ട് ചെയ്യുക, അതിന്റെ ഒരു ഒബ്‌ജക്റ്റ് സൃഷ്‌ടിക്കുക, ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ രീതികൾ ഉപയോഗിക്കാൻ ആരംഭിക്കുക.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-10
  • രീതിക്കും വിവരണങ്ങൾക്കും റിട്ടേൺ മൂല്യ തരങ്ങൾക്കും പൈത്തൺ കോഡിലെ ഡോക്‌സ്‌ട്രിംഗുകൾ പരിശോധിക്കുക.

ഇൻസ്റ്റന്റേഷൻ_ടെംപ്ലേറ്റ്.വിഎച്ച്ഒ

  • നിങ്ങളുടെ സൗകര്യാർത്ഥം uart_regs മൊഡ്യൂളിനോടൊപ്പം തൽക്ഷണ ടെംപ്ലേറ്റ് ജനറേറ്റുചെയ്യുന്നു. കോഡിംഗ് സമയം ലാഭിക്കുന്നതിന്, നിങ്ങളുടെ ഡിസൈനിലേക്ക് മൊഡ്യൂൾ തൽക്ഷണവും സിഗ്നൽ പ്രഖ്യാപനങ്ങളും പകർത്താനാകും.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-11VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-12

സ്റ്റാറ്റിക് RTL files

  • നിങ്ങൾ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുത്തേണ്ടതുണ്ട് fileനിങ്ങളുടെ VHDL പ്രോജക്റ്റിൽ ഉള്ളതിനാൽ അവ uart_regs മൊഡ്യൂളിന്റെ അതേ ലൈബ്രറിയിലേക്ക് സമാഹരിച്ചിരിക്കുന്നു:
  • rtl/uart_regs_backend.vhd - ഷെയർചാറ്റ് പൊളിച്ചു - ShareChat
  • ആർടിഎൽ/യുആർട്ട്_ആർഎക്സ്.വിഎച്ച്ഡി
  • ആർടിഎൽ/യുആർട്ട്_ടിഎക്സ്.വിഎച്ച്ഡി
  • uart_regs_backend മൊഡ്യൂൾ, രജിസ്റ്റർ ഡാറ്റയെ ക്ലോക്ക് ചെയ്യുന്നതും പുറത്തേക്ക് വരുന്നതുമായ ഫിനിറ്റ്-സ്റ്റേറ്റ് മെഷീനുകൾ നടപ്പിലാക്കുന്നു. ഹോസ്റ്റുമായുള്ള UART ആശയവിനിമയം കൈകാര്യം ചെയ്യാൻ ഇത് uart_rx, uart_tx മൊഡ്യൂളുകൾ ഉപയോഗിക്കുന്നു.

ഡെമോ പ്രോജക്ടുകൾ

  • സിപ്പിൽ മൂന്ന് ഡെമോ പ്രോജക്ടുകൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട് file. വ്യത്യസ്‌ത ബോർഡുകളിലെ പെരിഫറലുകളും അതുപോലെ കുറച്ച് വലിയ, ആന്തരിക രജിസ്റ്ററുകളും നിയന്ത്രിക്കാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു.
  • ഡെമോ ഫോൾഡറുകളിൽ പ്രീ-ജനറേറ്റഡ് uart_regs.vhd, uart_regs.py എന്നിവ ഉൾപ്പെടുന്നു. fileആ ഡിസൈനുകൾക്കായി പ്രത്യേകം നിർമ്മിച്ചതാണ്.

ലാറ്റിസ് iCEstick

  • demo/icecube2_icestick ഫോൾഡറിൽ Lattice iCEstick FPGA ബോർഡിനായുള്ള ഒരു രജിസ്റ്റർ ആക്സസ് ഡെമോ നടപ്പിലാക്കൽ അടങ്ങിയിരിക്കുന്നു.
  • നടപ്പിലാക്കൽ പ്രക്രിയയിലൂടെ പ്രവർത്തിക്കാൻ, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project തുറക്കുക file Lattice iCEcube2 ഡിസൈൻ സോഫ്റ്റ്‌വെയറിൽ.
  • iCEcube2 GUI-ൽ പ്രോജക്‌റ്റ് ലോഡ് ചെയ്‌ത ശേഷം, പ്രോഗ്രാമിംഗ് ബിറ്റ്‌മാപ്പ് സൃഷ്‌ടിക്കാൻ Tools→Run All ക്ലിക്ക് ചെയ്യുക file.
  • ജനറേറ്റ് ചെയ്ത ബിറ്റ്മാപ്പ് ഉപയോഗിച്ച് FPGA കോൺഫിഗർ ചെയ്യാൻ നിങ്ങൾക്ക് ലാറ്റിസ് ഡയമണ്ട് പ്രോഗ്രാമർ സ്റ്റാൻഡലോൺ ടൂൾ ഉപയോഗിക്കാം. file. ഡയമണ്ട് പ്രോഗ്രാമർ തുറക്കുമ്പോൾ, സ്വാഗത ഡയലോഗ് ബോക്സിൽ നിലവിലുള്ള ഒരു പ്രോഗ്രാമർ പ്രോജക്റ്റ് തുറക്കുക ക്ലിക്കുചെയ്യുക.
  • പ്രോജക്റ്റ് തിരഞ്ഞെടുക്കുക file Zip-ൽ കണ്ടെത്തി: demo/lattice_icestick/diamond_programmer_project.xcf, ശരി ക്ലിക്കുചെയ്യുക.VHDLwhiz-UART-ടെസ്റ്റ്-ഇന്റർഫേസ്-ജനറേറ്റർ-FIG-13
  • പ്രോജക്റ്റ് ലോഡുചെയ്‌തതിനുശേഷം, മൂന്ന് ഡോട്ടുകളിൽ ക്ലിക്കുചെയ്യുക File മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ കോളത്തിന് പേര് നൽകുക. ബിറ്റ്മാപ്പ് തിരഞ്ഞെടുക്കാൻ ബ്രൗസ് ചെയ്യുക file നിങ്ങൾ iCEcube2-ൽ സൃഷ്ടിച്ചത്
  • ഡെമോ/ലാറ്റിസ്_ഐസ്‌സ്റ്റിക്/ഐസ്‌ക്യൂബ്2_പ്രോജ്/യുആർട്ട്_റെഗ്സ്_ഇംപ്ലംന്റ്/എസ്ബിടി/ഔട്ട്‌പുട്ടുകൾ/ബിറ്റ്‌മാപ്പ്/ടോപ്പ്_ഐസ്‌സ്റ്റിക്_ബിറ്റ്‌മാപ്പ്.ബിൻ
  • അവസാനമായി, iCEstick ബോർഡ് നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഒരു USB പോർട്ടിലേക്ക് പ്ലഗ് ചെയ്‌തിരിക്കുമ്പോൾ, SPI ഫ്ലാഷ് പ്രോഗ്രാം ചെയ്യാനും FPGA കോൺഫിഗർ ചെയ്യാനും Design→Program തിരഞ്ഞെടുക്കുക.
  • uart_regs.py വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ demo/lattice_icestick/uart_regs.py സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇപ്പോൾ രജിസ്റ്ററുകൾ വായിക്കാനും എഴുതാനും തുടരാം.

Xilinx ഡിജിലന്റ് ആർട്ടി A7-35T

  • Demo/arty_a7_35 ഫോൾഡറിൽ Artix-7 35T Arty FPGA മൂല്യനിർണ്ണയ കിറ്റിനായുള്ള ഡെമോ നടപ്പിലാക്കൽ നിങ്ങൾക്ക് കണ്ടെത്താം.
  • വിവാഡോ തുറന്ന് എക്‌സ്‌ട്രാക്‌റ്റിലേക്ക് നാവിഗേറ്റ് ചെയ്യുക fileGUI ഇന്റർഫേസിന്റെ താഴെ കാണുന്ന Tcl കൺസോൾ ഉപയോഗിക്കുന്നു. ഡെമോ പ്രോജക്റ്റ് ഫോൾഡറിൽ പ്രവേശിക്കാൻ ഈ കമാൻഡ് ടൈപ്പ് ചെയ്യുക:
  • സിഡി /ഡെമോ/arty_a7_35/vivado_proj/
  • 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 ഫോൾഡറിൽ Arty S7: Spartan-50 FPGA ഡെവലപ്‌മെന്റ് ബോർഡിനായുള്ള ഡെമോ നടപ്പിലാക്കൽ നിങ്ങൾക്ക് കണ്ടെത്താനാകും.
  • വിവാഡോ തുറന്ന് എക്‌സ്‌ട്രാക്‌റ്റിലേക്ക് നാവിഗേറ്റ് ചെയ്യുക fileGUI ഇന്റർഫേസിന്റെ താഴെ കാണുന്ന Tcl കൺസോൾ ഉപയോഗിക്കുന്നു. ഡെമോ പ്രോജക്റ്റ് ഫോൾഡറിൽ പ്രവേശിക്കാൻ ഈ കമാൻഡ് ടൈപ്പ് ചെയ്യുക:
  • സിഡി /ഡെമോ/arty_s7_50/vivado_proj/
  • 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 മൊഡ്യൂളിനുള്ളിൽ സമന്വയിപ്പിച്ചിരിക്കുന്നു. അതിനാൽ, ഇത് ഉയർന്ന തലത്തിലുള്ള മൊഡ്യൂളിൽ സമന്വയിപ്പിക്കേണ്ടതില്ല.

അറിയപ്പെടുന്ന പ്രശ്നങ്ങൾ

  • നിങ്ങളുടെ FPGA ആർക്കിടെക്ചർ ഡിഫോൾട്ട് രജിസ്റ്റർ മൂല്യങ്ങളെ പിന്തുണയ്ക്കുന്നുണ്ടോ എന്നതിനെ ആശ്രയിച്ച്, മൊഡ്യൂൾ ഉപയോഗിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ അത് പുനഃസജ്ജമാക്കേണ്ടതുണ്ട്.

കൂടുതൽ വിവരങ്ങൾ

പതിവുചോദ്യങ്ങൾ

ചോദ്യം: UART ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്ററിന്റെ ഉദ്ദേശ്യം എന്താണ്?

A: UART ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്റർ, UART ആശയവിനിമയം ഉപയോഗിച്ച് FPGA രജിസ്റ്റർ മൂല്യങ്ങളുമായി സംവദിക്കുന്നതിന് ഇഷ്ടാനുസൃത ഇന്റർഫേസുകൾ സൃഷ്ടിക്കാൻ അനുവദിക്കുന്നു.

ചോദ്യം: പൈസീരിയൽ പാക്കേജ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം?

A: നിങ്ങൾക്ക് കമാൻഡ് ഉപയോഗിച്ച് Pip വഴി Pyserial ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും: pip install pyserial

പ്രമാണങ്ങൾ / വിഭവങ്ങൾ

VHDLwhiz UART ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്റർ [pdf] ഉപയോക്തൃ മാനുവൽ
UART ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്റർ, ടെസ്റ്റ് ഇന്റർഫേസ് ജനറേറ്റർ, ഇന്റർഫേസ് ജനറേറ്റർ, ജനറേറ്റർ

റഫറൻസുകൾ

ഒരു അഭിപ്രായം ഇടൂ

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ അടയാളപ്പെടുത്തി *