No matter what the size or shape of an LED, it brings out the curiosity in every hardware nerd, and is the lifeblood of badge life around the planet. Then there is the LED cube that takes LEDs to all sides — literally. [Tomverbeure] had his own adventure of creating an LED Cube by piecing together Pixel Purses and a Cisco3G Modem.
A quick search for Pixel Purse on the internet reveals a toy lady’s handbag with an LED matrix embedded in one side. [tomverbeure] tore down 12 of these so as to get two panels for each side of his creation. After a little bit of experimenting with PCB corner brackets, he finally got it right and he is able to merge the pieces together to form the cube.
Next comes the brain and the elected device An FPGA from an HWIC-3G-CDMA modem. Cisco routers have extension slots and the HWIC connector on this particular piece had usable GPIOs that connect directly to the Altera FPGA. Inside the FPGA, a RISC-V soft CPU is used to generate images that get processed and dispatched in a hardware block. [Tomverbeure] does a detailed explanation of the implementation for all the blocks which were written in SpinalHDL. The video below shows the project in action.
We love the detail that [Tomverbeure] provides and hope it does not drive up the prices of the pixel purse too much. If you are looking for a more fine pitched cube, look no further than this one. If you end up making your own, be sure to send us a link.
Looking around at the personal computing markets in modern times, there seem to be a lot of choices in the market. In reality, though, almost everything runs on hardware from a very small group of companies, and software is often available across platforms. This wasn’t the case in the personal computing boom of the 70s and 80s, where different computers were wildly different in hardware and even architecture. The Cosmac ELF was one of the more interesting specimens from this era, and this one has been meticulously reproduced on an FPGA.
The original hardware was based on an RCA 1802 microprocessor and had a rudimentary (by today’s standards) set of switches and buttons as the computer’s inputs. It was low cost, even for the time, but was one of the first single-board computers available. This recreation is coded in SpinalHDL and the simplicity of the original hardware makes it relatively easy to understand. The FPGA is cycle-accurate to the original hardware, too, which makes it nearly perfect even without any of the original hardware.
The project’s creator, [Winston] aka [wel97459], found that SpinalHDL made this project fun to work on (and released his code on his GitHub page), and was able to get the code down to just 1500 lines to recreate the original hardware. It’s very impressive, and also an accessible read for anyone interested in some of the more unique computers offered during the early computer renaissance in the 70s.
If you want to use FPGAs, you’ll almost always use an HDL like Verilog or VHDL. These are layers of abstraction just like using, say, a C compiler is to machine language or assembly code. There are other challengers to the throne such as SpinalHDL which have small but enthusiastic followings. [Tom] has a post about how the VexRISC-V CPU leverages SpinalHDL to make an extremely flexible system that is as efficient as plain Verilog. He says the example really shows off why you should be using SpinaHDL.
Like a conventional programming language, it is easy to find niche languages that will attract a little attention and either take off (say, C++, Java, or Rust) or just sort of fade away. The problem is you can’t ever tell which ones are going to become major and which are just flashes in the pan. Is SpinalHDL the next big thing? We don’t know.
Continue reading “VexRISC-V Exposed”
Since an FPGA is just a sea of digital logic components on a chip, it isn’t uncommon to build a CPU using at least part of the FPGA’s circuitry. VexRiscv is an implementation of the RISC-V CPU architecture using a language called SpinalHDL.
SpinalHDL is a high-level language conceptually similar to Verilog or VHDL and can compile to Verilog or VHDL, so it should be compatible with most tool chains. VexRiscv shows off well in this project since it is very modular. You can add instructions, an MMU, JTAG debugging, caches and more.
Continue reading “VexRiscv: A Modular RISC-V Implementation For FPGA”