Trộn lẫn thành phần Hardware và Software (Phần 5)
Bạn đang xem tài liệu "Trộn lẫn thành phần Hardware và Software (Phần 5)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- tron_lan_thanh_phan_hardware_va_software_phan_5.pdf
Nội dung text: Trộn lẫn thành phần Hardware và Software (Phần 5)
- http:// www.diachiweb.com hardware graph Silage code generation (ptolemy) Silage code Highlevel hardware synthesis (hyper) Datapath and controller Hình 16 toång hôïp hardware cho moät node ñôn Hình 17 trình baøy moät xích toång hôïp hardware ,ví duï ôû node thöù 5 laø boä loïc ,ñaëc taû möùc coâng vieäc duøng PTOLEMY ,giaû thieát node ñöôïc aùnh xaï sang hardware . Chuùng ta quan taâm ñeán toång hôïp nhöõng hieän thöïc cuûa noù . Hình 17b trình baøy ñaëc taû kieán truùc heä thoáng cuûa node , biqual ñaàu tieân ñöôïc moâ taû baèng nhöõng taùc vuï nguyeân toá vaø biqual thöù 2 thì ñöôïc coâng nhaän nguyeân khoái (hình 17c) trình baøy ñoà thò hardware cho node . Moãi node con chöùa code SILAGE . Moät chöông trình ñôn SILAGE ñöôïc phaùt sinh bôûi toå hôïp nhöõng moâ taû SILAGE cuûa nhöõng node con rieâng reõ trong ñoà thò hardware . Code SILAGE phaùt sinh cho node IIR ôû hình 17e .Söû duïng hyper phaùt sinh hieän thöïc cuoái cuøng ,hình 17f trình baøy sô ñoà cuoái cuøng cuûa datapath vaø controller cho boä loïc IIR . 3.3. Toång hôïp software : Vaán ñeà toång hôïp software laø phaùt sinh moät hieän thöïc software (chöông trình chaïy treân boä xöû lyù laäp trình ñöôïc ) ñaùp öùng cho moät ñoà thò software . Maëc duø kyõ thuaät toång hôïp software ñöôïc moâ taû ôû ñaây ñöôïc öùng duïng cho baát kyø boä xöû lyù naøo ,nhöng chæ trình baøy boä xöû lyù Motorola DSP 56000 . Ñoà thò software bao goàm taát caû nhöõng node aùnh xaï ñeán software , ñöôïc gia toá theâm node nhaän vaø göûi cho truyeàn nhaän . Nhöõng node trong ñoà thò naày bao goàm moät kyõ thuaät tieâu bieåu coù nghóa moät codeblock ñaïi dieän cho chöùc naêng cuûa node . Cô sôû quaù trình toång hôïp software bao goàm lieân keát nhöõng codeblock naày vôùi nhau phaùt sinh chöông trình ñôn cho toaøn boä ñoà thò software . Ñeå duy trì chöùc naêng cuûa heä thoáng nhöõng codeblock caàn ñöôïc ñaët lieân tuïc tuaàn töï vôùi nhau theo thöù töï phaùt sinh bôûi coâng cuï phaân chia ôû caùc node trong DAG , noù khoâng chöùa baát kyø thoâng tin trình töï cuûa node con beân trong heä thoáng phaân caáp seõ ñöôïc thöïc thi . Ñaàu tieân caàn xaùc
- http:// www.diachiweb.com ñònh thöù töï tröôùc khi noái keát caùc codeblock laïi vôùi nhau . Trình töï ñöôïc phaùt sinh baèng moät danh saùch chuaån duøng PTOLEMY . thöù töï nhöõng node trong ñoà thò software ñöôïc caäp nhaät laïi söû duïng trình töï naày . Thöù töï chung cuoái cuøng ñöôïc laøm phaúng ,töøng phaàn code ñöôïc noái vôùi nhau theo thöù töï cuûa ñoà thò laøm phaúng . Code cuûa node send goàm moät leänh ‘write’ noù ghi keát quaû phaùt sinh bôûi node noái ñaàu vaøo cuûa noù ñeán boä nhôù cuïc boä gaùn vôùi cung ñaàu vaøo cuûa noù ,töông töï node receive bao goàm moät leänh ‘read’ ñoïc töø boä nhôù cuïc boä gaùn ñeán cung ñaàu ra cuûa noù . Saûn phaåm cuoái cuøng laø moät chöông trình ñaùp öùng cho ñoà thò software .Hình 18 toùm taét toång hôïp software Software graph ordering -shedule each hierarchical node -expand each hierachical node according to its schedule -update ordering to get flattened ordering Flattened software graph and its ordering - Generate code for flattened software graph - add initialization code - add communication code - stitch code blocks together according to ordering (CG56 code generation mechanism in Ptolemy) Program Hình 18 toång hôïp software töø software graph 3.4. Toång hôïp giao dieän : Toång hôïp giao dieän bao goàm toång hôïp boä ñieàu khieån chung nhö nhöõng maïch logic giao tieáp . Moät maùy traïng thaùi höõu haïn moâ taû cho boä ñieàu khieån chung coù theå phaùt sinh duøng thöù töï truyeàn .Moät hieän thöïc cho boä ñieàu khieån coù theå ñöôïc toång hôïp nhôø söû duïng coâng cuï toång hôïp logic ,nhöõng maïch caøi vaø nhöõng ñöôøng keát noái khaùc bao quanh moñun hardware coù theå ñöôïc toång hôïp duøng 1 Template based approach ,höôùng naày do SUN ñeà nghò . Ñoà thò giao tieáp coù theå duøng ñeå sinh ra sô ñoà noái daây cho nhöõng moñun hardware khaùc nhau . Hieän nay toång hôïp giao dieän ñöôïc laøm baèng tay , maëc duø coù höôùng lieân heä ñeán töï ñoäng hoùa . 3.CAÙC YEÁU TOÁ CÔ SÔÛ CUÛA NGOÂN NGÖÛ VHDL. Phaàn naøy moâ taû nhöõng phaàn töû cô baûn cuûa ngoân ngöõ. Nhöõng ñoái töôïng döõ lieäu ñöa vaøo chöùa giaù trò cuûa kieåu ñaõ qui ñònh, caùc haèng,caùc toaùn töû. Moãi ñoái töôïng döõ lieäu phuï thuoäc vaøo kieåu ñaëc tröng .Phaân loaïi bieán vaø cuù phaùp cho nhöõng kieåu ñaëc tröng do ngöôøi söû duïng ñaët ra .phaàn naøy cuõng moâ taû phöông phaùp laøm theá naøo ñeå keát hôïp kieåu vôùi ñoái töôïng baèng caùch söû duïng nhöõng khai baùo ñoái töôïng Moät vieäc raát quan troïng laø hieåu ñöôïc nhöõng löu yù veà kieåu döõ lieäu vaø ñoái töôïng khi VHDL laø ngoân ngöõ coù kieåu trong saùng (strongly typed language).Coù nghóa laø nhöõng toaùn töû vaø nhöõng pheùp gaùn ñöôïc cho pheùp trong ngoân ngöõ neáu kieåu cuûa toaùn haïng vaø keát quaû tính toaùn theo
- http:// www.diachiweb.com nhöõng qui taéc ,noù khoâng cho pheùp ñoái töôïng vaø literals cuûa nhöõng kieåu khaùc nhau ñöôïc troän laãn töï do trong söï roû raøng (expresssion),thí duï theâm giaù trò real vaøo 1 giaù trò integer vaø qui 1 giaù trò boolean cho moät ñoái töôïng kieåu BIT .Vì theá cho neân raát quan troïng ñeå hieåu laø kieåu naøo vaø laøm theá naøo ñeå söû duïng chính xaùc trong ngoân ngöõ . 1.1 .VHDL LAØ GÌ ? VHDL laø kí töï ñaàu cuûa VHSIC Hardware Description Language trong ñoù VHSIC laø Very High Speed Integrated Circuits . Ñoù laø ngoân ngöõ moâ taû phaàn cöùng coù theå söû duïng ñeå moâ hình heä thoáng digital ôû nhieàu möùc tröøu töôïng(abstraction): töø thuaät toaùn ñeán coång logic(gate) . Söï phöùc taïp cuûa heä thoáng digital ñöôïc moâ hình bieán ñoåi töø coång ñôn giaûn ñeán heä thoáng digital phöùc taïp . Heä thoáng digital cuõng coù theå moâ taû 1 caùch thöù töï , moâ hình phoái hôïp thôøi gian cuõng roû raøng trong caùcï ñaëc taû . Ngoân ngöõ VHDL coù theå xem nhö söï tích hôïp cuûa nhieàu ngoân ngöõ sau : Sequential language(tuaàu töï) + Cuncurrent language(ñoàng thôøi) + Net_list language + Timing specification(ñaëc taû thôøi gian) + Waveform generation language => VHDL Do ñoù ngoân ngöõ coù nhöõng caáu truùc cho pheùp bieåu dieãn haønh vi ñoàng thôøi hoaëc tuaàn töï cuûa heä thoáng digital vôùi söï phoái hôïp thôøi gian hay khoâng, noù cuõng cho pheùp moâ hình heä thoáng nhö laø söï keát noái caùc thaønh phaàn(Component).Kieåm tra caùc daïng soùng(test wareforms) cuûng ñöôïc phaùt sinh söû duïng veû daïng soùng cho nhöõng caáu truùc töông töï . Ngoân ngöõ khoâng chæ ñònh nghóa cuù phaùp maø coøn ñònh nghóa raát roû raøng nhöõng ngöõ nghóa moâ phoûng cho moãi caáu truùc ngoân ngöõ . Do ñoù caùc moâ hình ñaõ vieát trong ngoân ngöõ coù theå kieåm tra baèng caùch söû duïng boä moâ phoûng VHDL . Noù thöøa keá neùt ñaëc tröng ngoân ngöõ tuaàn töï. 1.2 LÒCH SÖÛ : Do nhu caàu ñoøi hoûi , ngoân ngöõ ra ñôøi ñaàu tieân naêm 1981 vôùi chöông trình VHSIS . Trong chöông trình naøy , 1 soá caùc coâng ty cuûa U.S lieân keát vôùi nhau trong vieäc thieát keá caùc chip VHSIC cho DoD ( Department of Defense ). ÔÛ thôøi gian ñoù , nhieàu coâng ty söû duïng ngoân ngöõ moâ taû phaàn cöùng khaùc nhau ñeå moâ taû vaø phaùt trieån chuùng thaønh nhöõng IC(integrated circuits) . Keát quaû laø caùc vendor(taïm dòch: ngöôøi cung caáp) khaùc nhau (coù theå khoâng hieäu quaû) trao ñoåi thieát keá cuûa hoï vôùi moät thieát keá khaùc,vaø cung caáp cho DoD söï moâ taû caùc chip trong nhöõng ngoân ngöõ moâ taû phaàn cöùng khaùc nhau . Nhö vaäy caàn phaûi coù moät ngoân ngöõ moâ taû phaàn cöùng chuaån cho vieäc thieát keá , soaïn thaûo vaø kieåm tra heä thoáng digital ñöôïc taïo ra. Moät nhoùm goàm 3 coâng ty: IBM , Texas Istrument vaø Intermetrics , ñaàu tieân ñöôïc DoD quyeát ñònh hôïp ñoàng ñeå phaùt trieån moät version cuûa ngoân ngöõ trong naêm 1983 . Version 7.2 cuûa VHDL ñöôïc phaùt trieån vaø ñöôïc phaùt haønh coâng khai naêm 1985.Töø naêm 1986 ngoân ngöõ ñaõ chuyeån sang chuaån IEEE . Sau khi ngoân ngöõ ñaõ naâng cao bôûi moät nhoùm ñaïi dieän ngaønh coâng nghieäp , tröôøng ñaïi hoïc vaø DoD , ngoân ngöõ ñöôïc chuaån hoùa bôûi IEEE vaøo thaùng 12 naêm 1987 , version naøy ñöôïc bieát nhö laø chuaån 1076-1987 cuûa IEEE . Moâ taû ngoân ngöõ chính thöùc xuaát hieän trong chuaån IEEE cuûa ngoân ngöõ VHDL Referent Manual , töø ñoù ngoân ngöõ ñöôïc coâng nhaän nhö chuaån ANSI ( American National Standard Institute ) . Theo caùc qui taéc IEEE , cöù 5 naêm 1 laàn seõ boû phieáu xem coù neân giöõ laïi chuaån ñoù hay khoâng . Do ñoù ngoân ngöõ luoân ñöôïc naâng caáp vôùi neùt ñaëc tröng môùi , cuù phaùp cuûa nhieàu caáu truùc phuø
- http:// www.diachiweb.com hôïp hôn , nhieàu vaán ñeà khoâng roõ raøng trong version 1987 cuûa ngoân ngöõ ñöôïc giaûi quyeát , version môùi naøy xem nhö laø chuaån IEEE 1076-1993 . Töø thaùng 9 naêm 1988 DoD yeâu caàu taát caû ASIC (Application Specific Intergrated Circuit) cung caáp phaûi thuyeát trình ñaëc taû VHDL vaø caùc thaønh phaàn cô sôû (subcomponents) ôû möùc ñoä haønh vi laãn caáu truùc ,test benches ñöôïc söû duïng ñeå kieåm tra caùc chip cuõng phaûi thuyeát trình ,söï taäp hôïp cuûa nhöõng yeâu caàu ñöôïc moâ taû trong chuaån Military 454. Töø naêm 1987 , goùi chuaån(package standard) ra ñôøi trôï giuùp cho caùc moâ hình. Ñieàu naøy coù ñöôïc bôûi vì caùc ngöôøi cung caáp(vendor) CAE khaùc nhau ( computer aided engineering ) ñöôïc söï trôï giuùp cuûa caùc goùi khaùc nhau treân caùc heä thoáng cuûa chuùng , caàn phaûi coù 1 baøi toaùn xöû lyù trung gian . Moät soá tieâu chuaån logic söû duïng tieâu chuaån 46 ,tieâu chuaån 7 ,tieâu chuaån 4 . Taäp hôïp caùc tieâu chuaån treân phaùt trieån thaønh 1 goùi tieâu chuaån 9 . Goùi naøy ñöôïc goïi laø STD_LOGIC_1164 , ñöôïc ñöa vaøo chuaån IEEE 1164-1993 . 1.3 CAÙC CHÖÙC NAÊNG : Sau ñaây laø caùc chöùc naêng chuû yeáu maø ngoân ngöõ cung caáp ñi ñoâi vôùi nhöõng ñieåm ñaëc tröng töø caùc ngoân ngöõ moâ taû phaàn cöùng khaùc nhau . • Ngoân ngöõ coù theå xem nhö laø nôi trao ñoåi trung gian giöõa caùc ngöôøi cung caáp (vendor) chip vaø ngöôøi söû duïng coâng cuï CAD . Caùc ngöôøi cung caáp(vendor) chip khaùc nhau coù theå cung caáp nhöõng moâ taû VHDL vôùi caùc thaønh phaàn cuûa noù cho ngöôøi thieát keá heä thoáng . Ngöôøi söû duïng coâng cuï CAD coù theå söû duïng noù ñeå naém baét caùc haønh vi cuûa thieát keá taïi möùc cao cuûa söï tröøu töôïng chöùc naêng moâ phoûng . • Ngoân ngöõ coù theå söû duïng truyeàn nhaän trung gian giöõa caùc coâng cuï CAD vaø caùc CAE khaùc nhau . Ví duï , löôïc ñoà cuûa chöông trình coù theå söû duïng ñeå phaùt sinh moâ taû thieát keá VHDL , coù theå söû duïng chuùng nhö laø input cho quaù trình moâ phoûng . • Ngoân ngöõ hoå trôï cho kieán truùc hoån hôïp thöù baäc , 1 heä thoáng digital coù theå hieåu nhö laø taäp hôïp caùc thaønh phaàn keát noái vôùi nhau, moãi 1 thaønh phaàn laïi coù theå hieåu nhö taäp hôïp cuûa caùc thaønh phaàn con keát noái laïi . • Ngoân ngöõ hoå trôï phöông phaùp thieát keá linh ñoäng töø treân xuoáng , töø döôùi leân hoaëc hoãn hôïp (top-down.bottom-up,mixed). • Ngoân ngöõ khoâng phaûi laø coâng ngheä ñaëc bieät , nhöng noù coù khaû naêng hoå trôï caùc coâng ngheä ñaëc bieät ñoù . Noù coù theå hoå trôï cho caùc kyû thuaät phaàn cöùng khaùc nhau , ví duï coù theå ñònh nghóa caùc kieåu logic môùi vaø caùc thaønh phaàn môùi , ta coù theå xaùc ñònh roû caùc tính chaát cuûa kyû thuaät ñaëc tröng ,bôûi vì noù laø kyû thuaät ñoäc laäp. Caùc kieåu gioáng nhau coù theå toång hôïp ñöa vaøo caùc thö vieän khaùc nhau. • Noù hoå trôï cho caû hai moâ hình thôøi gian ñoàng boä vaø khoâng ñoàng boä • Co ùcaùc kyû thuaät moâ hình digital khaùc nhau ,nhö laø caùc moâ taû maùy traïng thaùi (finite-state machine) , caùc moâ taû tính toaùn soá hoïc, vaø caùc phöông trình boolean ñeàu coù theå ñöôïc moâ hình khi söû duïng ngoân ngöõ . • Ngoân ngöõ coù theå duøng 1 caùch coâng khai , coù theå ñoïc ñöôïc bôûi ngöôøi , bôûi maùy moùc vaø treân taát caû laø noù khoâng coù ngöôøi sôû höõu . • Noù laø chuaån IEEE vaø ANSI , do ñoù caùc kieåu moâ hình söû duïng cho ngoân ngöõ naøy ñöôïc linh ñoäng . Caàn quan taâm nhieàu hôn trong vieäc baûo trì chuaån ñaõ thu ñöôïc vaø töø töø coù theå hình thaønh chuaån thöù hai . • Ngoân ngöõ hoå trôï cho 3 loaïi moâ taû cô baûn khaùc nhau : caáu truùc , doøng döõ lieäu vaø haønh vi . Moät thieát keá coù theå ñöôïc bieåu dieãn trong söï keát hôïp cuûa caùc loaïi moâ taû treân. • Noù hoå trôï caùc möùc ñoä tröuø töôïng , töø yù töôûng moâ taû haønh vi tôùi moâ taû chính xaùc caùc coång logic.
- http:// www.diachiweb.com • Tuøy kích thöôùc cuûa thieát keá coù theå ñöôïc moâ hình söû duïng ngoân ngöõ vaø chuùng khoâng bò haïn cheá bôûi kích thöôùc cuûa thieát keá . • Ngoân ngöõ coù nhieàu thaønh phaàn laøm thieát keá moät caùch deå daøng ví duï caùc component , caùc function , caùc procedure vaø caùc package . • Test benches coù theå ñöôïc vieát ñeå kieåm tra caùc moâ hình VHDL . • Hoå trôï veà thôøi gian delay do söï truyeàn nhaän,thôøi gian raøng buoäc,moâ taû thôøi gian moät caùch töï nhieân. • Nhöõng thuoäc tính chung vaø rieâng(generics and attribute) ñöôïc duøng trong moâ taû caùc thieát keá theo tham soá . • Moät moâ hình khoâng nhöõng moâ taû haøm thieát keá maø coøn coù theå chöùa caùc thoâng tin xung quanh baûn thieát keá trong phaïm vi söû duïng ñònh nghóa attribute , chaúng haïn nhö toång dieän tích vaø toác ñoä . • Moät ngoân ngöõ coù theå söû duïng moâ taû thö vieän caùc thaønh phaàn töø caùc vendor khaùc nhau . Töø caùc coâng cuï ñoù seõ khoâng khoù khaên trong vieäc hieåu caùc kieåu VHDL trong vieäc ñoïc caùc moâ hình töø nhöõng traïng thaùi khaùc nhau cuûa vendor töø ngoân ngöõ chuaån . • Caùc moâ hình vieát trong ngoân ngöõ naøy coù theå kieåm tra baèng vieäc moâ phoûng töø nhöõng ngöõ nghóa moâ phoûng ñaõ ñònh nghóa chính xaùc cho moãi caáu truùc cuûa ngoân ngöõ . • Caùc moâ hình haønh vi thích öùng vôùi loaïi moâ taû toång hôïp , laø khaû naêng toång hôïp caùc moâ taû coång logic . • Khaû naêng ñònh nghóa caùc kieåu döõ lieäu môùi cung caáp khaû naêng moâ taû vaø moâ phoûng kyû thuaät thieát keá môùi ôû möùc cao cuûa yù töôûng trong vieäc thöïc thi moät caùch chi tieát. 1.4 YÙ TÖÔÛNG PHAÀN CÖÙNG : VHDL ñöôïc söû duïng ñeå moâ taû cho moâ hình cuûa thieát bò phaàn cöùng digital(digital hardware device) .Moâ hình naøy chæ roû caùch nhìn beân ngoaøi cuûa thieát bò vaø 1 hoaëc nhieàu caùch nhìn beân trong . Caùch nhìn beân trong cuûa thieát bò chæ roû theo chöùc naêng hay caáu truùc , trong khi caùch nhìn beân ngoaøi chæ roû caùc giao tieáp cuûa thieát bò qua söï keát noái vôùi caùc moâ hình khaùc trong moâi tröôøng cuûa noù . Hình 1 cho xem thieát bò phaàn cöùng vaø moâ hình phaàn meàm töông öùng . Töø thieát bò(device) tôùi moâ hình thieát bò ñöôïc aùnh xaï 1-nhieàu . Ñuùng vaäy , 1 thieát bò phaàn cöùng coù theå coù nhieàu moâ hình , ví duï 1 moâ hình thieát bò ôû möùc cao cuûa söï tröøu töôïng coù theå khoâng coù caùc xung clock ôû ñaàu vaøo , töø ñoù xung clock khoâng söû duïng trong vieäc moâ taû . Ngoaøi ra data truyeàn ôû giao tieáp beà maët coù theå xem nhö bò giôùi haïn , giaù trò integer thay theá cho trò logic . Trong VHDL , moãi moâ hình thieát bò ñöôïc xem nhö söï moâ taû rieâng bieät cuûa 1 thieát bò duy nhaát , goïi laø entity . Hình 2 VHDL moâ taû thieát bò phaàn cöùng coù caùc moâ hình ña thieát bò , vôùi moãi moät moâ hình thieát bò ñöôïc moâ taû bôûi moät thöïc theå .
- http:// www.diachiweb.com Digital system Device External view Model Device model Internal views Hình 1 : Device versus device model Actual hardware VHDL view Entity 1 Device model 1 Device Entity 2 Device model 2 Entity N Device model N Hình 2 : VHDL view of a device Thöïc theå laø söï tröøu töôïng phaàn cöùng(hardware abstraction) cuûa thieát bò phaàn cöùng thöïc teá . Moãi moät thöïc theå ñöôïc moâ taû söû duïng 1 moâ hình , bao goàm 1 caùch nhìn beân ngoaøi vaø 1 hoaëc nhieàu caùch nhìn beân trong taïi 1 thôøi ñieåm , 1 thieát bò phaàn cöùng coù theå moâ taû baèng 1 hoaëc nhieàu thöïc theå 2.1 .THUAÄT NGÖÕ CÔ BAÛN: VHDL laø ngoân ngöõ moâ taû phaàn cöùng ,coù theå söû duïng cho moâ hình heä thoáng tín hieäu soá .Heä thoáng tín hieäu soá coù theå ñôn giaûn laø coång logic hoaëc phöùc taïp laø heä thoáng ñieän töû toång hôïp . Moät söï tröøu töôïng cuûa heä thoáng tín hieäu naøy goïi laø moät thöïc theå ,moät thöïc theå X, khi söû duïng trong thöïc theå khaùc Y thì noù laø moät thaønh phaàn cho thöïc theå Y .Do ñoù moät thaønh phaàn ngoaøi thöïc theå cuûa noù coøn leä thuoäc vaøo thöïc theå khaùc. Ñoái vôùi moâ taû moät thöïc theå , VHDL cung caáp 5 kieåu khaùc nhau cuûa thieát keá nguyeân thuûy , goïi laø design units .Bao goàm: 1. Entity declaration. 2. Architecture body. 3. Configuration declaration.
- http:// www.diachiweb.com 4. Package declaration. 5. Package body. Moät thöïc theå ñöôïc moâ hình söû duïng moät khai baùo thöïc theå vaø toái thieåu phaûi coù moät phaàn thaân architecture . Söï khai baùo thöïc theå moâ taû caùch nhìn beân ngoaøi cuûa thöïc theå ( ví duï: port vaøo vaø port ra tín hieäu) . Thaân cuûa architecture bao haøm vieäc moâ taû beân trong cuûa moät thöïc theå , moät taäp hôïp cuûa caùc thaønh phaàn keát noái laø bieåu hieän caáu truùc cuûa thöïc theå ñoù , hoaëc laø taäp hôïp caùc phaùt bieåu ñoàng thôøi hoaëc tuaàn töï bieåu hieän haønh vi cuûa thöïc theå ñoù . Moãi caùch cuûa söï bieåu hieän ñöôïc xaùc ñònh trong caùc thaân architecture khaùc nhau hoaëc troän laån vôùi moät kieán truùc ñôn . Hình 3 chæ ra moät thöïc theå vaø moät moâ hình coù theå . Entity declarattion Entity Hardware abstraction of a digital system Architecture bodies Hình 3: An entity and its model Moät khai baùo ñònh daïng(A configuration declaration) söû duïng cho vieäc taïo ñònh daïng cho thöïc theå .noù moâ taû söï lieân keát cho moät thaân kieán truùc töø nhieàu thaân kieán truùc coù theå lieân keát vôùi thöïc theå ñoù , noù cuõng coù theå lieân keát caùc thaønh phaàn(component) ñöôïc söû duïng trong thaân kieán truùc töø thöïc theå khaùc . Moät thöïc theå coù theå coù nhieàu ñònh daïng khaùc nhau. Moät khai baùo goùi(a package declaration) laø taäp hôïp caùc khai baùo lieân heä tôùi , nhö laø khai baùo kieåu , khai baùo kieåu con vaø khai baùo chöông trình con , ñöôïc duøng chung cho nhieàu ñôn vò thieát keá .Thaân goùi bao haøm ñònh nghóa cuûa khai baùo chöông trình con beân trong khai baùo goùi. Thöïc theå ñöôïc moâ hình hoaù chæ moät laàn vaø coù hieäu löïc qua heä thoáng VHDL . heä thoáng kieåu maåu VHDL goàm boä phaân tích vaø boä moâ phoûng .Phaân tích laø ñoïc moät hay nhieàu baûn thieát keá bao goàm file goác vaø file ñaõ bieân dòch töø thö vieän thieát keá chuùng , sau ñoù kieåm tra loãi chính taû vaø ngöõ nghóa . Thö vieän thieát keá laø moâi tröôøng hoå trôï cho heä thoáng VHDL , taïi ñaây löu tröõ caùc baûn thieát keá ñaõ bieân dòch .Quaù trình moâ phoûng laø moâ phoûng moät thöïc theå ñöôïc ñaïi dieän bôûi entity- architecture , hoaëc configuration ñang ñöôïc ñoïc baûn bieân dòch töø thö vieän thieát keá,quaù trình thöïc hieän bao goàm caùc böôùc sau : 1- Elaboration ( chi tieát hoaù ) 2- Initialization (maõ hoaù ) 3- Simulation (moâ phoûng ) Veà ngöõ phaùp cuûa ngoân ngöõ , noù khoâng phaân bieät ñaâu laø chöõ thöôøng , chöõ hoa , xöû lyù nhö nhau .Lôøi bình giaûng ñöôïc ñaët sau hai daáu gaïch noái (-) vaø keát thuùc baèng daáu chaám (.) 2 2 KHAI BAÙO THÖÏC THEÅ Khai baùo thöïc theå laø xaùc ñònh teân cuûa thöïc theå , taäp hôïp caùc coång giao tieáp . (ports) laø nôi caùc tín hieâu ñi qua , thöïc theå coù theå trao ñoåi thoâng tin vôùi caùc moâ hình khaùc ôû moâi tröôøng beân ngoaøi . Ví duï:
- http:// www.diachiweb.com entity HALF_ADDER is port (A,B:in BIT; SUM, CARRY : out BIT ); end HALF_ADDER; Töø ví duï treân , ta thaáy khai baùo thöïc theå khoâng xaùc ñònh ñöôïc nhöõng vaán ñeà beân trong thöïc theå , chæ khai baùo teân vaø caùc coång giao tieáp cuûa thöïc theå . 2.3 THAÂN KIEÁN TRUÙC Chi tieát beân trong cuûa moät thöïc theå ñöôïc xaùc ñònh bôûi thaân cuûa architecture söû duïng moät vaøi moâ hình ñaëc tröng sau : 1.Taäp hôïp caùc keát noái beân trong caùc thaønh phaàn (bieåu hieän caáu truùc ) 2.Taäp hôïp caùc phaùt bieåu gaùn ñoàng thôøi (bieåu hieän doøng döõ lieäu) 3.Taäp hôïp caùc phaùt bieåu gaùn tuaàn töï (bieåu hieän haønh vi) 4.Söï keát hôïp caùc daïng treân 2.3.1.LOAÏI MOÂ HÌNH CAÁU TRUÙC Trong moâ hình caáu truùc , moät thöïc theå ñöôïc moâ taû nhö laø taäp hôïp keát noái caùc component (thaønh phaàn ), moâ hình thöïc theå half-adder , ñöôïc moâ taû trong thaân architecture sau ñaây. Ví duï: architecture HA_STRUCTURE of HALF_ADDER is component XOR2 port (X,Y:in BIT; Z: out BIT); end coponent; component AND2 port (L,M:in BIT; N: out BIT); end coponent; begin X1: XOR2 port map ( A,B,SUM); A1: AND2 port map (A,B,CARRY ); end HA_STRUTURE; Teân cuûa architecture la øHA-STRUCTURE , khai baùo thöïc theå HALF_ADDER (khai baùo phaàn tröôùc ) xaùc ñònh coång giao tieáp beân ngoaøi cuûa architecture naøy . Architecture bao goàm hai phaàn : Phaàn khai baùo (tröôùc töø begin) vaø phaàn phaùt bieåu (sau töø begin) , hai khai baùo component ñöôïc theå hieän ôû phaàn khai baùo cuûa architecture . Nhöõng phaàn khai baùo naøy lieät keâ caùc giao tieáp cuûa compenent söû duïng trong architecture ñoù . Compenent XOR vaø AND , caû hai component ñaõ coù trong thö vieän hay chuùng höôùng ñeán moät component khaùc trong thö vieän . Söï khai baùo caùc thaønh phaàn ñöôïc ñaët trong phaàn phaùt bieåu cuûa thaân Architecture söû duïng khai baùo component instantiation (ñoái töôïng thaønh phaàn) . X1 vaø A1 laø caùc nhaõn cuûa component instantiation . Phaàn khai baùo thöù nhaát X1 , chæ ra tín hieäu A vaø B ( coång input cuûa HALF_ADDER ) , lieân heä tôùi X vaø Y laø caùc coång input cuûa XOR2, coång output Z cuûa component naøy lieân heä tôùi coång output SUM cuûa entity HALF_ADDER.Töông töï , trong phaàn khai baùo thöù hai , tín hieäu A vaø B lieân heä tôùi coång L vaøM cuûa ADD2 , coøn coång N kieân heä tôùi coång CARRY cuûa HALF_ADDER. Chuù yù trong tröôøng hôïp naøy caùc tín hieäu trong port map (aùnh xaï coång) cuûa component instantiation vaø caùc tín hieäu coång trong khai baùo component phaûi ñöôïc ñaët ñuùng vò trí . Moâ taû caáu truùc cho HALF_ADDER laø chöa noùi ñeán caùc chöùc naêng cuûa noù
- http:// www.diachiweb.com Rieâng phaàn moâ taû cho component XOR2 vaø AND2 , moãi moät thaønh phaàn coù phaàn khai baùo thöïc theå vaø architecture cuûa rieâng noù . 2.3.2 LOAÏI MOÂ HÌNH DOØNG DÖÕ LIEÄU (DATA FLOW). Trong moâ hình naøy, doøng döõ lieäu qua entity laø bieåu thöùc söû duïng caùc phaùt bieåu gaùn tín hieäu ñoàng thôøi . Caáu truùc cuûa thöïc theå laø moâ taû xaùc ñònh khoâng roõ raøng , chæ coù tính chaát suy dieãn. Ví duï: thaân kieán truùc(architecture body) cuûa entity HALF_ADDER : architecture HA_CONCURRENT of HALF_ADDER is begin SUM <= A xor B after 8 ns; CARRY <= A and B after 4 ns; end HA_CONCURRENT; Moâ hình doøng döõ lieäu HALF_ADDER ñöôïc moâ taû söû duïng 2 phaùt bieåu gaùn tín hieäu ñoàng thôøi ( phaùt bieåu gaùn tuaàn töï ñöôïc noùi ôû phaàn sau ). Trong 1 phaùt bieåu gaùn tín hieäu : kyù hieäu <= giaù trò cuûa tín hieäu gaùn vaøo; Gíatrò cuûa bieåu thöùc beân tay phaûi cuûa phaùt bieåu , qua quaù trình tính toaùn ñöôïc gaùn vaøo tín hieäu phaàn beân tay traùi, goïi laø target signal. Pheùp gaùn tín hieäu ñoàng thôøi ñöôïc thi haønh khi xuaát hieän 1 söï kieän tín hieäu cuûa bieåu thöùc beân phaûi , giaù trò cuûa tín hieäu ñöôïc thay ñoåi. Thoâng tin treå ( delay) ñöôïc ñöa vaøo phaùt bieåu gaùn tín hieäu söû duïng meänh ñeà after . Neáu 2 tín hieäu A vaø B laø tín hieäu vaøo cuûa entity HALF_ADDER , söï kieän xuaát hieän sau thôøi gian T, bieåu thöùc beân phaûi cuûa 2 pheùp gaùn ñöôïc ñaùnh giaù . Tín hieäu SUM ñöôïc gaùn giaù trò môùi sau 8ns, ñoàng thôøi tín hieäu CARRY cuõng ñöôïc gaùn giaù trò môùi sau 4ns. Khi thôøi gian moâ phoûng tôùi (T+4) ns , CARRY seõ ñöôïc gaùn giaù trò môùi, caû 2 phaùt bieåu gaùn ñöôïc thöïc hieän ñoàng thôøi. Caùc phaùt bieåu gaùn tín hieäu ñoàng thôøi laø caùc phaùt bieåu ñoàng thôøi,do ñoù thöù töï caùc phaùt bieåu trong thaân kieán truùc laø khoâng quan troïng,ngoaøi ra trong thaân kieán truùc HA_CONCURRNT coøn coù söï lieân keát ñeán khai baùo cuûa entity HALF_ADDER. Ngöõ nghóa cuûa haønh vi ñoàng thôøi naøy cho bieát quaù trình moâ phoûng ñoù ñöôïc phaùc thaûo baèng ngoân ngöõ, laø söï kieän trigger vaø thôøi gian moâ phoûng tôùi thôøi ñieåm keá tieáp khi coù 1 söï kieän xaûy ra. Meänh ñeà after söû duïng chung 1 tín hieäu CLOCK, haõy xem phaùt bieåu gaùn tín hieäu ñoàng thôøi sau : CLK <= not CLK after 10ns; Phaùt bieåu naøy taïo ra daïng soùng treân tín hieäu CLK vôùi chu kyø 20ns , xem hình 4: CLK 10 20 30 40 50 60 70 ns Hình 4: A clock waveform with contant on_off period 2.3.3 LOAÏI MOÂ HÌNH HAØNH VI (BEHAVIORAL). Moät moâ hình töông phaûn vôùi moâ hình tröôùc ñoù laø moâ hình haønh vi cuûa 1 thöïc theå bao goàm caùc phaùt bieåu thöïc hieän lieân tuïc coù thöù töï. Taäp hôïp caùc phaùt bieåu tuaàn töï ñöôïc xaùc ñònh beân trong phaùt bieåu process. Noù khoâng ñöôïc xaùc ñònh trong caáu truùc cuûa thöïc theå,maø chæ xaùc ñònh chöùc naêng cuûa noù.Moät phaùt bieàâu process laø 1 phaùt bieåu ñoàng thôøiù coù theå theâm vaøo thaân kieán truùc.
- http:// www.diachiweb.com Moät phaùt bieåu process coù 1 phaàn khai baùo (tröôùc töø begin ) vaø 1 phaàn phaùt bieåu ( giöõa töø begin vaø end process ). Caùc phaùt bieåu ñöôïc ñöa vaøo phaàn phaùt bieåu laø caùc phaùt bieåu tuaàn töï vaø seõ ñöôïc thöïc thi 1 caùch tuaàn töï Danh saùch caùc tín hieäu trong ngoaëc sau töø process thieát laäp danh saùch 1 caùch coù thöù töï , phaùt bieåu process thöïc thi khi coù 1 söï kieän treân baát kyø tín hieäu naøo treân danh saùch ñoù . Khai baùo bieán baét ñaàu baèng töø variable bieán khaùc vôùi tín hieäu laø noù luoân ñöôïc gaùn giaù trò ngay töùc khaéc vaø pheùp gaùn laø “:=”,tín hieäu ñöôïc gaùn giaù trò sau khoaûng delay ( xaùc ñònh do ngöôøi söû duïng hoaëc maëc nhieân laø khoaûng delta) vaø pheùp gaùn ñieàu khieån vieäc gaùn giaù trò cho bieán laø “<=”. Khai baùo bieán trong process coù phaïm vi chæ trong process ñoù . Bieán coù theå khai baùo trong chöông trình con , chöông trình con seõ ñöôïc noùi trong phaàn sau. Khai baùo bieán beân ngoaøi process hoaëc chöông trình con thì goïi laø shared variable. Caùc bieán naøy coù theå ñöôïc caäp nhaät vaø ñoïc bôûi nhieàu process. Chuù yù tín hieäu khoâng ñöôïc khai baùo trong process . Caùc phaùt bieåu gaùn tín hieäu xuaát hieän trong process ñöôïc goïi laø phaùt bieâu gaùn tín hieäu tuaàn töï , keå caû phaùt bieåu gaùn bieán ,thöïc hieän tuaàn töï ñoäc laäp vôùi vieäc xuaát hieän caùc söï kieän treân moãi tín hieäu trong bieåu thöùc beân tay phaûi , khaùc vôùi vieäc thöïc thi cuûa caùc phaùt bieåu gaùn tín hieäu ñoàng thôøi trong phaàn tröôùc ,process khoâng bao giôø keát thuùc maø noù chæ ôû daïng treo. Coù theà toàn taïi phaùt bieåu case hoaëc loop trong process , ngöõ nghóa vaø caáu truùc cuûa phaùt bieåu naøy cuõng gioáng nhö trong caùc ngoân ngöõ caáp cao khaùc laø C hoaëc pascal . Coù theå söû duïng phaùt bieåu wait trong process. Noù coù theå söû duïng ñeå chôø cho 1 giaù trò thôøi gian , cho tôùi khi ñieàu kieän thaønh true , hoaëc ñeán khi coù 1 söï kieän xuaát hieän treân tín hieäu . Ví duï: Process Begin CLK <= ‘0’; Wait for 20 ns; CLK <= ‘1’; Wait for 12 ns; End process; CLK 0 20 32 52 64 84 96 ns Hình 5 A clock waveform with varying on_off period. Process naøy khoâng coù danh saùch nhaän vaøo bôûi vì xuaát hieän phaùt bieåu wait trong process . Ñoù laø ñieàu quan troïng ñeå nhôù raèng process khoâng bao giôø keát thuùc .Taát caû caùc process thöïc hieän suoát quaùtrình moâ phoûng cho ñeán khi coù traïng thaùi treo. 2.3.4 KIEÅU HOÃN HÔÏP CUÛA MOÂ HÌNH : Coù theå hoãn hôïp 3 kieåu treân trong 1 kieán truùc. Vôùi kieán truùc naøy, chuùng ta coù theå söû duïng caùc phaùt bieåu component instantiation ( ñoù laø bieåu hieän structure) ,phaùt bieåu gaùn tín hieäu ñoàng thôøi ( bieåu hieän dataflow) vaø phaùt bieåu process( bieåu hieän haønh vi ). 2.4. KHAI BAÙO ÑÒNH DAÏNG ( CONFIGURATION) Khai baùo configuration laø söû duïng vieäc choïn 1 trong nhöõng architecture maø entity ñaõ coù vaø caùc thaønh phaàn baét buoäc,söû duïng moâ taû caáu truùc trong architecture,tôùi moâ taû thöïc theå bôûi boä entity-architecture hoaëc baèng 1 configuration, taát caû coù trong 1 thö vieän thieát keá .