پرش به محتوا

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

  • از

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

دانلود فایل

 

 

 

 

 

 

 

 

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

 

 

 

 

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

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

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

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

 

 

 

––——–=[(A+B)(C+D)E]^’
() () () — ––‌’ –‌’ ‘ ‘ () ‘ –‌’ ‌* () () :
^’=^’ +^’+=(^’ +^’+)^’
–––() —‘ ‌––‌::

=[(x+y+z)(x^’+y^’+z)]^’
––‌‌–‌() ()، ⊕ :
⊕=^’+^’ ()، :
(⊕)^’=+^’ ^’
-(⊕)^’=(^’+^’ )^’=(^’+)(+^’)=+^’ ^’
:
⊕=⊕=^’
⊕=⊕^’=⊕^’=^’⊕=(⊕)^’
⊕ ⊕=⊕ً () () ()^’=(^’+) :
(^’+^’)+(^’+^’)=^’+^’ =⊕ 

 

 

⊕ معمولی تبدیل کرد. به طور خاص، حالت سه متغیری را می-توان به صورت زیر به یک عبارت بولی تبدیل کرد:
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 است که تعداد زوجی از متغیرهای آن برابر با 1 باشد (شامل شرطی که هیچ یک از متغیرها برابر با 1 نباشد).
همان طور که در شکل 32.3 (الف) نشان داده شده است، تابع فرد سه ورودی با استفاده از گیت های OR انحصاری دو ورودی پیاده-سازی می شود. مکمل یک تابع فرد با جایگزینی گیت خروجی با یک گیت NOR انحصاری، همان طور که در شکل 32.3 (ب) نشان داده شده است، به دست می آید.
اکنون عملیات OR انحصاری چهار متغیره را در نظر بگیرید. با زبان های برنامه نویسی  جبری، می توانیم مجموع مینترم های این تابع را به دست آوریم:
A⊕B⊕C⊕D= (AB^’+A^’ B)⊕(CD^’+C^’ D)
= (AB^( ‘)+A^’ B)(CD+C^’ D^’)+(AB+A^’ B^’)(CD^’+C^’ D)
=Σ(1,2,4,7,8,11,13,14)

 

 

 

 

 

 

16 مینترم برای یک تابع بولی چهار متغیره وجود دارد. نیمی از مینترم ها دارای مقادیر عددی دودویی با عدد فرد 1 هستند. نیمه دیگر مینترم ها دارای مقادیر عددی دودویی با عدد زوج 1 هستند. در رسم تابع در نقشه، مقدار عددی دودویی برای یک جمله از اعداد سطر و ستون مربعی که نشان دهنده مینترم است، تعیین می شود. نقشه شکل 33.3 (الف) دیاگرامی از تابع چهار متغیره OR انحصاری است. این یک تابع فرد است زیرا مقادیر دودویی همه مینترم ها دارای تعداد 1 های فرد هستند. مکمل یک تابع فرد یک تابع زوج است. همان طور که در شکل 33.3 (ب) نشان داده شده است، تابع زوج چهار متغیره زمانی برابر با 1 است که تعداد زوجی از متغیرهای آن برابر با 1 باشد.
تولید و بررسی توازن
توابع OR انحصاری در سیستم هایی که نیاز به کدهای تشخیص و تصحیح خطا دارند بسیار مفید هستند. همان طور که در بخش 1.6 بحث شد، یک بیت توازن برای تشخیص خطاها در طول انتقال اطلاعات دودویی استفاده می شود. زبان های برنامه نویسی  توازن یک بیت اضافی همراه با یک سوالات طراحی و پیاده سازی زبان های برنامه نویسی دودویی است تا عدد 1 را زوج یا فرد کند. پیام، از جمله بیت توازن، ارسال می شود و سپس در انتهای دریافت برای خطا بررسی می شود. اگر توازن بررسی شده با مورد ارسال شده مطابقت نداشته باشد، خطا شناسایی می شود. مداری که بیت توازن را در فرستنده تولید می کند، مولد توازن نامیده می شود. مداری که توازن را در گیرنده بررسی می کند، بررسی کننده توازن نامیده می شود.
به عنوان مثال، یک پیام سه بیتی را در نظر بگیرید که همراه با یک بیت توازن زوج ارسال شود. جدول 3.3 جدول درستی را برای مولد توازن نشان می دهد. سه بیت x، y و z پیام را تشکیل می دهند و ورودی مدار هستند. بیت توازن P خروجی است. برای توازن زوج، بیت P باید تولید شود تا تعداد کل 1ها (شامل P ) زوج شود. از جدول درستی، می بینیم که P یک تابع فرد را تشکیل می دهد، زیرا برای آن مینترم هایی که مقادیر عددی آن ها دارای تعداد 1 های فرد است، برابر با 1 است. بنابراین، P را می توان به عنوان یک تابع OR انحصاری سه متغیره بیان کرد:
P=x⊕y⊕z

 

 

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

 

 

() () ⊕=‌‌()، ‌‌() -می کند. به عنوان مثال، یک توصیف HDL از یک گیت AND توضیح می دهد که چگونه مقدار منطقی خروجی گیت توسط مقادیر منطقی ورودی های آن تعیین می شود.
به عنوان یک زبان مستندسازی، HDL برای نمایش و مستندسازی سیستم‌های دیجیتال به شکلی استفاده می‌شود که هم توسط انسان و هم توسط رایانه قابل خواندن باشد و به عنوان یک زبان تبادل بین طراحان مناسب است. محتوای زبان را می توان به راحتی ذخیره، بازیابی، ویرایش و انتقال داد و توسط نرم افزار کامپیوتری به شیوه ای کارآمد پردازش کرد.
HDLها در چندین مرحله اصلی در زبان های برنامه نویسی طراحی یک مدار مجتمع استفاده می‌شوند: ورود طراحی، شبیه‌سازی یا تأیید عملکرد، سنتز منطقی، تأیید زمان و شبیه‌سازی خطا.
ورودی طراحی، یک توصیف مبتنی بر HDL از عملکردی که قرار است در سخت افزار پیاده سازی شود ایجاد می کند. زبان های برنامه نویسی به HDL، توصیف می تواند به اشکال مختلفی باشد: معادلات منطقی بولی، جداول درستی، فهرست شبکه ای از گیت های به هم پیوسته، یا یک مدل رفتاری انتزاعی. مدل HDL هم چنین ممکن است پارتیشنی از یک مدار بزرگ تر را به واحدهای عملکردی کوچکتر به هم پیوسته و متقابل نشان دهد.
شبیه سازی منطقی، رفتار یک سیستم دیجیتال را با استفاده از کامپیوتر نشان می دهد. یک شبیه‌ساز، توصیف HDL را تفسیر می‌کند و یا خروجی قابل خواندن تولید می‌کند، مانند ترتیب زمانی از مقادیر سیگنال ورودی و خروجی، یا شکل موج سیگنال‌ها را نمایش می‌دهد. شبیه سازی مدار پیش بینی می کند که سخت افزار قبل از این که واقعا ساخته شود چگونه رفتار خواهد کرد. شبیه سازی، خطاهای عملکردی یک طراحی را بدون نیاز به ایجاد و راه اندازی فیزیکی مدار تشخیص می دهد. خطاهایی که در طول شبیه سازی شناسایی می () ‌‌() ‌‌‌‌‌‌‌‌‌-‌‌‌‌‌