۰
subtitle
ارسال: #۱
  
تاخیر BCD Adder
سلام
تاخیر جمع کننده چطور حساب میشه؟
تاخیر جمع کننده چطور حساب میشه؟
۲
ارسال: #۲
  
تاخیر BCD Adder
سلام.
برای حل این سوال باید نکته های ریزی رو بدونیم.
از جمله اینکه، تاخیر جمع کننده بعدی یا i+1 ، برابر هست با تاخیر زمانی که carry از جمع کننده قبلی ش خارج میشه و به جمع کننده بعدی وارد میشه. نکته دیگه این هست که برای دو رقم ابتدای یک عدد نیازی به تاخیر نیست(منظورم اولین carry که به اولین جمع کننده BCD وارد می شه). نکته دیگه اینه که در این سوال محاسبه تاخیر کل زمان جمع کردن لازم هست، و باید تاخیر تمام جمع کننده ها رو بدست بیاریم.
-------------------------------------------
مثلا بخوایم جمع دو عدد زیر رو انجام بدیم.
x = 5362147526
y = 3562177153
برای x1 و y1 نیاز به یک جمع کننده BCD هست.
برای x2 و y2 نیاز به یک جمع کننده BCD هست.
...
...
برای x10 و y10 نیاز به یک جمع کننده BCD هست.
---------------------------------------------
نکته اول: تاخیر جمع هر BCD برابر هست با ۱۶t یعنی اگه دو عدد x1وy1 رو بخوایم با هم جمع کنیم که S1 بدست بیاد تاخیرش برابر هست با ۱۶ زمان. چرا ؟ چون ۱۶ خط کنترولی به جمع کننده ها وصل هست، ۸تا به جمع کننده بالایی و ۸تا به جمع کننده پایینی(برای کنترل اینکه جمع از ۹ فراتر نره).
---------------------------------------------
دقت: به x1,y1 کاری نداریم چون هیچ محاسبه caryy برای اونا وجود نداره، میمونه ۹ عدد دیگه که برای هر کدوم از اونا برای زمانی که caryy می خواد خارج بشه باید ۱۰ns زمان سپری بشه. (دقت کن شکل جمع کننده BCD از and و or استفاده می کنه) تاخیر andها بصورت موازی حساب میشه، یعنی تاخیر اونا ۱۰ میشه و نه ۲۰/ در هر صورت وقتی caryy از یک طبقه خارج میشه به ۱۰ns نیاز داره که این caryy رو به طبقه بعدی بفرسته.
--------------------------------------------
پس برای فرستادن caryy تا طبقه اخر، نیاز به ۹ * ۱۰ زمان هست (۹، بخاطر اینکه از عدد ۱۰ رقمی تاخیر caryy اول رو حساب نمی کنیم چون بدون عبور از گیت یا گیتهایی به x1,y1 وارد می شه. ۱۰ بخاطر اینکه برای فرستادن caryy از یک طبقه به یک طبقه دیگه نیاز به ۱۰ns هست). خب تا به اینجا فقط تاخیر caryy رو محاسبه کردیم که میشه ۹۰ .
تاخیر جمع ها یا s0 , s1, s2, ...., s10 هم که ۱۶ هست(با توجه به نکته اول). در نتیجه تاخیر برای "یک" جمع کننده برابر هست با زمان تاخیر جمع به اضافه زمان تاخیر فرستادن caryy به طبقه بعد. که برابر هست با ۹۰+۱۶ میشه ۱۰۶/
حالا اگه برای ۱۰ طبقه این کار رو انجام بدیم باید ۱۰ رو در ۱۰۶ ضرب کنیم که برابر هست با ۱۰۶۰/ گزینه ۲ جواب هست.
موفق باشید.
برای حل این سوال باید نکته های ریزی رو بدونیم.
از جمله اینکه، تاخیر جمع کننده بعدی یا i+1 ، برابر هست با تاخیر زمانی که carry از جمع کننده قبلی ش خارج میشه و به جمع کننده بعدی وارد میشه. نکته دیگه این هست که برای دو رقم ابتدای یک عدد نیازی به تاخیر نیست(منظورم اولین carry که به اولین جمع کننده BCD وارد می شه). نکته دیگه اینه که در این سوال محاسبه تاخیر کل زمان جمع کردن لازم هست، و باید تاخیر تمام جمع کننده ها رو بدست بیاریم.
-------------------------------------------
مثلا بخوایم جمع دو عدد زیر رو انجام بدیم.
x = 5362147526
y = 3562177153
برای x1 و y1 نیاز به یک جمع کننده BCD هست.
برای x2 و y2 نیاز به یک جمع کننده BCD هست.
...
...
برای x10 و y10 نیاز به یک جمع کننده BCD هست.
---------------------------------------------
نکته اول: تاخیر جمع هر BCD برابر هست با ۱۶t یعنی اگه دو عدد x1وy1 رو بخوایم با هم جمع کنیم که S1 بدست بیاد تاخیرش برابر هست با ۱۶ زمان. چرا ؟ چون ۱۶ خط کنترولی به جمع کننده ها وصل هست، ۸تا به جمع کننده بالایی و ۸تا به جمع کننده پایینی(برای کنترل اینکه جمع از ۹ فراتر نره).
---------------------------------------------
دقت: به x1,y1 کاری نداریم چون هیچ محاسبه caryy برای اونا وجود نداره، میمونه ۹ عدد دیگه که برای هر کدوم از اونا برای زمانی که caryy می خواد خارج بشه باید ۱۰ns زمان سپری بشه. (دقت کن شکل جمع کننده BCD از and و or استفاده می کنه) تاخیر andها بصورت موازی حساب میشه، یعنی تاخیر اونا ۱۰ میشه و نه ۲۰/ در هر صورت وقتی caryy از یک طبقه خارج میشه به ۱۰ns نیاز داره که این caryy رو به طبقه بعدی بفرسته.
--------------------------------------------
پس برای فرستادن caryy تا طبقه اخر، نیاز به ۹ * ۱۰ زمان هست (۹، بخاطر اینکه از عدد ۱۰ رقمی تاخیر caryy اول رو حساب نمی کنیم چون بدون عبور از گیت یا گیتهایی به x1,y1 وارد می شه. ۱۰ بخاطر اینکه برای فرستادن caryy از یک طبقه به یک طبقه دیگه نیاز به ۱۰ns هست). خب تا به اینجا فقط تاخیر caryy رو محاسبه کردیم که میشه ۹۰ .
تاخیر جمع ها یا s0 , s1, s2, ...., s10 هم که ۱۶ هست(با توجه به نکته اول). در نتیجه تاخیر برای "یک" جمع کننده برابر هست با زمان تاخیر جمع به اضافه زمان تاخیر فرستادن caryy به طبقه بعد. که برابر هست با ۹۰+۱۶ میشه ۱۰۶/
حالا اگه برای ۱۰ طبقه این کار رو انجام بدیم باید ۱۰ رو در ۱۰۶ ضرب کنیم که برابر هست با ۱۰۶۰/ گزینه ۲ جواب هست.
موفق باشید.
ارسال: #۴
  
RE: تاخیر BCD Adder
(۲۸ آذر ۱۳۹۱ ۰۱:۲۳ ب.ظ)azad_ahmadi نوشته شده توسط: ---------------------------------------------
نکته اول: تاخیر جمع هر BCD برابر هست با ۱۶t یعنی اگه دو عدد x1وy1 رو بخوایم با هم جمع کنیم که S1 بدست بیاد تاخیرش برابر هست با ۱۶ زمان. چرا ؟ چون ۱۶ خط کنترولی به جمع کننده ها وصل هست، ۸تا به جمع کننده بالایی و ۸تا به جمع کننده پایینی(برای کنترل اینکه جمع از ۹ فراتر نره).
---------------------------------------------
سلام
تو جمع کننده پایین که برای تصحیح خطا استفاده میشه، ۸ ورودی داره که یک ورودی که عدد ۶ میتونه باشه باید به اندازه تاخیر Carry جمع کننده بالا بعلاوه gate or صبر کنه تا آماده بشه، خود جمع کننده پایین هم ۸T تاخیر داره، تاخیر carry هم که ۱۰T هست میشه ۱۸T؟
۱
ارسال: #۵
  
تاخیر BCD Adder
این تست ارشد ۸۳ هست که توی فصل اول کتاب پوران پژوهش حل شده.اما نه به این خوبی که azad_ahmadi توضیح دادن.
==
توی خود کتاب پوران هم درس داده شده.
سه روش برای جمع دو عدد چندرقمی دهدهی(یعنی هر رقم از ۰ تا ۹ است و نمی تواند شامل A تا F باشد.) رو معمولا بکار می برند :
۱)روش رقم سری_بیت موازی
۲)روش جمع کننده ی کاملا سری(seial)
۳)روش موازی
==
توی این مثال از روش موازی استفاده کرده .
روش موازی : در این روش برای جمع دو عدد n رقمی دهدهی ، به n جمع کننده BCD نیاز داریم.
تاخیر این جمع کننده از فرمول زیر استفاده می کنیم:
۱۰n+6 ضربدر time
------------------------------------
n تعداد ارقام دو عددی هست که میخوایم در هم ضرب کنیم.چون گفته دو عدد ۱۰ رقمی پس n میشه ۱۰
time هم تاخیر گیت هست که گفته ۱۰ نانو ثانیه
پس :
[tex](10*10 6)=106\Rightarrow 106*10_{nanoSeconds}=1060_{nanoSeconds}[/tex]
---------------------------------
ضمنا اگه توی سوال اضافه کنه چند حالت مجاز داریم باید اینطوری ج داد ادامشو :
ما کلا ۱برای هر عدد ۱۱ رقم داریم که ۱۰ رقم خود عدد هست و ۱ رقم میشه carry input
دقت کنید هر رقم میتونه شامل ارقام ۰ تا ۹ باشه یعنی ۱۰ حالت و رقم نقلی هم میتونه شامل دو حالت باشه : یا صفر یا ۱
پس کل حالات مجاز میشه ۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۲=۲۰ میلیارد حالت مجاز
==
توی خود کتاب پوران هم درس داده شده.
سه روش برای جمع دو عدد چندرقمی دهدهی(یعنی هر رقم از ۰ تا ۹ است و نمی تواند شامل A تا F باشد.) رو معمولا بکار می برند :
۱)روش رقم سری_بیت موازی
۲)روش جمع کننده ی کاملا سری(seial)
۳)روش موازی
==
توی این مثال از روش موازی استفاده کرده .
روش موازی : در این روش برای جمع دو عدد n رقمی دهدهی ، به n جمع کننده BCD نیاز داریم.
تاخیر این جمع کننده از فرمول زیر استفاده می کنیم:
۱۰n+6 ضربدر time
------------------------------------
n تعداد ارقام دو عددی هست که میخوایم در هم ضرب کنیم.چون گفته دو عدد ۱۰ رقمی پس n میشه ۱۰
time هم تاخیر گیت هست که گفته ۱۰ نانو ثانیه
پس :
[tex](10*10 6)=106\Rightarrow 106*10_{nanoSeconds}=1060_{nanoSeconds}[/tex]
---------------------------------
ضمنا اگه توی سوال اضافه کنه چند حالت مجاز داریم باید اینطوری ج داد ادامشو :
ما کلا ۱برای هر عدد ۱۱ رقم داریم که ۱۰ رقم خود عدد هست و ۱ رقم میشه carry input
دقت کنید هر رقم میتونه شامل ارقام ۰ تا ۹ باشه یعنی ۱۰ حالت و رقم نقلی هم میتونه شامل دو حالت باشه : یا صفر یا ۱
پس کل حالات مجاز میشه ۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۲=۲۰ میلیارد حالت مجاز
۰
ارسال: #۶
  
RE: تاخیر BCD Adder
من یه سوال بپرسم شاید خیلی پیش پا افتادست
میگم..
مگه به ازای هر رقم BCD یدونه ازین بلوک ها نمیذاریم؟؟؟ خب تاخیر هربلوک باشه ۱۶ میشه ۱۶۰... با ۹تا کری ۱۰نانوثانیه که ۹۰ میشه... جمع میشه.... ۹۰+۱۶۰ میشه ۲۵۰ کلا
واسه هر بلوک که کری ۹۰ نمیشششه
این چه تصوریه من دارم ؟؟؟؟
منو توجیح کنین لطفااااااااااااا
میگم..
مگه به ازای هر رقم BCD یدونه ازین بلوک ها نمیذاریم؟؟؟ خب تاخیر هربلوک باشه ۱۶ میشه ۱۶۰... با ۹تا کری ۱۰نانوثانیه که ۹۰ میشه... جمع میشه.... ۹۰+۱۶۰ میشه ۲۵۰ کلا
واسه هر بلوک که کری ۹۰ نمیشششه
این چه تصوریه من دارم ؟؟؟؟
منو توجیح کنین لطفااااااااااااا
ارسال: #۷
  
RE: تاخیر BCD Adder
(۰۲ دى ۱۳۹۱ ۰۱:۴۹ ب.ظ)sufia_lido نوشته شده توسط: من یه سوال بپرسم شاید خیلی پیش پا افتادست
میگم..
مگه به ازای هر رقم BCD یدونه ازین بلوک ها نمیذاریم؟؟؟ خب تاخیر هربلوک باشه ۱۶ میشه ۱۶۰... با ۹تا کری ۱۰نانوثانیه که ۹۰ میشه... جمع میشه.... ۹۰+۱۶۰ میشه ۲۵۰ کلا
واسه هر بلوک که کری ۹۰ نمیشششه
این چه تصوریه من دارم ؟؟؟؟
منو توجیح کنین لطفااااااااااااا
برای هر دو رقم یک جمع کننده، یعنی مثلا برای جمع x1 و y1 یک جمع کننده BCD لازم هست.
در کل تعداد جمع کننده ها برابر هست با ۱۰ تا. چرا که x1,y1 - x2,y2 - ... x10,y10 باهم جمع میشن و به ۱۰ تا جمع کننده نیاز داریم.
تاخیر کری ورودی رو برای جمع x1,y1 حساب نمی کنیم چون از هیچ مدار یا گیتی عبور نمی کنند(فقط یک خط مستقیم به کری اونا وصله).
برای بقیه جمع کننده ها هم بالا توضیح دادم.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close