Բովանդակություն:
- Քայլ 1: Նյութեր
- Քայլ 2. Շրջանակային մոդուլների արգելափակման դիագրամ
- Քայլ 3: Կոդ
- Քայլ 4: Դեմո և ընտրանքային ծածկագիր
Video: Տասը բիթանոց համակարգիչ - VHDL ՝ 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Պատրաստված է ՝ Թայլեր Սթար և Էզզեդդեն Գազալի
Ներածություն
Այս նախագիծը ավարտվել է որպես Cal Poly SLO- ում CPE 133- ի վերջնական ծրագրի մի մաս: Դա հիանալի նախագիծ է մեկի համար, ով ցանկանում է հասկանալ, թե ինչպես են համակարգիչներն աշխատում իրենց ամենացածր մակարդակում և ինչպես են նրանք կատարում իրենց խնդիրները: Նախագիծը մոդելավորվել է Ալբերտ Մալվինոյի թվային համակարգչային էլեկտրոնիկա գրքում նկարագրված 8-բիթանոց SAP համակարգչի հիման վրա: Այնուամենայնիվ, մենք համակարգիչը հասցրել ենք 10 բիթի ՝ ավելի շատ op կոդերի (գործառնական կոդերի) իրականացման հնարավորություն տալու համար: Օգտագործողը կարող է համակարգչին ծրագրել մի շարք գործողություններ կատարելու միջոցով ՝ մուտքագրելով որոշակի հրահանգներ:
Համակարգի և շրջանային ճարտարապետություն
Համակարգիչը գրված է VHDL- ով և տեղադրվելու է Digilent- ի Basys 3 տախտակին: Մուտքերը քարտեզագրվելու են տախտակի ներքևի անջատիչների վրա: Վերականգնելու և գրելու գործառույթների համար կօգտագործվի երկու շոշափելի անջատիչ: Արդյունքը կցուցադրվի տախտակի 7 հատվածի էկրանին:
Համակարգիչը կքայքայվի ավելի փոքր սխեմաների (մոդուլների), որոնք կարգավորում են տարբեր գործողություններ: Յուրաքանչյուր մոդուլ մանրամասն կբացատրվի հետևյալ քայլերում:
Քայլ 1: Նյութեր
Այս նախագծի համար անհրաժեշտ է Digilent- ի Basys3 FPGA տախտակը և միկրո USB մետաղալար `տախտակը ձեր համակարգչին միացնելու համար:
Քայլ 2. Շրջանակային մոդուլների արգելափակման դիագրամ
Վերևի բլոկ-դիագրամները ցույց են տալիս 10-բիթանոց համակարգիչը կազմող տարբեր սխեմաների մոդուլներ: Ստորև բերված են վերը նշված դիագրամներում ներկայացված առանձին մասերի/մոդուլների նկարագրությունները:
Countրագրի հաշվիչ
Մուտքերի նկարագրություն. Մուտքագրումը 5 բիթանոց մուտք է `համարը ծրագրի հաշվիչում բեռնելու համար: Cp երբ բարձր հաշվիչը հաշվում է ժամացույցի եզրերի անկման վրա: Clr- ը հաշվիչը զրոյացնում է 0. Ep- ի դեպքում, երբ բարձր հաշվիչը դուրս է բերում ընթացիկ հաշվարկը: Sp երբ բարձր հաշվիչը սահմանում է թիվը մուտքագրվող թվի վրա:
-
Արդյունքների նկարագրություն.
ելքը հաշվարկի պատճեն է ՝ LEDS 0-15-ով օգտագործելու համար: Հաշվարկը թողարկում է ընթացիկ հաշվարկը:
- Ընդհանուր տեղը համակարգում. Այս հաշվիչը հետևում է ծրագրի գտնվելու վայրում գտնվող հիշողության վայրին: Բոլոր ծրագրերը սկսվում են 00000 (0) հիշողության հասցեից և բարձրանում մինչև 11111 (31), եթե դադար չի օգտագործվում: Անցման հայտարարություններում ծրագրի հաշվիչը շարունակում է հաշվել այն հասցեից, որտեղից ծրագիրը ցատկում է:
Մուտք MUX
- Մուտքերի նկարագրություն. Հասցեն վերցնում է մուտքը 11 -ից 15 -ը անջատիչներից: Controlsրագիրը վերահսկում է, թե որ մուտքն է ելք դեպի երթուղի:
- Արդյունքների նկարագրություն. Ելքը ուղղորդում է ընտրված մուտքը RAM- ին:
- Ընդհանուր տեղ համակարգում. Այս MUX- ը որոշում է, թե արդյոք անջատիչներից կամ ավտոբուսից հասցեն ուղարկել RAM: Programրագրի ռեժիմում անջատիչներից հասցեն ուղղորդվում է, իսկ գործարկման ռեժիմում `երթուղու երթուղին:
ramMUX
- Մուտքերի նկարագրություն. aRegInput- ը գրանցամատյանում պարունակվող տվյալներն են, որոնք օգտագործվում են տեղափոխման գործողության ժամանակ: Այս MUX- ի համար վերահսկիչն ընտրված է:
- Ելքների նկարագրություն. Ելքը RAM- ի 10-բիթանոց տվյալների մուտքագրումն է:
- Ընդհանուր տեղ համակարգում. Այս MUX- ը թողարկում է 10-բիթանոց մուտքային տվյալները, որոնք օգտագործվում են RAM մոդուլում: Երբ հսկիչ բիթը բարձր է, MUX- ը թողարկում է տվյալները, որոնք օգտագործողը մուտքագրել է ծրագրի ռեժիմում: Երբ հսկիչ բիթը ցածր է, MUX- ը տվյալները դուրս է բերում կառավարման ավտոբուսի վրա:
ram Մոդուլ
- Մուտքերի նկարագրություն. InputData- ն RAM- ում պահվող տվյալներն են: inputAddress- ն այն վայրն է, որտեղ տվյալները պահվում են: ծրագիրը ցույց է տալիս, արդյոք համակարգիչը գտնվում է ծրագրի կամ գործարկման ռեժիմում: readWrite- ը ցույց է տալիս ընթերցման կամ գրելու գործողություն, թե ոչ: notCE- ը RAM մոդուլի կառավարման բիթն է: move- ը ցույց է տալիս, որ շարժման գործողություն է կատարվում:
- Արդյունքների նկարագրություն. OutputDataToBus- ն այն տվյալներն են, որոնք RAM- ից անցնում են ավտոբուս: outputData և ելքային հասցեն այն տվյալները և հասցեն են, որոնք գնում են հրահանգների գրանցամատյան:
- Ընդհանուր տեղը համակարգում. RAM- ը թույլ է տալիս ծրագրի և տվյալների պահեստավորում հիշողության մեջ մինչև ծրագրի գործարկումը: Theրագիրը գործարկելուց հետո RAM- ը ստանում է հասցե MAR- ից և տվյալ հասցեով տվյալները դուրս է բերում ավտոբուս:
հասցե ROM
- Մուտքերի նկարագրություն. OpCode- ը այն մուտքն է, որը պարունակում է այն կոդի հասցեն, որը կատարվում է համակարգչի կողմից
- Ելքերի նկարագրություն. OpCodeStart- ը հիշողության հասցեն է, որը ցույց է տալիս համապատասխան opCode- ի առաջին միկրո-հրահանգի գտնվելու վայրը:
- Ընդհանուր տեղը համակարգում. Այս մոդուլը վերցնում է փակված միկրո-հրահանգը և դուրս է բերում հիշողության վայրը, որը համապատասխանում է այդ միկրո-ցուցումների հաջորդականության սկզբին:
ringCounter
- Մուտքերի նկարագրություն. Վերականգնումը հաշվիչը վերադարձնում է 100000 -ի (առաջին «T վիճակը»): Clk- ը մեկ առ մեկ ավելացնում է հաշվիչը ժամացույցի անկման եզրին: NOP- ը ցույց է տալիս, որ ընթացիկ վիճակը/ցիկլը «առանց գործողության» ցիկլ է:
- Արդյունքների նկարագրություն. Հաշվարկը հաշվիչի ելքն է:
- Ընդհանուր տեղը համակարգում. Օղակաձեւ հաշվիչը վերահսկում է նախապես կարգավորվող հաշվիչը և սահմանում վեց միկրո քայլերը յուրաքանչյուր հրահանգի ցիկլում (T1-T6):
preCounter
- Մուտքերի նկարագրություն. OpCodeStart- ը opCode- ի համար իրականացվող միկրո-հրահանգների հիշողության վայրն է: T1- ը հաշվիչը 0 -ի է վերադարձնում, երբ այն բարձր է: Երբ T3- ը բարձր է, opCodeStart- ը բեռնվում է, և հաշվարկը շարունակվում է այդ վայրից մնացած 3 ցիկլերի համար (T4-T6): Clr- ը հաշվիչ է 0 -ի դիմաց: Clk- ը մեկ առ մեկ հաշվիչ է ընկնող եզրին:
- Output- ների նկարագրություն.
- Ընդհանուր տեղը համակարգում. Յուրաքանչյուր բաց կոդ ունի 3 միկրո-հրահանգ: Առաջին 3 ցիկլերի համար հաշվիչը ավելանում է 1 -ով `սկսած 0 -ից (բերման ցիկլ): Հետո հաշվիչը գործարկվում է օղակաձև հաշվիչի կողմից `հասցեն բեռնելու համար opCodeStart- ում և ավելանում է 1 -ով` մնացած 3 ցիկլերի համար: Այս կերպ preCounter- ը վերահսկում է իրականացվելիք միկրո-հրահանգների հաջորդականությունը:
controlROM
- Մուտքերի նկարագրություն. NOP- ը նշում է, որ գտնվելու վայրը «առանց գործողության» վայր է:
- Ելքների նկարագրություն.
- Համակարգի ընդհանուր տեղ.
ALU
- Մուտքերի նկարագրություն. A և B են մուտքերը A և B գրանցամատյաններից, որոնց վրա ALU- ն կատարում է թվաբանական և տրամաբանական գործողություններ: Երբ հանումն ակտիվ է, դա ցույց է տալիս, որ B- ն հանվում է A- ից:
- Արդյունքների նկարագրություն. Արդյունքը A և B ավելացնելու կամ B- ն A.- ից հանելու արդյունքն է: Արդյունքները ավելի մեծ, քան քիչ և հավասար Նշելու համար, եթե (AB, կամ A = B) և օգտագործվում են պայմանական ցատկման մոդուլում: սխալը ցույց է տալիս արտահոսքի կամ արտահոսքի ակտիվ լինելը:
- Համակարգի ընդհանուր տեղը. ALU- ն պարունակում է համակարգչի կողմից իրականացվող թվաբանական և տրամաբանական գործողությունների տրամաբանությունը: Այս մոդուլը կարող է գումարել և հանել երկու 10-բիթանոց երկուական թվեր: ALU- ն կարող է նաև որոշել, թե A> B, A
պայմանական Jmp
- Մուտքերի նկարագրություն. InputCount- ը օգտագործվում է ընթացիկ հաշիվը փակելու համար: inputAddress- ն օգտագործվում է այն հասցեն փակելու համար, որի վրա կարելի էր անցնել: loadFromRegister երբ ցածր սողնակներ են մուտքագրում Հասցե: loadCount երբ ցածր կողպում է inputCount. երբ outputEnable- ը ցածր է, ելքը սահմանվում է հասցեով ՝ անցնելու դեպի goT, iT և eQ, թե որ պայմանն է ստուգվում: ավելի մեծ, ավելի քիչ, և հավասար ՏԵ are են ALU- ի մուտքերը, որոնք ցույց են տալիս A- ի և B- ի համեմատության արդյունքը:
- Արդյունքների նկարագրություն. OutputJmp այն հասցեն է, որտեղ ծրագրի հաշվիչը կկարդա:
- Ընդհանուր տեղ համակարգում. Այս մոդուլը կարգավորում է համակարգչի համար պայմանական և ոչ պայմանական թռիչքները: Հիմնվելով gT, iT և eQ մուտքերի վրա ՝ մոդուլը որոշում է, թե որ պայմանը ստուգել և արդյոք այդ պայմանը ճշմարիտ է կամ կեղծ: Եթե պայմանը ճշմարիտ է, այն դուրս է բերում դեպի այն անցնելու հրահանգի հասցե, հակառակ դեպքում այն դուրս է բերում հաջորդ հրահանգի հաշվարկը:
binToBCD
- Մուտքերի նկարագրություն. Համարակալեք 10 բիթանոց համարը ՝ երկուական կոդավորված տասնորդական դարձնելու համար:
- Ելքների նկարագրություն. Հարյուրավոր թվանշան երկուական թվի հարյուրավոր տեղում: տասնյակ թվանշանը երկուական թվի տասնյակ տեղում: մեկը երկնիշ թվի մեկ տեղում թվանշանն է:
- Ընդհանուր տեղը համակարգում. Այս մոդուլը 10 բիթանոց համարը փոխակերպում է ելքային գրանցամատյանից BCD- ի, որպեսզի մեր քառանիշ ցուցադրման վարորդը տասնորդական համարը ցուցադրի 7 հատվածի ցուցադրման վրա:
FourDigitDriver
- Մուտքերի նկարագրություն. Թիվը 16 բիթանոց երկուական մուտքն է, որը մղվում է դեպի ապակոդավորիչ: inClk- ը Basys- ի տախտակների ներքին ժամացույցն է և օգտագործվում է ժամացույցի բաժանարարի համար: RST- ն վերականգնում է թվերը քշելու համար օգտագործվող ժամացույցը:
- Ելքների նկարագրություն. Անոդը որոշում է, թե որ թվանշանի տեղը կլուսավորվի: թվանշանը ապակոդավորման մուտքային թիվն է:
- Ընդհանուր տեղը համակարգում. Այս մոդուլը ապակոդավորիչին մղում է BCD համարը ցուցադրել էկրանին:
ապակոդավորիչ
- Մուտքերի նկարագրություն. InputNumber- ն այն թվանշանն է, որը գալիս է վարորդից և որը վերծանվելու է:
- Ելքների նկարագրություն. Կաթոդները որոշում են, թե որ կատոդները միացված կլինեն ցանկալի թվանշանը ցուցադրելու համար:
- Ընդհանուր տեղը համակարգում. Այս մոդուլը վերծանում է այն թվանշանը, որը պետք է ցուցադրվի 7 հատվածի էկրանին:
FourDigitDisplay
- Մուտքերի նկարագրություն. Համարը այն թիվն է, որը կցուցադրվի 7 հատվածի էկրանին: սխալը ցույց է տալիս, երբ էկրանը պետք է կարդա «Err»: Clk- ը ժամացույցի ազդանշան է, որի վրա ցուցադրումը աշխատում է: Այս ազդանշանը պետք է լինի մոտ 60 Հց, որպեսզի ցուցադրումը կարողանա միաժամանակ ցույց տալ բոլոր 4 նիշանոցները:
- Ելքների նկարագրություն. Անոդը որոշում է, թե որ թվանշանի տեղն է միացված: կաթոդը որոշում է, թե որ կատոդներն են ակտիվացված ՝ ցանկալի թվանշանը ցուցադրելու համար:
- Ընդհանուր տեղը համակարգում. Այս մոդուլը ցուցադրում է թիվ 7 հատվածի էկրանին: Տե՛ս Basys 3 տախտակի հրահանգների ձեռնարկին ՝ տեղեկություններ ստանալու համար, թե որ կաթոդներն ու անոդներն են ակտիվանում ՝ էկրանն օգտագործելու համար: Երբ սխալի բիթը բարձր է, էկրանին ցուցադրվում է «Err»:
ելք MUX
- Մուտքերի նկարագրություն. ProgModeInput- ը որոշում է, թե որ ledերն են միացված ծրագրավորման ռեժիմի ընթացքում: runModeInput- ը որոշում է, թե որ led- երն են միացված գործարկման ռեժիմի ընթացքում: modeSelect- ը MUX- ի ընտրված կամ կառավարման բիթն է:
- Ելքների նկարագրություն. LedOutput- ը ցույց է տալիս, թե որ led- երը կմիացվեն:
- Համակարգի ընդհանուր տեղը. Կախված համակարգչի ռեժիմից (ծրագիր կամ ռոմ), MUX- ը միացնելու է տարբեր լուսադիոդներ: Programրագրի ռեժիմում (ռեժիմի ընտրությունը '0' է), MUX- ը միացնում է լուսադիոդները `հիշեցնելու այն հիշողության վայրը, որտեղ գտնվում է համակարգիչը և այն, ինչ այն պարունակում է: Գործարկման ռեժիմում (modeSelect- ը '1' է), MUX- ը օգտագործվում է վրիպազերծման համար, բայց կարող է սահմանվել որևէ այլ բան ցուցադրելու համար:
ժամացույցի բաժանում
- Մուտքերի նկարագրություն. Կանգառը կարդում է ավտոբուսից հինգ MSB բիթ ՝ կանգառի հրամանը հայտնաբերելու համար («11111») և կանգնեցնում ժամացույցը: inputClk- ը Basys 3 տախտակի ներքին ժամացույցի ազդանշանն է:
- Արդյունքների նկարագրություն. OuputClk- ը դանդաղեցված նոր ժամացույցն է:
- Ընդհանուր տեղը համակարգում. Այս ժամացույցը օգտագործվում է համակարգիչը դանդաղեցնելու համար, որպեսզի օգտագործողը հնարավորություն տա որոշելու, թե ինչ է կատարվում: Theամացույցը կարող է շատ ավելի արագ աշխատել, այնուամենայնիվ, այն ներկայումս սահմանված է 2 Հց:
triStateBuffer
- Մուտքերի նկարագրությունը. Din- ը բուֆերի մեջ մտնող 5 բիթանոց մուտքագրումն է: Ep- ը վերահսկման բիթն է:
- Արդյունքների նկարագրություն. Dout- ը բուֆերի 5 բիթանոց ելքն է
- Ընդհանուր տեղը համակարգում. Երբ վերահսկիչ բիթը ակտիվ է, բուֆերը թողարկում է մուտքը: Երբ հսկիչ բիթը ակտիվ չէ, բուֆերը ոչինչ չի թողնում:
tenBitDRegister
- Մուտքերի նկարագրություն. Dbus- ը մուտքն է, որին պետք է գրանցամատյանը: Clk- ն թույլ է տալիս ռեգիստրին կարդալ ժամացույցի աճող եզրին գտնվող տվյալները: ARST- ը գրանցամատյանը 0 է սահմանում ասինքրոն: Երբ outputEnable- ը ցածր է, գրանցամատյանի բովանդակությունը ելք է: Երբ readIn- ը ցածր է, գրանցամատյանը ամրացնում է Dbus- ը ժամացույցի բարձրացող եզրին:
- Արդյունքների նկարագրություն. Qbus- ը գրանցամատյանի արդյունքն է
- Ընդհանուր տեղ համակարգում. Գրանցամատյանը մի քանի անգամ օգտագործվում է ամբողջ համակարգչում և օգտագործվում է տեղեկատվություն պահելու համար գործողություններ կատարելիս:
fiveBitDRegister
- Մուտքերի նկարագրություն. Dbus- ը մուտքն է, որին պետք է գրանցամատյանը: Clk- ն թույլ է տալիս ռեգիստրին ընթերցել ժամացույցի աճող եզրին գտնվող տվյալները: ARST- ը գրանցամատյանը 0 է սահմանում ասինքրոն: Երբ outputEnable- ը ցածր է, գրանցամատյանի բովանդակությունը ելք է: Երբ readIn- ը ցածր է, գրանցամատյանը ամրացնում է Dbus- ը ժամացույցի բարձրացող եզրին:
- Արդյունքների նկարագրություն. Qbus- ը գրանցամատյանի արդյունքն է:
- Ընդհանուր տեղ համակարգում. Գրանցամատյանը մի քանի անգամ օգտագործվում է ամբողջ համակարգչում և օգտագործվում է տեղեկատվություն պահելու համար գործողություններ կատարելիս:
Քայլ 3: Կոդ
Ստորև բերված է մի թղթապանակ, որը պարունակում է 10-բիթանոց համակարգչի սահմանափակումներն ու աղբյուրները:
Քայլ 4: Դեմո և ընտրանքային ծածկագիր
Վերոնշյալ տեսանյութը ցույց է տալիս, թե ինչպես ծրագրավորել 10-բիթանոց համակարգիչը Basys 3 FPGA տախտակին: Ստորև կցվում է նաև op- կոդերը պարունակող PDF ֆայլ և օրինակելի ծրագիր:
Խորհուրդ ենք տալիս:
4-բիթանոց երկուական հաշվիչ. 11 քայլ (նկարներով)
4-բիթանոց երկուական հաշվիչ. Ես հետաքրքրություն առաջացրի հիմնարար մակարդակում համակարգիչների աշխատանքի եղանակի նկատմամբ: Ես ուզում էի հասկանալ առանձին բաղադրիչների և սխեմաների օգտագործումը, որոնք անհրաժեշտ են ավելի բարդ առաջադրանքներ կատարելու համար: Պրոցեսորի հիմնական կարևոր բաղադրիչներից մեկը
Atmega16 ինտերֆեյս LCD- ի հետ 4 բիթանոց ռեժիմում (Proteus Simulation) ՝ 5 քայլ
Atmega16 ինտերֆեյս LCD- ի հետ 4 բիթանոց ռեժիմում (Proteus Simulation). Այստեղ այս ձեռնարկում մենք ձեզ կասենք, թե ինչպես կարող եք միացնել atmega16 միկրոկոնտրոլերը 16*2 LCD- ով 4 բիթանոց ռեժիմում:
Թվային արդյունքների ցուցադրման 4-բիթանոց միացում `9 քայլ
Թվային արդյունքների ցուցադրմամբ 4-բիթանոց միացման շրջան. Սա պարզ նախագիծ է, որը բացատրում է, թե ինչպես կարելի է կառուցել 4-բիթանոց միացում (4-բիթանոց հաշվիչ), որը կազմված է յոթ հատվածի էկրաններից, յոթ հատվածի վարորդներից, AND, OR, NOT, և EXOR դարպասներ, որոնք գումարում են երկու 4-բիթանոց թվեր և վերադարձնում արդյունքները: Այն
Տեղադրեք .NET Framework 1.0 64-բիթանոց Windows- ում ՝ 8 քայլ
Տեղադրեք. NET Framework 1.0 64-բիթանոց Windows- ում. Յուրաքանչյուրը, ով երբևէ փորձել է տեղադրել 64-բիթանոց Windows- ի NET Framework 1.0 տարբերակը, հավանաբար, սխալ է բախվել ՝ ասելով, որ այն չի աշխատի 64-բիթանոց Windows- ում: . Այնուամենայնիվ, կա լուծում: ՈOTՇԱԴՐՈԹՅՈՆ. Microsoft- ը չի աջակցում
8-բիթանոց համակարգիչ Breadboard- ի ակնարկ. 3 քայլ
8-բիթանոց համակարգիչ գրատախտակի ակնարկ. Այս նախագծի նպատակն էր համակարգչային ճարտարապետության, ապարատային դիզայնի և հավաքման մակարդակի լեզուների ավելի լավ պատկերացում կազմել: Լինելով կրտսեր համալսարանում ՝ սովորելով համակարգչային տեխնիկա, ես վերջերս ավարտել էի էլեկտրոնիկայի, լաբորատորիաների դասընթացներ