بسم الله الرحمن الرحيم
Shift Circuit Design
اهمية عمليات ال Shift:
ال Micro Processor بيكون فيه عدة اجزاء منها جزء ال Arithmetic Logic Unit او باختصار ALU وده اللى بيعمل بعض العمليات الحسابية زى الجمع والطرح والضرب... دول ال Arithmetic
ال Logic زى ال AND و ال OR وال NOT... بالاضافة لل Shift Left وال Shift Right وال Rotate Left وال Rotate Right
لو عندى رقم بال Binary فلنفرض رقم "8" هيكون بال Binary عبارة عن "1000" وعاوز اقسمه على "2" اللى الناتج هيكون "4" يعنى "0100" بال Binary لو قارنت ال "8" بال "4" بالBinary هالاقى ان كأنى عملت shift لكل الارقام من الشمال لليمين ب Bit واحده, طيب لو عاوز اقسم ال "4" على "2" هاعمل Shift للارقام تانى ب Bit واحده, فانا كده ممكن استخدم ال Shift فى عملية القسمة, طبعا اقدر اعمل العكس واعمل Shift من اليمين للشمال وهابقى كأنى ضربت فى "2", وطبعا احنا عارفين ان عمليه الضرب والقسمة من اكتر العمليات اللى بتحتاج Hardware لكن بالطريقة دى اقدر استخدمها فى بعض الحالات بدون مشاكل.
شرح ال Shift Left:
احنا بالفعل شرحناه فوق لكن باختصار هو عبارة عن انى باعتبر ان عندى "0" عاوز احشرة فالرقم اللى عاوز اعمله Shift بحيث انى ادفع باقى الارقام انها تتحرك ناحية الشمال وتخرّج اخر رقم فى الشمال مثلا هاعمل SHL لل "1001":
"0" > "1001" = "0010".
شرح ال Shift Right:
نفس اللى عملته فى حالة ال Shift Left لكن هاضيف ال "0" من ناحية الشمال بحيث انى ادفع الارقام ناحية اليمين واخرج اقصى رقم على اليمين مثلا لو هاعمل SHR لل "1001":
"1001" < "0" = "0100".
شرح ال Rotate Left:
هو زى فكرة ال Shift Left لكن بدل ما بادخل "0" من ناحية اليمين باخد اخر رقم فى اقصى اليسار والففه اخليه اقصى اليمين مع ازاحة باقى الارقام لليسار مثلا لو هاعمل ROL اا "1001":
"1001" هاخد اخر رقم على الشمال اخليه اول رقم على اليمين واعمل ازاحه لباقى الارقام فالناتج هيكون:
"0011".
شرح ال Rotate Right:
عكس ال Rotate Left حيث باخد الرقم اللى فى اقصى اليمين وانقله لاقصى اليسار وازاحة كل الارقام من اليسار لليمين ب Bit واحده فمثلا لو هاعمل ROR ل "1001":
"1001"
"1100"
الدائرة لعمل ال Shift وال Rotate على Proteus:
اسهل دائرة لعمل ال Shift وال Rotate هو باستخدام Multiplexers او باختصار MUX, بيكون عدد ال MUXs على عدد ال Bits اللى هاعمل عليها ال Operations بتاعتى فلو مثلا باعمل على Four-Bits هاستخدم Four-MUXs, ومقاس ال MUX نفسه على حسب عاوز اعمل فيه كام Operation, فو هاعمل ال SHL و SHR و ROL و ROR فانا هاحتاج 4:1 MUX ... وهكذا.
هافرض ان الرقم ال Input اللى جايلى هيكون Four-Bits وعلى الشكل ده: X3 X2 X1 X0 فشكل ال Circuit هيكون:
فيديو لشرح و توضيح بصورة ادق لطريقة عمل الدائرة:
M.A MIX

ليست هناك تعليقات:
إرسال تعليق