2012/01/04

807. Санах ой



Синхрон санамжтай хэлхээний санах ойн үндсэн элемент нь флип флоп. Үндсэн 4 төрлийн флип флоп байдгаас энэ удаад хялбарыг бодож DFF-ийг санах ойн үндсэн элементээр сонгон авч VHDL дээр дүрсэлье.
Флип флопын төлвийг устгах зорилгоор асинхрон clear оролттой флип флопыг ашиглана. Асинхрон clear оролтыг reset командыг буюу дахин шинээр эхлүүлэх командаар ашиглахад тохиромжтой байдаг талаар өмнө үзсэн байгаа. Иймээс асинхрон clear-ийг цаашид шууд reset гэсэн оролт гэж нэрлэе. Ингэсэн тохиолдолд DFF нь синхрон D оролт ба асинхрон Reset оролттой гээд дараах симболоор дүрслэхэд хангалттай.
Санамжтай хэлхээг process ашиглаж хийх тул:
Санамжтай хэлхээний хувьд sensitive list-д заавал бүх оролтуудыг бичих шаардлагагүй. Харин өөрчлөлтийг мэдрэх сигналуудыг бичнэ. Манай жишээнд clk ба reset сигналыг өөрчлөлтийг мэдрэх шаардлагатай учраас sensitive list-д эдгээр 2 оролтыг бичиж өгнө.
Ингээд энэ 2 сигналын өөрчлөлтийг нөхцөл шалгах if операторыг ашиглан шалгана. Эдгээрээс reset оролт нь клокоос хамаарахгүй асинхрон оролт учраас давамгай эрхтэй буюу хамгийн түрүүнд reset оролт идэвхжсэн эсэхийг шалгана. Хэрэв reset оролт идэвхжсэн бол гаралтыг шууд 0 болгоно.
Хэрэв reset оролт идэвхжээгүй бол клокын төвшингийн өөрчлөлтийг олно. Манай флип флоп маань клокын 0-оос 1 болох шилжилтийн үед төлөв өөрчлөдөг тул клокын 0-ээс 1 болох шилжилтийг шалгана. Үүнийг VHDL дээр clk’event and clk=’1’ буюу клокын 0-ээс 1 болох өөрчлөлт гэсэн нөхцөлөөр шалгана.
Ингээд клокын 0-ээс 1 болох үед оролтонд юу байна тэр гаралт болж өөрчлөгдөнө.