Агуулгын хүснэгт:

VHDL Нэг минутын секундомер: 5 алхам
VHDL Нэг минутын секундомер: 5 алхам

Видео: VHDL Нэг минутын секундомер: 5 алхам

Видео: VHDL Нэг минутын секундомер: 5 алхам
Видео: unnamed 2024, Арваннэгдүгээр
Anonim
Image
Image

Энэ бол VHDL болон Basys 3 самбар ашиглан нэг минутын секунд хэмжигч барих заавар юм. Ийм төхөөрөмж нь тоглогч бүр хамгийн ихдээ нэг минут хөдөлж чаддаг тоглоомуудад тохиромжтой. Секундомер нь долоон сегментийн дэлгэц дээр 0 секунд 0 миллисекундээс эхлэн 60 секунд 0 миллисекунд хүртэл секунд, миллисекундийг үнэн зөв харуулдаг. Хоёр товчлуурыг бас ашигладаг: таймерыг эхлүүлэх, зогсоох, үргэлжлүүлэхэд ашигладаг төв товч, таймерыг дахин эхлүүлэхэд ашигладаг баруун товчлуур. Төхөөрөмжийг ухаалаг гар утасны суурилуулсан секундомертой зэрэгцүүлэн харьцуулж үзэхэд цагийн нарийвчлал мэдэгдэхүйц харагдаж байна.

Алхам 1: Тоног төхөөрөмж/програм хангамж авах

Блок диаграм
Блок диаграм

1. Basil 3 Artix-7 FPGA сургагч багш нь Digilent-аас микро USB-тэй USB кабель

2. Vivado 2016.2 Xilinx -аас гаргасан Design Suite

Алхам 2: Блок диаграм

Энэ хэлхээг зан төлөвийн дагуу бүтээсэн бөгөөд Xilinx-ийн угсарсан бүрэлдэхүүн хэсгүүдийг ашигладаг боловч дээрх бүтцийн ерөнхий диаграммд үзүүлсэн шиг бүтцийн хувьд дүрсэлж болно. Диаграмаас харахад хэлхээг хоёр давтамж хуваагчаар удирддаг болохыг харж болно. Давтамж хуваагчийн нэг нь 1 цент секундэд ажилладаг бөгөөд долоон сегментийн дэлгэц дээр харуулсан тоонууд болох катодын тоолуурыг ажиллуулдаг. Хоёрдахь давтамж хуваагч нь 240 Гц давтамжтайгаар ажилладаг бөгөөд долоон сегментийн дэлгэц дээр бүх тоонуудыг зөв харуулахын тулд анодоор эргэлддэг анодын тоолуурыг ажиллуулахад ашигладаг. Кодлогч нь катодын тооллогоос катодын логикийг, анодын тоолуураас анодын логикийг авч, долоон сегментийн дэлгэцийг ажиллуулдаг гаралтын катод ба анод руу кодчилдог. Энэхүү кодлогчийн үүрэг бол анодын гаралт өөрчлөгдөх бүрт катодын гаралт өөрчлөгдөх явдал юм. Анодууд 4 тусдаа цифрээр эргэлдэх ёстой тул катодын гаралтыг тоолуураас бие даан гүйцэтгэх боломжгүй.

Алхам 3: Төслийн модуль

Нэгдүгээрт, CEN -ийн процессын блокыг хийснээр товчлуур дарах үед ИДЭВХЭЭР шилжих болно. Энэ нь катодын тоолуурын зогсолт/эхлэл болдог.

Дараагийн процессын блок дээр центисекунд ба 240Гц давтамжтай дохиог тохируулсан бөгөөд ингэснээр 100мГц -ийн дотоод цаг өсөх ирмэг дээр тоолуур тус бүр 1 -ээр нэмэгддэг. Нэгэн секундын тоолуур 500000 -д хүрмэгц буцааж 0 болгоно. Үүний зэрэгцээ тоо нь 41667 болсны дараа 240 Гц тоолуур дахин тохируулагдах болно.

Кодын катодын хэсгийн хувьд, ИДЭВХЖҮҮЛЭХ нь '0' бол катодын тооллогыг түр зогсоох болно. Хэрэв энэ хугацаанд дахин тохируулах товчлуур дарагдсан бол бүх тооллогыг "0000" болгож дахин тохируулна. Үүний зэрэгцээ хэрэв ИДЭВХЖҮҮЛЭХ нь '1' байвал катодын тооллого катодын тоо 60.00 хүрэх хүртэл үргэлжлэх бөгөөд энэ нь зогсоох дохиог '1' болгоход хүргэдэг. Зогсоох дохио нь CEN процессын блок руу буцаж очдог бөгөөд зогсоох дохио нь '1' байхад ENABLE -ийг '0' болгоход хүргэдэг бөгөөд дахин тохируулах товчийг дарах хүртэл өөрчлөгдөхгүй.

Эцэст нь долоон сегментийн дэлгэцийг 4 анодыг 8 катод тус бүрдээ зөв холбож 0-9 цифрийг нэгэн зэрэг харуулах замаар тохируулсан болно.

Алхам 4: Хязгаарлалтууд

Хязгаарлалтууд
Хязгаарлалтууд

Энэхүү хязгаарлалтын файл нь VHDL -ээс заасан оролт, гаралтыг Basys самбарын шаардлагатай физик хэсгүүдэд холбодог. Энэхүү төслийн хувьд бүрэлдэхүүн хэсгүүд нь дөрвөн анод ба долоон сегментийн дэлгэцийн найман катод тус бүр, 100 мГц -ийн дотоод цаг, төв товч, баруун товчлуурыг агуулдаг.

Алхам 5: Туршилт

Кодыг бөглөсний дараа та USB кабелиар дамжуулан FPGA програмчлах боломжтой боллоо. Долоон сегментийн дэлгэц нь 0.00 -ийг харуулах ёстой. 60.00 хүрч зогсох хүртэл таймерыг эхлүүлэхийн тулд төв товчлуурыг дарж товчлуурууд ажилладаг эсэхийг шалгах; Та хүссэн үедээ төв товчлуурыг дахин дарж түр зогсоох боломжтой. Түр зогссоны дараа та баруун товчлуур дээр дарж таймерыг 0.00 болгож буцаана. Хэрэв бүх зүйл зөв ажиллаж байгаа бол та дөнгөж нэг минутын таймер барьсанд баяр хүргэе!

Зөвлөмж болгож буй: