thotypous/alterajtaguart

How can we import this on Quartus?

MockbaTheBorg opened this issue · 3 comments

Hi Paulo,

I am a retro-computing enthusiast and I have been searching for a solution to use UART over JTAG for small Z80 emulations I write inside FPGA boards.
By searching for something that could be used without NiosII I have found this project of yours, but I am too much of a noob to get it to even import onto one of my Quartus projects.
I have tried using the Altera's JTAG-Uart module, the one with the Avalon bus, but I couldn't adapt it to work without NIOS.
I converted it onto a schematic element and I do get a few characters (64 to be exact) to print onto the nios2-terminal but that's it, it doesn't go any further, that's when I started searching the web for an alternative.
I was looking for something that I could use to emulate a regular UART, like a 16550 or 6850, just using the USB JTAG connection without having to plug a USB-UART dongle into th board.

Muito obrigado por qualquer ajuda.
Marcelo.

Hi Marcelo,

This repository contains a wrapper for using the alt_jtag_atlantic module in Bluespec. If you use Bluespec, the wrapper exposes two FIFOs (rxfifo and txfifo) where you can get/put bytes. It is really easy to use, just see the examples.

If you use Verilog or VHDL, you can instantiate alt_jtag_atlantic directly. Its signals are:

  • r_ena (output): tells if you can write a byte to the UART during the next cycle (important: it's not during the current cycle! it's during the next one).
  • r_dat and r_val (inputs): provide a byte to r_dat and assert r_val high to write the byte to the UART.
  • t_dav (input): assert high if you want to read a byte from the UART during the next cycle.
  • t_dat and t_ena (outputs): if t_ena is high, then a byte is ready to be read from t_dat.

Please note alt_jtag_atlantic is not a part of this project. It is a "builtin" module of Altera's synthesizer. If you are using Verilog or VHDL you don't need anything from this project (for the hardware part), only the documentation above.

As for the software part, you can refer to the software directory.

Please feel free to reopen this issue if you need any further information.