저는 Altera DE2 FPGA 보드와 Verilog를 사용하고 있습니다. 이들을 사용하여 간단한 CPU를 설계했습니다. 보드의 VGA 출력을 사용하여 레지스터의 값을 인쇄해야합니다.Verilog 및 Altera DE2 보드의 VGA를 사용하여 번호를 인쇄하는 방법은 무엇입니까?
어떻게해야합니까?
저는 Altera DE2 FPGA 보드와 Verilog를 사용하고 있습니다. 이들을 사용하여 간단한 CPU를 설계했습니다. 보드의 VGA 출력을 사용하여 레지스터의 값을 인쇄해야합니다.Verilog 및 Altera DE2 보드의 VGA를 사용하여 번호를 인쇄하는 방법은 무엇입니까?
어떻게해야합니까?
아주 긴 경로가 두렵습니다.
먼저 VGA 출력 주변 장치를 가져 가야합니다. 이는 메모리에서 값을 가져 와서 동기 펄스에 비례하여 적절한 RGB 값을 화면에 보냅니다 (생성해야 함).
일단 작업을 마치면 표시하려는 문자 모양의 점 집합을 메모리에 쓰게되므로 간단한 비트 맵 글꼴이 필요합니다. 또는 메모리를 문자 지향으로 만들 수 있습니다. 따라서 프로세서는 ASCII 값 집합을 넣어야하고 VGA 출력은 내부 글꼴 찾아보기 테이블에서 i를 찾아 보게됩니다. 'a'(말)는 그 시점에 만드는 디스플레이의 어느 라인에 있어야합니다.
비디오 출력은 좋은 재미 프로젝트입니다!
마틴의 말에 더 해킹을 통해 해킹을 줄이려면 세그먼트 라이브러리를 만들 수 있습니다. 내가 말하는 바를 이해하려면 7 세그먼트 디스플레이를 살펴보면 각 세그먼트가 개별적으로 켜져 0-9의 값을 만들 수 있습니다. 기본적으로 라이브러리를 작성하여 각 세그먼트를 만든 다음이를 표시 할 수 있습니다. 자기 자리, 10 자리 등등. 다음은 오른쪽 하단에 세그먼트를 표시하는 일부 코드 스 니펫입니다.
/*
__5__
| |
1|__6__|3
| |
2|_____|4
7
offset referring to the position meaning tens or ones place.
If you would like ones place, call seg_1(0) for example and
if you would like tens place, call seg_1(1) and so forth.
*/
void seg_1(int offset) {
for(i = 360; i < 420; i++) //y-axis
{
for(j = 540-(offset*120) ; j < 560-(offset*120); j++) //x-axis
{
Vga_Set_Pixel(VGA_0_BASE,j,i);
}
}
}
void seg_2(int offset) {
for(i = 420; i < 460; i++) //y-axis
{
for(j = 540-(offset*120) ; j < 560-(offset*120); j++) //x-axis
{
Vga_Set_Pixel(VGA_0_BASE,j,i);
}
}
}
...
...