پرش به محتوا

دانلود رایگان سوالات طراحی و پیاده سازی زبان های برنامه نویسی با پاسخ تشریحی PDF

  • از

سوالات طراحی و پیاده سازی زبان های برنامه نویسی

دانلود فایل

 

 

 

 

 

 

 

 

انواع گیت هایی که اغلب در مدارهای مجتمع یافت می شوند، گیت-های NAND و NOR () -‌متصل می‌شوند، ‌() -() = ()^’⋯()^’= (+ )’ = (‘ + ‘) (‘ + ‘)
— 

 

 

 

 

‌‌‌-() =(+)^’+(+)^’=[(A+B)(C+D)]^’
––() () : (-) ً ‌‌:

——-––‌—-= (++)^’

طراحی و پیاده سازی زبان های برنامه نویسی

() () ——-() ‌’ –‌() — 

 

 

 

––——–=[(A+B)(C+D)E]^’
() () () — ––‌’ –‌’ ‘ ‘ () ‘ –‌’ ‌* () () :
^’=^’ +^’+=(^’ +^’+)^’
–––() —ورودی z’ استفاده کنیم، معکوس کننده حذف می شود.
فرم‌های OR–AND–INVERT به یک عبارت ساده‌شده از مکمل تابع به صورت حاصلضرب جمع ها نیاز دارند. برای بدست آوردن این عبارت، ابتدا 1 ها را در نقشه ترکیب می کنیم:سپس مکمل تابع را می گیریم:

خروجی نرمال F را اکنون می توان به شکل زیر بیان کرد
F=[(x+y+z)(x^’+y^’+z)]^’
که فرم OR–AND–INVERT است. از این عبارت، می‌توانیم تابع را در فرم‌های OR-NAND و NOR-OR پیاده‌سازی کنیم، همان طور که در شکل 29.3 (ج) نشان داده شده است.
8.3 تابع OR انحصاری
OR انحصاری (XOR)، که با نماد ⊕ نشان داده می شود، یک عملیات منطقی است که عملیات بولی زیر را انجام می دهد:
x⊕y=xy^’+x^’ y
OR انحصاری برابر با 1 است اگر فقط x برابر با 1 باشد یا اگر فقط y برابر با 1 باشد (یعنی x و y مقدار متفاوت داشته باشند)، اما نه زمانی که هر دو برابر با 1 یا زمانی که هر دو برابر با 0 هستند. NOR انحصاری، که هم چنین به عنوان معادل شناخته می شود، عملیات بولی زیر را انجام می دهد:
(x⊕y)^’=xy+x^’ y^’
NOR انحصاری برابر با 1 است اگر x و y هر دو زبان های برنامه نویسی با 1 باشند یا اگر هر دو برابر با 0 باشند. NOR انحصاری را می-توان با استفاده از جدول درستی یا با دستکاری جبری به عنوان مکمل OR انحصاری نشان داد
(x⊕y)^’=(xy^’+x^’ y)^’=(x^’+y)(x+y^’)=xy+x^’ y^’
شناسه های زیر برای عملیات OR انحصاری اعمال می شود:
x⊕0=x
x⊕1=x^’
x⊕x=0
x⊕x^’=1
x⊕y^’=x^’⊕y=(x⊕y)^’
هر یک از این شناسه ها را می توان با یک جدول درستی یا با جایگزین کردن عملیات ⊕ با عبارت بولی معادل آن اثبات کرد. هم چنین، می توان نشان داد که عملیات OR انحصاری هم جابه جایی پذیر و هم شرکت پذیر است. به این معنا که،
A⊕B=B⊕A
و

این به این معنی است که دو ورودی به یک گیت OR انحصاری را می توان بدون تأثیر بر عملکرد تعویض کرد. هم چنین به این معنی است که ما می توانیم یک عملیات OR انحصاری سه متغیره را به هر ترتیبی ارزیابی کنیم و به همین دلیل سه یا چند متغیر را می توان بدون پرانتز بیان کرد. این به معنای امکان استفاده از گیت های OR انحصاری با سه یا تعداد بیش تر ورودی است. با این حال، ساخت گیت های OR سوالات طراحی و پیاده سازی زبان های برنامه نویسی چند ورودی با سخت افزار دشوار است. در واقع، حتی یک تابع دو ورودی معمولاً با انواع دیگر گیت ها ساخته می شود. یک () () ()^’=(^’+) :
(^’+^’)+(^’+^’)=^’+^’ =⊕ 

 

 

⊕ -بولی تبدیل کرد:
A⊕B⊕C= (AB^( ‘)+A^’ B)C^’+(AB+A^’ B^’)C
=AB^’ C^’+A^’ BC^’+ABC+A^’ B^’ C
=Σ(1,2,4,7)
عبارت بولی به وضوح نشان می زبان های برنامه نویسی که اگر فقط یک متغیر برابر با 1 باشد یا اگر هر سه متغیر برابر با 1 باشد، تابع سه متغیره OR انحصاری برابر با 1 است. بر خلاف حالت دو متغیره، که در آن فقط یک متغیر باید برابر 1 باشد، در مورد سه یا چند متغیره، شرط لازم این است که تعداد فرد متغیرها برابر با 1 باشد. در نتیجه، عملیات OR انحصاری چند متغیره به عنوان یک تابع فرد تعریف می شود.
تابع بولی حاصل از عملیات OR انحصاری سه متغیره به صورت مجموع منطقی چهار مینترم که مقادیر عددی دودویی آن ها 001، 010، 100 و 111 است بیان می شود. هر یک از این اعداد دودویی دارای تعداد 1های فرد هستند. چهار سوالات طراحی و پیاده سازی زبان های برنامه نویسی باقی مانده که در تابع گنجانده نشده اند 000، 011، 101 و 110 هستند و در مقادیر عددی دودویی خود دارای یک عدد زوج 1 هستند. به طور کلی، یک تابع OR انحصاری n متغیره یک تابع فرد است که به صورت مجموع منطقی 2^n/2 مینترم تعریف می شود که مقادیر عددی دودویی آن دارای تعداد 1 فرد را می توان با رسم آن در نقشه روشن کرد.

زبان های برنامه نویسی

زبان های برنامه نویسی

شکل 3.31 (الف) نقشه تابع OR انحصاری سه متغیره را نشان می-دهد. چهار مینترم تابع، یک واحد از یکدیگر فاصله دارند. تابع فرد از چهار مینترم که مقادیر دودویی آن ها دارای تعداد 1 های فرد هستند مشخص می شود. مکمل یک تابع فرد یک تابع زوج است. همان طور که در شکل 31.3 (ب) نشان داده شده است، تابع ().
() -() :
⊕⊕⊕= (^’+^’ )⊕(^’+^’ )
= (^( ‘)+^’ )(+^’ ^’)+(+^’ ^’)(^’+^’ )
=()

 

 

 

 

 

 

() () () :
=⊕⊕ 

 

() -زوج باشند. اگر چهار بیت دریافتی دارای تعداد 1های فرد باشند، در حین انتقال خطایی رخ می دهد که نشان می-دهد جزوه برنامه نویسی شبکه یک بیت در طول انتقال تغییر کرده است. خروجی بررسی کننده توازن که با C نشان داده می شود، در صورت بروز خطا برابر با 1 خواهد بود، یعنی اگر چهار بیت دریافتی دارای تعداد 1های فرد باشند. جدول 4.3 جدول درستی برای بررسی کننده توازن زوج است. از آن می بینیم که تابع C از هشت مینترم با مقادیر عددی دودویی با تعداد 1های فرد تشکیل شده است. جدول مربوط به نقشه شکل 33.3 (الف) است که یک تابع فرد را نشان می دهد. بررسی کننده توازن را می توان با گیت های OR انحصاری پیاده سازی کرد:
C=x⊕y⊕_Z⊕P

 

 

 

دیاگرام منطقی بررسی کننده توازن در شکل 34.3 (ب) نشان داده شده است.
شایان ذکر است که اگر ورودی P به منطق 0 وصل شده باشد و خروجی با P مشخص شده باشد، مولد توازن را می توان با مدار شکل 34.3 (ب) پیاده سازی کرد. این به این دلیل است که z⊕0=z باعث می شود مقدار z بدون تغییر از گیت عبور کند. مزیت این استراتژی این است که می توان از یک مدار هم برای تولید توازن و هم برای بررسی توازن استفاده کرد.
از مثال فوق واضح است که زبان های برنامه نویسی تولید و بررسی توازن همیشه یک تابع خروجی دارند که شامل نیمی از مینترم‌هایی است که مقادیر عددی آن‌ها دارای تعداد 1های زوج یا فرد است. در نتیجه، آن ها را می توان با گیت های OR انحصاری پیاده سازی کرد. تابعی با تعداد 1های زوج مکمل یک تابع فرد است. آن با گیت های OR انحصاری پیاده سازی می شود، با این تفاوت که گیت مرتبط با خروجی باید یک NOR انحصاری باشد تا مکمل مورد نیاز را فراهم کند.
9.3 زبان توصیف سخت افزار
روش های دستی برای طراحی مدارهای منطقی تنها زمانی امکان پذیر است که مدار کوچک باشد. برای هر چیز دیگری (یعنی یک مدار عملی)، طراحان از ابزارهای طراحی مبتنی بر کامپیوتر استفاده می کنند. همراه با روش ساخت صحیح، ابزارهای طراحی مبتنی بر کامپیوتر از خلاقیت و تلاش یک زبان های برنامه نویسی بهره می‌برند و خطر تولید یک طرح معیوب را کاهش می‌دهند. ساخت مدارهای مجتمع اولیه بسیار پرهزینه و زمان بر است، بنابراین تمام ابزارهای طراحی مدرن برای توصیف، طراحی و آزمایش مدار در نرم افزار قبل از تولید، به زبان توصیف سخت افزاری متکی هستند.
زبان توصیف سخت افزار (HDL) یک زبان مبتنی بر کامپیوتر است که سخت افزار سیستم های دیجیتال را به صورت متنی توصیف می-کند. این زبان شبیه یک زبان برنامه نویسی کامپیوتری معمولی مانند C است، اما به طور خاص برای توصیف ساختارهای سخت افزاری و رفتار مدارهای منطقی طراحی شده است. می توان از آن برای نمایش نمودارهای منطقی، جداول درستی، عبارات بولی و انتزاعات پیچیده رفتار یک سیستم دیجیتال استفاده کرد. یک راه برای درک HDL مشاهده این است که رابطه بین سیگنال هایی که ورودی مدار هستند و سیگنال هایی که خروجی مدار هستند را توصیف می کند. به عنوان مثال، یک توصیف HDL از یک گیت AND توضیح می دهد که چگونه مقدار منطقی خروجی گیت توسط مقادیر منطقی ورودی های آن تعیین می شود.
به عنوان یک زبان مستندسازی، HDL برای نمایش و مستندسازی سیستم‌های دیجیتال به شکلی استفاده می‌شود که هم توسط انسان و هم توسط رایانه قابل خواندن باشد و به عنوان یک زبان تبادل بین طراحان مناسب است. محتوای زبان را می توان به راحتی ذخیره، بازیابی، ویرایش و ‌: ‌‌: ‌‌‌‌‌() ‌‌برای اثبات درستی یک مدار از نظر عملکردی متکی است. ما به طور انحصاری بر روی شبیه سازی تمرکز خواهیم کرد.
سنتز منطقی فرآیند استخراج لیستی از اجزای فیزیکی و اتصالات آن ها (به نام Netlist) از مدل یک سیستم دیجیتال توصیف شده در HDL است. Netlist را می توان برای ساخت یک مدار مجتمع یا برای چیدمان یک برد مدار چاپی با همتایان سخت افزاری گیت ها در لیست استفاده کرد. ترکیب منطقی شبیه به کامپایل یک برنامه در یک زبان سطح بالای معمولی است. تفاوت این است که، به جای تولید یک کد شی، سنتز منطقی یک پایگاه داده تولید می کند که عناصر و ساختار یک مدار را توصیف می کند. پایگاه داده نحوه ساخت یک مدار مجتمع فیزیکی را مشخص می کند که عملکرد توصیف شده توسط عبارات بیان شده در HDL را در سیلیکون پیاده سازی می کند. سنتز منطقی زبان های برنامه نویسی بر رویه‌های دقیق رسمی است که مدارهای دیجیتال را پیاده‌سازی می‌کند و به بخشی از طراحی دیجیتال که می‌تواند با نرم‌افزار کامپیوتری خودکار شود، آدرس می‌دهد. طراحی مدارهای بزرگ و پیچیده امروزی با نرم افزارهای سنتز منطقی امکان پذیر شده است.
تأیید زمان بندی تأیید می کند که مدار مجتمع ساخته شده با سرعت مشخصی کار خواهد کرد. از آن جایی که هر گیت منطقی در مدار دارای تأخیر انتشار است، انتقال سیگنال در ورودی مدار نمی تواند بلافاصله باعث تغییر در مقدار منطقی خروجی مدار شود. تأخیرهای انتشار در نهایت سرعتی را که مدار می تواند با آن کار کند محدود می کند. راستی‌آزمایی زمان‌بندی، هر مسیر سیگنال را بررسی می‌کند تا زبان های برنامه نویسی کند که با تأخیر انتشار به خطر نیفتاده است. این مرحله پس از این که سنتز منطقی دستگاه-های واقعی را که یک مدار را ‌‌‌‌‌