VHDLwhiz UART টেস্ট ইন্টারফেস জেনারেটর
পণ্য তথ্য
স্পেসিফিকেশন:
- পণ্যের নাম: VHDL UART পরীক্ষা ইন্টারফেস জেনারেটর নিবন্ধন করে
- সংস্করণ: 1.0.4
- তারিখ: আগস্ট 18, 2024
- লেখক: জোনাস জুলিয়ান জেনসেন
- পণ্য URL: পণ্য লিঙ্ক
- যোগাযোগ ইমেল: jonas@vhdlwhiz.com
বর্ণনা
এই পণ্যটি আপনাকে UART ব্যবহার করে FPGA রেজিস্টার মান পড়ার এবং লেখার জন্য কাস্টম ইন্টারফেস তৈরি করতে দেয়। জেনারেটেড VHDL মডিউল এবং পাইথন স্ক্রিপ্ট আপনার FPGA ডিজাইনে বিভিন্ন ধরণের রেজিস্টারের সাথে ইন্টারঅ্যাক্ট করার ক্ষমতা প্রদান করে।
প্রয়োজনীয়তা
- পাইথন ৩ ইন্টারপ্রেটার
- পিসেরিয়াল প্যাকেজ
প্রোটোকল
পণ্যটি চারটি নিয়ন্ত্রণ অক্ষর সহ একটি ডেটা ফ্রেমিং প্রোটোকল ব্যবহার করে:
- নাম: READ_REQ, মান: 0x0A – হোস্ট থেকে FPGA-তে কমান্ড দিয়ে UART-এর মাধ্যমে সমস্ত রেজিস্টার ফেরত পাঠানোর জন্য একটি লেখার ক্রম শুরু করা।
- নাম: START_লেখুন, মান: 0x0B – যেকোনো দিকে লেখার ক্রম শুরু করে।
- নাম: শেষ_লিখুন, মান: 0x0C – যেকোনো দিকে লেখার ক্রম শেষ করে।
- নাম: পলায়ন, মান: 0x0D – নিয়ন্ত্রণ শব্দ থেকে পালানোর জন্য ব্যবহৃত Escape অক্ষর।
পণ্য ব্যবহারের নির্দেশাবলী
স্ক্রিপ্টগুলি চালানো
পণ্যটি ব্যবহার করার জন্য, নিশ্চিত করুন যে আপনার 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 ইমপোর্ট করার সময় অনুপস্থিত «self» রেফারেন্স বাগটি ঠিক করা হয়েছে। লেখার ব্যর্থ প্রিন্টআউটকে ব্যতিক্রমে পরিবর্তন করা হয়েছে।
আমদানি করা মডিউল হিসেবে চালানোর সময় কনসোলে প্রিন্ট করা এড়িয়ে চলুন। |
1.0.2 | আউট মোড রেজিস্ট্রেশন না থাকলে Vivado [Synth 8-248] ত্রুটির সমাধান করুন। |
1.0.3 | ভিভাডো লিন্টার সতর্কতা ঠিক করুন: রেজিস্টারে চালিত সক্ষম করা হয়েছে
সিঙ্ক্রোনাস রিসেট |
1.0.4 | ত্রুটিপূর্ণ শব্দ পেলে কর্নার কেস ঠিক করুন, শেষ বাইট হিসেবে এসকেপ ক্যারেক্টার ব্যবহার করুন। IDLE তে ফিরে যাওয়ার সময় recv_data_prev_is_escape সাফ না করায় পরবর্তী শব্দটিও হারিয়ে যাবে।
gen_uart_regs.py স্ক্রিপ্ট এখন শুধুমাত্র অনন্য reg নাম ব্যবহার করতে দেয়। |
বর্ণনা
- এই নথিটি নিম্নলিখিত বর্ণনা করে files এবং ফোল্ডার:
- 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
- ডেমো/জালি_আইসিস্টিক/
- ডেমো/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_WRITE | 0x0B | যেকোনো একটিতে লেখার ক্রম শুরু করে
দিক |
END_WRITE | 0x0 সি | উভয় দিকে একটি লেখার ক্রম শেষ চিহ্নিত করে |
এস্কেপ | 0x0D | ESCAPE অক্ষর সহ যেকোনও নিয়ন্ত্রণ শব্দ থেকে বেরিয়ে আসার জন্য ব্যবহৃত Escape অক্ষর, যখন সেগুলি START_WRITE এবং END_WRITE মার্কারগুলির মধ্যে ডেটা হিসাবে উপস্থিত হয়৷ |
FPGA-তে পাঠানো যেকোনও unescaped 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নীচে তালিকাভুক্ত. যদি সেগুলি ইতিমধ্যেই বিদ্যমান থাকে তবে সেগুলি ওভাররাইট করা হবে৷
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/instantiation_template.vho
- uart_regs.vhd
- এটি স্ক্রিপ্ট দ্বারা তৈরি কাস্টম ইন্টারফেস মডিউল। আপনাকে এটিকে আপনার ডিজাইনে ইনস্ট্যান্টিয়েট করতে হবে, যেখানে এটি UART ব্যবহার করে আপনি নিয়ন্ত্রণ করতে চান এমন রেজিস্টারগুলি অ্যাক্সেস করতে পারে।
- "- UART অ্যাক্সেসযোগ্য রেজিস্টার" বিভাগের উপরের সবকিছুই প্রতিটি uart_regs মডিউলের জন্য অভিন্ন হবে, যখন সেই লাইনের নীচে পোর্ট সিগন্যালের গঠন জেনারেটর স্ক্রিপ্টে দেওয়া আর্গুমেন্টের উপর নির্ভর করে।
- নিচের তালিকাটি generate কমান্ড ex-এর ফলে uart_regs মডিউলের জন্য সত্তা দেখায়ampgen_uart_regs.py সেকটিতে দেখানো হয়েছে
- আপনার uart_rx সংকেত সিঙ্ক্রোনাইজ করার দরকার নেই, কারণ এটি uart_rx এ পরিচালিত হয়। মডিউল
- যখন মডিউলটি একটি পড়ার অনুরোধ পায়, তখন এটি বর্তমান ঘড়ি চক্রের মধ্যে সমস্ত ইনপুট এবং আউটপুট সংকেতের মান ক্যাপচার করবে। তাত্ক্ষণিক স্ন্যাপশটটি তখন UART-এর মাধ্যমে হোস্টের কাছে পাঠানো হয়।
- যখন একটি লেখা হয়, সমস্ত আউটপুট রেজিস্টার একই ঘড়ি চক্রের মধ্যে নতুন মান সহ আপডেট করা হয়। পৃথকভাবে আউটপুট সংকেত মান পরিবর্তন করা সম্ভব নয়।
- যাইহোক, uart_regs.py স্ক্রিপ্ট ব্যবহারকারীকে শুধুমাত্র নির্বাচিত আউটপুট আপডেট করার অনুমতি দেয় প্রথমে সমস্ত রেজিস্টারের বর্তমান মানগুলি পড়ে। এটি তারপর আপডেট করা সহ সমস্ত মানগুলিকে আবার লেখে।
- uart_regs.py
- generated/uart_regs.py file uart_regs VHDL মডিউলের সাথে একত্রে তৈরি করা হয় এবং এর শিরোনামে কাস্টম রেজিস্টার তথ্য রয়েছে file. এই স্ক্রিপ্টের সাহায্যে, আপনি সহজেই আপনার কাস্টম রেজিস্টার থেকে পড়তে বা লিখতে পারেন।
সাহায্য মেনু
- সাহায্য মেনু প্রিন্ট করতে python uart_regs.py -h টাইপ করুন:
UART পোর্ট সেট করা হচ্ছে
- স্ক্রিপ্টটিতে -c সুইচ ব্যবহার করে UART পোর্ট সেট করার বিকল্প রয়েছে। এটি উইন্ডোজ এবং লিনাক্সে কাজ করে। সহায়তা মেনুতে তালিকাভুক্ত উপলব্ধ পোর্টগুলির মধ্যে একটিতে এটি সেট করুন। একটি ডিফল্ট পোর্ট সেট করতে, আপনি uart_regs.py স্ক্রিপ্টে UART_PORT ভেরিয়েবলটিও সম্পাদনা করতে পারেন।
তালিকা নিবন্ধন
- রেজিস্টার ম্যাপিং সম্পর্কে তথ্য uart_regs.py স্ক্রিপ্টের হেডারে gen_uart_regs.py স্ক্রিপ্ট দ্বারা স্থাপন করা হয়। আপনি -l সুইচ ব্যবহার করে উপলব্ধ রেজিস্টারগুলি তালিকাভুক্ত করতে পারেন, যেমনটি নীচে দেখানো হয়েছে। এটি একটি স্থানীয় কমান্ড এবং লক্ষ্য FPGA এর সাথে ইন্টারঅ্যাক্ট করবে না।
রেজিস্টারে লেখা
- আপনি -w সুইচ ব্যবহার করে যে কোনো আউট মোড রেজিস্টারে লিখতে পারেন। "=" দ্বারা অনুসৃত রেজিস্টার নাম এবং বাইনারি, হেক্সাডেসিমেল বা দশমিক মান হিসাবে প্রদত্ত মানটি সরবরাহ করুন, যেমনটি নীচে দেখানো হয়েছে।
- মনে রাখবেন যে VHDL বাস্তবায়নের জন্য স্ক্রিপ্টটিকে একই সাথে সমস্ত আউটপুট রেজিস্টার লিখতে হবে। অতএব, যদি আপনি আউটপুট রেজিস্টারের একটি সম্পূর্ণ সেট নির্দিষ্ট না করেন, তাহলে স্ক্রিপ্টটি প্রথমে লক্ষ্য FPGA থেকে একটি পঠন সম্পাদন করবে এবং তারপর অনুপস্থিত মানগুলির জন্য সেই মানগুলি ব্যবহার করবে। ফলাফল হবে যে শুধুমাত্র নির্দিষ্ট রেজিস্টারগুলি পরিবর্তিত হবে।
- যখন আপনি একটি লিখন সম্পাদন করেন, সমস্ত নির্দিষ্ট রেজিস্টার একই ঘড়ি চক্রের সময় পরিবর্তিত হবে, UART এর মাধ্যমে প্রাপ্ত হওয়ার সাথে সাথে নয়।
রেজিস্টার পড়া
- নীচে দেখানো হিসাবে সমস্ত রেজিস্টার মান পড়তে -r সুইচ ব্যবহার করুন। হলুদ রঙে চিহ্নিত মানগুলি আমরা পূর্ববর্তী লিখতে পরিবর্তন করেছিample
- প্রতিটি পঠিত সমস্ত ইনপুট এবং আউটপুট রেজিস্টারের একটি তাত্ক্ষণিক স্ন্যাপশট দেখায়। তারা সকলেই এসampএকই ঘড়ি চক্রের সময় পরিচালিত
ডিবাগিং
আপনার যোগাযোগ প্রোটোকল ডিবাগ করার প্রয়োজন হলে অন্য যেকোনো সুইচের সাথে -d সুইচটি ব্যবহার করুন। তারপর, স্ক্রিপ্টটি প্রিন্ট আউট করবে সমস্ত পাঠানো এবং প্রাপ্ত বাইট এবং tag সেগুলি যদি নিয়ন্ত্রণ অক্ষর হয়, যেমনটি নীচে দেখানো হয়েছে।
অন্যান্য পাইথন স্ক্রিপ্টে ইন্টারফেস ব্যবহার করা
- uart_regs.py স্ক্রিপ্টে একটি UartRegs ক্লাস রয়েছে যা আপনি সহজেই অন্যান্য কাস্টম পাইথন স্ক্রিপ্টে যোগাযোগ ইন্টারফেস হিসাবে ব্যবহার করতে পারেন। সহজভাবে ক্লাস ইম্পোর্ট করুন, এটির একটি অবজেক্ট তৈরি করুন এবং পদ্ধতিগুলি ব্যবহার করা শুরু করুন, যেমনটি নীচে দেখানো হয়েছে।
- পদ্ধতি এবং বর্ণনা এবং রিটার্ন মান প্রকারের জন্য পাইথন কোডের ডকস্ট্রিংগুলি পড়ুন।
instantiation_template.vho
- আপনার সুবিধার জন্য 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 মডিউলটি সীমিত-স্টেট মেশিনগুলিকে প্রয়োগ করে যেগুলি রেজিস্টার ডেটাকে ক্লক ইন এবং আউট করে। এটি হোস্টের সাথে UART যোগাযোগ পরিচালনা করতে uart_rx এবং uart_tx মডিউল ব্যবহার করে।
ডেমো প্রকল্প
- জিপে অন্তর্ভুক্ত তিনটি ডেমো প্রকল্প রয়েছে file. তারা আপনাকে বিভিন্ন বোর্ডের পাশাপাশি কয়েকটি বড়, অভ্যন্তরীণ রেজিস্টারে পেরিফেরিয়াল নিয়ন্ত্রণ করতে দেয়।
- ডেমো ফোল্ডারগুলিতে পূর্ব-উত্পন্ন uart_regs.vhd এবং uart_regs.py অন্তর্ভুক্ত রয়েছে fileযারা ডিজাইনের জন্য বিশেষভাবে তৈরি।
জালি আইসিইস্টিক
- ডেমো/icecube2_icestick ফোল্ডারে ল্যাটিস iCEstick FPGA বোর্ডের জন্য একটি রেজিস্টার অ্যাক্সেস ডেমো বাস্তবায়ন রয়েছে।
- বাস্তবায়ন প্রক্রিয়া চালানোর জন্য, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project খুলুন file ল্যাটিস iCEcube2 ডিজাইন সফটওয়্যারে।
- iCEcube2 GUI-তে প্রজেক্ট লোড করার পর, প্রোগ্রামিং বিটম্যাপ তৈরি করতে টুলস→রান অল-এ ক্লিক করুন file.
- আপনি জেনারেটেড বিটম্যাপের সাথে FPGA কনফিগার করতে ল্যাটিস ডায়মন্ড প্রোগ্রামার স্ট্যান্ডঅ্যালোন টুল ব্যবহার করতে পারেন file. যখন ডায়মন্ড প্রোগ্রামার খোলে, স্বাগত ডায়ালগ বক্সে একটি বিদ্যমান প্রোগ্রামার প্রকল্প খুলুন ক্লিক করুন।
- প্রকল্প নির্বাচন করুন file জিপে পাওয়া যায়: demo/lattice_icestick/diamond_programmer_project.xcf এবং ঠিক আছে ক্লিক করুন।
- প্রকল্পটি লোড হওয়ার পরে, তিনটি বিন্দুতে ক্লিক করুন File নাম কলাম, উপরে দেখানো হিসাবে. বিটম্যাপ নির্বাচন করতে ব্রাউজ করুন file যা আপনি iCEcube2 তে তৈরি করেছেন
- ডেমো/ল্যাটিক্স_আইসস্টিক/আইসকিউব২_প্রোজ/ইউআর্ট_রেগস_ইম্পলমেন্ট/এসবিটি/আউটপুটস/বিটম্যাপ/টপ_আইসস্টিক_বিটম্যাপ.বিন
- অবশেষে, আপনার কম্পিউটারে একটি USB পোর্টে iCEstick বোর্ড প্লাগ করে, SPI ফ্ল্যাশ প্রোগ্রাম করতে এবং FPGA কনফিগার করতে ডিজাইন→প্রোগ্রাম নির্বাচন করুন।
- আপনি এখন uart_regs.py বিভাগে বর্ণিত demo/lattice_icestick/uart_regs.py স্ক্রিপ্ট ব্যবহার করে রেজিস্টার পড়া এবং লেখা শুরু করতে পারেন।
Xilinx Digilent Arty A7-35T
- আপনি Demo/arty_a7_35 ফোল্ডারে Artix-7 35T Arty FPGA মূল্যায়ন কিটের ডেমো বাস্তবায়ন খুঁজে পেতে পারেন।
- Vivado খুলুন এবং এক্সট্র্যাক্টে নেভিগেট করুন files GUI ইন্টারফেসের নীচে পাওয়া Tcl কনসোল ব্যবহার করে। ডেমো প্রকল্প ফোল্ডারে প্রবেশ করতে এই কমান্ডটি টাইপ করুন:
- সিডি /ডেমো/আর্টি_এ৭_৩৫/ভিভাডো_প্রোজ/
- Vivado প্রোজেক্ট পুনরায় জেনারেট করতে create_vivado_proj.tcl Tcl স্ক্রিপ্টটি চালান:
- উৎস ./create_vivado_proj.tcl
- সমস্ত বাস্তবায়ন পদক্ষেপগুলি চালানোর জন্য এবং প্রোগ্রামিং বিটস্ট্রিম তৈরি করতে সাইডবারে জেনারেট বিটস্ট্রিম ক্লিক করুন file.
- অবশেষে, ওপেন হার্ডওয়্যার ম্যানেজার ক্লিক করুন এবং GUI এর মাধ্যমে FPGA প্রোগ্রাম করুন।
- আপনি এখন uart_regs.py বিভাগে বর্ণিত demo/arty_a7_35/uart_regs.py স্ক্রিপ্ট ব্যবহার করে রেজিস্টার পড়তে এবং লিখতে এগিয়ে যেতে পারেন।
Xilinx Digilent Arty S7-50
- আপনি Demo/arty_s7_7 ফোল্ডারে Arty S7: Spartan-50 FPGA ডেভেলপমেন্ট বোর্ডের ডেমো বাস্তবায়ন খুঁজে পেতে পারেন।
- Vivado খুলুন এবং এক্সট্র্যাক্টে নেভিগেট করুন files GUI ইন্টারফেসের নীচে পাওয়া Tcl কনসোল ব্যবহার করে। ডেমো প্রকল্প ফোল্ডারে প্রবেশ করতে এই কমান্ডটি টাইপ করুন:
- সিডি /ডেমো/আর্টি_এস৭_৫০/ভিভাডো_প্রোজ/
- 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 টেস্ট ইন্টারফেস জেনারেটর, টেস্ট ইন্টারফেস জেনারেটর, ইন্টারফেস জেনারেটর, জেনারেটর |