تاخیر BCD Adder - نسخهی قابل چاپ |
تاخیر BCD Adder - Shiny_Star - 26 آذر ۱۳۹۱ ۰۸:۳۳ ب.ظ
سلام تاخیر جمع کننده چطور حساب میشه؟ |
تاخیر BCD Adder - azad_ahmadi - 28 آذر ۱۳۹۱ ۰۱:۲۳ ب.ظ
سلام. برای حل این سوال باید نکته های ریزی رو بدونیم. از جمله اینکه، تاخیر جمع کننده بعدی یا 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 - Shiny_Star - 28 آذر ۱۳۹۱ ۰۸:۲۳ ب.ظ
خیلی ممنون |
تاخیر BCD Adder - csharpisatechnology - 30 آذر ۱۳۹۱ ۰۹:۰۴ ب.ظ
این تست ارشد ۸۳ هست که توی فصل اول کتاب پوران پژوهش حل شده.اما نه به این خوبی که 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 دقت کنید هر رقم میتونه شامل ارقام ۰ تا ۹ باشه یعنی ۱۰ حالت و رقم نقلی هم میتونه شامل دو حالت باشه : یا صفر یا ۱ پس کل حالات مجاز میشه ۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۱۰*۲=۲۰ میلیارد حالت مجاز |
RE: تاخیر BCD Adder - Shiny_Star - 01 دى ۱۳۹۱ ۰۱:۲۷ ب.ظ
(۲۸ آذر ۱۳۹۱ ۰۱:۲۳ ب.ظ)azad_ahmadi نوشته شده توسط: --------------------------------------------- سلام تو جمع کننده پایین که برای تصحیح خطا استفاده میشه، ۸ ورودی داره که یک ورودی که عدد ۶ میتونه باشه باید به اندازه تاخیر Carry جمع کننده بالا بعلاوه gate or صبر کنه تا آماده بشه، خود جمع کننده پایین هم ۸T تاخیر داره، تاخیر carry هم که ۱۰T هست میشه ۱۸T؟ |
RE: تاخیر BCD Adder - azad_ahmadi - 01 دى ۱۳۹۱ ۰۲:۳۱ ب.ظ
(۰۱ دى ۱۳۹۱ ۰۱:۲۷ ب.ظ)Shiny_Star نوشته شده توسط:(28 آذر ۱۳۹۱ ۰۱:۲۳ ب.ظ)azad_ahmadi نوشته شده توسط: --------------------------------------------- سلام. فکر میکنم هزینه تاخیر جمع کننده BCD دوم (پایین) با تولید کری برای طبقه بعد overlap میشه و تنها همون جمع دو رقم (۸t) حساب میشه، در این صورت هست که تنها برای جمع ۱۶t هزینه انجام میشه. |
RE: تاخیر BCD Adder - sufia_lido - 02 دى ۱۳۹۱ ۰۱:۴۹ ب.ظ
من یه سوال بپرسم شاید خیلی پیش پا افتادست میگم.. مگه به ازای هر رقم BCD یدونه ازین بلوک ها نمیذاریم؟؟؟ خب تاخیر هربلوک باشه ۱۶ میشه ۱۶۰... با ۹تا کری ۱۰نانوثانیه که ۹۰ میشه... جمع میشه.... ۹۰+۱۶۰ میشه ۲۵۰ کلا واسه هر بلوک که کری ۹۰ نمیشششه این چه تصوریه من دارم ؟؟؟؟ منو توجیح کنین لطفااااااااااااا |
RE: تاخیر BCD Adder - azad_ahmadi - 02 دى ۱۳۹۱ ۰۳:۵۷ ب.ظ
(۰۲ دى ۱۳۹۱ ۰۱:۴۹ ب.ظ)sufia_lido نوشته شده توسط: من یه سوال بپرسم شاید خیلی پیش پا افتادست برای هر دو رقم یک جمع کننده، یعنی مثلا برای جمع x1 و y1 یک جمع کننده BCD لازم هست. در کل تعداد جمع کننده ها برابر هست با ۱۰ تا. چرا که x1,y1 - x2,y2 - ... x10,y10 باهم جمع میشن و به ۱۰ تا جمع کننده نیاز داریم. تاخیر کری ورودی رو برای جمع x1,y1 حساب نمی کنیم چون از هیچ مدار یا گیتی عبور نمی کنند(فقط یک خط مستقیم به کری اونا وصله). برای بقیه جمع کننده ها هم بالا توضیح دادم. |
RE: تاخیر BCD Adder - sufia_lido - 03 دى ۱۳۹۱ ۱۲:۱۲ ق.ظ
(۰۲ دى ۱۳۹۱ ۰۳:۵۷ ب.ظ)azad_ahmadi نوشته شده توسط:(02 دى ۱۳۹۱ ۰۱:۴۹ ب.ظ)sufia_lido نوشته شده توسط: من یه سوال بپرسم شاید خیلی پیش پا افتادست بیخیال حفظ میکنم ۱۰nt+6t مررسسسسی |