সুচিপত্র:

টেন বিট কম্পিউটার - ভিএইচডিএল: 4 টি ধাপ
টেন বিট কম্পিউটার - ভিএইচডিএল: 4 টি ধাপ

ভিডিও: টেন বিট কম্পিউটার - ভিএইচডিএল: 4 টি ধাপ

ভিডিও: টেন বিট কম্পিউটার - ভিএইচডিএল: 4 টি ধাপ
ভিডিও: 64 Bit VS 32 Bit , Minimum RAM Requirement#adnankadir 2024, নভেম্বর
Anonim
টেন বিট কম্পিউটার - ভিএইচডিএল
টেন বিট কম্পিউটার - ভিএইচডিএল

প্রযোজক: টাইলার স্টার এবং ইজিজেডেন গাজালি

ভূমিকা

ক্যাল পলি এসএলওতে সিপিই 133 এর চূড়ান্ত প্রকল্পের অংশ হিসাবে এই প্রকল্পটি সম্পন্ন হয়েছিল। কম্পিউটারগুলি তাদের সর্বনিম্ন স্তরে কীভাবে কাজ করে এবং কীভাবে তারা তাদের কাজগুলি অর্জন করে তা বোঝার জন্য এটি একটি দুর্দান্ত প্রকল্প। অ্যালবার্ট মালভিনোর বই ডিজিটাল কম্পিউটার ইলেকট্রনিক্স-এ বর্ণিত 8-বিট এসএপি কম্পিউটারের পর প্রকল্পটি তৈরি করা হয়েছে। যাইহোক, আমরা আরও অপ কোড (অপারেশন কোড) বাস্তবায়নের অনুমতি দেওয়ার জন্য কম্পিউটারকে 10-বিটে উন্নীত করেছি। ব্যবহারকারী নির্দিষ্ট নির্দেশাবলী ইনপুট করে অপারেশন একটি সেট সঞ্চালনের জন্য কম্পিউটার প্রোগ্রাম করতে পারেন।

সিস্টেম এবং সার্কিট আর্কিটেকচার:

কম্পিউটারটি ভিএইচডিএলে লেখা এবং ডিজিলেন্ট থেকে বেসিস 3 বোর্ডে থাকবে। ইনপুটগুলি বোর্ডের নীচে সুইচগুলিতে ম্যাপ করা হবে। রিসেট এবং রাইট ফাংশনের জন্য দুটি স্পর্শযোগ্য সুইচ ব্যবহার করা হবে। আউটপুট বোর্ডের 7 সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হবে।

কম্পিউটারটি ছোট ছোট সার্কিটে বিভক্ত হবে (মডিউল) যা বিভিন্ন অপারেশন পরিচালনা করে। প্রতিটি মডিউল নিম্নলিখিত ধাপে বিস্তারিতভাবে ব্যাখ্যা করা হবে।

ধাপ 1: উপকরণ

উপকরণ
উপকরণ

এই প্রকল্পের জন্য যা প্রয়োজন তা হল ডিজিলেন্ট থেকে Basys3 FPGA বোর্ড এবং আপনার কম্পিউটারে বোর্ডটি সংযুক্ত করার জন্য একটি মাইক্রো ইউএসবি তার।

ধাপ 2: সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম

সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম
সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম
সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম
সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম
সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম
সার্কিট মডিউলগুলির ব্লক ডায়াগ্রাম

উপরের ব্লক চিত্রগুলি 10-বিট কম্পিউটার তৈরি করে এমন বিভিন্ন সার্কিট মডিউল দেখায়। নীচের চিত্রগুলিতে প্রদর্শিত প্রতিটি পৃথক অংশ/মডিউলগুলির বিবরণ নীচে রয়েছে।

প্রোগ্রাম কাউন্টার

ইনপুটগুলির বিবরণ: প্রোগ্রাম কাউন্টারে একটি সংখ্যা লোড করার জন্য ইনপুট একটি 5 বিট ইনপুট। সিপি যখন উচ্চ কাউন্টার পতন ঘড়ির প্রান্তে গণনা করে। Clr কাউন্টারে 0 রিসেট করে। যখন উচ্চ কাউন্টার ইনপুটের সংখ্যা গণনা সেট করে।

  • আউটপুট বর্ণনা:

    LEDS 0-15 এ ব্যবহারের জন্য আউটপুট গণনার একটি অনুলিপি। গণনা বর্তমান গণনা আউটপুট।

  • সিস্টেমে সামগ্রিক স্থান: এই কাউন্টারটি প্রোগ্রামটিতে থাকা মেমরির অবস্থানের উপর নজর রাখে All জাম্প স্টেটমেন্টে, প্রোগ্রাম কাউন্টার সেই ঠিকানা থেকে গণনা করতে থাকে যেখানে প্রোগ্রামটি লাফ দিচ্ছে।

ইনপুট MUX

  • ইনপুটের বর্ণনা: ঠিকানা 11 থেকে 15 সুইচ থেকে ইনপুট নেয়। MAR MAR হিসাবে ব্যবহৃত 10 বিট রেজিস্টার থেকে ইনপুট নেয়। আউটপুট রুট কোন ইনপুট প্রোগ্রাম নিয়ন্ত্রণ।
  • আউটপুটের বর্ণনা: আউটপুট র routes্যামে নির্বাচিত ইনপুট রুট করে।
  • সিস্টেমে সামগ্রিক স্থান: এই MUX নির্ধারণ করে যে ঠিকানাটি সুইচ বা বাস থেকে র route্যামে রুট করা হবে কিনা। প্রোগ্রাম মোডে সুইচ থেকে ঠিকানা রাউট করা হয় এবং রান মোডে বাস থেকে ঠিকানা রাউটেড হয়।

ramMUX

  • ইনপুটগুলির বিবরণ: ইউজারইনপুট হল সেই ইনপুট যা ব্যবহারকারী প্রোগ্রাম মোডের সময় প্রবেশ করে। aRegInput হল A রেজিস্টারে থাকা ডেটা, এটি একটি মুভ অপারেশনের সময় ব্যবহৃত হয়। নিয়ন্ত্রণ এই MUX এর জন্য নির্বাচন।
  • আউটপুটের বিবরণ: আউটপুট হল RAM- এ 10-বিট ডেটা ইনপুট।
  • সিস্টেমে সামগ্রিক স্থান: এই MUX 10-বিট ইনপুট ডেটা আউটপুট করে যা RAM মডিউলে ব্যবহৃত হয়। যখন কন্ট্রোল বিট বেশি হয়, তখন MUX ব্যবহারকারী প্রোগ্রাম মোডে প্রবেশ করা ডেটা আউটপুট করে। যখন কন্ট্রোল বিট কম থাকে, তখন MUX কন্ট্রোল বাসে ডেটা আউটপুট করে।

র‍্যাম মডিউল

  • ইনপুটের বিবরণ: ইনপুট ডেটা হল র‍্যামে সংরক্ষিত ডেটা। ইনপুট অ্যাড্রেস হল সেই অবস্থান যেখানে ডেটা সংরক্ষণ করা হচ্ছে। প্রোগ্রাম নির্দেশ করে যে কম্পিউটার প্রোগ্রাম বা রান মোডে আছে। readWrite ইঙ্গিত দেয় যে একটি পড়া বা লেখার অপারেশন হচ্ছে কিনা। notCE হল RAM মডিউলের জন্য কন্ট্রোল বিট। সরানো নির্দেশ করে যে একটি মুভ অপারেশন করা হচ্ছে।
  • আউটপুটের বিবরণ: আউটপুট ডেটাওবাস হল সেই ডেটা যা র RAM্যাম থেকে বাসে যায়। আউটপুট ডেটা এবং আউটপুট অ্যাড্রেস হল ডাটা এবং ঠিকানা যা নির্দেশনা রেজিস্টারে যায়।
  • সিস্টেমে সামগ্রিক স্থান: RAM একটি প্রোগ্রাম চালানোর আগে মেমরিতে প্রোগ্রাম এবং ডেটা স্টোরেজের অনুমতি দেয়। একবার প্রোগ্রামটি চলার পরে, র the্যাম MAR থেকে একটি ঠিকানা গ্রহণ করে এবং বাসের সেই ঠিকানায় ডেটা আউটপুট করে।

ঠিকানা রম

  • ইনপুটগুলির বিবরণ: অপকোড হল কম্পিউটার দ্বারা সম্পাদিত অপকোডের ঠিকানা সম্বলিত ইনপুট
  • আউটপুটের বর্ণনা: opCodeStart হল মেমরির ঠিকানা যা সংশ্লিষ্ট opCode- এর প্রথম মাইক্রো-ইন্সট্রাকশন লোকেশন নির্দেশ করে।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি ল্যাচড মাইক্রো-ইন্সট্রাকশন নেয় এবং সেই মাইক্রো-ইন্সট্রাকশন সিকোয়েন্সের শুরুতে মেমরি লোকেশন আউটপুট করে।

রিং কাউন্টার

  • ইনপুটগুলির বিবরণ: রিসেট কাউন্টারে 100000 (প্রথম "টি রাজ্য") সেট করে। Clk একটি পতনশীল ঘড়ির কিনারায় কাউন্টার বৃদ্ধি করে। NOP নির্দেশ করে যে বর্তমান অবস্থা/চক্র একটি "অপারেশন নয়" চক্র।
  • আউটপুটের বর্ণনা: কাউন্ট হল কাউন্টারের আউটপুট।
  • সিস্টেমে সামগ্রিক স্থান: রিং কাউন্টারটি পূর্বনির্ধারিত কাউন্টার নিয়ন্ত্রণ করে এবং প্রতিটি নির্দেশ চক্রের ছয়টি মাইক্রো-স্টেপ (T1-T6) বর্ণনা করে।

প্রি কাউন্টার

  • ইনপুটগুলির বিবরণ: opCodeStart হল অপকোড চালানোর জন্য মাইক্রো-নির্দেশাবলীর মেমরি অবস্থান। T1 কাউন্টারটি 0 এ রিসেট করে যখন এটি উচ্চ হয়। যখন T3 বেশি হয়, opCodeStart লোড হয় এবং বাকি 3 চক্র (T4-T6) এর জন্য সেই অবস্থান থেকে গণনা অব্যাহত থাকে। Clr একটি কাউন্টার সেট করে 0.
  • আউটপুটের বর্ণনা: controlWordLocation কন্ট্রোল ওয়ার্ডের মেমরি লোকেশন এক্সিকিউট করতে হবে।
  • সিস্টেমে সামগ্রিক স্থান: প্রতিটি অপ-কোডে 3 টি মাইক্রো-নির্দেশ রয়েছে। প্রথম 3 চক্রের জন্য 0 থেকে শুরু করে কাউন্টার বৃদ্ধি 1 (চক্র আনা)। কাউন্টারটি তখন রিং কাউন্টার দ্বারা ট্রিগার করা হয় যাতে অপকোড স্টার্টে ঠিকানা লোড হয় এবং অবশিষ্ট 3 চক্রের জন্য 1 দ্বারা বৃদ্ধি পায়। এইভাবে প্রি-কাউন্টার মাইক্রো-নির্দেশনার ক্রম নিয়ন্ত্রণ করে।

নিয়ন্ত্রণ রম

  • ইনপুটগুলির বিবরণ: controlWordLocation হচ্ছে controlWord এর ঠিকানা যা controlROM আউটপুট করবে। NOP নির্দেশ করে যে অবস্থানটি একটি "অপারেশন নয়" অবস্থান।
  • আউটপুটগুলির বিবরণ: কন্ট্রোলওয়ার্ড হল একটি নিয়ন্ত্রণ শব্দ যা বিভিন্ন কম্পিউটার মডিউলকে একটি কাঙ্ক্ষিত অপারেশন করতে সক্ষম/নিষ্ক্রিয় করে।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি প্রি -কাউন্টার থেকে মেমরির অবস্থান ডিকোড করে এবং পছন্দসই ক্রিয়াকলাপের জন্য কন্ট্রোলওয়ার্ড আউটপুট করে।

আলু

  • ইনপুটের বর্ণনা: A এবং B হল রেজিস্টার A এবং রেজিস্টার B এর ইনপুট যা ALU গাণিতিক এবং লজিক অপারেশন করে। যখন বিয়োগ সক্রিয় হয়, এটি নির্দেশ করে যে B কে A থেকে বিয়োগ করা হচ্ছে।
  • আউটপুটগুলির বিবরণ: ফলাফল হল A এবং B যোগ করা, অথবা A থেকে B বিয়োগ করলে আউটপুট বৃহত্তর, কম, এবং সমান নির্দেশ করে যদি (AB, বা A = B) এবং শর্তাধীন জাম্প মডিউলে ব্যবহৃত হয়। ত্রুটি সক্রিয় হলে একটি ওভারফ্লো বা আন্ডারফ্লো নির্দেশ করে।
  • সিস্টেমে সামগ্রিক স্থান: এএলইউতে কম্পিউটার দ্বারা পরিচালিত গাণিতিক এবং লজিক ক্রিয়াকলাপের যুক্তি রয়েছে। এই মডিউল দুটি 10-বিট বাইনারি সংখ্যা যোগ এবং বিয়োগ করতে পারে। ALU A> B, A কিনা তাও নির্ধারণ করতে পারে

শর্তাধীন জেএমপি

  • ইনপুট এর Descriptoin: inputCount বর্তমান গণনা ল্যাচ ব্যবহার করা হয়। ইনপুট অ্যাড্রেস অ্যাড্রেস ল্যাচ করার জন্য ব্যবহার করা হয় যেখানে ঝাঁপ দেওয়া হবে। loadFromRegister যখন কম latches inputAddress। loadCount যখন কম latches inputCount। যখন আউটপুটএনেবল কম থাকে তখন আউটপুট ঠিকানায় সেট করা হয় to.gT, iT, এবং eQ ঠিক করার জন্য কোন অবস্থা পরীক্ষা করা হচ্ছে তা নির্ধারণ করুন। বৃহত্তর, কম, এবং সমান এএলইউ থেকে ইনপুটগুলি এ এবং বি এর মধ্যে তুলনার ফলাফল নির্দেশ করে।
  • আউটপুটের বিবরণ: আউটপুটজেএমপি হল সেই ঠিকানা যেখানে প্রোগ্রাম কাউন্টার পড়বে।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি কম্পিউটারের জন্য শর্তাধীন এবং শর্তহীন জাম্প পরিচালনা করে। ইনপুট gT, iT, এবং eQ এর উপর ভিত্তি করে, মডিউল নির্ধারণ করে কোন শর্তটি পরীক্ষা করতে হবে এবং সেই শর্তটি সত্য নাকি মিথ্যা। যদি শর্তটি সত্য হয়, এটি নির্দেশের ঠিকানাটি লাফ দেওয়ার জন্য আউটপুট দেবে, অন্যথায়, এটি পরবর্তী নির্দেশের গণনা আউটপুট করবে।

binToBCD

  • ইনপুটগুলির বিবরণ: বাইনারি কোডেড ডেসিমালে রূপান্তর করতে 10 বিট সংখ্যাটি নম্বর করুন।
  • আউটপুটগুলির বিবরণ: বাইনারি সংখ্যার শত স্থানে শত শত অঙ্ক। বাইনারি সংখ্যার দশম স্থানে দশম সংখ্যা। বাইনারি সংখ্যার জায়গায় এক সংখ্যা।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি আমাদের চার অঙ্কের ডিসপ্লে ড্রাইভারকে 7 সেগমেন্ট ডিসপ্লেতে দশমিকের মধ্যে সংখ্যাটি প্রদর্শন করার জন্য আউটপুট রেজিস্টার থেকে 10 বিট সংখ্যাকে BCD তে রূপান্তর করে।

চার ডিজিট ড্রাইভার

  • ইনপুটগুলির বিবরণ: সংখ্যা হল 16 বিট বাইনারি ইনপুট যা ডিকোডারে চালিত হয়। inClk হল বেসিস বোর্ডের অভ্যন্তরীণ ঘড়ি এবং এটি একটি ঘড়ি বিভাজকের জন্য ব্যবহৃত হয়। RST অঙ্ক চালানোর জন্য ব্যবহৃত ঘড়িটি পুনরায় সেট করে।
  • আউটপুটের বর্ণনা: কোন অঙ্কের স্থান আলোকিত হবে তা অ্যানোড নির্ধারণ করে। ডিজিট হল ডিকোডারের ইনপুট সংখ্যা।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউল ডিসকোডারকে ডিসপ্লেতে BCD নম্বর আউটপুট করতে চালিত করে।

ডিকোডার

  • ইনপুটের বর্ণনা: ইনপুট নাম্বার হল সেই অঙ্ক যা ড্রাইভার থেকে আসে এবং যা ডিকোড করা হবে।
  • আউটপুটগুলির বিবরণ: ক্যাথোডগুলি নির্ধারণ করে যে কাঙ্খিত অঙ্কটি প্রদর্শন করতে কোন ক্যাথোডগুলি চালু করা হবে।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি 7 সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হওয়া ডিজিটকে ডিকোড করে।

চার ডিজিটাল ডিসপ্লে

  • ইনপুটগুলির বিবরণ: সংখ্যা হল 7 সেগমেন্ট ডিসপ্লেতে প্রদর্শিত সংখ্যা। ত্রুটি নির্দেশ করে যে প্রদর্শনটি কখন "Err" পড়তে হবে। ক্লক হল ঘড়ির সংকেত যা ডিসপ্লে চলছে। এই সংকেতটি 60 Hz এর কাছাকাছি হতে হবে যাতে ডিসপ্লে একসাথে 4 ডিজিটের সব জায়গা দেখাতে পারে।
  • আউটপুটের বিবরণ: কোন অঙ্কের স্থানটি সক্রিয় করা হয় তা অ্যানোড নির্ধারণ করে। ক্যাথোড নির্ধারণ করে যে কোন ক্যাথোডগুলি কাঙ্ক্ষিত অঙ্ক প্রদর্শন করতে সক্রিয় হয়।
  • সিস্টেমে সামগ্রিক স্থান: এই মডিউলটি 7 সেগমেন্ট ডিসপ্লেতে একটি সংখ্যা প্রদর্শন করে। ডিসপ্লে ব্যবহার করার জন্য ক্যাথোড এবং অ্যানোড সক্রিয় করার জন্য তথ্যের জন্য বেসিস 3 বোর্ড নির্দেশিকা ম্যানুয়ালটি পড়ুন। যখন ত্রুটি বিট উচ্চ হয়, প্রদর্শন "Err" দেখায়।

আউটপুট MUX

  • ইনপুটগুলির বর্ণনা: progModeInput নির্ধারণ করে যে প্রোগ্রামিং মোডের সময় কোন নেতৃত্ব চালু আছে। রান মোড ইনপুট নির্ধারণ করে যে রান মোডের সময় কোন নেতৃত্ব চালু আছে। modeSelect হল MUX এর জন্য সিলেক্ট বা কন্ট্রোল বিট।
  • আউটপুটের বিবরণ: ledOutput নির্দেশ করে যে কোন নেতৃত্ব চালু করা হবে।
  • সিস্টেমের সামগ্রিক স্থান: কম্পিউটার যে মোডে (প্রোগ্রাম বা রম) আছে তার উপর নির্ভর করে, MUX বিভিন্ন নেতৃত্ব চালু করবে। প্রোগ্রাম মোডে (modeSelect হল '0'), MUX কম্পিউটারে থাকা মেমরি লোকেশন এবং এটিতে যা আছে তার অনুরূপ করার জন্য LED গুলি চালু করে। রান মোডে (modeSelect হল '1'), MUX ডিবাগ করার জন্য ব্যবহার করা হয় কিন্তু অন্য কিছু প্রদর্শন করার জন্য সেট করা যেতে পারে।

ক্লক ডিভাইডার

  • ইনপুটের বর্ণনা: স্টপটি একটি হোল্ট কমান্ড ('11111') সনাক্ত করতে বাস থেকে পাঁচটি এমএসবি বিট পড়ে এবং ঘড়িটি থামায়। ইনপুটক্লক হল বেসিস 3 বোর্ডের অভ্যন্তরীণ ঘড়ি সংকেত।
  • আউটপুটের বিবরণ: ouputClk হল নতুন ঘড়ি যা ধীর হয়ে গেছে।
  • সিস্টেমে সামগ্রিক স্থান: এই ঘড়িটি কম্পিউটারকে ধীর করার জন্য ব্যবহার করা হয় যাতে ব্যবহারকারীর জন্য কি ঘটছে তা নির্ধারণ করা সম্ভব হয়। ঘড়িটি অনেক দ্রুত চলতে পারে, তবে এটি বর্তমানে 2 Hz এ সেট করা আছে।

triStateBuffer

  • ইনপুটের বর্ণনা: দিন হল 5 বিট ইনপুট বাফারে যাচ্ছে। Ep হল কন্ট্রোল বিট।
  • আউটপুটের বর্ণনা: ডাউট বাফারের 5 বিট আউটপুট
  • সিস্টেমে সামগ্রিক স্থান: যখন কন্ট্রোল বিট Ep সক্রিয় থাকে, বাফার ইনপুট আউটপুট করে। যখন নিয়ন্ত্রণ বিট সক্রিয় হয় না, বাফার কিছু আউটপুট করে না।

tenBitDRegister

  • ইনপুটগুলির বিবরণ: Dbus হল সেই ইনপুট যা রেজিস্টারে করা হয়। Clk রেজিস্টারকে ক্রমবর্ধমান ঘড়ির কিনারায় তথ্য পড়তে দেয়। ARST 0 অসিঙ্ক্রোনাসিতে রেজিস্টার সেট করে। আউটপুটএনেবল কম হলে রেজিস্টারের বিষয়বস্তু আউটপুট। যখন ReadIn কম থাকে, তখন রেজিস্টার ক্রমবর্ধমান ঘড়ির কিনারায় Dbus কে আটকে দেয়।
  • আউটপুটের বিবরণ: Qbus হল রেজিস্টারের আউটপুট
  • সিস্টেমে সামগ্রিক স্থান: রেজিস্টারটি কম্পিউটার জুড়ে একাধিকবার ব্যবহৃত হয় এবং অপারেশন করার সময় তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়।

পাঁচ বিটডিআরজিস্টার

  • ইনপুটগুলির বিবরণ: Dbus হল সেই ইনপুট যা রেজিস্টারে করা হয়। Clk একটি ক্রমবর্ধমান ঘড়ির কিনারায় রেজিস্টারে তথ্য পড়তে দেয়। ARST 0 অসিঙ্ক্রোনাসিতে রেজিস্টার সেট করে। আউটপুটএনেবল কম হলে রেজিস্টারের বিষয়বস্তু আউটপুট। যখন ReadIn কম থাকে, তখন রেজিস্টার ক্রমবর্ধমান ঘড়ির কিনারায় Dbus কে আটকে দেয়।
  • আউটপুটের বিবরণ: Qbus হল রেজিস্টারের আউটপুট।
  • সিস্টেমে সামগ্রিক স্থান: রেজিস্টারটি কম্পিউটার জুড়ে একাধিকবার ব্যবহৃত হয় এবং অপারেশন করার সময় তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়।

ধাপ 3: কোড

নীচে 10-বিট কম্পিউটারের সীমাবদ্ধতা এবং উত্স ফাইল ধারণকারী একটি ফোল্ডার রয়েছে।

ধাপ 4: ডেমো এবং নমুনা কোড

উপরের ভিডিওটি দেখায় কিভাবে বেসিস 3 এফপিজিএ বোর্ডে 10-বিট কম্পিউটার প্রোগ্রাম করা যায়। অপ-কোড এবং একটি নমুনা প্রোগ্রাম সহ একটি পিডিএফ নীচে সংযুক্ত করা হয়েছে।

প্রস্তাবিত: