اطلاعیه

Collapse
No announcement yet.

در خواست کمک در مورد پروژه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    در خواست کمک در مورد پروژه

    من یک پروژه دارم برای آز-منطقی که نیاز به یک آی سی 74185 که کار آن تبدیل باینری به bcd می باشد دارم ولی این ICدر بازار موجود نمی باشد کسی IC مشابه می شناسه یا کمکی می تونه بکنه؟ با تشکر
    لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

    #2
    پاسخ : در خواست کمک در مورد پروژه

    سلام ..................

    پروژه دقیق شما چی هست ... میخوام بدونم محدودیت کارتون تا چه میزانه ..
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : در خواست کمک در مورد پروژه

      پروژم ضرب کننده 3 بیت باینری هست من چون تازه کارم نیاز به کمک دارم ممنون میشم کمکم کنید
      لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

      دیدگاه


        #4
        پاسخ : در خواست کمک در مورد پروژه

        سلام
        دوست عزیز شما ضرب کننده سه بیتی را به وسیله جمع کننده هم می تونی بسازی. جمع کننده تو بازار هست.
        مشکلی ایجاد میشه با جمع کننده بسازی؟

        دیدگاه


          #5
          پاسخ : در خواست کمک در مورد پروژه

          پیشنهاد می کنم با میکرو این مشکل رو حل کنید. مثلا یه ATmega8 رو طوری پروگرم کنید که اینکارو براتون انجام بده.
          دلا یاران سه قسمند ار بدانی
          زبانی اند و نانی اند و جانی
          به نانی نان بده از در برانش
          محبت کن به یاران زبانی
          و لیکن یار جانی را به دست آر
          به جانش جان بده تا می توانی

          دیدگاه


            #6
            پاسخ : در خواست کمک در مورد پروژه

            منم دارم با جمع کننده می سازم ولی برای نمایش تو 7segment باید باینری رو به BCD تبدیل کنم. درضمن از میکرو هم نباید استفاده کنم.
            لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

            دیدگاه


              #7
              پاسخ : در خواست کمک در مورد پروژه

              سلام
              چرا از 7447 یا 7448 استفاده نمی کنی اون یک مبدل BCD است که شما 4 بیت به صورت باینری می دی و 7 خروچی داره که به سون سگمنت وصل میشه و با مقدار باینری 0001 بدی عدد یک را روی سون سگمنت نشان می دهد.

              دیدگاه


                #8
                پاسخ : در خواست کمک در مورد پروژه

                دوستان این شرح کامل پروژم : با and و دو تا جمع کننده 4 بیتی می خوام یک ضرب کننده بسازم که 3 بیت باینری رو در 3 بیت باینری ضرب کند و خروجی ضرب کننده 6 بیت باینری هست که این 6 بیت رو توسط 74185 به BCD تبدیل می کنم و 4 بیت بی سی دی با ارزش کمتر رو به یک 7447 و 4 بیت ارزش بیشتر رو به یک 7447 میدم جهت نمایش روی 7seg . مشکل من نبودن آی سی 74185 در بازاره. حالا کسی می تونه کمکم کنه . با تشکر
                لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

                دیدگاه


                  #9
                  پاسخ : در خواست کمک در مورد پروژه

                  :cry2: :cry: :sad:
                  لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

                  دیدگاه


                    #10
                    پاسخ : در خواست کمک در مورد پروژه

                    منظور من استفاده از میکرو به عنوان یک آی سی هست. میشه گفت به نوعی آی سی مورد نیازتون رو می سازید. مثل آی سی مورد نظر براش ورودی و خروجی و ریست تعریف کنید. در نهایت روشو پاک کنید و بنویسید 74185.
                    دلا یاران سه قسمند ار بدانی
                    زبانی اند و نانی اند و جانی
                    به نانی نان بده از در برانش
                    محبت کن به یاران زبانی
                    و لیکن یار جانی را به دست آر
                    به جانش جان بده تا می توانی

                    دیدگاه


                      #11
                      پاسخ : در خواست کمک در مورد پروژه


                      سلام ..................

                      شرمنده یک مقدار درگیر بودم، نتونستم این پست رو دنبال کنم ..

                      ببینید برای طرحی که شما اشاره کردید (مدار ضرب کننده ..) ایده ها و راه های مختلفی وجود داره .. یکی از اون راه هایی که میتونید ازش استفاده کنید، راهیه که توی واحد های ALU استفاده میشه .. نمیدونم متوجه منظور من شدید یا نه اما بذارید راجع به اون یه کم صحبت کنیم .. درحقیقت توی واحدهای پردازنده ؛ برای طراحی واحد حساب و منطق، عملا از یک عملیات ریاضی استفاده میکنن .. یعنی جمع که همون جمعه، ضرب رو به جمع تبدیل میکنن .. تفریق هم که نوعی جمع علامت داره و تقسیم هم که نوعی ضرب معکوسه (که در نهایت میشه با جمع پیاده سازیش کرد ..) .. در واقع از Incremention برای مدلینگ تک تک Operation های Arithmatic استفاده میشه ..

                      خب برای پیاده سازی طرح شما هم میشه از همین روش ایده گرفت منتهی یک مقدار جمع و جور تر میشه .. ببینید شما فرض کنید میخواید دو عدد 0011 و 0010 رو در هم ضرب کنید .. عدد اول رو اسمش رو میذاریم Main Number و دومی رو هم میذاریم Tamplate .. خب حالا این دوتا عدد رو اگه زیر هم بنویسیم و بخوایم مراحل ضرب رو پیاده سازی کنیم چه اتفاقی میفته؟ یا Main Number تکرار میشه یا محصول ضرب صفر میشه (البته با یه شیفت ..) .. خب اینی که صفر داشته باشیم یا یه کپی شیفت داده شده از Main Number بر میگرده به این نکته که Tamplate شما در اون مرحله ی ضرب، مقداری برابر صفر داره یا یک .. اگه صفر بوده که حاصل ضرب هم میشه صفر و اگه یک باشه که حاصل ضرب میشه خود Main Number منتهی با یه شیفت مکانی (ارزشی ..) .. پس اولین فاکتوری که برای ما مهمه اینه که رشته ی Tamplate ما از چه نوع Digit Analysis ای تشکیل شده ..

                      نکته ی مهم دیگه ای که وجود داره اینه که شما برای هر مرحله ی ضرب بتونید یه شیفت داشته باشید که بتونید از نتایج مرحله ی قبل + نتایج مرحله ی جاری، مرحله ی بعد رو بسازید .. برای این کار هم شما باید یه روال شیف برای طراحیتون تعریف کنید .. تنها نکته ای که باید به اون خیلی توجه کنید اینه که اعداد هر مرحله باید حفظ بشن تا بتونن از ابتدا و به صورت Hierarchical (سلسله مراتبی ..) باهم جمع بشن و به نتیجه ی حاصل برسن ..

                      این از الگوریتم کلی قضیه .. اما پیاده سازی اون ..

                      برای مرحله ی اول (تولید Main Number ..) شما باید از یه ابزاری استفاده کنید که بتونید به ازای مراحل 0 تا 3 شیفت رو به صورت پخش عدد 0 و ارسال رشته ی حاصله در خروجی به ثمر برسونید .. برای این منظور میتونید از یه شیفت رجیستر استفاده کنید .. البته شیفت رجیستری که ورودی سریلا و خروجی پارالل داشته باشه و البته قابلیت لود کردن (Preset .. ) عدد پیشفرض رو هم درون خودش داشته باششه .. نحوه ی تولید Main Number توسط این تراه هم به این صورته که ما عددتون رو (اتصال 0 و 1 ها متنوع ..) روی پایه های ورودی این تراشه مدل میکنید .. بعد از این مرحله یه کلاک میدید به تراشه و عدد فراخونی میه و به ازای 4 کلاک دیگه که به پایه ی کلاک داده میشه، با ورود عدد 0 به اون عمل شیفت رو انجام بدید .. خروجی این مرحله کجا میره؟ در ادامه مخصش میکنیم ..

                      برای مرحله ی دوم (شرط گذاشتن و تولید Tamplate ..) شما میتونید از مالتی پلکسر استفاده کنید .. مالتی پلکسر چه کار میکنه؟ رشته ی ورودی خدو رو تحلیل میکنه اونم به صورت Bit By Bit (منور از تحلیل تفکیک در ارسال هست .. نه تحلیل خاص دیگه ای ..) .. خب الان شما مشخص کردید که عددتون از چه المان هایی تشکیل شده .. فقط کافی این مرحله رو با مرحله ی اول ترکیب کنید .. اما برای این منظور باید بدونید که مرحله ی اول در نهایت به چه خروجی منتج میشه ..

                      مرحله ی اول به 4 تا لچ میره .. یعنی هر مرحله ی شیفت به یه لچ انتقال داده میشه و در اون بارگذاری میه .. اینی که چطور لچها برای هر مرحله انتخاب بشن بر عهده ی یه بخش کنترلیه که با استفاده از یه شمارنده و یه دیکودر مدل سازی میشه .. شمارنده که وظیفه ی شمارش مراحل رو بر عهده داره (4 مرحله ..) و دیکودر هم که وظیفه ی انتخاب لچ هارو بر عهده داره (اگه خاطرتون مونده باشه، دیکودر بر حسب ورودی که داره (پایه های کنترلیش ..) تنها و تنها یک خط رو در خروجی فعال میکنه و در واقع آدرس ورودی رو به چهار خط مجزا دیکود میکنه ..) .. در نتیجه مشکل انتخاب و بار گذاری لچ ها حل شد ..

                      الان تنها کاری که مونده اینه که ارتباط مرحله ی دوم با مرحله ی اول برقرار بشه .. چه نوع ارتباطی؟ اینکه هر وقت بیت Tamplte ما صفر بود (در مراحل Incrementation ..) لچ اون مرحله صفر رو بار گذاری کنه و هر وقت هم یک شد، مقدار ورودی خودش (Main Number شیفت داده شده ..) رو بار گذاری کنه .. خب این کار هم با استفاده از همومن مالتی پلکسر و پایه های EN تراشه ی لچمون انجام میه .. یعنی میتونیم خروجی MUX رو بدیم به یکی از دو EN تراشه ی لچ (یا 74116 یا 74173 و یا موارد مشابه ..) و از اون طریق بارگذاری نهایی رو کنترل کنیم .. در نتیجه مشکل مقایسه ی بارگذاری و شیفت دادن Main Number هم حل شد ..

                      اما مرحله ی آخری که مونده اینه که این اعدادی که در هر مرحله تولید شدن در نهایت باهم جمع بشن .. خب این مرحله هم با استفاده از تراشه های ADDER انجام میشه .. اما ارتباط این تراشه ها با مرحله ی قبل به چه ترتیبه؟ ببینید خروجی لچ اول میره به ورودی Adder و سری دیگه ی ورودی های اون هم با 0000 تکمیل میشه .. خروجی لچ مرحله ی دوم هم میره به یه Adder و اون یکی ورودی اون هم از خروجی Adder مرحله ی بالا میاد .. خروجی لچ مرحله ی سوم میره به ورودی یهAdder اون یکی ورودی اون از خروجی Adder طبقه ی بالا تامین میشه و این روند تا خروجی لچ چهارم ادامه داره .. در نهایت جوابی که از این مراحل به دست میاد در خروجی Adder چهارم تکمیل میشه و نتیجه ی نهایی ضرب رو میشه در اونجا مشاهده کرد .. بعد اگه خواستید میتونید با استفاده از مبدل های باینری به BCD نتیجه ی اون رو به دست بیارید .. نمیدونم تونستم منظورم رو بیان کنم یا نه .. موفق باشید ..
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #12
                        پاسخ : در خواست کمک در مورد پروژه

                        از همه دوستان متشکرم :applause:
                        لحظه ها را مي گذرانديم تا به خوشبختي برسيم غافل از اينكه خوشبختي در آن لحظه ها بود كه گذرانديم. دكتر علي شريعتي

                        دیدگاه


                          #13
                          پاسخ : در خواست کمک در مورد پروژه

                          نوشته اصلی توسط حسام الدین
                          [right]
                          سلام ..................

                          شرمنده یک مقدار درگیر بودم، نتونستم این پست رو دنبال کنم ..

                          ببینید برای طرحی که شما اشاره کردید (مدار ضرب کننده ..) ایده ها و راه های مختلفی وجود داره .. یکی از اون راه هایی که میتونید ازش استفاده کنید، راهیه که توی واحد های ALU استفاده میشه .. نمیدونم متوجه منظور من شدید یا نه اما بذارید راجع به اون یه کم صحبت کنیم .. درحقیقت توی واحدهای پردازنده ؛ برای طراحی واحد حساب و منطق، عملا از یک عملیات ریاضی استفاده میکنن .. یعنی جمع که همون جمعه، ضرب رو به جمع تبدیل میکنن .. تفریق هم که نوعی جمع علامت داره و تقسیم هم که نوعی ضرب معکوسه (که در نهایت میشه با جمع پیاده سازیش کرد ..) .. در واقع از Incremention برای مدلینگ تک تک Operation های Arithmatic استفاده میشه ..

                          خب برای پیاده سازی طرح شما هم میشه از همین روش ایده گرفت منتهی یک مقدار جمع و جور تر میشه .. ببینید شما فرض کنید میخواید دو عدد 0011 و 0010 رو در هم ضرب کنید .. ..........
                          جناب حسام الدین؛ متن کاملی بود از شما تشکر می کنم.
                          امکان داره شماتیک این مداری که توصیف کردید را هم قرار بدید؟
                          من به شماتیکش با جزییاتش "یعنی اینکه هر قسمت از چه آی سی استفاده بشه و نحوه ی اتصالات و ورودی به کجا اعمال بشه!و..." نیاز دارم.
                          از شما ممنو ن میشم قرار بدید!
                          (ساخت ضرب کننده با الگوریتم جمع و شیفت! آقا منتظرم )

                          دیدگاه

                          لطفا صبر کنید...
                          X