پرسشکده مرجع پرسش و پاسخ فارسی ایران

مسئله‌ی مهم آن است که هرگز از سؤال‌کردن دست برندارید. برای هر حس کنجکاوی، یک پاسخ وجود دارد.

نمی دانید؟! بپرسید!

می دانید؟! پاسخ دهید!


گیت منطقی OR چگونه با استفاده از آتوماتای wireworld پیاده سازی می شود؟

3 پاسخ 3

یک نمونه گیت های منطقی OR پیاده سازی شده در آتوماتای wireworld در شکل زیر نشان داده شده است. فاصله بین الکترون های ورودی نباید از زمان تاخیر یک گیت کمتر باشد.



فایل پاسخ به فرمت PDF آماده شده که کامل شده ی پاسخ قبلی + کد برنامه نیم جمع کننده به زبان مطلب ( Matlab ).
دانلود فایل پاسخنامه به فرمت PDF
دانلود کد مطلب برنامه

شاید بهینه ترین مدار Or که میتوان برای طراحی مدارات ترکیبی استفاده کرد به صورت زیر باشد که در زیر نشان داده شده است:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

با قرار گرفتن ورودیها در مربع های قرمز خروجی بعد 4 مرحله  ( Iteration )   خروجی در مربع آبی تولید میشود.

نمونه استفاده شده از این مدار را در یک تمام جمع کننده یک بیتی در زیر مشاهده می کنید:

 

گیت Or را در مدار زیر مشاهده میکنید ( داخل دایره زرد رنگ )


کد مطلب برنامه یک نیم جمع کننده یک بیتی ( برای تولید جمع 2 عدد یک بیتی ) را در زیر مشاهده می کنید :

تابع بوجود آورنده ماتریس ورودی ( شکل ورودی نیم جمع کننده ) :


شکل ورودی برای این برنامه به صورت زیر می باشد:


function [out]=initialsm(sm)
sm(4,2)=1;
sm(15,2)=1;
sm(3,36:37)=3;
sm(4,3:36)=3;sm(4,38)=3;
sm(5,12)=3;sm(5,36:37)=3;sm(5,39:40)=3;
sm(6,13)=3;sm(6,40:47)=3;
sm(7,14)=3;sm(7,22:23)=3;sm(7,36:37)=3;sm(7,39:40)=3;
sm(8,15)=3;sm(8,18:19)=3;sm(8,21)=3;sm(8,24)=3;sm(8,32:36)=3;sm(8,38)=3;
sm(9,16:18)=3;sm(9,20:22)=3;sm(9,25:26)=3;sm(9,31)=3;sm(9,36:37)=3;
sm(10,18:19)=3;sm(10,21)=3;sm(10,26:30)=3;
sm(11,22:23)=3;sm(11,25:26)=3;
sm(12,23:24)=3;
sm(13,22:23)=3;sm(13,25:26)=3;
sm(14,18:19)=3;sm(14,21)=3;sm(14,26:28)=3;
sm(15,3:18)=3;sm(15,20:22)=3;sm(15,25:26)=3;sm(15,29:30)=3;
sm(16,11)=3;sm(16,18:19)=3;sm(16,21)=3;sm(16,24)=3;sm(16,31:35)=3;
sm(17,11)=3;sm(17,22:23)=3;sm(17,36)=3;
sm(18,11)=3;sm(18,30:31)=3;sm(18,35:37)=3;
sm(19,12)=3;sm(19,29)=3;sm(19,32)=3;sm(19,36)=3;
sm(20,13)=3;sm(20,29)=3;sm(20,31:45)=3;
sm(21,14)=3;sm(21,29)=3;sm(21,32)=3;sm(21,34)=3;sm(21,36)=3;
sm(22,15)=3;sm(22,29:31)=3;
sm(23,16:28)=3;
out=sm;
end

 

این هم برنامه اصلی برای تولید خروجی ( پیاده سازی Wireworld برای نیم جمع کننده ) :

clear all;
clc;
% Half Adder Silverman Matrix
 m=50;
 n=50;
sm=zeros(m,n);
%initial sm Matrix
% sm=initialsmfullee2(sm);
sm=initialsm(sm);
sm2=sm;
maxiter=46;
iter=1;
localPattern=zeros(1,8);
imagesc(sm);
M(1)=getframe;
while (iter
  for i=2:m-1
      for j=2:n-1 
          localPattern = [sm(i-1,j-1) sm(i,j-1) sm(i+1,j-1) sm(i-1,j) sm(i+1,j) sm(i-1,j+1) sm(i,j+1) sm(i+1,j+1)];
          switch sm(i,j)
              case 3
                  e=0;
                  for k=1:8
                     if localPattern(k)==1
                         e=e+1;
                     end
                  end
                  if e==1 || e==2
                      sm2(i,j)=1;
                  end
              case 2
                      sm2(i,j)=3;
              case 1
                  sm2(i,j)=2;
          end
      end
  end
  sm=sm2;
  %show Output
  imagesc(sm);
  M(iter)=getframe;
  iter=iter+1;
end
%show Output
imagesc(sm);
M(maxiter)=getframe;
%movie(M);

 

برای طراحی یک جمع کننده n بیتی می توان n عدد از این تمام جمع کننده را به صورت زیر طراحی کرد :


البته برای n های بزرگ میتوان با استفاده از مدار تمام جمع کننده Look ahead یک مدار بهینه طراحی کرد.



من پاسخ بهتری دارم !


عبارت های جستجو شدهعبارت های جستجو شده

(گیت منطقی OR) (برنامه برای پیاده سازی گیت های منطقی) (طراحی مدار جمع کننده با استفاده از گیتهای من) (پیاده سازی گیت and توسط برنامه مطلب) (تاريخچه گيت منطقي) ()