Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА: Простой текстовый терминал

Простой текстовый терминал 9 года 6 мес. назад #3097

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Терминал, даже скорее табло с символами, сделан на ПЛИС Altera Cyclone I. Имеет следующие возможности:
  • VGA вывод 640x400@70.
  • Три цвета: черный, белый, красный.
  • Текст 80x25 символов.
  • Вся таблица ASCII.
  • Ввод данных с COM (115200), но можно что-угодно другое.
Похвастаться ему нечем, скроллинга нет, курсора нет. :side:
Подключил его к программатору марсохода и через Putty тестирую.

Такой специфичный формат VGA был выбран из-за нехватки внутренней памяти ПЛИС.
Понимает несколько спец команд:
  • 0x0D (ENTER) - перевод строки
  • 0x7F (BACKSPACE) - удаление символа
  • 0x04 - очистка экрана
  • 0x1A (PAUSE/BREAK) - смена чернил (на красные/белые)
Мне пригодился для отладки контроллеров и других процессорных систем.

Устройство вывода самих символов на экран я полностью описал на комбинаторике. Частоты там низкие, не вижу пользы в регистрах.
///////////////////////////////////////////////////////////////
//module which generates bitmaps
///////////////////////////////////////////////////////////////

module chars (
    input wire [11:0] char_count, //Номер пикселя в линии
    input wire [11:0] line_count, //Номер линии
    
    input wire [8:0] char, //Код символа + цвет (1бит)
    
    output wire [14:0] font_addr, //Адрес пикселя в знакогенераторе
    output wire [10:0] addr, //Адрес символа в памяти
    output wire redink //Красные/белые чернила
    );	
	
assign addr = ((char_count)>>3) + ((line_count>>4)*80); 
assign font_addr = ((char_count - (char_count>>3)*8) + (line_count - (line_count>>4)*16)*8) + ((char[7:0])<<7);
assign redink = ~char[8]; //Red/White ink

endmodule
Timing Analyzer не жалуется.

Проект/
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Простой текстовый терминал 9 года 5 мес. назад #3236

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Доделал проект.
Теперь есть функция скроллинга и еще пара плюшек.
www.polesite.ru/?p=5090

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.157 секунд
Работает на Kunena форум