হার্ডওয়্যারে স্বাক্ষরবিহীন পূর্ণসংখ্যার সর্বোচ্চটি কীভাবে প্রয়োগ করা হয়?


10

আমি এমন একটি নকশায় কাজ করছি যাতে প্রচুর পরিমাণে ফাংশন জড়িত থাকে (এবং সর্বোচ্চ সর্বাধিক ক্রিয়াকলাপের পক্ষে আর্গুমেন্ট হিসাবে সর্বোচ্চ ফাংশন)।

হার্ডওয়্যার ডিজাইনকে সরল করার প্রয়াসে আমি ভাবছিলাম যে হার্ডওয়্যারে কীভাবে সর্বোচ্চ প্রয়োগ করা হয়?

গাণিতিকভাবে, সর্বোচ্চ (ক, খ) কে [(a + b) + অ্যাবস (বি - এ)] / 2 হিসাবে উপস্থাপন করা যেতে পারে।

এটি কি এটি হার্ডওয়ারে প্রয়োগ করা হয়? (অর্থাত্ পর্যায়ে; সংযোজন, বিট শিফট বিভাগ ইত্যাদি)

যদি তা হয় তবে পার্থক্যের নিখুঁত গণনা কীভাবে করা হয়?

উত্তর:


10

একটি খুব সহজ পদ্ধতির বাস্তবায়ন হবে (a> খ)? ক: খ। a> b বাম দিকে শুরু করে এবং প্রতিটি বিট জোড় (ক, খ) যাচাই করে প্রয়োগ করা যেতে পারে:

  • উভয় 0 বা উভয় 1: পরবর্তী নিম্ন জোড়াতে চালিয়ে যান
  • a হল 1: a সর্বোচ্চ; বি 1: বি সর্বোচ্চ হয়

যখন আপনি জানেন যে কোনটি সর্বোচ্চ, আপনি এটি 2N-> N mux দ্বারা নির্বাচন করতে পারেন।

কিছু চালাক চালচলনের সাথে বিট জোড়গুলির চেকিং একই বিট জোড়ার জন্য ম্যাক্সারের সাথে সংযুক্ত করা যেতে পারে।


2

প্রশ্নের আলগোরিদিমটি দেখে নেওয়া যাক:

[(a + b) + abs(b - a)]/2

এটিতে একটি সংযোজন এবং বিয়োগের স্তর রয়েছে যা পরে দ্বিতীয় পর্যায়ে সংযোজন করা হয়। 2 দ্বারা বিভাজনটি হার্ডওয়ারে তুচ্ছ, এটি এলএসবি অপসারণের মাধ্যমে করা যেতে পারে। তবে দ্বি-পর্যায়ে পূর্ণ-সংযোজনকারী / বিয়োগকারকটি বেশ ধীর এবং গেট-নিবিড়, বিশেষত যদি আপনি আপনার মতো একাধিক ক্যাপারিসন ক্যাসকেড করছেন।

ওয়াউটার ভ্যান ওওইজেনের উত্তরটি বন্ধ করে দেওয়ার জন্য, সাধারণ কাঠামোটি ডিজিটাল তুলনাকারী যা কোনও শব্দের নির্বাচিত সিগন্যালকে খাওয়ায়:

পরিকল্পিত

এই সার্কিটটি অনুকরণ করুন - সার্কিটল্যাব ব্যবহার করে স্কিম্যাটিক তৈরি করা হয়েছে

উপরোক্ত পরিকল্পনার জন্য:

(A > B) ? A : B

তবে লক্ষ্য করুন যে তুলনামূলক আউটপুট এবং ম্যাক্স সিলেক্টের মধ্যে বিভিন্ন যৌক্তিক সংযোগ স্থাপনের মাধ্যমে দুটি ইনপুটগুলির মধ্যে যে কোনও তুলনা করার জন্য এটি সহজেই পুনর্গঠন করা যায়।

সুতরাং আমরা যদি তুলনামূলক থেকে তিনটি আউটপুট প্রণয়ন করতে জানি তবে আমরা হার্ডওয়্যারে যে কোনও তুলনা প্রয়োগ করতে পারি। তুলনাকারী যুক্তি এখানে ভালভাবে বর্ণনা করা হয়েছে । হার্ডওয়্যারটি অপ্টিমাইজ করতে, আমরা কেবল অব্যবহৃত তুলনামূলক আউটপুটগুলি চালনা করে যুক্তিটি সরিয়ে ফেলব।

তবে শেষ পর্যন্ত যদি এটি হার্ডওয়ারে চলে যায় তবে এটি সংশ্লেষণের মধ্য দিয়ে যেতে হবে। সুতরাং কোন গেট-স্তরের স্কিমটি সর্বোত্তম তা অবহেলা করা উচিত নয়। পরিবর্তে, আপনার কোড এবং অ্যালগরিদমগুলি অনুকূলিত করুন যাতে আপনি কমপক্ষে সিন্থেসাইজারকে একটি অকার্যকর ফলাফল তৈরি করতে বাধ্য করছেন না। "কিছু চালাক চালচলনের সাথে বিট জোড়গুলির চেকিং একই বিট পেয়ারের জন্য ম্যাক্সারের সাথে সংযুক্ত করা যায়," এবং এই অপ্টিমাইজেশন সম্পাদনের সহজতম উপায় সংশ্লেষণের সাথে।


1

আপনি যদি সর্বাধিক গণনা করার জন্য যদি সত্যিই একটি বিশেষায়িত সার্কিট তৈরি করতে চান তবে নীচের সমীকরণগুলির সাথে আপনি একটি বেসিক ব্লক দিয়ে শুরু করতে পারেন:

আমি,তোমার দর্শন লগ করাটিআমি,আমিএন¬(একটিআমিআমি)এলআমি,তোমার দর্শন লগ করাটি(¬আমি,আমিএনএলআমি,আমিএন)(আমি,আমিএনএকটিআমি¬আমি)Rআমি(¬আমি,আমিএন((এলআমি,আমিএনএকটিআমি)(¬এলআমি,আমিএনআমি)))(আমি,আমিএন(একটিআমিআমি))

এবং তারপরে পরের একটিকে সবচেয়ে গুরুত্বপূর্ণ অঙ্কের সাথে সংযুক্ত করুন। সমালোচনামূলক অংশটি এমএসবি থেকে এলএসবিতে যায় যখন বিয়োগের উপর ভিত্তি করে সার্কিটটি একটি সমালোচনামূলক পথটি এলএসবি থেকে এমএসবি এবং তারপরে এলএসবিতে ফিরে যেতে পারে।

এটি একটি ক্যারি-রিপল অ্যাডারের সমতুল্য। আপনি যদি আগ্রহী হন তবে ক্যারি-সেভ বা ক্যারি-সিলেক্ট সংযোজকদের সমতুল্য তৈরি করতে পারেন।

এল¬একটি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.