Агуулгын хүснэгт:
- Алхам 1: VGA хянагчийн интерфэйс
- Алхам 2: VGA хянагчийг VGA дэлгэцтэй нэгтгэх
- Алхам 3: Frame Buffer Design
- Алхам 4: Тэмдэглэл
- Алхам 5: Хавсаргасан файлууд
Видео: VHDL ба Verilog дээр энгийн VGA хянагчийн дизайн: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Энэхүү зааварчилгаанд бид RTL дээр энгийн VGA хянагч зохион бүтээх гэж байна. VGA хянагч нь VGA дэлгэцийг удирдах зориулалттай дижитал хэлхээ юм. Энэ нь харуулах хүрээг харуулсан Frame Buffer (VGA санах ой) -оос уншиж, дэлгэцийн зорилгоор шаардлагатай өгөгдөл болон синхрончлолын дохиог бий болгодог.
Хэрэв та Verilog/System verilog кодыг хайж байгаа бол: Verilog дахь миний блог VGA хянагч ба видео системд зочилно уу.
Алхам 1: VGA хянагчийн интерфэйс
VGA хянагчийн үндсэн интерфэйсийн дохионууд энд байна
- Pixel цаг эсвэл VGA цаг
- HSYNC ба VSYNC дохио
VGA дэлгэцийг сонгохын тулд та үүнийг жолоодоход шаардлагатай Pixel Clock -ийн давтамжийг тооцоолох хэрэгтэй. Энэ нь 3 параметрээс хамаарна: Нийт хэвтээ пиксел, Нийт босоо пиксел, Дэлгэцийг шинэчлэх хурд.
Ихэвчлэн F = THP * TVP * Refresh Rate
Төрөл бүрийн VGA дэлгэцэнд шаардлагатай пикселийн цаг хугацааны баримт бичгийг хавсаргасан RAR дээрээс олоорой.
HSYNC ба VSYNC дохиог Pixel цагнаас үүсгэдэг. HSYNC ба VSYNC дохионы хугацаа нь параметрийн тооноос хамаарна: Хэвтээ ба босоо урд талын, хэвтээ ба босоо арын нүх, хэвтээ ба босоо дэлгэцийн пиксел, хэвтээ ба босоо синхрончлолын импульсийн өргөн ба туйл.
Эдгээр параметрүүдийг сонгосон VGA дэлгэц дээр стандартчилдаг. Эдгээр баримт бичгийг хавсаргасан RAR дээрээс олоорой.
Эдгээр параметрүүд нь манай VGA Controller IP дээр тохируулагдах параметрүүд юм.
Алхам 2: VGA хянагчийг VGA дэлгэцтэй нэгтгэх
Зураг дээр VGA хянагчийг VGA дэлгэцтэй хэрхэн нэгтгэх талаар харуулав. Системийг дуусгахын тулд танд өөр хоёр бүрэлдэхүүн хэсэг хэрэгтэй болно.
- Хүрээний буфер: Харагдах хүрээг багтаасан санах ой.
- Видео DAC: RGB дижитал өгөгдлийг хөрвүүлж, VGA дэлгэцийг RGB аналог дохиог зохих хүчдэлийн түвшинд жолооддог DAC.
Хамгийн энгийн бөгөөд алдартай видео DAC -ийн нэг бол ADV7125 юм. Энэ нь RGB дижитал үгсийг 0-0.7 В аналог дохио болгон хөрвүүлж, VGA дэлгэцийг жолооддог 8 битийн DAC юм.
Алхам 3: Frame Buffer Design
Энэ бол харуулах дүрсийг "хадгалдаг" санах ой юм. Энэ нь ихэвчлэн RAM эсвэл заримдаа ROM юм. Зургийг дүрслэхийн тулд хүрээ буфер хэрхэн зохион бүтээх талаар бид ярилцах болно. Frame buffer нь энэхүү дижитал мэдээллийг VGA Controller -ийн тушаалаар Video DAC руу дамжуулдаг.
Эхлээд бид шаардлагатай пикселийн гүнийг шийдэх хэрэгтэй. Энэ нь зургийн чанар, пикселийн дүрслэх олон янзын өнгийг тодорхойлдог. 8 битийн DAC-ийн хувьд бид пикселийн үндсэн өнгөний бүрэлдэхүүн хэсгүүдийг тус бүр 8 битээр дүрслэх ёстой: R, G, B. Энэ нь пиксел нь 24 битийн хэмжээтэй гэсэн үг юм.
Пиксел бүрийг Frame Buffer санах ойн байршилд дараалсан байдлаар хадгалдаг.
Харуулах зураг нь 800x600 пиксел байна гэж бодъё.
Тиймээс шаардлагатай Frame Buffer нь 800x600 = 480000 x 24 битийн санах ой юм
Санах ойн нийт хэмжээ 800x600x24 = 1400 кБ орчим байна.
Хэрэв хар цагаан зураг байвал 800x600x1 = 60 кБ ойролцоогоор.
Блок RAM нь Xilinx FPGA -д Frame Buffer -ийг төлөөлөхөд ашиглагддаг байж магадгүй юм.
Алхам 4: Тэмдэглэл
- Сонгосон DAC -ээс хамааран VGA хянагч дээр нэмэлт дохио шаардлагатай болно. Би ADV7125 ашиглаж байсан.
- VGA дэлгэцийг жолоодохын өмнө VSYNC ба HSYNC дээр товчлуур хийх замаар мөчлөгийн хоцролтыг нэмнэ үү. Энэ нь DAC болон санах ойн хоцрогдолтой холбоотой юм. Пикселийн дохиог HSYNC ба VSYNC синхрончлох ёстой. Миний хувьд энэ нь 2 мөчлөгийн саатал байсан.
- Хэрэв өгөгдсөн хэмжээтэй Frame Buffer -ийг хуцны хэмжээг хязгаарласны улмаас FPGA дээр зохион бүтээх боломжгүй бол зургийг томруулахын тулд жижиг санах ойг ашиглаарай, кодыг бүрэн санах ойн хүрээ биш харин боломжтой санах ойн хил дээр байрлуулахын тулд кодоо засаарай. Энэ нь дэлгэцэн дээр ижил зургийг дахин дахин давтах болно. Өөр нэг арга бол пикселийн масштабчлал бөгөөд пиксел бүрийг хуулбарлаж, дүрсийг бүхэлд нь бага нарийвчлалтайгаар харуулдаг. Үүнийг кодын хаягийг нэмэгдүүлэх логикийг өөрчлөх замаар хийж болно.
- IP нь бүх FPGA-д бүрэн зөөврийн бөгөөд Virtex-4 FPGA дээр 100 МГц хүртэл баталгаажсан болно.
Алхам 5: Хавсаргасан файлууд
RAR нь дараахь зүйлийг агуулдаг.
- VGA хянагчийн код
- VGA стандартын PDF файлууд.
Зөвлөмж болгож буй:
VHDL дээрх дөрвөн талт энгийн ассоциатив кэш хянагчийн загвар: 4 алхам
VHDL дээрх дөрвөн талт энгийн ассоциатив кэш хянагчийн загвар: Миний өмнөх зааварчилгаанд бид энгийн шууд зураглал бүхий кэш хянагчийг хэрхэн яаж бүтээх талаар олж мэдсэн. Энэ удаад бид нэг алхам урагшилж байна. Бид дөрвөн талын энгийн ассоциатив кэш хянагчийн загварыг гаргах болно. Давуу тал? Алдагдсан ханш бага, гэхдээ үнийн хувьд
VHDL дээр програмчлагдах тасалдлын хянагчийн дизайн: 4 алхам
VHDL -д програмчлагдах тасалдлын хянагчийн загвар: Энэ блог дээр надад ямар төрлийн хариулт өгч байгаад би сэтгэл дундуур байна. Миний блогоор зочилж, мэдлэгээ та бүхэнтэй хуваалцах урам зориг өгсөн залуусдаа баярлалаа. Энэ удаад би бүх SOC -д харагддаг өөр нэг сонирхолтой модулийн загварыг танилцуулах болно - Interrupt C
VHDL дээрх энгийн кэш хянагчийн загвар: 4 алхам
VHDL дээрх энгийн кэш хянагчийн загвар: Би үүнийг зааж өгч байна, учир нь VHDL кодыг сурч, кэш хянагч зохион бүтээхэд жаахан хэцүү байсан. Тиймээс би өөрөө кэш хянагчийг эхнээс нь зохион бүтээсэн бөгөөд үүнийг FPGA дээр амжилттай туршсан. Надад п байна
VHDL дээрх I2C мастер дизайн: 5 алхам
VHDL дээрх I2C мастер дизайн
Энгийн бөгөөд хялбар алхам бүхий ПХБ -ийн дизайн: 30 алхам (зурагтай)
Энгийн бөгөөд хялбар алхам бүхий ПХБ -ийн дизайн: САЙН НАЙЗУУД ПХБ -ийн загварыг сурахыг хүсч буй хүмүүст зориулсан маш хэрэгтэй, хялбар зааварчилгаа эхэлье