Բովանդակություն:
- Քայլ 1: Տեխնիկական պայմաններ
- Քայլ 2: Ամբողջ համակարգի RTL տեսք
- Քայլ 3: Փորձարկման միջավայր
- Քայլ 4: Կից ֆայլեր
Video: VHDL- ում պարզ քեշի վերահսկիչի ձևավորում. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Ես գրում եմ սա ուսանելի, որովհետև մի փոքր դժվար գտա ինչ -որ տեղեկատու VHDL կոդ ստանալ `սովորելու և քեշի վերահսկիչ նախագծելու համար: Այսպիսով, ես ինքս զրոյից նախագծեցի քեշի վերահսկիչ և այն հաջողությամբ փորձարկեցի FPGA- ի վրա: Ես այստեղ ներկայացրել եմ պարզ ուղղակի քարտեզագրված քեշի վերահսկիչ, ինչպես նաև մոդելավորել եմ մի ամբողջ պրոցեսոր-հիշողության համակարգ ՝ Cache Controller- ը փորձարկելու համար: Հուսով եմ, որ ձեզ համար այս ուսանելի ծրագիրը օգտակար կլինի որպես ձեր սեփական քեշի վերահսկիչների նախագծման հղում:
Քայլ 1: Տեխնիկական պայմաններ
Ահա Cache Controller- ի հիմնական բնութագրերը, որոնք մենք պատրաստվում ենք նախագծել.
- Ուղղակի քարտեզագրված: (անցեք այս հղումով, եթե փնտրում եք Associated Mapped Cache Controller)
- Մեկ բանկային, արգելափակող քեշ:
- Գրելու հիթեր գրելու քաղաքականություն:
- No-Write հատկացնել կամ գրել Around Policy գրառումներ բաց թողնելու վերաբերյալ:
- Ոչ գրել բուֆեր կամ այլ օպտիմալացում:
- Պիտակների զանգվածը ներառված է:
Բացի այդ, մենք նախագծելու ենք Cache Memory և հիմնական հիշողության համակարգ:
Քեշի հիշողության կանխադրված (կարգավորելի) բնութագրերը.
- 256 բայթ մեկ բանկային քեշ:
- 16 Cache տող, յուրաքանչյուր Cache Line (Block) = 16 բայթ:
Հիմնական հիշողության բնութագրերը.
- Սինխրոն ընթերցման/գրելու հիշողություն:
- Multi -banked Interleaved Memory - չորս հիշողության բանկ:
- Յուրաքանչյուր բանկի չափը = յուրաքանչյուրը 1 ԿԲ: Այսպիսով, ընդհանուր չափը = 4 կԲ:
- Word (4 բայթ) հասցեագրվող հիշողություն ՝ 10-բիթանոց հասցեի ավտոբուսով:
- Ավելի բարձր թողունակություն ՝ կարդալու համար: Կարդացեք տվյալների լայնությունը = 16 բայթ մեկ ժամացույցի ցիկլում:
- Գրեք տվյալների լայնություն = 4 բայթ:
NOTԱՆՈԹՈԹՅՈՆ. Ստուգեք իմ ավելի նոր հրահանգը, եթե դուք փնտրում եք 4-ճանապարհային ասոցիատիվ քեշի վերահսկիչի դիզայն
Քայլ 2: Ամբողջ համակարգի RTL տեսք
Վերևի մոդուլի ամբողջական RTL ներկայացումը ներկայացված է Նկարում (առանց պրոցեսորի): Ավտոբուսների կանխադրված բնութագրերն են.
- Բոլոր տվյալների ավտոբուսները 32-բիթանոց ավտոբուսներ են:
- Հասցեի ավտոբուս = 32-բիթանոց ավտոբուս (Բայց Հիշողության միջոցով այստեղ հասցեագրելի է ընդամենը 10 բիթ):
- Տվյալների արգելափակում = 128 բիթ (կարդալու համար լայն թողունակության ավտոբուս):
- Բոլոր բաղադրիչները շարժվում են նույն ժամացույցով:
Քայլ 3: Փորձարկման միջավայր
Վերևի մոդուլը փորձարկվել է Test Bench- ի միջոցով, որը պարզապես մոդելավորում է ոչ խողովակաշարային պրոցեսոր (քանի որ ամբողջ պրոցեսոր նախագծելը ամենևին էլ հեշտ չէ !!): Թեստային նստարանը հաճախակի ստեղծում է Հիշողության համար կարդալու/գրելու տվյալների պահանջներ: Սա ծաղրում է տիպիկ «Բեռնում» և «Պահել» հրահանգները, որոնք տարածված են պրոցեսորի կողմից կատարված բոլոր ծրագրերում: Թեստի արդյունքները հաջողությամբ ստուգեցին Cache Controller- ի ֆունկցիոնալությունը: Ստորև բերված են թեստերի վիճակագրությունը.
- Բոլոր կարդալ/գրել Miss և Hit ազդանշանները ճիշտ են ստեղծվել:
- Կարդալու/գրելու տվյալների բոլոր գործողությունները հաջող էին:
- Տվյալների անհամապատասխանության/անհամապատասխանության խնդիրներ չեն հայտնաբերվել:
- Դիզայնը հաջողությամբ հաստատվեց Maxm- ի համար: Clամացույց Գործողության հաճախականությունը = 110 ՄՀց Xilinx Virtex-4 ML-403 տախտակում (ամբողջ համակարգ), 195 ՄՀց միայն Cache Controller- ի համար:
- Արգելափակված RAM- ները եզրակացվեցին հիմնական հիշողության համար: Մնացած բոլոր զանգվածները կիրառվել են LUT- երի վրա:
Քայլ 4: Կից ֆայլեր
Հետևյալ ֆայլերը կցված են այստեղ այս բլոգին.
- . VHD ֆայլեր Cache Controller, Cache Data Array, Main Memory System:
- Փորձնական նստարան:
- Փաստաթղթեր Cache Controller- ի վերաբերյալ:
Նշումներ
- Անցեք փաստաթղթերը ՝ այստեղ ներկայացված Cache Controller- ի բնութագրերը լիովին հասկանալու համար:
- Կոդի ցանկացած փոփոխություն կախված է այլ մոդուլներից: Այսպիսով, փոփոխությունները պետք է արվեն խելամիտ: Ուշադրություն դարձրեք իմ տված բոլոր մեկնաբանություններին և վերնագրերին:
- Եթե ինչ -ինչ պատճառներով, հիմնական հիշողության համար արգելափակված RAM- ները չեն եզրակացվում, Նվազեցրեք հիշողության չափը, որին հաջորդում են հասցեների ավտոբուսի լայնությունների փոփոխությունները ֆայլերում և այլն: Որպեսզի նույն հիշողությունը կարող է իրականացվել կամ LUT- ներով կամ Distributed RAM- ով: Սա կփրկի երթուղու ժամանակը և ռեսուրսները: Կամ, գնացեք FPGA- ի հատուկ փաստաթղթերը և գտեք Block RAM- ի համար համատեղելի կոդը և համապատասխանաբար խմբագրեք ծածկագիրը, և օգտագործեք նույն հասցեի ավտոբուսի լայնության բնութագրերը: Նույն տեխնիկան Altera FPGA- ների համար:
Խորհուրդ ենք տալիս:
Xbox 360 անլար վերահսկիչի պատյան փոխարինելը. 15 քայլ (նկարներով)
Xbox 360 անլար վերահսկիչի պատյան փոխարինելը. Քայլ առ քայլ ուղեցույց ՝ Xbox 360 վերահսկիչի պատյանը նոր պատյանով փոխարինելու համար: Այս ձեռնարկը կարող է օգտագործվել ուսանողներին տեսախաղերի միջոցով հիմնական պատկերացում կազմելու ապարատային, էլեկտրական/համակարգչային տեխնիկայի և համակարգչային գիտության սկզբունքների մասին
Vintage Nikko R/C վերահսկիչի վերանորոգում. 5 քայլ
Vinkage Nikko R/C Controller- ի վերանորոգում. Ինձ կանչելով 11 -ամյա վշտահար պատանու կողմից, ով պատահաբար կոտրեց իր հայրիկի խաղողի մեքենայի վերահսկիչի ալեհավաքը, ես ընդունեցի այն վերանորոգելու մարտահրավերը ՝ առանց ակնհայտ դարձնելու, որ վերանորոգված է: Վիրավորող վերահսկիչի ցուցադրումը
VHDL ծրագրավորվող ընդհատումների վերահսկիչի նախագծում. 4 քայլ
VHDL- ում ծրագրավորվող ընդհատումների վերահսկիչի ձևավորում. Շնորհակալ եմ տղաներին, որ այցելեցիք իմ բլոգը և ինձ դրդեցիք կիսվել իմ գիտելիքներով ձեզ հետ: Այս անգամ, ես կներկայացնեմ մեկ այլ հետաքրքիր մոդուլի դիզայն, որը մենք տեսնում ենք բոլոր SOC- ներում `Interrupt C
VHDL- ի և Verilog- ի պարզ VGA վերահսկիչի ձևավորում. 5 քայլ
VHDL- ի և Verilog- ի պարզ VGA վերահսկիչի ձևավորում. Այս ուսանելի ծրագրում մենք պատրաստվում ենք նախագծել պարզ VGA վերահսկիչ RTL- ում: VGA Controller- ը թվային միացում է, որը նախատեսված է VGA էկրաններ վարելու համար: Այն կարդում է Frame Buffer- ից (VGA Memory), որը ներկայացնում է ցուցադրվող շրջանակը և առաջացնում անհրաժեշտություն
LED պարզ բևեռայնությունը որոշելու 5 պարզ եղանակ. 6 քայլ (նկարներով)
LED- ի բևեռականությունը որոշելու 5 պարզ եղանակ. LED- ները, հավանաբար, ամենից շատ դուր եկած տարրերն են բոլոր սկսնակների համար, գուցե նույնիսկ բոլորի համար, ովքեր ներգրավված են էլեկտրոնիկայի նախագծերում: Դրանք ճիշտ օգտագործելու ամենակարևոր գործոններից է դրանք այնպես, ինչպես պետք է կապել: Իհարկե, սովորաբար պետք է նորից օգտագործել