2012/01/04

806. Нөхцөл шалгах ба өгөгдөл сонгох үйлдлүүдийг харьцуулах нь



VHDL нь техник дүрслэлийн хэл учраас үйлдэл нь мөрийн дагуу биелдэггүй тухай ярьсан. Өөрөөр хэлбэл үйлдэл дараалж явагдахгүйгээр нэгэн зэрэг биелдэг. Тиймээс үүнийг комбинацийн хэлхээтэй адилхан шинж чанартай гэж үзэж болно.
Тэгэхдээ програмын хэлд байдаг нөхцөл шалгах болон өгөгдөл сонгох гэсэн 2 үндсэн үйлдлийг гүйцэтгэх боломжтой. Нөхцөл сонгохдоо when else операторыг ашигладаг бол өгөгдөл сонгохдоо with select операторыг ашиглана. Эдгээрийг комбинацийн хэлхээний үндсэн операторууд гэнэ.
2-4 decoder дээр жишээ авч тайлбарлая.
Энэ код тайлагчийг VHDL дээр дүрсэлье.
Эхлээд комбинацийн when else нөхцөл шалгах операторыг ашиглая.
Дараа нь комбинацийн with select өгөгдөл сонгох операторыг ашиглан гүйцэтгэе.
Үүнээс гадна тодорхой дарааллын дагуу үйлдэл гүйцэтгэх бол process-ийг ашиглана.
Өөрөөр хэлбэл process-ийн sensitive list-д заасан оролт өөрчлөгдөхөд process доторх үйлдлийг биелүүлдэг. Тэгвэл энэ онцлогийг нь харгалзан тодорхой дарааллын дагуу ажиллах шаардлагатай хэлхээг process ашиглан хийнэ.
Process ашиглах үед нөхцөл шалгах ба өгөгдөл сонгох үйлдлийг мөн гүйцэтгэж болно. Ингэхдээ нөхцөл шалгах бол if өгөгдөл сонгох бол case операторыг ашиглана. Эдгээр нь зөвхөн process дотор л биелэх учраас санамжтай хэлхээний операторууд гэж нэрлэнэ.
Ингээд санамжтай хэлхээний нөхцөл шалгах if операторыг ашиглан гүйцэтгэвэл:
Санамжтай хэлхээний өгөгдөл сонгох case операторыг ашиглавал:

Тайлбар:
Process-ийг санамжтай хэлхээнд ашигладаг гэсэн боловч дээрх жишээнд дандаа комбинацийн элементийг хийхэд ашиглаж үзүүлсэн байна. Өөрөөр хэлбэл process-ийн үндсэн хэрэглэгээн санамжтай буюу дараалалтай хэлхээг дүрслэхэд хэрэглэнэ. Гэвч зарим үед комбинацийн хэлхээг process ашиглан дүрслэх нь байдаг. Энэ талаар дараа төлвийн машиныг буюу санамжтай хэлхээг дүрслэхдээ комбинацийн хэлхээг хэрхэн process ашиглан шийддэг талаар үзэх болно. Process ашиглаж комбинацийн хэлхээг дүрслэхдээ бүх оролтуудыг sensitive list дотор зааж өгдөг болно.