Èçó÷åíèå VHDL

       

Ëèòåðàëû


Ãäå-òî òðåòü æèòåëåé ïëàíåòû ãîâîðèò íà àíãëèéñêîì ÿçûêå. Èç íèõ îêîëî ïîëîâèíû íå çíàþò àíãëèéñêîãî ÿçûêà. Íàïðèìåð, ÷òîá ðàçãîâàðèâàòü íà ïèäæèí-èíãëèø, äîñòàòî÷íî èìåòü ñëîâàðíûé çàïàñ 200-300 ñëîâ. Åñòåñòâåííî, íà òàêîì äèàëåêòå ïðîèçâåäåíèé íå ïèøóò. Ïðèáëèçèòåëüíî òî æå ñàìîå ìîæíî ñêàçàòü è î ïèøóùèõ íà VHDL. Íî äëÿ êîíñòðóèðîâàíèÿ ïðîèçâåäåíèé ñ ïîìîùüþ VHDL íóæíî õîòÿ áû çíàòü ñèíòàêñèñ ÿçûêà. Äàííàÿ ñòðàíè÷êà è íåñêîëüêî äðóãèõ ýòîìó ïîñâÿùàþòñÿ.

 ÿçûêå ëèòåðàëîì çàäàåòñÿ òàêîé ëåêñè÷åñêèé ýëåìåíò, êîòîðûé ïðè êîìïèëÿöèè êîäèðóåòñÿ íåêîòîðûì ÷èñëîâûì êîäîì, êîòîðûé îñòàåòñÿ ïîñòîÿííûì â ïðîãðàììå ïðè åå èñïîëíåíèè. Êîíñòàíòû, îïåðàíäû â âûðàæåíèÿõ, èäåíòèôèêàòîðû ïðåäñòàâëÿþòñÿ ëèòåðàëàìè. Òî, ÷òî ñèíòàêñèñ ëèòåðàëà îòîáðàæàåò ïðèçíàê òèïà ñîîòâåòñòâóþùåãî åìó îáúåêòà, ÿâëÿåòñÿ îäíîé èç îñîáåííîñòåé VHDL.

×èñëîâîé ëèòåðàë ïðåäñòàâëÿåò ñîáîé öåëîå èëè âåùåñòâåííîå ÷èñëî.

Äåñÿòè÷íûé ëèòåðàë - ýòî ÷èñëîâîé ëèòåðàë â ñèñòåìå ñ÷èñëåíèÿ ïî îñíîâàíèþ (áàçèñó) 10, íàïðèìåð, 120.

Âåùåñòâåííûé ëèòåðàë îòëè÷àåò îáÿçàòåëüíîå íàëè÷èå òî÷êè, îòäåëÿþùåé öåëóþ ÷àñòü îò äðîáíîé, íàïðèìåð, 120.0, 1.20å2.

Áàçèñíûé ëèòåðàë - ýòî ÷èñëî â ñèñòåìå ñ÷èñëåíèÿ ñ çàäàííûì áàçèñîì îò 0 äî 16. Åãî óñëîâíûé ñèíòàêñèñ:

\áàçèñíûé ëèòåðàë\::=\áàçèñ\#\÷èñëî â áàçèñå\#[\ýêñïîíåíòà\]

Íàïîìèíàíèå: ïðè îïèñàíèèå ñèíòàêñèñà òåêñò â êâàäðàòíûõ ñêîáêàõ îçíà÷àåò íåîáÿçàòåëüíûé ýëåìåíò. Íàïðèìåð, 10#112# = 16#70# = 2#1110000# = 2#111#e4. Ìîæíî òàêæå ïðèìåíÿòü áàçèñ è 3, è 4, è 5…

. Êàêîé åù¸ ÿçûê ïðåäîñòàâëÿåò òàêóþ âîçìîæíîñòü?!

Ñèìâîëüíûé ëèòåðàë èñïîëüçóåòñÿ êàê çíà÷åíèå äëÿ îïåðàòîðîâ èëè êàê ýëåìåíò ïåðå÷èñëÿåìîãî òèïà, íàïðèìåð, áèò. Îí çàïèñûâàåòñÿ êàê ñèìâîë â îäèíî÷íûõ êàâû÷êàõ, íàïðèìåð, '1', 'F' , '@'.

Èäåíòèôèêàòîð. Èäåíòèôèêàòîð èñïîëüçóåòñÿ êàê èìÿ êîíñòàíòû, ïåðåìåííîé, ôóíêöèè, ñèãíàëà, ïîðòà, ïîäïðîãðàììû, îáúåêòà ïðîåêòà, à òàêæå êàê ìåòêà. Îí ñîäåðæèò ëàòèíñêèå áóêâû, ñ êîòîðûõ îí íà÷èíàåòñÿ, öèôðû è íåêîòîðûå ñèìâîëû, íàïðèìåð, îäíîêðàòíûé ñèìâîë ïîä÷åðêèâàíèÿ. Èäåíòèôèêàòîðû ñ îäèíàêîâûì íàçâàíèåì íî ñ ðàçëè÷íûìè çàãëàâíûìè è ñòðî÷íûìè áóêâàìè ñ÷èòàþòñÿ îäíèì èäåíòèôèêàòîðîì, ò.å. îíè "íå÷óâñòâèòåëüíû" ê âûñîòå áóêâ. Êëþ÷åâîå ñëîâî ÿçûêà íå ìîæåò áûòü èäåíòèôèêàòîðîì.

Èäåíòèôèêàòîð ìîæåò ñîñòîÿòü èç ïðîèçâîëüíîé öåïî÷êè ñèìâîëîâ, íî ýòà öåïî÷êà äîëæíà áûòü çàêëþ÷åíà ìåæäó îáðàòíûìè êîñûìè. Ýòî òàê íàçûâàåìûé, ðàñøèðåííûé èäåíòèôèêàòîð. Íàïðèìåð:

C, A_and_B, \íàø ñèãíàë\, \à+â\, \process\

ÿâëÿþòñÿ êîððåêòíûìè èäåíòèôèêàòîðàìè.

Ïåðå÷èñëÿåìûé ëèòåðàë. Ê ïåðå÷èñëÿåìûì ëèòåðàëàì îòíîñÿòñÿ ñèìâîëüíûé ëèòåðàë è èäåíòèôèêàòîð. Èç ýòèõ ëèòåðàëîâ ôîðìèðóåòñÿ ìíîæåñòâî ïåðå÷èñëÿåìîãî òèïà.

Ñòðî÷íûé ëèòåðàë. Ñòðî÷íûì ëèòåðàëîì ÿâëÿåòñÿ öåïî÷êà ñèìâîëîâ, çàêëþ÷åííàÿ â äâîéíûå êàâû÷êè, íàïðèìåð, "ÀÁÂÃ". Ëèòåðàë áèòîâîé ñòðîêè ìîæåò èìåòü ðàçëè÷íûé âèä â çàâèñèìîñòè îò áàçèñà ñèñòåìû ñ÷èñëåíèÿ. Íàïðèìåð, ëèòåðàëû "01111010", Â"01111010", Õ"7À" ïðåäñòàâëÿþò ñîáîé îäíî è òî æå çíà÷åíèå, ïðè÷åì  è Õ îçíà÷àþò äâîè÷íûé è øåñòíàäöàòèðè÷íûé áàçèñû, ñîîòâåòñòâåííî.

 ÷èñëîâûõ ëèòåðàëàõ è áèòîâûõ ñòðîêàõ äîïóñêàåòñÿ âñòàâëÿòü ñèìâîëû ïîä÷åðêèâàíèÿ äëÿ óäîáñòâà ÷òåíèÿ, êîòîðûå óäàëÿþòñÿ ïðè êîìïèëÿöèè.

Íàïðèìåð, Õ"ÀÂ_CD", "1101_0111", 1_024, 0FF_ABBA .

Ñîäåðæàíèå ðàçäåëà