Replies: 4 comments 14 replies
-
Hi !
|
Beta Was this translation helpful? Give feedback.
-
Maybe you could add a funny hardware feature to your X16, I am thinking on having two fast digital-analog converters for vector graphics, as I wrote a RISC-V vector demo for the Lovebyte party last weekend, or include one of these HUB75 protocol 64x64 RGB LED matrix display panels. When trying to run the FemtoRV core as coprocessor from main memory of the X16, using the 8-bit-data and 16-bit-address bus, you need additional logic for handling 32 bit instruction fetch, memory read and memory write over 8 bit data lines. Split it into four separate bus cycles. Well possible, we execute code directly from SPI flash and SDRAM memory, all official FemtoRV cores offer busy signaling. Vice versa, stopping the 65C02 and using the complete X16 as peripheral(s) to the RISC-V, running from internal block RAMs, might be easier. Another idea is to have a shared dual port memory area in the FPGA, which is mapped to the 65C02 bus and can be accessed 8 bit wide from the outside, and executed 32 bit wide from the inside. You have many possibilities as soon as you connected the FPGA to all the bus lines. Just keep in mind that 65C02 runs on 5V, whereas most FPGA boards are designed for 3.3V signals. You need high-Z capable tristate level shifters! |
Beta Was this translation helpful? Give feedback.
-
...for playing with RISC-V assembler, a RV32IM emulator written in and running on the 65C02 itself might be a slow and horrible, but easy solution, offering single-step debugging and advanced insight... |
Beta Was this translation helpful? Give feedback.
-
Bruno has done an excellent course supporting the Icebreaker, but if you feel lost in all the configurable options, maybe have a look at a my design for the Icebreaker board, with a different IO layout: https://sourceforge.net/projects/mecrisp/files/mecrisp-quintus-1.0.5.tar.gz/download |
Beta Was this translation helpful? Give feedback.
-
I watched Shawn H's excellent 2 part series on the FemtoRV where he goes into good detail on how the MMIO I/O addresses work. I was curious what the lift might be to expand that to a larger more standard memory area as well as exposing a chunk of memory out to an external address bus?
This is sort of an eventual goal but was trying to find hardware that might fit both the short and longer term plans. Specifically, I was thinking about how I might add a RISCV co-processor to the Comamnder X16 retro computer. I was thinking of making an expansion card housing say a ULX3S and connecting the system bus (along with IRQ and some other signals) to the FPGA. That would allow it to be used for lots of things, but in my case, playing around with how I might write hybrid programs (letting the 65C02 handle kernal calls and things, but using RISCV, along with its local expanded address space (TBD how I'd implement that, SRAM via LUTs, BRAM, SDRAM, external SRAM, etc.) combined with the X16's which might side within an expanded 32-bit region (so say 0x900000-0x90FFFF).
Raw speed isn't the goal and I had thought of simply using the X16 system clock (8 MHz). The X16 already has a Lattice FPGA for video (the VERA module) and it runs internally at a higher frequency than the bus so seems like running at different speeds is perhaps also possible.
All told though the Femto SOC isn't setup to do this, on purpose to save LUTs. I was looking at the picorv32 and others but the Femto documentation is soooo good I was trying to sort out how much of a change might be required to update the memory handling to achieve something like the above. I haven't touched an HDL since college (some time ago) but reading the Verilog makes me think it wouldn't be an extreme lift but thought I'd ask.
I realize it's a newb sort of question and probably wouldn't be asking this if the above didn't hinge on which FPGA solution to consider purchasing for when I might be ready to tackle something like this. Apologies if this is not the place to ask such things.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions