2012/01/03

803. VHDL програмчлал



1 битийн тэнцүү шалгах харьцуулагч өгөгдсөн байг.

Үүнийг Карногийн тор дээр буулгаж минтерм илэрхийллийг бичье.

Үүнийг 2 AND, 1 OR гейтийг ашиглан AND-OR хэлхээгээр гейтийн төвшинд дүрсэлж болно.

Тэгвэл гейтийн төвшинд дүрслэгдсэн AND-OR хэлхээг техник дүрслэлийн VHDL хэл дээр буулгая.

Энд эхний хоёр мөр нь санг зарлаж байна. Library гэсэн түлхүүр үгээр санг зарлана. Ингээд ieeе гэсэн үндсэн санг зарлалаа. Дараагийн мөрөнд хэрэглэх дэд санг зарлаж байна. Sdt_logic_1164 гэсэн ieee-гийн дэд сан нь std_logic гэж нэрлэгдэх логик сигналыг тодорхойлж өгнө. Std_logic сигналд энэ хичээлийн хүрээнд логик 0, логик 1, х буюу don’t care, Z буюу high impedance гэсэн 4 утга авдаг логик сигналыг ойлгоно. Энэ сигналын хувьд харьцуулах болон логик үйлдлийг хийхийг зөвшөөрөх ба үүнийг std_logic_1164 дэд санд тодорхойлж өгсөн байна. All гэдэг нь ieee-гийн std_logic_1164 дэд сангаар тодорхойлогдсон бүхнийг ашиглана гэдгийг заана. Өөрөөр std_logic_1164 дэд санг бүтнээр нь ашиглана гэдгийг заана.
Дэд санг ба түүний бүрэлдэхүүн хэсэг нь use гэсэн түлхүүр үгийг ашиглан зарлагдана.

Дараагийн 4 мөрөнд энэ хэлхээ хэрхэн пакетлагдсан болохыг зааж өгнө. Юуны өмнө энэ хэлхээг пакетлаж хайрцагт оруулаад eq1 гэсэн нэр өгсөн байна.

Энэ пакет маань i0, i1 гэсэн 2 оролттой, eq гэсэн 1 гаралттай байх бөгөөд оролт гаралт маань std_logic_1164 дэд сангаар тодорхойлогдсон std_logic гэж нэрлэгдэх логик сигнал байна. Пакетлах хэсэг маань entity гэсэн түлхүүр үгээр эхэлж ард нь пакетынхаа нэрийг бичиж өгөх ба end гээд пакетынхаа нэрийг бичиж өгснөөр дуусна.
Port түлхүүр үгийфг ашиглаж оролт, гаралтын портууд түүний сигналын төрлийг зааж өгнө.

Architecture гэсэн түлхүүр үгээр өмнө зарлагдсан пакетын бүтцийг зааж өгнө.
Ингэхдээ архитектуртаа нэр өгнө.

Жишээ нь бид eq1 пакетлагдсан хэлхээний бүтэц болох архитектурт arch гэсэн нэр өгсөн байгаа харж байна.
Дараа нь signal гэсэн түлхүүр үгээр архитектурт байгаа p0, p1 гэсэн холбоосыг зарлаж өгсөн байна. Энд p0 нь i0, i1-ийн хооронд AND үйлдэл гүйцэтгэх гарах дүн бол p1 нь i0, i1-ийн үгүйсгэлүүдэд AND үйлдэл гүйцэтгэхэд гарах дүн болно. Үүнийг AND-OR хэлхээн дээр тодорхой тэмдэглэсэн байгаа болно.

Дараа нь begin гэсэн түлхүүр үгээр архитектурыг эхэлж end архитектурын нэрээр бүтцийг хийнэ.

Энд 2 AND, 1 OR нийт 3 ширхэг логик үйлдлийг харуулсан байна. VHDL нь текник дүрслэлийн хэл учраас програмын хэлтэй адилхан мөр дагаж биелэхгүй. Иймд эдгээр үйлдлийг алийг түрүүлж бичих талаар заах зүйлгүй бөгөөд бүгд нэгэн зэрэг биелэх болно гэж ойлгоно.