๐พ Archived View for bbs.geminispace.org โบ s โบ FPGA โบ 18912 captured on 2024-08-19 at 00:53:27. Gemini links have been rewritten to link to archived content
โก๏ธ Next capture (2024-08-31)
-=-=-=-=-=-=-
Ah, after some fiddling, got a minimal 6502 system flashing an LED. Running at stock 27MHz, with 2K RAM and 2K ROM.
The FPGA has 48K of block RAM and an HDMI interface, so I could build, say, a credible Apple 2, or an Atari -- the CPU consumes just over 10โ of resources.
There is also an SD card interface and an 64mbit SDRAM, and a bunch of Flash, and an LCD interface... Not bad for $20.
Jul 30 ยท 3 weeks ago ยท ๐ norayr, dozens
๐ norayr ยท Jul 30 at 14:23:
amazing. i wish i would understand in fpga and build an oric atmos which would be able to understand modern keyboard and vga display.
๐ norayr ยท Jul 30 at 14:24:
i wonder if project oberon would work on such a system you have.
๐ stack [OP/mod] ยท Jul 30 at 15:10:
@norayr - you can do it! Around 2008 I decided to figure it out after years of wanting to do some hardware. In many ways FPGAs are more satisfying than software, although hardware description languages are a bit of a mess.
My approach to FPGAs is somewhat unorthodox punk rock - I generally instantiate circuits (memories, muxes, etc) and wire them together instead of describing logic and letting the toolchain 'infer' what I mean. I also don't simulate, but build bottom-up, writing and testing components then wiring them together.
Anyway, FPGAs are much less complicated than any modern programming language, especially if you know anything about digital logic.
๐ stack [OP/mod] ยท Jul 30 at 15:15:
@norayr: re Oberon -- yes, it would fit, but you'd have to rewrite the video to use HDMI (or wire up a few resistors and a VGA connector). And replace the PS/2 keyboard code with the built-in USB interface. The microSD slot is there, so it can be self-contained, unless you want VGA or the wireless network.
I built a few Project Oberon boards a few years back, only to find out that I really don't like the language!
๐ norayr ยท Jul 30 at 15:52:
okay, very inspiring. so this fpga board costs $20? unbelievable. and do you need some windows/macos software to program it (or compile verilog) or is it possible to do everything on linux, and is it possible to have the open source toolchain?
๐ norayr ยท Jul 30 at 15:53:
omg, you even built it. yeah, i am a fan, i need to do this. i need to learn how to do this.
๐ stack [OP/mod] ยท Jul 30 at 19:46:
@norayr: Yes, there is the manufacturer's (Gowin's) own IDE/toolchain, which is not too bad, for WIndows and Linux, and there is a free yosys/apycula toolchain for Linux which is actually much better than Gowin's (you can use Makefiles and vim instead of the idiotic IDE)
The opensource toolchain builds my 6502 project in 30 seconds, Gowin's in 1 minute.
And the opensource loader (openFPGALoader) works really great.
As for Oberon, a decade ago, this was my little project:
โ https://web.archive.org/web/20160505143509/http://oberonstation.x10.mx/
My friend used python to make his commodore 64 for the analog pocket
๐ stack [OP/mod] ยท Jul 31 at 20:22:
@remy do you mean this project?
โ https://github.com/markus-zzz/myc64-pocket
Analogue Pocket is a cool FPGA handheld (2 FPGAs I think). I don't think there is much Python involved, however. At least I hope not, for I am not a fan of Python.
yes, this project. There is a tool that converts python to verilog and then compiles.
๐ stack [OP/mod] ยท Aug 01 at 16:18:
@remy I can't imagine why anyone would ever want to do that, but the world is full of strange and sometimes interesting things
It is simpler to write python than verilog for people who like python. It is possible to have a design with both verilog and python. The entire design doesn't have to be written in python
๐ stack [OP/mod] ยท Aug 01 at 20:50:
I know people do this, but aside from my objections to Python as an abomination of a language in general, and its lack of stability when some library 10 layers down gets updated...
Verilog is already pretty far from the hardware -- and you have to cross your fingers and hope it infers the circuitry you want... To add another layer adds yet more uncertainty about what will come out, and you would still need to know verilog to make sure your translator is not generating something similar but different from what you want.
But there is no accounting for taste or poor judgement. I am sure your friend knows what they are doing.