সুচিপত্র:

ভিএইচডিএল এবং বেসিস 3 বোর্ড ব্যবহার করে বেসিক স্টপওয়াচ: 9 টি ধাপ
ভিএইচডিএল এবং বেসিস 3 বোর্ড ব্যবহার করে বেসিক স্টপওয়াচ: 9 টি ধাপ

ভিডিও: ভিএইচডিএল এবং বেসিস 3 বোর্ড ব্যবহার করে বেসিক স্টপওয়াচ: 9 টি ধাপ

ভিডিও: ভিএইচডিএল এবং বেসিস 3 বোর্ড ব্যবহার করে বেসিক স্টপওয়াচ: 9 টি ধাপ
ভিডিও: HDL কোলেস্টেরল বাড়ানোর উপায় || how to increase HDL cholesterol || Prof Dr Toufiqur Rahman Faruque 2024, নভেম্বর
Anonim
Image
Image

বেসিক ভিএইচডিএল এবং বেসিস 3 বোর্ড ব্যবহার করে কীভাবে স্টপওয়াচ তৈরি করতে হয় তার নির্দেশনাতে স্বাগতম। আমরা আপনার সাথে আমাদের প্রকল্প শেয়ার করতে পেরে উচ্ছ্বসিত! ২০১ 2016 সালের শরত্কালে ক্যাল পলি, এসএলও -তে কোর্স সিপিই 133 (ডিজিটাল ডিজাইন) এর জন্য এটি একটি চূড়ান্ত প্রকল্প ছিল। আমাদের তৈরি করা প্রকল্পটি একটি সহজ স্টপওয়াচ যা শুরু, রিসেট এবং সময় বিরতি দেয়। এটি ইনপুট হিসাবে Basys3 বোর্ডে তিনটি পুশ বোতাম নেয় এবং সময়টি বোর্ডের চার-অঙ্কের সাত-সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হয়। অতিবাহিত সময় একটি সেকেন্ডে প্রদর্শিত হয়: সেন্টিসেকেন্ড বিন্যাসে। এটি অতিবাহিত সময়ের উপর নজর রাখার জন্য ইনপুট হিসাবে বোর্ডের সিস্টেম ঘড়ি ব্যবহার করে এবং সাত-সেগমেন্ট ডিসপ্লের চারটি অঙ্কে সময় বের করে।

ধাপ 1: উপকরণ

ইনপুট এবং আউটপুট সেট করা
ইনপুট এবং আউটপুট সেট করা

এই প্রকল্পের জন্য আপনার প্রয়োজনীয় উপকরণগুলি:

  • Xilinx থেকে ইনস্টল করা Vivado ডিজাইন স্যুট ওয়েবপ্যাক সহ 1 কম্পিউটার (সংস্করণ 2016.2 পছন্দ করুন)
  • 1 Digilent Basys3 Xilinx Artix-7 FPGA বোর্ড
  • 1 ইউএসবি পোর্ট কেবল

ধাপ 2: ইনপুট এবং আউটপুট সেট করা

উপরের চিত্রটি প্রধান স্টপওয়াচ মডিউলের একটি শীর্ষ স্তরের ব্লক চিত্র দেখায়। স্টপওয়াচ "CLK" (ঘড়ি), "S1" (স্টার্ট বাটন), "S2" (বিরতি বোতাম), এবং "RST" (রিসেট) ইনপুট নেয় এবং 4-বিট আউটপুট "Anodes", 7-বিট আউটপুট "সেগমেন্ট," এবং একটি একক-বিট আউটপুট "ডিপি" (দশমিক বিন্দু)। যখন ইনপুট "S1" বেশি হয়, স্টপওয়াচ সময় গণনা শুরু করে। যখন "S2" কম, স্টপওয়াচ সময় বিরতি দেয়। যখন "আরএসটি" বেশি হয়, স্টপওয়াচ থেমে যায় এবং সময়টি পুনরায় সেট করে। সার্কিটের মধ্যে চারটি সাবমডিউল রয়েছে: ক্লক ডিভাইডার, ডিজিট কাউন্টার, সেভেন সেগমেন্ট ডিসপ্লে ড্রাইভার এবং সেভেন সেগমেন্ট ডিসপ্লে এনকোডার। স্টপওয়াচ প্রধান মডিউল সমস্ত সাবমডিউলগুলিকে একসাথে এবং ইনপুট এবং আউটপুটগুলির সাথে সংযুক্ত করে।

ধাপ 3: ঘড়ি তৈরি করা

ঘড়ি তৈরি করা
ঘড়ি তৈরি করা

ঘড়ি বিভাজক মডিউল একটি সিস্টেম ঘড়ি নেয় এবং সিস্টেম ঘড়ির চেয়ে বড় কোনো গতিতে একটি ঘড়ি তৈরি করতে একটি বিভাজক ইনপুট ব্যবহার করে। স্টপওয়াচ দুটি ভিন্ন ঘড়ি মডিউল ব্যবহার করে, একটি যা 500 Hz ঘড়ি তৈরি করে এবং অন্যটি 100 Hz ঘড়ি তৈরি করে। ঘড়ি বিভাজক জন্য পরিকল্পিত উপরের চিত্রে দেখানো হয়েছে। ক্লক ডিভাইডার একটি সিঙ্গেল-বিট ইনপুট "CLK", এবং একটি 32-বিট ইনপুট "Divisor" এবং সিঙ্গল-বিট আউটপুট "CLKOUT" নেয়। "CLK" হল সিস্টেম ক্লক এবং "CLKOUT" হল ফলিত ঘড়ি। মডিউলটিতে একটি NOT গেটও অন্তর্ভুক্ত রয়েছে, যা গণনাটি ভাজকের মান পৌঁছানোর সময় "CLKTOG" সংকেত টগল করে।

ধাপ 4: দশ গণনা

দশে গণনা
দশে গণনা

ডিজিট কাউন্টার প্রতিটি অঙ্ক 0 থেকে 10 পর্যন্ত গণনা করে এবং গণনা 10 এ পৌঁছানোর পর পরবর্তী সংখ্যার জন্য কাজ করার জন্য আরেকটি ঘড়ি তৈরি করে। "এবং একটি একক-বিট আউটপুট" এন "এবং 4-বিট আউটপুট" ডি "। ইনপুট "এস" হল ইনপুট ইনাবল। "এস" বেশি হলে এবং "এস" কম হলে ঘড়ি চালু হয়। "RST" হল রিসেট ইনপুট তাই "RST" বেশি হলে ঘড়ি রিসেট হয়। "CLK" হল ডিজিট কাউন্টারের ক্লক ইনপুট। "N" হল ঘড়ির আউটপুট যা পরবর্তী সংখ্যার জন্য ইনপুট ঘড়ি হয়ে যায়। আউটপুট "ডি" কাউন্টারে যে অঙ্ক আছে তার বাইনারি মান উপস্থাপন করে।

ধাপ 5: সংখ্যা প্রদর্শন

সংখ্যা প্রদর্শন করা হচ্ছে
সংখ্যা প্রদর্শন করা হচ্ছে

সাত-সেগমেন্ট ডিসপ্লে এনকোডার সাত-সেগমেন্ট ডিসপ্লে ড্রাইভার মডিউল থেকে প্রাপ্ত বাইনারি নম্বর এনকোড করবে এবং এটি বিটগুলির একটি প্রবাহে পরিণত করবে যা ডিসপ্লের প্রতিটি সেগমেন্টের জন্য '1' বা '0' মান হিসাবে ব্যাখ্যা করা হবে। বাইনারি সংখ্যাটি মডিউল দ্বারা 4-বিট ইনপুট "ডিজিট" হিসাবে প্রাপ্ত হয় এবং 7-বিট আউটপুট "সেগমেন্ট" এর ফলাফল হয়। মডিউলটিতে একটি একক কেস প্রসেস ব্লক রয়েছে যা 0 থেকে 9 পর্যন্ত প্রতিটি সম্ভাব্য ইনপুট মানের জন্য একটি নির্দিষ্ট 7-বিট স্ট্রিম বরাদ্দ করে। প্রবাহের বিভাগগুলির ক্রম হল "abcdefg" যার সাথে 0 এর প্রতিনিধিত্ব করা অংশগুলি প্রদত্ত সংখ্যার জন্য আলোকিত হয়।

ধাপ 6: স্টপওয়াচ কিভাবে প্রদর্শন করবেন

স্টপওয়াচ কিভাবে প্রদর্শন করবেন
স্টপওয়াচ কিভাবে প্রদর্শন করবেন

সাত-সেগমেন্ট ডিসপ্লে ড্রাইভার মডিউলে, চারটি 4-বিট ইনপুট "D0", "D1", "D2", এবং "D3" রয়েছে, প্রত্যেকটি চারটি সংখ্যা প্রদর্শন করে। ইনপুট "CLK" হল সিস্টেমের ক্লক ইনপুট। একক-বিট আউটপুট "ডিপি" সাত-সেগমেন্ট ডিসপ্লেতে দশমিক বিন্দু প্রতিনিধিত্ব করে। 4-বিট আউটপুট "Anodes" নির্ধারণ করে যে সাত-সেগমেন্ট ডিসপ্লেতে কোন অঙ্ক দেখানো হয়েছে এবং 4-বিট আউটপুট "টেম্প" 2-বিট কন্ট্রোল ইনপুট "SEL" এর অবস্থার উপর নির্ভর করে। মডিউল 4 টি মাল্টিপ্লেক্সার ব্যবহার করে নিয়ন্ত্রণ ইনপুট "SEL" এবং তিনটি আউটপুট; "Anodes", "temp", এবং "DP"।

ধাপ 7: সব একসাথে আনা

500Hz ঘড়ির একটি 'if' প্রসেস ব্লক স্টার্ট এবং পজ বাটন তৈরি করতে ব্যবহৃত হয়। তারপর প্রতিটি সাবমডিউলের উপাদানগুলি ঘোষণা করে এবং বিভিন্ন সংকেত ব্যবহার করে স্টপওয়াচ মেইন মডিউলে সমস্ত সাবমডিউলগুলিকে একসাথে সংযুক্ত করুন। ডিজিটের সাবমডিউলগুলি আগের ডিজিটের সাবমডিউলের ঘড়ির আউটপুট নেয় এবং প্রথমটি 100Hz ঘড়িতে নেয়। ডিজিট সাবমডিউলের "D" আউটপুটগুলি তখন সাত সেগমেন্ট ডিসপ্লে ড্রাইভার মডিউলের "D" ইনপুট হয়ে যায়। এবং সবশেষে সাত সেগমেন্ট ডিসপ্লে ড্রাইভার মডিউলের "টেম্প" আউটপুট সাত সেগমেন্ট এনকোডার মডিউলের "টেম্প" ইনপুট হয়ে যায়।

ধাপ 8: সীমাবদ্ধতা

সীমাবদ্ধতা
সীমাবদ্ধতা

"RST", "S1", এবং "S2" ইনপুটগুলির জন্য 3 টি পুশ বোতাম (W19, T17, এবং U18) ব্যবহার করুন। W19 হল রিসেট বাটন, T17 হল স্টার্ট বাটন (S1), এবং U18 হল বিরতি বাটন (S2)। পোর্ট W5 ব্যবহার করে ঘড়ির ইনপুট ইনপুটের জন্য একটি সীমাবদ্ধতাও প্রয়োজন। এছাড়াও, ঘড়ির সীমাবদ্ধতায় এই লাইনটি যোগ করতে ভুলবেন না:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

এছাড়াও বোর্ডে অ্যানোড এবং বিভাগগুলিকে লিঙ্ক করুন যাতে স্টপওয়াচ সাত সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হয় যেমন সীমাবদ্ধতা ফাইলে দেখা যায়।

ধাপ 9: পরীক্ষা

পরীক্ষামূলক
পরীক্ষামূলক

নিশ্চিত করুন যে আপনার ডিভাইসটি তিনটি বোতামের সাথে খেলে কাজ করে: আপনার কোডের সাথে সম্ভাব্য সমস্যাগুলি খুঁজে পেতে প্রতিটি সম্ভাব্য ক্রমে তাদের ধাক্কা এবং ধরে রাখা।

প্রস্তাবিত: