VHDLwhiz UART ટેસ્ટ ઇન્ટરફેસ જનરેટર
ઉત્પાદન માહિતી
વિશિષ્ટતાઓ:
- ઉત્પાદનનું નામ: VHDL UART ટેસ્ટ ઇન્ટરફેસ જનરેટર રજીસ્ટર કરે છે
- સંસ્કરણ: 1.0.4
- તારીખ: 18 ઓગસ્ટ, 2024
- લેખક: જોનાસ જુલિયન જેન્સન
- ઉત્પાદન URL: ઉત્પાદન લિંક
- સંપર્ક ઇમેઇલ: jonas@vhdlwhiz.com
વર્ણન
આ પ્રોડક્ટ તમને UART નો ઉપયોગ કરીને FPGA રજિસ્ટર મૂલ્યો વાંચવા અને લખવા માટે કસ્ટમ ઇન્ટરફેસ જનરેટ કરવાની મંજૂરી આપે છે. જનરેટ થયેલ VHDL મોડ્યુલ અને પાયથોન સ્ક્રિપ્ટ તમારા FPGA ડિઝાઇનમાં વિવિધ પ્રકારના રજિસ્ટર સાથે ક્રિયાપ્રતિક્રિયા કરવાની ક્ષમતા પ્રદાન કરે છે.
જરૂરીયાતો
- પાયથોન 3 ઇન્ટરપ્રીટર
- પાયસેરિયલ પેકેજ
પ્રોટોકોલ
આ ઉત્પાદન ચાર નિયંત્રણ અક્ષરો સાથે ડેટા ફ્રેમિંગ પ્રોટોકોલનો ઉપયોગ કરે છે:
- નામ: READ_REQ, મૂલ્ય: 0x0A - બધા રજિસ્ટર UART પર પાછા મોકલવા માટે લેખન ક્રમ શરૂ કરવા માટે હોસ્ટથી FPGA ને આદેશ.
- નામ: START_લખો, મૂલ્ય: 0x0B - બંને દિશામાં લેખન ક્રમની શરૂઆત દર્શાવે છે.
- નામ: END_LITE, મૂલ્ય: 0x0C - કોઈપણ દિશામાં લેખન ક્રમના અંતને ચિહ્નિત કરે છે
- નામ: એસ્કેપ, મૂલ્ય: 0x0D - નિયંત્રણ શબ્દોમાંથી બહાર નીકળવા માટે વપરાતું એસ્કેપ અક્ષર.
ઉત્પાદન વપરાશ સૂચનાઓ
સ્ક્રિપ્ટો ચલાવવી
આ પ્રોડક્ટનો ઉપયોગ કરવા માટે, ખાતરી કરો કે તમારી પાસે Python 3 ઇન્સ્ટોલ કરેલ છે અને Pyserial પેકેજ છે. Python 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 તરીકે આયાત કરતી વખતે ગુમ થયેલ "સ્વ" સંદર્ભ બગ સુધારેલ. લખવામાં નિષ્ફળ પ્રિન્ટઆઉટને અપવાદમાં બદલ્યું.
આયાતી મોડ્યુલ તરીકે ચાલતી વખતે કન્સોલ પર પ્રિન્ટ કરવાનું ટાળો. |
1.0.2 | જ્યારે કોઈ આઉટ મોડ રેગ ન હોય ત્યારે Vivado [Synth 8-248] ભૂલને ઠીક કરો. |
1.0.3 | વિવાડો લિન્ટર ચેતવણીને ઠીક કરો: રજિસ્ટર દ્વારા સંચાલિત સક્ષમ છે
સિંક્રનસ રીસેટ |
1.0.4 | ખોટા શબ્દ પ્રાપ્ત કરતી વખતે ખૂણાના કેસને છેલ્લા બાઇટ તરીકે એસ્કેપ અક્ષર સાથે ઠીક કરો. આગામી શબ્દ પણ ખોવાઈ જશે કારણ કે અમે IDLE પર પાછા ફરતી વખતે recv_data_prev_is_escape સાફ કર્યું નથી.
gen_uart_regs.py સ્ક્રિપ્ટ હવે ફક્ત અનન્ય રેગ નામોને જ મંજૂરી આપે છે. |
વર્ણન
- આ દસ્તાવેજ નીચેનાનું વર્ણન કરે છે files અને ફોલ્ડર્સ:
- gen_uart_regs.py દ્વારા વધુ
- જનરેટ કરેલ/uart_regs.vhd
- જનરેટ કરેલ/uart_regs.py
- જનરેટ કરેલ/ઇન્સ્ટેન્ટીએશન_ટેમ્પલેટ.vho
- rtl/uart_regs_backend.vhd
- આરટીએલ/યુઆર્ટ_આરએક્સ.વીએચડી
- આરટીએલ/યુઆર્ટ_ટીએક્સ.વીએચડી
- ડેમો/લેટીસ_આઈસસ્ટિક/
- ડેમો/xilinx_arty_a7_35/
- ડેમો/xilinx_arty_s7_50/
- gen_uart_regs.py સ્ક્રિપ્ટ અને સહાયક VHDL fileઆ પ્રોજેક્ટમાં તમને UART નો ઉપયોગ કરીને વિવિધ પ્રકારો અને પહોળાઈના FPGA રજિસ્ટર મૂલ્યો વાંચવા અને લખવા માટે કસ્ટમ ઇન્ટરફેસ જનરેટ કરવાની મંજૂરી આપે છે.
- તમે જનરેટ કરેલ VHDL મોડ્યુલ અને Python સ્ક્રિપ્ટનો ઉપયોગ તમારી ડિઝાઇનમાંના કોઈપણ રજીસ્ટરમાંથી વાંચવા અથવા લખવા માટે કરી શકો છો. UART સુલભ રજીસ્ટરમાં std_logic, std_logic_vector, સહી કરેલ અથવા સહી વગરના પ્રકારો હોઈ શકે છે.
- તમે આઉટપુટ જનરેટ કરતી વખતે ઇનપુટ અને આઉટપુટ રજીસ્ટર અને પ્રકારોની ચોક્કસ રચના નક્કી કરી શકો છો filegen_uart_regs.py સ્ક્રિપ્ટનો ઉપયોગ કરે છે.
- પાયથોન સ્ક્રિપ્ટો આંશિક રીતે ChatGPT આર્ટિફિશિયલ ઇન્ટેલિજન્સ ટૂલની મદદથી બનાવવામાં આવી હતી, જ્યારે VHDL કોડ હાથથી બનાવેલ છે.
જરૂરીયાતો
- આ પ્રોજેક્ટમાંની સ્ક્રિપ્ટો Python 3 દુભાષિયા દ્વારા ચલાવવામાં આવે છે અને Pyserial પેકેજ ઇન્સ્ટોલ કરેલું હોવું જોઈએ.
- તમે આ આદેશનો ઉપયોગ કરીને Pip દ્વારા pyserial ઇન્સ્ટોલ કરી શકો છો: pip install pyserial
પ્રોટોકોલ
- વીએચડીએલ files અને પાયથોન સ્ક્રિપ્ટ ચાર નિયંત્રણો સાથે ડેટા-ફ્રેમિંગ પ્રોટોકોલનો ઉપયોગ કરે છે
નામ | મૂલ્ય | ટિપ્પણી |
READ_REQ | 0x0A | લેખન શરૂ કરવા માટે હોસ્ટથી FPGA ને આદેશ આપો
બધા રજિસ્ટર UART પર પાછા મોકલવાનો ક્રમ |
START_લખો | 0x0B | બંનેમાંથી કોઈ એકમાં લેખન ક્રમની શરૂઆત દર્શાવે છે
દિશા |
END_LRITE | 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 -h
- કસ્ટમ ઇન્ટરફેસ જનરેટ કરવા માટે, તમારે દલીલો તરીકે સૂચિબદ્ધ તમારા દરેક ઇચ્છિત UART નિયંત્રણક્ષમ રજિસ્ટર સાથે સ્ક્રિપ્ટ ચલાવવી આવશ્યક છે. ઉપલબ્ધ પ્રકારો છે std_logic, std_logic_vector, unsigned, and signed.
- ડિફૉલ્ટ મોડ (દિશા) માં છે અને ડિફૉલ્ટ પ્રકાર std_logic_vector છે સિવાય કે રજિસ્ટર લંબાઈનું હોય: 1. પછી, તે std_logic પર ડિફોલ્ટ થશે.
- આમ, જો તમે std_logic ઇનપુટ સિગ્નલ બનાવવા માંગતા હો, તો તમે આમાંની કોઈપણ દલીલોનો ઉપયોગ કરી શકો છો:
- મારો_એસએલ=1
- my_sl=1: માં
- my_sl=1:in:std_logic
- ઉપરોક્ત તમામ પ્રકારો આ UART-સુલભ સિગ્નલ જનરેટ કરતી સ્ક્રિપ્ટમાં પરિણમશે:
- ચાલો વિવિધ દિશાઓ, લંબાઈ અને પ્રકારોના અનેક રજિસ્ટર સાથે ઇન્ટરફેસ જનરેટ કરવા માટે દલીલો સાથે સ્ક્રિપ્ટ ચલાવીએ.
જનરેટ કર્યું files
- gen_uart_regs.py સ્ક્રિપ્ટનું સફળ સંચાલન ત્રણ સાથે જનરેટ થયેલ નામનું આઉટપુટ ફોલ્ડર ઉત્પન્ન કરશે. fileનીચે સૂચિબદ્ધ છે. જો તેઓ પહેલેથી જ અસ્તિત્વ ધરાવે છે, તો તેઓ ફરીથી લખાઈ જશે.
- જનરેટ કરેલ/uart_regs.vhd
- જનરેટ કરેલ/uart_regs.py
- જનરેટ કરેલ/ઇન્સ્ટેન્ટીએશન_ટેમ્પલેટ.vho
- યુઆર્ટ_રેગ્સ.વીએચડી
- આ સ્ક્રિપ્ટ દ્વારા જનરેટ થયેલ કસ્ટમ ઈન્ટરફેસ મોડ્યુલ છે. તમારે તેને તમારી ડિઝાઇનમાં ઇન્સ્ટન્ટ કરવાની જરૂર છે, જ્યાં તે UART નો ઉપયોગ કરીને તમે નિયંત્રિત કરવા માંગો છો તે રજિસ્ટરને ઍક્સેસ કરી શકે છે.
- દરેક uart_regs મોડ્યુલ માટે “– UART સુલભ રજિસ્ટર” વિભાગની ઉપરની દરેક વસ્તુ એકસરખી હશે, જ્યારે તે રેખા નીચે પોર્ટ સિગ્નલની રચના જનરેટર સ્ક્રિપ્ટને આપવામાં આવેલી દલીલો પર આધારિત છે.
- નીચેની સૂચિ જનરેટ કમાન્ડ ex ના પરિણામે uart_regs મોડ્યુલ માટેની એન્ટિટી દર્શાવે છે.ampgen_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 ક્લાસનો સમાવેશ થાય છે જેનો તમે અન્ય કસ્ટમ પાયથોન સ્ક્રિપ્ટમાં કોમ્યુનિકેશન ઈન્ટરફેસ તરીકે સરળતાથી ઉપયોગ કરી શકો છો. ફક્ત વર્ગને આયાત કરો, તેનો એક ઑબ્જેક્ટ બનાવો અને નીચે બતાવ્યા પ્રમાણે પદ્ધતિઓનો ઉપયોગ કરવાનું શરૂ કરો.
- પદ્ધતિ અને વર્ણનો અને વળતર મૂલ્ય પ્રકારો માટે Python કોડમાં docstrings નો સંદર્ભ લો.
ઇન્સ્ટેન્શિયેશન_ટેમ્પલેટ.વીએચઓ
- તમારી સુવિધા માટે uart_regs મોડ્યુલની સાથે ઇન્સ્ટન્ટિયેશન ટેમ્પલેટ જનરેટ કરવામાં આવે છે. કોડિંગનો સમય બચાવવા માટે, તમે તમારી ડિઝાઇનમાં મોડ્યુલ ઇન્સ્ટન્ટેશન અને સિગ્નલ ઘોષણાઓની નકલ કરી શકો છો.
સ્ટેટિક RTL files
- તમારે નીચેનાનો સમાવેશ કરવાની જરૂર છે files તમારા VHDL પ્રોજેક્ટમાં છે જેથી તેઓ uart_regs મોડ્યુલ જેવી જ લાઇબ્રેરીમાં સંકલિત થાય:
- rtl/uart_regs_backend.vhd
- આરટીએલ/યુઆર્ટ_આરએક્સ.વીએચડી
- આરટીએલ/યુઆર્ટ_ટીએક્સ.વીએચડી
- uart_regs_backend મોડ્યુલ મર્યાદિત-સ્થિતિ મશીનોને લાગુ કરે છે જે રજીસ્ટર ડેટાને ઘડિયાળમાં અને બહાર કરે છે. તે હોસ્ટ સાથે UART સંચારને હેન્ડલ કરવા માટે uart_rx અને uart_tx મોડ્યુલોનો ઉપયોગ કરે છે.
ડેમો પ્રોજેક્ટ્સ
- ઝિપમાં ત્રણ ડેમો પ્રોજેક્ટ સામેલ છે file. તેઓ તમને વિવિધ બોર્ડ પરના પેરિફેરલ્સ તેમજ થોડા મોટા, આંતરિક રજિસ્ટરને નિયંત્રિત કરવા દે છે.
- ડેમો ફોલ્ડર્સમાં પૂર્વ-જનરેટેડ uart_regs.vhd અને uart_regs.pyનો સમાવેશ થાય છે. fileખાસ કરીને તે ડિઝાઇન માટે બનાવેલ છે.
જાળી iCEstick
- ડેમો/icecube2_icestick ફોલ્ડરમાં Lattice iCEstick FPGA બોર્ડ માટે રજિસ્ટર એક્સેસ ડેમો અમલીકરણ છે.
- અમલીકરણ પ્રક્રિયામાંથી પસાર થવા માટે, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project ખોલો. file જાળી iCEcube2 ડિઝાઇન સોફ્ટવેરમાં.
- iCEcube2 GUI માં પ્રોજેક્ટ લોડ કર્યા પછી, પ્રોગ્રામિંગ બીટમેપ બનાવવા માટે Tools→Run All પર ક્લિક કરો. file.
- તમે જનરેટ કરેલ બીટમેપ સાથે FPGA ને ગોઠવવા માટે લેટીસ ડાયમંડ પ્રોગ્રામર સ્ટેન્ડઅલોન ટૂલનો ઉપયોગ કરી શકો છો file. જ્યારે ડાયમંડ પ્રોગ્રામર ખુલે છે, ત્યારે સ્વાગત સંવાદ બોક્સમાં અસ્તિત્વમાં છે તે પ્રોગ્રામર પ્રોજેક્ટ ખોલો પર ક્લિક કરો.
- પ્રોજેક્ટ પસંદ કરો file ઝિપમાં જોવા મળે છે: demo/lattice_icestick/diamond_programmer_project.xcf અને ઓકે ક્લિક કરો.
- પ્રોજેક્ટ લોડ થયા પછી, માં ત્રણ બિંદુઓ પર ક્લિક કરો File નામ કૉલમ, ઉપર બતાવ્યા પ્રમાણે. બીટમેપ પસંદ કરવા માટે બ્રાઉઝ કરો file જે તમે iCEcube2 માં જનરેટ કર્યું છે
- ડેમો/લેટીસ_આઈસસ્ટિક/આઈસક્યુબ2_પ્રોજ/યુઆર્ટ_રેગ્સ_ઈમ્પ્લમેન્ટ/એસબીટી/આઉટપુટ્સ/બીટમેપ/ટોપ_આઈસસ્ટિક_બીટમેપ.બિન
- છેલ્લે, તમારા કમ્પ્યુટર પર USB પોર્ટમાં iCEstick બોર્ડ પ્લગ કરીને, SPI ફ્લેશને પ્રોગ્રામ કરવા અને FPGA ને ગોઠવવા માટે ડિઝાઇન→પ્રોગ્રામ પસંદ કરો.
- હવે તમે uart_regs.py વિભાગમાં વર્ણવ્યા મુજબ demo/lattice_icestick/uart_regs.py સ્ક્રિપ્ટનો ઉપયોગ કરીને રજિસ્ટર વાંચવા અને લખવાનું ચાલુ રાખી શકો છો.
ઝિલિન્ક્સ ડિજિલેન્ટ આર્ટી A7-35T
- તમે ડેમો/arty_a7_35 ફોલ્ડરમાં Artix-7 35T Arty FPGA મૂલ્યાંકન કીટ માટે ડેમો અમલીકરણ શોધી શકો છો.
- વિવાડો ખોલો અને એક્સટ્રેક્ટ પર નેવિગેટ કરો fileGUI ઇન્ટરફેસના તળિયે મળેલ Tcl કન્સોલનો ઉપયોગ કરીને s. ડેમો પ્રોજેક્ટ ફોલ્ડરમાં દાખલ કરવા માટે આ આદેશ લખો:
- સીડી /ડેમો/આર્ટી_એ7_35/વિવાડો_પ્રોજ/
- Vivado પ્રોજેક્ટને ફરીથી બનાવવા માટે create_vivado_proj.tcl Tcl સ્ક્રિપ્ટ ચલાવો:
- સ્ત્રોત ./create_vivado_proj.tcl
- અમલીકરણના તમામ પગલાંઓમાંથી પસાર થવા અને પ્રોગ્રામિંગ બિટસ્ટ્રીમ જનરેટ કરવા માટે સાઇડબારમાં જનરેટ બિટસ્ટ્રીમ પર ક્લિક કરો file.
- છેલ્લે, ઓપન હાર્ડવેર મેનેજર પર ક્લિક કરો અને GUI દ્વારા FPGA પ્રોગ્રામ કરો.
- તમે હવે uart_regs.py વિભાગમાં વર્ણવ્યા મુજબ demo/arty_a7_35/uart_regs.py સ્ક્રિપ્ટનો ઉપયોગ કરીને રજિસ્ટર વાંચવા અને લખવા માટે આગળ વધી શકો છો.
ઝિલિન્ક્સ ડિજિલેન્ટ આર્ટી S7-50
- તમે Demo/arty_s7_7 ફોલ્ડરમાં Arty S7: Spartan-50 FPGA ડેવલપમેન્ટ બોર્ડ માટે ડેમો અમલીકરણ શોધી શકો છો.
- વિવાડો ખોલો અને એક્સટ્રેક્ટ પર નેવિગેટ કરો fileGUI ઇન્ટરફેસના તળિયે મળેલ Tcl કન્સોલનો ઉપયોગ કરીને s. ડેમો પ્રોજેક્ટ ફોલ્ડરમાં દાખલ કરવા માટે આ આદેશ લખો:
- સીડી /ડેમો/આર્ટી_એસ7_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 મોડ્યુલની અંદર સમન્વયિત થાય છે. આમ, તેને ઉચ્ચ-સ્તરના મોડ્યુલમાં સમન્વયિત કરવાની જરૂર નથી.
જાણીતા મુદ્દાઓ
- તમારું FPGA આર્કિટેક્ચર ડિફૉલ્ટ રજિસ્ટર મૂલ્યોને સમર્થન આપે છે કે કેમ તેના આધારે તમારે મોડ્યુલનો ઉપયોગ કરવામાં આવે તે પહેલાં તેને ફરીથી સેટ કરવાની જરૂર પડી શકે છે.
વધુ માહિતી
- કોપીરાઈટ VHDLwhiz.com
FAQs
પ્રશ્ન: UART ટેસ્ટ ઇન્ટરફેસ જનરેટરનો હેતુ શું છે?
A: UART ટેસ્ટ ઇન્ટરફેસ જનરેટર UART કોમ્યુનિકેશનનો ઉપયોગ કરીને FPGA રજિસ્ટર મૂલ્યો સાથે ક્રિયાપ્રતિક્રિયા કરવા માટે કસ્ટમ ઇન્ટરફેસ બનાવવાની મંજૂરી આપે છે.
પ્ર: હું Pyserial પેકેજ કેવી રીતે ઇન્સ્ટોલ કરી શકું?
A: તમે pip install pyserial આદેશનો ઉપયોગ કરીને Pip દ્વારા Pyserial ઇન્સ્ટોલ કરી શકો છો.
દસ્તાવેજો / સંસાધનો
![]() |
VHDLwhiz UART ટેસ્ટ ઇન્ટરફેસ જનરેટર [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા UART ટેસ્ટ ઇન્ટરફેસ જનરેટર, ટેસ્ટ ઇન્ટરફેસ જનરેટર, ઇન્ટરફેસ જનરેટર, જનરેટર |