All Projects → Harry-Chen → fpga-virtual-console

Harry-Chen / fpga-virtual-console

Licence: GPL-3.0 license
VT220-compatible console on Cyclone IV EP4CE55F23I7

Programming Languages

SystemVerilog
227 projects
Verilog
626 projects

Projects that are alternatives of or similar to fpga-virtual-console

Aminal
🌘 Darktile is a GPU rendered terminal emulator designed for tiling window managers.
Stars: ✭ 2,663 (+7969.7%)
Mutual labels:  vt100, terminal-emulator, xterm-256color
darktile
🌘 Darktile is a GPU rendered terminal emulator designed for tiling window managers.
Stars: ✭ 2,694 (+8063.64%)
Mutual labels:  vt100, terminal-emulator, xterm-256color
preact-component-console
A console emulator for preact.
Stars: ✭ 29 (-12.12%)
Mutual labels:  console, terminal-emulator
Xterm.js
A terminal for the web
Stars: ✭ 12,019 (+36321.21%)
Mutual labels:  console, vt100
PothosZynq
DMA source and sink blocks for Xilinx Zynq FPGAs
Stars: ✭ 19 (-42.42%)
Mutual labels:  fpga
colorize
pub.dartlang.org/packages/colorize
Stars: ✭ 20 (-39.39%)
Mutual labels:  console
console
a debugger for async rust!
Stars: ✭ 2,101 (+6266.67%)
Mutual labels:  console
quartus-install
Install Intel FPGA 'Quartus Prime' software on remote servers
Stars: ✭ 33 (+0%)
Mutual labels:  fpga
alerta-webui
Alerta Web UI 7.0
Stars: ✭ 84 (+154.55%)
Mutual labels:  console
djinn
Djinn Split Keyboard
Stars: ✭ 685 (+1975.76%)
Mutual labels:  keyboard
st-history-vim
Development of the "vim patch" and a minimalist "history patch" for the suckless simple terminal (st).
Stars: ✭ 43 (+30.3%)
Mutual labels:  terminal-emulator
re-pressed
re-pressed is a clojurescript library that handles keyboard events for re-frame applications.
Stars: ✭ 150 (+354.55%)
Mutual labels:  keyboard
keymacs
Ergonomic keyboard layout for nonergonomic keyboards.
Stars: ✭ 22 (-33.33%)
Mutual labels:  keyboard
stylish-log
🎉 Stylish-log "A beautiful way to see your web console logs"
Stars: ✭ 12 (-63.64%)
Mutual labels:  console
pergola
Low-cost ECP5 FPGA development board
Stars: ✭ 64 (+93.94%)
Mutual labels:  fpga
laravel-console-spinner
Customized loading ⌛ spinner for Laravel Artisan Console.
Stars: ✭ 70 (+112.12%)
Mutual labels:  console
pano man
Simulation of the classic Pacman arcade game on a PanoLogic thin client.
Stars: ✭ 30 (-9.09%)
Mutual labels:  fpga
xplr
A hackable, minimal, fast TUI file explorer
Stars: ✭ 2,271 (+6781.82%)
Mutual labels:  console
rvw developers core
SFCC Developers Core Cartridge. A Salesforce Commerce Cloud (Demandware) Cartridge for Developers.
Stars: ✭ 43 (+30.3%)
Mutual labels:  console
community
ROS 2 Hardware Acceleration Working Group community governance model & list of projects
Stars: ✭ 34 (+3.03%)
Mutual labels:  fpga

FPGA Console

This project implements a VT220-compatible console with extra color support on Cyclone IV EP4CE55F23I7. The experimental board has PS/2 keyboard input and HDMI video output, with UART transceiver to communicate with a computer.

The project is developed under Quartus Prime Lite 18.0, we do not provide any warranty for successful compilation on any other software.

Usage (Arch Linux as example)

  1. Compile the project and program the FPGA board.
  2. Connect the keyboard and monitor.
  3. Connect the FPGA board with PC via a USB-UART cable.
  4. Start a serial tty on PC, such as: systemctl start [email protected].
  5. Login, and run stty cols 100 rows 50 to set display area. Alternatively, you can run demo/set_vt220.sh or demo/set_xterm.sh to setup necessary environment for VT220 or XTerm-256color mode, respectively.
  6. Enjoy it!

Demonstration

There are some fancy commands. For example,

  1. Run demo/asciicam.sh to display colored video captured from your camera.
  2. Run demo/video.sh [video_path] to play video from video_path.
  3. Run bb to show an ASCII-art demo.
  4. Run cacafire to show the colored fire.

Some other demos are in the demo folder, you can also explore for more possibilities!

Notice

  1. The default baud is 3M, which is not a standard baud. You might need to modify the configuration of getty to make it communicate normally with the FPGA. Or you can slow it down (for example, 115200) in src/DataType.svh, which will lead to bad experiences such as slow refreshing rate.
  2. There might be some timing issue with the VGA signal. You can adjust your monitor manually if it doesn't display image as expected.
  3. When TERM=vt220, there is no color support but everything will work well. When TERM=xterm-256color, there is color support, but there might be some strange behaviors for we have not implemented all instructions in that mode.
  4. src/storage contains some mif files that we have designed as the content of initial screen of the console. The default used is TextRamLogBig.mif, the others are all in 80*40 chars so cannot fill the whole screen.

Test and Simulation

There are some test benches in folder testbench. You can use ModelSim to run simulation with source file properly attached. We also provide a debug probe in the top module with some signal linked to it. The two 7-segment LEDs on board can also show the internal status of the console, or the CommandsParser, to be precise.

Documentation

You can refer to doc/report.pdf for a detailed explanation, or doc/presentation.pdf for a quick view of this project . doc/reference contains some details and specifications of console that we have implemented.

The source code is not very well documented, we sincerely apologize for the consequential inconvenience.

License

This project is released under GPLv3, see LICENSE for legal text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].