سوالات طراحی و پیاده سازی زبان های برنامه نویسی
انواع گیت هایی که اغلب در مدارهای مجتمع یافت می شوند، گیت-های NAND و NOR () -متصل میشوند، () -() = ()^’⋯()^’= (+ )’ = (‘ + ‘) (‘ + ‘)
—
-() =(+)^’+(+)^’=[(A+B)(C+D)]^’
––() () : (-) ً :
——-––—-= (++)^’

() () ——-() ’ –() —
––——–=[(A+B)(C+D)E]^’
() () () — ––’ –’ ‘ ‘ () ‘ –’ * () () :
^’=^’ +^’+=(^’ +^’+)^’
–––() —‘ ––::
نرمال 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 باشند یا -(⊕)^’=(^’+^’ )^’=(^’+)(+^’)=+^’ ^’
:
⊕=⊕=^’
⊕=⊕^’=⊕^’=^’⊕=(⊕)^’
⊕ ⊕=⊕ً () () ()^’=(^’+) :
(^’+^’)+(^’+^’)=^’+^’ =⊕
⊕ -:
⊕⊕= (^( ‘)+^’ )^’+(+^’ ^’)=^’ ^’+^’ ^’++^’ ^’ =()
^/
() -() ().
() -() :
⊕⊕⊕= (^’+^’ )⊕(^’+^’ )
= (^( ‘)+^’ )(+^’ ^’)+(+^’ ^’)(^’+^’ )
=()
() () با 1 است که تعداد زوجی از متغیرهای آن برابر با 1 باشد.
تولید و بررسی توازن
توابع OR انحصاری در سیستم هایی که نیاز به کدهای تشخیص و تصحیح خطا دارند بسیار مفید هستند. همان طور که در بخش 1.6 بحث شد، یک بیت توازن برای تشخیص خطاها در طول انتقال اطلاعات دودویی استفاده می شود. زبان های برنامه نویسی توازن یک بیت اضافی همراه با یک سوالات طراحی و پیاده سازی زبان های برنامه نویسی دودویی است تا عدد 1 را زوج یا فرد کند. پیام، از جمله بیت توازن، ارسال می شود و سپس در انتهای دریافت برای خطا بررسی می شود. اگر توازن بررسی شده با مورد ارسال شده مطابقت نداشته باشد، خطا شناسایی می شود. مداری که بیت توازن را در فرستنده تولید می کند، مولد توازن نامیده می شود. مداری که توازن را در گیرنده بررسی می کند، بررسی کننده توازن نامیده می شود.
به عنوان مثال، یک پیام سه بیتی را در نظر بگیرید که همراه با یک بیت توازن زوج ارسال شود. جدول 3.3 جدول درستی را برای مولد توازن نشان می دهد. سه بیت x، y و z پیام را تشکیل می دهند و ورودی مدار هستند. بیت توازن P خروجی است. برای توازن زوج، بیت P باید تولید شود تا تعداد کل 1ها (شامل P ) زوج شود. از جدول درستی، می بینیم که P یک تابع فرد را تشکیل می دهد، زیرا برای آن مینترم هایی :
=⊕⊕
() — شکل 33.3 (الف) است که یک تابع فرد را نشان می دهد. بررسی کننده توازن را می توان با گیت های OR انحصاری پیاده سازی کرد:
C=x⊕y⊕_Z⊕P
دیاگرام منطقی بررسی کننده توازن در شکل 34.3 (ب) نشان داده شده است.
شایان ذکر است که اگر ورودی P به منطق 0 وصل شده باشد و خروجی با P مشخص شده باشد، مولد توازن را می توان با مدار شکل 34.3 (ب) پیاده سازی کرد. این به این دلیل است که z⊕0=z باعث می شود مقدار z بدون تغییر از گیت عبور کند. مزیت این استراتژی این است که می توان از یک مدار هم برای تولید توازن و هم برای بررسی توازن استفاده کرد.
از مثال فوق واضح است که زبان های برنامه نویسی تولید و بررسی توازن همیشه یک تابع خروجی دارند که شامل نیمی از مینترمهایی است که مقادیر عددی آنها دارای تعداد 1های زوج یا فرد است. در نتیجه، آن ها را می توان با گیت های OR انحصاری پیاده سازی کرد. تابعی با تعداد 1های زوج مکمل یک تابع فرد است. آن با گیت های OR انحصاری پیاده سازی می شود، با این تفاوت که گیت ()، () -: : () () دهد. طراحی مدارهای بزرگ و پیچیده امروزی با نرم افزارهای سنتز منطقی امکان پذیر شده است.
تأیید زمان بندی تأیید می کند که مدار مجتمع ساخته شده با سرعت مشخصی کار خواهد کرد. از آن جایی که هر گیت منطقی در مدار دارای تأخیر انتشار است، انتقال سیگنال در ورودی مدار نمی تواند بلافاصله باعث تغییر در مقدار منطقی خروجی مدار شود. تأخیرهای انتشار در نهایت سرعتی را که مدار می تواند با آن کار کند محدود می کند. راستیآزمایی زمانبندی، هر مسیر سیگنال را بررسی میکند تا زبان های برنامه نویسی کند که با تأخیر انتشار -