اطلاعیه

Collapse
No announcement yet.

آموزش دیجیتال و معماری کامپیوتر

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

    آموزش دیجیتال و معماری کامپیوتر

    آموزش دیجیتال و معماری کامپیوتر
    با عرض سلام خدمت همه دوستان. با توجه به نیاز و علاقه دانشجویان رشته برق و کامپیوتر -سخت افزار تصمیم گرفتم مبانی دیجیتال و معماری کامپوتر را در قالب فایل های شبیه سازی شده پروتئوس همراه با توضیحات در این پست وبلاگ قرار دهم.البته منظورم از مبانی مباحث خیلی ابتدایی نیست بلکه مبانی متوسط تا پیشرفته را توضیح میدهم . اگر کسی از دوستان سوال داشت در قسمت نظرات یا با ایمیل moh.rast@gmail.com با اینجانب طرح بکنه. راستی تا یادم نرفته بگم هزینه استفاده از فایل ها هم 5 تا صلوات بر محمد و آل محمد با عجل الفرجهم است. استفاده از این نوشته ها با ذکر منبع مانعی ندارد. اگر منبع را هم ذکر نکردید لطفا فایل ها را تغییر ندهید.التماس دعا
    گیت های پایه منطقی و عملکرد آنها
    برای شروع، گیت های پایه و چند نوع از پیاده سازی آنها رو گذاشتم.لطفا صلوات و نظرات یادتون نره
    گیت های پایه منطقی و عملکرد آنها
    اگر نظراتی به طور خاص داشتید به وبلاگ http://0and1ha.blogfa.com مراجعه کنید

    #2
    پاسخ : آموزش دیجیتال و معماری کامپیوتر

    پیشنهاد میکنم عکس ها برداری چون بیخودی کلی حجم فایل بالا رفت
    برای نمایش جدول درستی بهتره از Graph mode استفاده کنی
    در ادامه بجای استفاده از یه Sheet بزرگ حتما از چند Sheet یا چند Subcircuit استفاده کن
    [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

    دیدگاه


      #3
      پاسخ : آموزش دیجیتال و معماری کامپیوتر

      چون این قسمت ابتدایی بود و برای شروع، همه رو تو یه شیت آوردم . در ادامه بقیه مطالب رو به صورت زیرمدار( Subcircuit) تنظیم کردم

      دیدگاه


        #4
        پاسخ : آموزش دیجیتال و معماری کامپیوتر

        سر فصل هایی که قصد دارم توضیح بدم

        ۱-مقایسه کننده ها

        ۱-۱ -مقایسه کننده ۱ بیتی

        ۱-۲-مقایسه کننده ۴ بیتی

        2-2-مقایسه کننده 16 بیتی با 7485

        ۲-شمارنده ها

        ۲-۱-شمارنده سنکرون

        ۲-۲-شمارنده های آسنکرون

        ۲-۲-۱ -شمارنده با شمارش ۰-۱-۲-۳،C,B,A

        ۲-۲-۲-شمارنده بالا و پایین شمار با شمارش ۰-۱-۲-۳-A,B,C,D

        3-همینگ کد (نحوه تشخیص و تصحیح 1 بیت خطا در 4 بیت )

        4-حافظه ها(RAM &ROM)

        4-1-یک بیت حافظه RAM

        4-2-چهار بیت حافظه(RAM)

        4-3- 16 بیت حافظه(نحوه پیاده سازی انواع مختلف 16 بیت حافظه)

        4-3-1- 16بیت با ساختار 1*16

        4-3-2- 16بیت با ساختار 8*2

        4-3-3- 16بیت با ساختار 4*4

        4-3-4- 16بیت با ساختار 8*2

        4-4- 8و16بیت ROM

        4-5- ذخیره ok در ROM و نمایش در دات ماتریس

        5-key pad اسکنرها

        5-1-اسکن کیپد 4*3 نمایش خروجی روی 7-seg

        5-2-اسکن کیپد 4*4 نمایش خروجی روی 7-seg

        5-3-اسکن کیپد 4*3 نمایش خروجی روی دات ماتریس

        6-واحد محاسبه ،منطق و شیفت (ALSU)

        6-1 -FULL ADDER

        6-2-واحد محاسبات ریاضی (Arthematic Unit)

        6-3-واحد محاسبات منطقی (Logic Unit)

        6-4-واحد شیفت(Shift Unit)


        دیدگاه


          #5
          پاسخ : آموزش دیجیتال و معماری کامپیوتر

          برای شروع از مقایسه کننده های یک بیتی آغاز میکنیم
          جدول داخل فایل مدار را برای دو بیت x ,y را مشاهده کنید
          همانطور که مشاهده میشود برای پیاده سازی سیگنال های S1,S2,S3 که نمایشگر تساوی ،بزرگتر یا کوچک تر بودن x, y است معادلات زیر را داریم:
          S1=B'A

          S2=A(xnor)B

          S3=A'B

          حال برای آنکه از کمترین گیت ها برای پیاده سازی بهره ببریم فقط با گیت nor این مدار را پیاده سازی میکنیم.توضیحات تکمیلی در فایل پروتئوس است
          چون مداراصلی در زیر مدار طراحی شده نحوه مشاهده زیر مدار در پروتئوس را در عکس زیر قرار داده ام
          زیر مدار در پروتئوس
          برای دانلود فایل مقایسه کننده به لینک زیر مراجعه کنید

          لطفا ۵ صلوات و نظرات یادتون نره
          مقایسه کننده یک بیتی


          در ضمن ورژن پروتئوس من 7.10 اگر فایل ها باز نشد با این ورژن باز کنید

          دیدگاه


            #6
            مقایسه کننده 4 بیتی

            در این قسمت عملکرد مقایسه کننده ۴ بیتی رو بررسی میکنیم.
            برای شروع و فهم دقیق تر از یک مثال در مبنای ۱۰ کمک میگیرم.
            فرض کنید شما نیخواهید ۱۲۳ و ۲۳۴ رو با هم مقایسه کنید اول کاری که میکنید اینه که با ارزش ترین رقم یعنی صدگان رو مقایسه میکنید اگر صدگان عدد اول از عدد دوم بزرکتر یا کوچکتر بود شما دیگر به سراغ رقم بعدی نمیروید مثلا اینجا چون۱<۲ ارقام بعد رو بررسی نکرده و سریع میگوییم ۱۲۳<۲۳۴ حال فرض کنید دورقم با بیشترین ارزش مساوی باشند در این مرحله به یک رقم با ارزش پایین تر رجوع میکنیم اگر رابطه ای غیر از تساوی داشته باشند کار تمام است ولی اگر آنها نیز مساوی باشند به همین ترتیب به رقم بعد و بعد مراجعه میکنیم و در آخر اگر کم ارزش ترین رقم هم مساوی باشند میگوییم ۲ عدد مساوی هستند.
            همین منوال را در مورد یک مقایسه کننده چهار بیتی ژیاده سازی میکنیم یعنی از MSB بیت به بیت شروع به مقایسه میکنیم در صورت تساوی به بیت با ارزش کمتر رجوع میکنیم تا برسیم به LSB.
            ما برای این کار از مقایسه کننده های تک بیتی که قبلا طراحی کرده بودیم بهره میبریم .4 عدد از انها برای این کار لازم است .علاوه بر این به تعدادی and , or برای پیاده سازی کل مقایسه کننده نیاز داریم.
            معادلات خروجی در فایل پروتئوس مدار موجود است.
            یکی از آنها را برای نمونه توضیح میدهم بقیه اش به همین ترتیب محاسبه میشه
            S1سیگنالی است نشان دهنده b1>a1 یعنی اگر با ارزش ترین بیت Bاز با ارزش ترین بیت A بزگتر باشد نتیجه گرفته میشود که B>A
            در صورت تساوی با ارزشترین بیت ها سیگنال X1 تولید میشود اگر X1 باAND S3 شود یعنی انکه دو بیت با ارزش بیشتر مساوی اند ولی B2>A2 و از همین نتیجه گرفته میشود که B>A .در صورت تساوی سیگنال X2 تولید شده و با AND X1 ,S5 میشود و به همین ترتیب سیگنال آخر تولید میشود اگر در فایل مدار دقت کنید میتوانید عملکرد مدار را تحلیل کنید سیگنال تساوی به صورت X1X2X3X4 تولید میشود.
            مقایسه کننده 4 بیتی

            در ادامه مدار شبیه سازی شده مقایسه کننده 4 بیتی که در کتاب مانو طراحی شده نیز آورده میشود.
            مقایسه کننده 4 بیتی (طراحی مانو)

            دیدگاه


              #7
              پاسخ : آموزش دیجیتال و معماری کامپیوتر

              سلام
              در ادامه به عنوان یه نمونه کار عملی یه مقایسه کننده ۱۶ بیتی با آی سی
              ۷۴۸۵ که یک مقایسه کننده ۴ بیتیه گذاشتم ، توضیح زیادی نداره فقط اینکه ای سی
              یه سری ورودی معروف به آبشاری داره که برای گسترش از ۴ بیت به بالا کاربرد داره که
              نحوه عملکرد رو از دیتاشیت براتون گذاشتم. سوال داشتید در خدمتیم.با این فایل
              از قسمت مقایسه کننده ها عبور میکنیم و به شمارنده ها میپردازیم

              مقایسه کننده 16 بیتی با 7485

              دیدگاه


                #8
                پاسخ : آموزش دیجیتال و معماری کامپیوتر

                شمارنده به یک سری فلیپ فلاپ گفته میشه که طی یک روند از پیش تعیین شده
                رشته ای از داده ها رو در خروجی خودش نشون میده.چون بنا ندارم دوباره مطالبی که در
                کتاب های دیجیتال گفته شده مطرح کنم و بیشتر مباحث کمتر گفته شده و عملی رو بگم در
                مورد اصول طراحی و جدول حالت و .. به کتاب هایی مثل مانو ارجاع میدم.فقط این مطلب
                رو ذکر کنم شمارنده سنکرون شمارنده هایی هستند که کلاک سیستم به طور همزمان به تمام
                فلیپ فلاپها اعمال میشه و شمارنده های آسنکرون شمارنده های هستند که کلاک به طور
                مجزا و غیر همزمان به فلیپ فلاپها اعمال میشود .در ادامه شمارنده های سنکرون و
                آسنکرون با شمارش 0و۱و۲و۳وC,B,A را قرار میدهم .در این مداراها کار خاصی
                انجام نشده فقط در همون طراحی معمولی شمارنده های سنکرون و آسنکرون هنگامی که به 4
                میرسم A را از طریق set فلیپ فلاپها لود کرده و هنگامی که به Dمیرسیم مدار رو
                ریست میکنیم.فایل سومی هم هست برای حالتی که نخواهیم از set و clear استفاده کنیم
                که طراحی اون یه خورده پیچیده است فقط برای این مدار سوم را گذاشتم که بدونید
                روش های دیگری هم وجود داره اما شاید از لحاظ تعداد گیت ها بهینه نباشه.
                در مدار سوم بر روی ورودی T فلیپ فلاپ ها طراحی صورت گرفته و کلاک ها به طور
                معمول مدارهای آسنکرون طراحی نشده، برای فهم مطلب یه کم دقت نیازه اگر سوالی
                داشتید درخدمتیم

                شمارنده سنکرون



                شمارنده آسنکرون



                شمارنده آسنکرون طراحی متفاوت

                دیدگاه


                  #9
                  پاسخ : آموزش دیجیتال و معماری کامپیوتر

                  خیلی عالیه.

                  ولی گفتم نظر خودم رو بدم.

                  بهتر نیست هر فصل از توضیحات رو توی یک PDF جمع و منتشر کنید.

                  اینجوری :
                  کلاس کاری تون می بالا.
                  به نام خودتون میشه.
                  برای کاربر انتقال مطالب ساده تر میشه و ....
                  همواره يادمان باشد:
                  1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
                  2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
                  3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

                  دیدگاه


                    #10
                    پاسخ : آموزش دیجیتال و معماری کامپیوتر

                    در این قسمت یک مدار را شرح میدهم که هم ارزش عملی دارد و هم از لحاظ طراحی و مفاهیم شمارش بسیار مفید است. همین طور که از عنوان پست هم پیدا است میخواهیم یک شمارنده طراحی کنیم از ۰ تا ۳ را به صورت بالاشمار بشمارد و پس از با لود Dشمارش را به صورت پایین شمار ادامه داده تا با A برسد بعد از دوباره به صفر برگشته این عمل مجددا تکرار شود.

                    برای این کار از یک آی سی 74169 که یک شمارنده سنکرون بالا و پایین شمار است استفاده میکنیم.

                    کار با این آی سی بسیار ساده است یک سری ورودی دارد که شما میتوانید با فعال کردن پایه LD شمارنده را با آن لود کنید البته توجه کنید که پایه ACTIVE LOW LD بوده و با صفر فعال میشود.اگر به پایهD'/U یک منطقی بدهیم مدار بالاشمار و اگر صفر بدهیم پایین شمار است.باقی پایه ها مربوط به فعال ساز -کلاک پالس - خروجی ها و کری خروجی است. برای شروع به جدول داخل زیر مدار در فایل پیوست دقت کنید مشاهده میکنید Q3 تا 3 صفر و بعد از ان یک است این تغییر حالت در 2 جا کاربرد دارد یکی اینکه اگر معکوس این پایه را به پایه D'/U وصل کنیم مدار در هنگام شروع بالاشمار است و هنگامی که D به طریقی که ذکر میشود لود شود به صورت پایین شمار عمل میکند پس با یک دقت کوچک توانستیم بالا و پایین شمار بودن مدار را تنظیم کنیم. برای اینکه حالت لوپ در مدار برقرار باشد باید در 3 مقدار Dدر Aمقدار 0 لود شود برای تشخیص 3 وA در مدار از 2 گیت NAND با 3 ورودی بهره گرفته ایم بدین ترتیب که هنگامی که مدار به 3 رسید Q3',Q1,Q1 که همگی 1 هستند در ورودی NAND قرار میگیرند .دقت کنید معکوس Q3 یعنی 'Q3 در ورودی است نه خود Q3 .خروجی NAND در این حالت صفر است اگر خروجی این پایه به لود وصل شوند میتوان در این حالت مقداری را لود کرد چگونگی لود کردن را در ادامه شرح میدهیم.اما باید در A نیز 0 لود شود در این حالت نیز با کمک از همان سه بیت اما با این تفاوت که به جای Q3اینبار معکوس Q1 یعنی 'Q1 را به ورودی NAN دوم وارد میکنیم، یعنی ورودی ها عبارتند ازQ1',Q1,Q3 که همگی 1 هستند. خروجی NAND در این حالت هم صفر است اگر خروجی این پایه به لود وصل شود میتوان در این حالت هم مقداری را لود کرد این دو حالت را با هم AND کرده و به پایه LDوصل میکنیم.حال میرسیم به این که ورودی های 0 وD چگونه در ورودی های آی سی قرار گیرند در این جا 2 روش وجود دارد اول استفاده از 4 عدد MAX 1TO2و دوم استفاده از 2عدد بافر با خروجی امپدانس بالا. بدلیل راحتی پیاده سازی در مدار پیوست از روش دوم استفاده شده است. برای بافر از 74244 استفاده شده که یک بافر با خروجی TRY-STATE است یعنی اگر چیپ سلکت یا اینیبل مدار را غیر فعال کنیم خروجی های آی سی به صورت مدار باز عمل کرده و با داخل آی سی هیچ ارتباطی ندارند لذا با بهره گیری از این آی سی خروجی 2 عدد بافر که یکی 0 و به دیگری D داده شده بدون هیچگونه مشکلی به هم وصل میشوند و این پایه ها به طور مشترک به ورودی شمارنده وصل میشوند .فقط یک مسئله مانده آن هم این است که چه زمانی صفر و چه زمانی D را را بر روی ورودی قرار دهیم؟ این سوال نیز با کمی دقت در جدول خروجی مدار براحتی قابل حل است .با مراجعه به مدار اگر از سیگنال Q3,'Q3 برای فعالسازی بافر ها استفاده کنیم یعنی Q3 به اینیبل بافر 0 , 'Q3 به اینیبل بافر D وصل شوند در هنگام مناسب مدار مقادیر مربوطه را لود میکند .توجه کنید که فعال ساز بافر ها ACTIVE LOW است . ورودی های 0 و D رو جوری گذاشتم که بتونید تغییرش بدید و نتیجه های مختلفی رو ببنید اگر خواستید میتونید با این کار و کمی تغییر انواع شمارنده های دلخواه رو طراحی کنیداگر سوالی بود در خدمتیم

                    شمارنده بالا و پایین شمار

                    در قسمت بعد مدار شمارنده تا 999999 را با 2 طراحی مختلف با کمک آی سی 7490شرح میدهم البته این جزء سرفصل ها نبود اما به نظرم جالب آمد گفتم بگم.




                    دیدگاه


                      #11
                      پاسخ : آموزش دیجیتال و معماری کامپیوتر

                      نوشته اصلی توسط S_Ahmad
                      خیلی عالیه.

                      ولی گفتم نظر خودم رو بدم.

                      بهتر نیست هر فصل از توضیحات رو توی یک PDF جمع و منتشر کنید.

                      اینجوری :
                      کلاس کاری تون می بالا.
                      به نام خودتون میشه.
                      برای کاربر انتقال مطالب ساده تر میشه و ....
                      ممنون از اظهار نظرتون ولی باید بگم که وقت این کار رو ندارم من مطالب رو اول تو وبلاگ میذارم و بعد به چند تا فروم هم منتقل میکنم اگر بعدها وقت کردم حتما این کار رو میکنم ولی فعلا متاسفانه وقتش رو ندارم اگر نگاه کنی اکثر پست ها چه توی وبلاگ و چه توی فروم ساعت 12 شب به بعده ! در ضمن هدف اینه که یه چیزی به دیگران یاد بدیم به عنوان تشکر از خدا به خاطر این که دانشی به همون داده. اگر یه نفر هم اون 5 تا صلوت رو برای ما بفرسته ما به هر چی میخواستیم رسیدیم

                      دیدگاه


                        #12
                        پاسخ : آموزش دیجیتال و معماری کامپیوتر

                        سلام
                        در این قسمت مدار شمارنده تا ۹۹۹۹۹۹ رو با آی سی ۷۴۹۰براتون توضیح میدم. این آی سی یک شمارنده ده دهی است که برای کاربردهای مختلف از جمله تقسیم فرکانس استفاده میشه برای اینکه حداکثر رنج شمارش یعنی از ۰ تا ۹ را روی خروجی ها داشته باشیم باید ورودی کلاک B رو به خروجی Q0 وصل کنیم (این قسمت رو تو دیتاشیت به صورت زرد رنگ مشخص کردم ) .برای گسترش از یک رقم به چند رقم باید با ارزش ترین بیت رقم کمتر رو یعنی Q3 به ورودی کلاک A آی سی بعد وصل کرد .
                        شمارنده 999999
                        خروجی این مدار رو برای هر رقم یک 7-seg گذاشتم طراحی بعدی این مدار در قسمت شمارنده به همان صورت گذشته است ولی در قسمت نمایشگر یک پک چند دیجیته 7-seg گذاشتم این مدار دوم رو در قسمت بعد شرح بیشتر میدم چون اصول طراحی دیتا باس مشترک که یکی از مفاهیم مهم و بنیادی انتقال دیتا است توی این مدار به کار رفته. این مدار هم یک بار با پک 8 تایی و یکبار هم با پک 4 تای 7-seg قرار دادم در ادامه به علت پیچیدگی و سیم کشی زیاد مدار پک ۸ تایی، باس دیتا رو در مدار با پک ۴ تایی توضیح میدم
                        شمارنده با پک 8 تایی

                        شمارنده با پک 4 تایی

                        دیدگاه


                          #13
                          پاسخ : آموزش دیجیتال و معماری کامپیوتر

                          برای توضیح مفهوم باس مشترک و همچنین نحوه عملکرد مدار شمارنده قسمت قبل (شمارش تا ۹۹۹۹ با سون سگمنت ۴ دیجیتی) اول یک مدار ساده با ۲ زیر مدار یکی در مورد عملکرد سون سگمنت و دیگری یک دیتا باس ۲ بیتی با یک بیت ادرس رو گذاشتم.در مدار باس ۲ بیتی از ۲ عدد مالتی پلکسر ۲به یک استفاده استفاده کردم. بیت اول هر کدام از ورودی های Aو B رو به ماکس اول و بیت دوم هر کدام از ورودی های Aو B رو به ماکس دوم وصل میکنیم .ورودی S مربوط به خط ادرس ماکس ها است که به طور مشترک به ماکس 1و 2 وصل میشود. عملکرد مدار به صورت زیر است: اگر S=0 بیت اول ماکس اول (که بیت اول ورودی A است) و بیت اول ماکس دوم (که بیت دوم ورودی A است)به خروجی وصل شده و باعث میشود A یه خروجی منتقل شود .حالا اگر اگر S=1 بیت دوم ماکس اول (که بیت اول ورودی B است) و بیت دوم ماکس دوم (که بیت دوم ورودی B است)به خروجی وصل شده و باعث میشود B به خروجی منتقل شود. در ادامه مدار شمارنده 9999 با سون سگمنت 4 دیجیتی رو شرح میدم.
                          باس مشترک

                          دیدگاه

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