میهن داکیومنت بزرگترین مرجع و مرکز دانلود پایان نامه (متن کامل فرمت ورد) فروش پایان نامه - خرید پایان نامه (کاردانی ، کارشناسی)همه رشته ها
حقوق اقتصاد مدیریت روانشناسی ریاضی تربیت بدنی کامپیوتر نرم افزار و سخت افزار عمران معماری برق صنایع غذایی علوم اجتماعی هنر علوم سیاسی فیزیک مکانیک حسابداری

تبلیغات کلیکی - افزایش رتبه گوگل

اگهی رایگان

مقاله آشنایی با رابط قابل برنامه ریزی 8255A


کد محصول : 10001611 نوع فایل : word تعداد صفحات : 24 صفحه قیمت محصول : رایگان تعداد بازدید 923

دانلودرایگان فایل رمز فایل : m1d1611

فهرست مطالب و صفحات نخست


 آشنایی با رابط قابل برنامه ریزی 8255A


رابط قابل برنامه ریزی  وسائل جانبی ، 8255 یک تراشه ارزان قسمت بسیار متداول است که امروزه  کاربردهای زیادی یافته است . این تراشه دارای 24 پایه برای I/O است  که در گروههای 12 پایه ای قابل برنامه ریزی هستند . هر گروهی  می تواند  در به حالت مجزا کار کند :  I/O  ساده ، IO استروب شده و I/O  دو طرفه ، 8255 قادر است  هر وسیله I/O موازی سازگار با TTL را به آسانی  به ریز پردازنده Z80 ارتباط دهد .

توضیح کلی :

وضعیت پایه ها و شمای کلی 8255 در شکل 1 نشان داده شده است . پایه ها نشان  می دهد که 8255 سه در گاه I/O دارد( A,B,C) که در دو گروه 12 پایه ای برنامه ریزی  می شوند. گروه A از در گاه A (PA0-PA7) و نیمه بالایی در گاه C  ( PC4-PC7)   و گروه B ( PB0-PB7) و نیمه پائینی درگاه  C(PC0-PC3)تشکیل می شود .
انتخاب در گاه بوسیله پایه CS و پایه های  آدرس A0,A1  ، انجام می شود. که با هم بطور داخلی یک در گاه I/O یا ثبات فرمان  را بر می گزینند .
ورودی RESET باعث می شود  که در گاه I/O به عنوان  در گاه ورودی برنامه ریزی شود تا آسیبی به مدارهای متصل به پایه های در گاه برسد . اگر این درگاه بخواهد به عنوان  درگاه خروجی بکار رود .8255 را باید از طریق درگاه فرمان برنامه ریزی نمود تا به عنوان خروجی عمل کنند..

 روش برنامه ریزی 8255
 برنامه ریزی 8255 کارنسبتا ساده ای است  زیرا تراشه  فقط دارای 2 ثبات فرمان داخلی است  که برنامه ریزی می شوند.شکل 3 ثبات فرمان اصلی را نشان می دهد که به استفاده کننده اجازه می دهد   تا در گاه  I/O گروههای A و B را به طور جداگاه  برنامه ریزی نماید . این ثبات فرمان

یک در گاه ورودی یا خروجی برنامه ریزی می شود که در گاه C به عنوان سیگنال های کنترل انتقال اطلاعات برای آن عمل  می کند .حالات  0و1 مشابه حالات در گروه B هستند .و حالت 2 در گاه A را به عنوان  یک درگاه I/O دو طرفه  بکار می گیرد که درگاه C تامین کننده سیگنال های کنترل انتقال اطلاعات برای آن است.
اگر یک صفر در آخرین بیت ثبات فرمان (از سمت چپ) قرار داده شود بیتهای درگاه C را  میتوان به طور مجزا  آدرس داد، به نحویکه در حالات 1و2 می توان هر یک از آنها را نشاند و یا پاک نمود. در حالت 0 ، اطلاعات  مستقیما به در گاه C  فرستاده می شوند.

عملیات حالت صفر
در حالت صفر- اطلاعات را می توان به در گاه A,B,C  فرستاد  و در آنجا  از آنها تا دستورالعمل بعدی (OUT) نگهداری می شود.
حالت 1  ورودی استروب شده – در 8255 با یکار گیری پایه های در گاه C بعنوان سیگنال های کنترل انتقال اطلاعات  عملیات دست تکانی را برای در گاه B,A انتخاب می کند . شکل 4 ساختار  داخلی  8255 را برای  عملیات ورودی استروب شده و همچنین سیگنالهای زمانبندی مربوطه را در حالت 1 نشان می دهد.

  - استروب : این ورودی برای وارد کردن اطلاعات بداخل قفل در گاه A یا B بکار می رود. این اطلاعات تا زمانیکه بوسیله یک دستورالعمل   IN بداخل ریز پردازنده برده نشود در آنجا نگهداری می شود.
IBF = (INPUT BUFFER FULL) این  خروجی نشان می دهد  که قفل ورودی ، اطلاعاتی برای  ریز پردازنده در بر دارد . سیگنال   این پایه خروجی را می نشاند و دستورالعمل IN  آنرا پاک می کند .
INTR - (در خواست وقفه )این خروجی برای درخواست نمودن یک وقفه بکار میرود. وقتی سیگنال   به سطح منطقی 1 می رود این خروجی 1 می شود و با اجرا شدن دستورالعمل IN پاک می گردد .
INTE - فعال کننده وقفه : این فعال کننده یک ورودی  یا خروجی  نیست ، بلکه یک بیت داخلی است  که بوسیله ثبات فرمان BSR   برنامه ریزی می شود .INTE A  به عنوان PC4 و INTE B به عنوان PC2 برنامه ریزی می شود .
در این حالت PC6,PC7 به عنوان I/O همه منظوره  در عملیات ورودی  استروب شده حالت 1 هستند. این پایه ها  وفتی  به عنوان پایه های  خروجی به کار می روند  بوسیله BSR  کنترل می شوند و وقتی  به عنوان پایه های ورودی بکار می روند ، از طریق درگاه C  خوانده می شوند.

عملیات خروجی استروب شده (حالت 1 )
ساختار داخلی 8255 برای عملیات  خروجی استروب شده و سیگنال های زمانبندی مربوطه را نشان می دهد .

تعاریف درگاه C  برای خروجی استروب شده حالت 1 :
   - بافر خروجی پر است : هر گاه اطلاعاتی به قفل در گاه A یا B فرستاده شود این خروجی پایین می رود . این سیگنال با برگشتن  پالس     از یک وسیله خارجی نشانده می شود و وقتی اطلاعات با یک دستور العمل OUT در درگاه نوشته می شود ، پاک می گردد.
  - ورودی اعلام دریافت اطلاعات : سیگنالی که باعث می شود پایه   به سطح منطقی 1 برگردد .   پاسهای از یک وسیله خارجی است که نشان می دهد وسیله اطلاعات را از 8255 دریافت کرده است .
INTR – در خواست وقفه : هرگاه یک وسیله خارجی ، دریافت اطلاعات خروجی را اعلام کند ( ) از این سیکنال می توان برای دادن وقفه به ریز پردازنده استفاده کرد .
INTE فعال کننده وقفه : این فعال کننده یک ورودی یا خروجی نیست ، بلکه یک بیت داخلی است  که بوسیله ثبات فرمان BSR   برنامه ریزی می شود.
INTE A به عنوان بیت PC6 و  INTE B به عنوان  PC2 برنامه ریزی می شود.

عملیات دو طرفه (حالت 2)
عملیات دو طرفه فقط برای پایه های گروه A انجام می شود. در گاه A  به صورت یک در گاه دو طرفه در می آید که امکان  ارسال و در یافت  اطلاعات را بر روی هشت سیم مشترک بوجود می آورد . اطلاعات دو طرفه در ارتباط دهی دو کامپیوتر  مفید است  شکل 6 ساختار داخلی و سیگنال های زمانبندی را برای عملیات دو طرفه درگاه A نشان می دهد.

در این حالت نیز سیگنالهای کنترلی از تعاریف در 2 حالت قبل پیروی میکنند

تمام این مباحث که گفته شد زمینه ای برای بیان ساختار داخلی  اجزا تشکیل دهنده و روش ارتباطی بین اینها است  که بصورت  کامل بیان خواهدشد.

روش استفاده از 8255 :

برای راه اندازی  و استفاده از  8255  باید vcc را به +5 ولت و Gnd را به 0 ولت  متصل می کنیم . cs  باید در سطح منطقی صفر  ( 0) باشد .
حالIC  آماده فعالیت است . ابتدا باید آن را برنامه ریزی کرد  . برای این کار A0,A1 را مقدار 1 می دهیم  و کلمه کنترلی را روی گذرگاه قرار می دهیم .سپس کلید WR را به سطح منطقی صفر آورده و دوباره به 1 باز می گردانیم .
توجه به این نکته ضروری است که چون پایه های WR,RD,CS حالت ACTIVE LOW  دارند باید حتما با مدار PULL UP  یا  PULL DOWN  شود  تا به مدار آسیبی نرسد .
در این زمان CONTROL REGISTER  برنامه ریزی شده است . حال اگر  مثلا با پرت A می خواهیم به صورت خروجی کار کنیم ، کافی است آدرس A0,A1 را   به ترتیب 0و0 بدهیم و دکمه WR را فشار دهیم  تا اطلاعات به خروجی پرت A منتقل شود.
اگر  پرت A در حالت ورودی باشد با قرار گرفتن اطلاعات در سر PIN های پرت  A و زدن کلید RD اطلاعات از پرت A به Z80 منتقل می شود .

 توصیف سخت افزاری :
حال می خواهیم  با توجه به  روش کار 8255 مدار داخلی آن را به اختصار توصیف نماییم .

با توجه به تحلیلات سخت افزاری  مدار را به قسمتهای زیر تقسیم بندی می کنیم و هر قسمت را توضیح می دهیم .
1-PORT A
2- PORT B
3- PORT C
4-CONTROL REGISTER
5-PROCESS CONTROL
6- DATA BUS BUFFER &MULTIPLEXER


PORT A:
پرت A :
این پرت 8 بیتی است . در طراحی سخت افزار ما سعی می کنیم تا یک  یا چند فطعه را تولید نماییم  و بقیه قسمتها را با آنها پیاده سازی نماییم . بنابراین کافی است  اصول کار را برای یک بیت طراحی کنیم و برای بقیه تعمیم دهیم.
ورودیها برای پرت A :
A0,A1: که برای تعیین آدرس پرت A در یک رمز بردار (DECODER) قرار داده می شود تا پرت A  را فعال یا غیر فعال نماید .
RD,WR : برای تعیین عمل خواندن  از وسیله جانبی یا نوشتن روی وسیله جانبی  استفاده می شود.
CW6,CW5,CW4: که به ترتیب بیتهای 4و5و6 از کلمه کنترلی   هستند این بیتها برای تعیین حالات (3 حالت)  پرت A بکار میروند . این سه بیت نیز همانند A0, A1 در یک رمز بردار  قرار گرفته و کد حاصل نوع عملیات A  را مشخص می کند .

مثلا خروجی OUTPUT MODE برای شکل فوق نشان دهنده این است که اگر پرت A در حالت مود0 و خروجی باشد این سیگنال اجازه انتقال اطلاعات را به بیرون می دهد .

هسته پرت A
این هسته همانطور که در شکل9 نشان داده شده است دارای 2 عدد D-FLOP  است  که  کار نگهداری اطلاعات (جهت انتقال به خارج یا دریافت از خارج) را بر عهده دارند. این D_FLOP  ها با دکمه های RD, WR   که در رمز بردار شکل 8 نشان داده شده است  فعال  می شوند .


این سلول دارای 2 ورودی دیگر است یکی OUTPUT MODE  که در شکل8 چگونگی ایجاد این سیگنال مشخص است و دیگری ACK  است که بوسیله رمز بردار زیر تولید می شود .

در این رمز بردار هم سیگنال ورودی  ACK  از پرت C   پایه شماره 6 می آید .سیگنال حاصل از این رمز بردار برای اجازه خروج اطلاعات در زمانی که A در مود 1و2 حالت خروجی دارد بکار می رود . اگر این سیگنال فعال شود  اجازه خروج را به اطلاعات میدهد. و با زدن هر WR اطلاعات جدید در سر PIN ها مشاهده میشود.
 ورودی IBF , MASTER RESET  نیز برای انجام عمل  دست تکانی   به کار می رود. هر گاه MASTER RESET =0 باشد با  فعال شدنIBF  اطلاعات روی  ورودی قفل می شود . و اگر MASTER RESET =1 باشد با فعال شدن IBF  سلول RESET  شده و در سطح منطقی 1 قرار می گیرد .

پرت B  :
پرت B نیز همانند پرت A دارای همین مشخصات تکنیکی در پیاده سازی است واختلاف آن فقط در سیگنالهای ورودی کلمه کنترلی است .
A0,A1: همانند پرت A برای رمز برداری  جهت فعال کردن پرت B  استفاده می شود .
RD,WR: برای عمل خواندن و نوشتن استفاده میشود.
CW2,CW3: برای تنظیم مود مورد نظر برای پرت B   این سیگنال ها وارد یک رمز بردار می شوند  سیگنال خروجی با اتصال  به ورودی OUTPUT  MODE  سلول مرکزی نوع عملیات را مشخص می کند .
IBF-ACK: در این پرت بر خلاف  پرت A که دو سیگنال جداگانه برای IBF, ACK  داده میشود ، یک سیگنال وارد می شود و در داخل پرت B نوع آن مشخص شده و به مکان مورد نظر فرستاده میشود.


پرت C:
 مهمترین قسمت این IC در این پرت قرار دارد . در این پرت  کنترل عملیات دست تکانی ،BSR  ، فرستادن سیگنالهای کنترلی برای پرتهای دیگر  انجام می شود .
این پرت دارای قسمتهای زیر است :

1-    سلول مرکزی که هسته فعالیتهای هر بیت می باشد .
2-    یک دیکودر 3 به 8 که وظیفه فعال کردن عمل WR را در زمانی که  پرت C  در حالت BSR فرار دارد را  بر عهده دارد . با فعال شدن این دیکودر که دارای 3 پایه فعال کننده است  (2 عدد فعال 1 و دیگری فعال 0) که دو پایه اول به A0,A1 متصل می شود و پایه سوم به بیت 7 وارد شده به پرت C ازBUS  میانی متصل میشود . سه بیت 1 الی 3 که به آن وارد می شوند رمز برداری شده و یکی از 8 خروجی آن در حالت 0 قرار می گیرد .
3-    یک رمز بردار BSR/NORMAL  که وظیفه این رمز بردار عبور 8 بیت ورودی ( که از BUS  داخلی می آید ) به روردی هر تک سلول در حالت نرمال و اگر پرت C در  حالت BSR بود  اطلاعات ر ا دیکود کرده و BIT  صفر را به خروجی مورد نظر  که بیت رمز برداری شده توسط دیکودر 3 به 8  آنرا تعیین می کند  می فرستد.
4-    یک رمز بردار آدرس، در صورتی که A0,A1 به ترتیب 1و0 بودند اجازه ورود و خروج اطلاعات را می دهد .


5-یک رمز بردار جهت تعیین  اینکه INT  فعال شده است یا نه و انتفال سیگنال مورد نظر به MASTER RESET   ، PIN های مورد نظر تا اعمال INTRUPT شود .
6- یک رمز بردار جهت اعمال به   IBF ,ACK , MASTER RESET که دارای سیگنالهای ورودی است که از سر  PIN  های پرت C می آید  خروجیها به پر تهای A,B و به سلولهای C  مرتبط می شوند .

CONTROL REGISTER:
این سلول دارای 7 بیت D_FLOP  است که کار ذخیره اطلاعات را بر عهده دارد .
عمل نوشتن بر روی کلمه کنترلی زمانی صورت می گیرد که بیت 7 ورودی مقدار 1 داشته باشد و آدرس ورودی 3 باشد (A0,A1 به ترتیب 1و1 باشند) اطلاعات در این سلول ها تا زمانی که WR مجددی صورت نگیرد یا پایهRESET  فعال نشود  حفظ می شود . این قسمت دارای ورودیهای A0,A1,WR,RST است کــه بـه D_ FLOP  ها متصل می شوند .ویک ورودی 8 بیت و یک خروجی 8 بیت دارد . ورودی از  BUS  میانی می آید و خروجی به پرتهای A,B,C و DATA BUS BUFFER & MULTIPLEXER  وارد می شود.
 
PROCESS CONTROL  :
این قسمت ازIC  کار دریافت و هدایت  سیگنالهای کنترلی را بر عهده دارد . سیگنالهای ورودب را از PIN  ها در یافت کرده عمل پزدازش را انجام می دهد و در صورت موفقیت بودن اجازه عبور را می دهد .
سیگنال هایی که به این قسمت وارد می شوند مستقیما از PIN  ها است و شامل سیگنال های زیر است :
RD,WR,A0,A1,RST,VCC,GND,CS

در این میان سه سیگنال عمل کتنرل عبور بقیه سیگنالها را بر عهده دارند .این سیگنالها  عبارتند از VCC,GND,CS که به ترتیب باید مقادیر 0و0و1 منطقی را داشته باشند .
با برقرار بودن این شرط RD, WR,A0,A1,RST می توانند به پرت A ,B,C, وارد شوند . در غیر این صورت  مقادیر انتشار یافته حالت  امپدانس بالا خواهند داشت .

DAT BUS BUFFER & MULTIPLEXER:
این قسمت دارای 4 ورودی کنترلی A0,A1,RD,WR به همراه  چهار ورودی(8 بیتی) از پرت های A,B,C و CONTOL REGISTER هستند و یک ورودی خروجی (8بیتی) برای اتصال به Z80 دارد .
کار این قسمتMULTIPLEXE کردن 4 ورودی از پرتهای A,B,Cو CONTOL REGISTER و خروج یکی از آنها به پایه های ورودی خروجی در صورت زدنRD  است و عبور  سیگنالها از پایه های  ورودی خروجی به BUS میانی  می باشد .
این قسمت از یک مالتی پلکسر  4 به 1  به همراه یک BUS با قابلیت HOLD  تشکیل شده است .
با زدن کلید RD یکی از اطلاعات از پرت های A,B,C و CONTOL REGISTER که بوسیله  MUX و با توجه به سلکتور های A0,A1  انتخاب شده است به خارج انتقال پیدا می کند و همزمان HOLD  می شود .
و تا زمانی که عمل RD یا WR انجام نشود در آنجا باقی خواهند ماند .


برنامه کلی پرت c :
library IEEE;
use IEEE.std_logic_1164.all;

entity BLOCK_C is
    port (
        RD: in STD_LOGIC;
        WR: in STD_LOGIC;
        A0: in STD_LOGIC;
        A1: in STD_LOGIC;
        INTERNAL_IN: out STD_LOGIC_VECTOR (7 downto 0);
        INTERNAL_OUT: in STD_LOGIC_VECTOR (7 downto 0);
        RST: in STD_LOGIC;
        ACKA: OUT STD_LOGIC;
        IBFA: OUT STD_LOGIC;
        IBF_ACK_B: OUT STD_LOGIC;
        IO: inout STD_LOGIC_VECTOR (7 downto 0);
        CW: in STD_LOGIC_VECTOR (7 downto 0)
    );
end BLOCK_C;

architecture STRUCTURAL of BLOCK_C is

-------------------------------------
SIGNAL MASTER,MIDDLE_BUS,BSR_SEL,D_VIEW, PIN_VIEW:STD_LOGIC_VECTOR (7 downto 0);

SIGNAL S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,           
             CS1,CS2,CS3,CS4,CS5,
             OUTPUT_C_LOW,
             OUTPUT_C_HIGH,         
             RD_WR_EN,
             BSR,NORMAL:STD_LOGIC;

begin

-- OUT PUT MODE FOR C LOW 
U1:ENTITY WORK.N_AND        PORT MAP(CW(2),CW(2),S1);
U2:ENTITY WORK.N_AND        PORT MAP(CW(0),CW(0),S2);
U3:ENTITY WORK.N_AND        PORT MAP(S1,S2,OUTPUT_C_LOW);

--- OUT PUT MODE FOR C HIGH

U4:ENTITY WORK.N_OR            PORT MAP(CW(6),CW(5),S3);
U5:ENTITY WORK.N_AND        PORT MAP(CW(3),CW(3),S4);
U6:ENTITY WORK.N_AND        PORT MAP(S4,S3,OUTPUT_C_HIGH);

---------------------------------------------

---- READ WRITE ENABLE

U7:ENTITY WORK.N_AND        PORT MAP(A0,A0,S5);
U8:ENTITY WORK.N_AND        PORT MAP(S5,A1,RD_WR_EN);

---------------------------------------------
---FOR DETERMINE CS BSR 8 BIT  

U9:ENTITY WORK.N_AND        PORT MAP(A0,A1,BSR);
U10:ENTITY WORK.N_AND        PORT MAP(A0,A0,S6);
U11:ENTITY WORK.N_AND        PORT MAP(S6,A1,NORMAL);

--------------------------------------------

U_BSR_NORMAL:ENTITY WORK.BSR_NORMAL       
            PORT MAP(INTERNAL_OUT,MIDDLE_BUS,BSR,NORMAL);

--------------------------------------------
U_3_8_DECODER:ENTITY WORK.DECODER_3TO8   
           
        PORT MAP(INTERNAL_OUT(3),INTERNAL_OUT(2),
                        INTERNAL_OUT(1),BSR_SEL,A0,A1,
                                    INTERNAL_OUT(7)
                                    );
---------------------------------------------
         --DEFINE CHIP SELECT 
U_CHIP_SEL:ENTITY WORK.DETERMIN_CS
       
        PORT MAP(CW(6),CW(5),CW(4),CW(2),CW(1),
                        CS1,CS2,CS3,CS4,CS5
                        );
U_CONTROL0:ENTITY WORK.HAND_SHAKING     
                PORT MAP(WR,PIN_VIEW(6),CS1,MASTER(7));
U_CONTROL1:ENTITY WORK.HAND_SHAKING        
                PORT MAP(RD,PIN_VIEW(4),CS2,MASTER(5));
U_CONTROL2:ENTITY WORK.HAND_SHAKING
                PORT MAP(WR,PIN_VIEW(2),CS3,S9);
U_CONTROL3:ENTITY WORK.HAND_SHAKING
                 PORT MAP(RD,PIN_VIEW(2),CS4,S9);
ACKA<=(MASTER(7));
IBFA<=MASTER(5);

--U12:ENTITY WORK.N_OR    PORT MAP(S9,S10,S15);
--U13:ENTITY WORK.N_AND    PORT MAP(S15,S15,S16);

IBF_ACK_B<=S9;
MASTER(1) <=S9;
----------------INTERAPT ENABLE

U_INTERAPT_B:ENTITY WORK.INTERUPT_VECTOR
           
            PORT MAP(PIN_VIEW(1),D_VIEW(2),CS5,MASTER(0));

U_INTERAPTAA:ENTITY WORK.INTERUPT_VECTOR   
           
            PORT MAP(PIN_VIEW(5),D_VIEW(4),CS2,S12);

U_INTERAPT_A:ENTITY WORK.INTERUPT_VECTOR   
           
            PORT MAP(PIN_VIEW(7),D_VIEW(6),CS1,S13);
   
U14:ENTITY WORK.N_OR    PORT MAP(S12,S13,S14);
U15:ENTITY WORK.N_AND    PORT MAP(S14,S14,MASTER(3));

---------------------------------------------
-----------MAIN CONECTION
-----      (RD,WR,CLR,MASTER,INTERNAL_IN,INTERNAL_OUT,RD_WR_EN,
         --            OUTPUTMODE,VIEW_D,BSR_SEL,CPIN)

U_C7:ENTITY WORK.COMPLETED_C       
           
            PORT MAP(RD,WR,RST,MASTER(7),INTERNAL_IN(7),
                MIDDLE_BUS(7),RD_WR_EN,OUTPUT_C_HIGH,
                            D_VIEW(7),PIN_VIEW(7),BSR_SEL(7),IO(7));                       
U_C6:ENTITY WORK.COMPLETED_C       

            PORT MAP(RD,WR,RST,'Z',INTERNAL_IN(6),
                MIDDLE_BUS(6),RD_WR_EN,OUTPUT_C_HIGH,
                            D_VIEW(6),PIN_VIEW(6),BSR_SEL(6),IO(6));                       
U_C5:ENTITY WORK.COMPLETED_C   
           
            PORT MAP(RD,WR,RST,MASTER(5),INTERNAL_IN(5),
                MIDDLE_BUS(5),RD_WR_EN,OUTPUT_C_HIGH,
                            D_VIEW(5),PIN_VIEW(5),BSR_SEL(5),IO(5));
U_C4:ENTITY WORK.COMPLETED_C       
           
            PORT MAP(RD,WR,RST,'Z',INTERNAL_IN(4),
                MIDDLE_BUS(4),RD_WR_EN,OUTPUT_C_HIGH,
                            D_VIEW(4),PIN_VIEW(4),BSR_SEL(4),IO(4));
U_C3:ENTITY WORK.COMPLETED_C   
           
            PORT MAP(RD,WR,RST,MASTER(3),INTERNAL_IN(3),
                MIDDLE_BUS(3),RD_WR_EN,OUTPUT_C_LOW,
                            D_VIEW(3),PIN_VIEW(3),BSR_SEL(3),IO(3));                               
U_C2:ENTITY WORK.COMPLETED_C
            PORT MAP(RD,WR,RST,'Z',INTERNAL_IN(2),
                MIDDLE_BUS(2),RD_WR_EN,OUTPUT_C_LOW,
                            D_VIEW(2),PIN_VIEW(2),BSR_SEL(2),IO(2));                                       
U_C1:ENTITY WORK.COMPLETED_C
            PORT MAP(RD,WR,RST,MASTER(1),INTERNAL_IN(1),
                MIDDLE_BUS(1),RD_WR_EN,    OUTPUT_C_LOW,
                            D_VIEW(1),PIN_VIEW(1),BSR_SEL(1),IO(1));                       

U_C0:ENTITY WORK.COMPLETED_C
            PORT MAP(RD,WR,RST,MASTER(0),INTERNAL_IN(0),
                MIDDLE_BUS(0),RD_WR_EN,OUTPUT_C_LOW,
                            D_VIEW(0),PIN_VIEW(0),BSR_SEL(0),IO(0));                         
end STRUCTURAL;
 
 برنامه کلی پرت A :
library IEEE;
use IEEE.std_logic_1164.all;

entity BLOCK_A is
    port (
        RDA: in STD_LOGIC;
        WRA: in STD_LOGIC;
        A0: in STD_LOGIC;
        A1: in STD_LOGIC;
        CW6: in STD_LOGIC;
        CW5: in STD_LOGIC;
        CW4: in STD_LOGIC;
        A_PIN: inout STD_LOGIC_VECTOR (7 downto 0);
        DATA_IN: out STD_LOGIC_VECTOR (7 downto 0);
        DATA_OUT: in STD_LOGIC_VECTOR (7 downto 0);
        IBF: in STD_LOGIC;
        ACK: in STD_LOGIC;
        RST:IN STD_LOGIC
    );
end BLOCK_A;

architecture STRUCTURAL of BLOCK_A is

SIGNAL S1,S2,S3,S4,RDS,WRS,A_SEL:STD_LOGIC;
begin
PRODUCTE_OUTPUT_MODE:ENTITY WORK.OUTPUT_MODE

                    PORT MAP(CW6,CW5,CW4,S1);
------------------------------------------
PRUDUCTE_ACK: ENTITY WORK.ACK_EN   

                    PORT MAP(CW6,CW5,ACK,S2);
-------------------------------------------
PRODUCTE_R_W_SUGNAL:ENTITY WORK.R_W_EN

                    PORT MAP(RDA,WRA,A0,A1,RDS,WRS);
-----------------------------------------------
BIT_0_U1:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(0),DATA_OUT(0),A_PIN(0) );

BIT_0_U2:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(1),DATA_OUT(1),A_PIN(1) );
                       
BIT_0_U3:ENTITY WORK.COMPLETED_A   
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(2),DATA_OUT(2),A_PIN(2) );

BIT_0_U4:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(3),DATA_OUT(3),A_PIN(3) );

BIT_0_U5:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(4),DATA_OUT(4),A_PIN(4) );

BIT_0_U6:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(5),DATA_OUT(5),A_PIN(5) );

BIT_0_U7:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(6),DATA_OUT(6),A_PIN(6) );

BIT_0_U8:ENTITY WORK.COMPLETED_A
        PORT MAP(RDS,WRS,RST,IBF,S2,S1,DATA_IN(7),DATA_OUT(7),A_PIN(7) );       
end STRUCTURAL;

 
خلاصه :

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

 


منابع :


منابع


1-     میکرو کنترلر،  نویسنده آی اسکات مکنزی

2-    ریز پردازنده Z80  ، نویسنده  باربی بری

3-    اصول طراحی VLSI   ،نویسندگان : پاکنل و اشراقیان

4-    تعدادی سایت اینتر نتی

5-    HARRIS CEMICONDUCTER

6-    IC DEVICE AND PACKAGING TECHNOLOGY TRENDS

 

 

 

 

 

طراحی سایت : سایت سازان