All Projects → ZipCPU → Wbuart32

ZipCPU / Wbuart32

Licence: gpl-3.0
A simple, basic, formally verified UART controller

Projects that are alternatives of or similar to Wbuart32

Symbiflow Examples
Example designs showing different ways to use SymbiFlow toolchains.
Stars: ✭ 71 (-46.62%)
Mutual labels:  verilog, fpga
Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (-5.26%)
Mutual labels:  verilog, fpga
Antikernel
The Antikernel operating system project
Stars: ✭ 75 (-43.61%)
Mutual labels:  verilog, fpga
Core jpeg
High throughput JPEG decoder in Verilog for FPGA
Stars: ✭ 64 (-51.88%)
Mutual labels:  verilog, fpga
Autofpga
A utility for Composing FPGA designs from Peripherals
Stars: ✭ 108 (-18.8%)
Mutual labels:  verilog, fpga
J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (-51.88%)
Mutual labels:  verilog, fpga
Aes
Verilog implementation of the symmetric block cipher AES (Advanced Encryption Standard) as specified in NIST FIPS 197. This implementation supports 128 and 256 bit keys.
Stars: ✭ 131 (-1.5%)
Mutual labels:  verilog, fpga
Darkriscv
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
Stars: ✭ 1,062 (+698.5%)
Mutual labels:  verilog, fpga
Nyuziprocessor
GPGPU microprocessor architecture
Stars: ✭ 1,351 (+915.79%)
Mutual labels:  verilog, fpga
Vgasim
A Video display simulator
Stars: ✭ 94 (-29.32%)
Mutual labels:  verilog, fpga
Fpga101 Workshop
FPGA 101 - Workshop materials
Stars: ✭ 54 (-59.4%)
Mutual labels:  verilog, fpga
Vm80a
i8080 precise replica in Verilog, based on reverse engineering of real die
Stars: ✭ 114 (-14.29%)
Mutual labels:  verilog, fpga
Rggen
Code generation tool for configuration and status registers
Stars: ✭ 54 (-59.4%)
Mutual labels:  verilog, fpga
Jt gng
CAPCOM arcade hardware accurately replicated on MiST and MiSTer FPGA platforms. It covers Ghosts'n Goblins, 1942, 1943, Commando, F1-Dream, GunSmoke, Tiger Road, Black Tiger, Bionic Commando, Higemaru, Street Fighter and Vulgus.
Stars: ✭ 65 (-51.13%)
Mutual labels:  verilog, fpga
Electron
A mixed signal netlist language (pre-alpha)
Stars: ✭ 52 (-60.9%)
Mutual labels:  verilog, fpga
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (-42.11%)
Mutual labels:  verilog, fpga
Vexriscv
A FPGA friendly 32 bit RISC-V CPU implementation
Stars: ✭ 1,041 (+682.71%)
Mutual labels:  verilog, fpga
Wbscope
A wishbone controlled scope for FPGA's
Stars: ✭ 50 (-62.41%)
Mutual labels:  verilog, fpga
Icestation 32
Compact FPGA game console
Stars: ✭ 93 (-30.08%)
Mutual labels:  verilog, fpga
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (-17.29%)
Mutual labels:  verilog, fpga

Another Wishbone (or even AXI-lite) Controlled UART

Forasmuch as many have taken in hand to set forth a UART core, ... It seemed good to me also, having had perfect (a good) understanding of all things from the very first, to write ... my own UART core. [Ref]

  • This Verilog core contains two UART modules, one for transmit and one for receive. Each can be configured via one 32-bit word for just about any baud rate, one or two stop bits, five through eight data bits, and odd, even, mark, or space parity. If you are looking for an example Verilog UART module containing all these features, then you have just found it.

  • The module goes beyond simple transmit and receive, however, to also include a fairly generic synchronous FIFO. For those looking for a fairly simple FIFO, whether for your UART capability or something else, you've also just found it.

  • If you are looking for a wishbone--enabled peripheral, this module offers two configuration methods: one that can be included in another, larger, wishbone module, and another which is complete in its own right--together with an integrated FIFO and a FIFO status register.

  • If what you want is an AXI-lite peripheral, there is also an AXI-lite wrapper having the same register interface as the wbuart core listed above.

  • If you are familiar with other UART setup protocols, you'll find this one much easier to setup. For example, unlike the 16550 serial port, this serial port can be set up by just writing to and setting a single 32--bit register. Once set, either at startup or by writing the the port afterwards, and your UART is fully configured. Changes will take place on the next byte to be transmitted (or received).

  • If you would rather test your own UART transmitter and/or receiver, this core contains within it a Verilator enabled UART simulator which can be used in test-benches of your own UART implementation to know if you've done it right or not.

  • Finally, the test benches within bench/verilog of this directory can be used as very simple test benches to test for UART functionality on a board with only two pins (clock and output UART), or three pins (adding the input UART). Thus, if you are just trying to start up a project and need a demonstration that will prove if your UART will work, you can find several such a demonstration projects in this code. Further, two of those test benches will also create VCD files that can be inspected via gtkwave, so you can get a feel for how the whole thing works.

At one time, the biggest drawback to the files in these directories was that there wasn't a version of this UART interface containing a FIFO. Well, no more. Now there is a wbuart.v file that can be integrated into a wishbone/B4/pipeline bus and a similar axiluart.v file that can be used to integrate this into an AXI-lite environment. As mentioned above, this module contains a FIFO with a parameterized length that can extend up to 1024 entries. Indeed, recent changes have even added in optional hardware flow control, should you wish to use it.

Thus this is a very simple and easy to use controller.

Commercial Applications

Should you find the GPLv3 license insufficient for your needs, other licenses can be purchased from Gisselquist Technology, LLC.

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].