Could we design an FPGA-based compute accelerator on an M.2 card?
Ever since I attended the Altera FPGA workshMicronop featuring their new Agilex 3 device, I am thinking if Agilex could be the right FPGA to implement a general-purpose computation accelerator (i.e. a GPU) with a fast PCI-Express interface and a significant amount of DDR DRAM memory.
The following features of Agilex 3 FPGAs are notable in the context:
-
100k to 135k logic elements in the two largest variants
-
affordable cost of a device around 130 USD/piece
AXC3000: Agilex FPGA Starter Kit
Recently I attended Arrow’s Agilex 3 FPGA workshop, which promoted, obviously, the new Altera Agilex 3 FPGAs. In the workshop we completed lab tasks using also the new AXC3000 Starter Kit that features the Agilex 3 FPGA. At the end of the day there was a quiz and so I happened to win one the AXC3000 boards for myself. In this article I present my first-look analysis of the board.
Beware of Non-Legit Indiegogo Campaigns
There is an ongoing Indiegogo campaign called “X65GS 65816 Gaming Console”, see screenshot below.
I - as the creator of the x65 project - do not support and do not endorse this campaign.
In the campaign page they reused my own ‘amateur’ photos of that one x65-sbc device, which is right now on my work-desk at home. IT MEANS: they do not have the capacity or knowledge to produce own replicas of the x65-sbc computer for testing and marketing purposes, yet they have the guts to request money from unsuspecting customers!
New x65 Debugger in the textual Framework
I started a new debugger tool for my x65 project. Previously I created a dozen of single-purpose python scripts (running on a linux PC) that let me single-step the CPU, read CPU registers, dump memory and so on. The scripts use a common ‘backend’ modules to connect to the x65 hardware over the USB / FTDI interface, but otherwise each script acts on its own.
These python scripts and modules are located in the project subdirectory x65pyhost:
Enclosure for X65
I designed an enclosure box for the x65-SBC computer. For modelling I used Siemens Solid Edge 2024 CAD software, of which I have the Employee Edition. (I think it is just similar to the free Community Edition, but I did not verify.)
The enclosure box is composed of ’top’ and ‘bottom’ parts which can be 3d-printed individually. The parts are screwed together with four M3x25 screws and M3 nuts, with the PCB held in the middle:
Dreamtracker's Rabbit Hole
As mentioned in previous post, Matej asked me if Dreamtracker app is running on X65. I told him that yes, it should run, but better to test it first myself. I downloaded Dreamtracker in its current version V0.71, fired it up, and well, after a promising start - I could see its main menu for a split second - the program crashed into the Monitor…. Well, that felt embarrasing :o
This youtube video shows the crashed start:
The X65 Saga Continues
It’s Autumn again and I am revisiting my Project X65. My list of to-do tasks is endless and growing still :-)
-
finishing tests of the A1 prototype
-
load BOM to Mouser
-
testing the USB interface
-
better ESD concept
-
indication of stopped CPU
-
consider new extension connector
-
consider if SDMMC power should be switched
-
feasibility of machine assembly of prototypes
-
check the new SMC code in CX16
-
check the new 65816 code in CX16
X65-SBC Video-Terminal for the Forth OF816 Interpreter
In the previous post I have mentioned that I am working on a port of the 32-bit Forth interpreter OF816 to my X65-SBC, an 8/16-bit retro computer that I am building. The software runs on the X65-SBC in the 65C816 processor, but the user textual input and output was so far realized via the USB/UART interface terminated on a host PC in a terminal emulator (e.g. putty).
As the next logical step, shown in the demo below, I have implemented a video text terminal using the VERA chip and the VGA output from the X65-SBC. VERA is the computer’s video chip implemented in an FPGA. VERA has 128kB of internal VRAM and could be configured in various graphics modes, typically generating a 640x480-pixel resolution screen. For the purpose of a textual terminal output I am configuring VERA to display 80 columns by 60 rows of visible characters. Each character is 8x8 pixels, and each character can have one of the 16 foreground and background colors.
32-bit Forth for the X65 with 65C816 CPU
I am working on a port of the 32-bit FORTH interpreter OF816 for my X65-SBC computer with the 65C816 CPU. The OF816 was created by mgcaret and is available on github. I made a fork of the OF816 project and added a new branch for my work: x65-sbc.
The OF816 already supports a couple of 65C816-based systems: GoSXB, Apple IIgs, Neon816 and the W65C816SXB. I added a new subdirectory X65 in the platforms directory and initially copied from the Neon816 port, because it seemed the simplest.
Linux 6.7.x on AMD GPU RX570 requires the kernel parameter amdgpu.dc=0
Symptoms: Running Fedora 38 and 39 with kernels 6.7.7 on AMD Ryzen 5 with AMD GPU RX570 (Sapphire Radeon PULSE ITX RX 570 4GD5, 4GB GDDR5) sometimes results in a blank screen (no video signal, monitor going to sleep mode) after the boot. The display manager (sddm, wayland) does not start (or is not visible, there is no video) and it is not possible to login or switch to a virtual console.

