Last visit was: Thu May 01, 2025 11:07 am
It is currently Thu May 01, 2025 11:07 am



 [ 6 posts ] 
 Tang Nano 20K 6809 machine 
Author Message

Joined: Tue Sep 03, 2024 6:20 pm
Posts: 33
Here is a link to my a working 6809 machine in a $30 Tang Nano 20K FPGA board.
https://tildegit.org/potato/TangNano20K-6809
* 27MHz (should be good to 40MHz or so).
* 64K RAM
* 115200 serial
* 6 LEDs
* Reset button
* Loader (see boot.asm and test.asm)

It's a minimal effort but it runs.

Reset seems to be flaky sometimes requiring reconfiguring with OpenFPGALoader. Investigating this issue.


Thu Apr 24, 2025 7:25 pm

Joined: Wed Jan 09, 2013 6:54 pm
Posts: 1821
Nice! I see you have the p revision of the 6809 VHDL core - and there's an n revision here.


Thu Apr 24, 2025 7:41 pm

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2307
Location: Canada
If you would like another 6809 core for comparison there is one https://github.com/robfinch/rf6809 written in System Verilog.
There is an option for 8/12 bits.

_________________
Robert Finch http://www.finitron.ca


Fri Apr 25, 2025 7:53 am WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
Have your considered packing the 12 bit CPU in a 40 pin FPGA module?
Attachment:
image.jpg

https://blog.paulsajna.com/fpga-mcs6530-rriot/


You do not have the required permissions to view the files attached to this post.


Sat Apr 26, 2025 10:05 pm

Joined: Tue Sep 03, 2024 6:20 pm
Posts: 33
I am very curious about the 12-bit CPU, and will definitely give it a shot sometime later! It may be just the wingspan I've been looking for.

robfinch, since I have your attention, how do you connect your core to the BRAMS? To get this project to work with sync BRAM I had to use an inverted clock for the BRAM, which almost makes sense but makes me uneasy about the timing, especially for the IO mapping. What is your normal way to do it?


Tue Apr 29, 2025 2:53 pm

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2307
Location: Canada
Quote:
robfinch, since I have your attention, how do you connect your core to the BRAMS? To get this project to work with sync BRAM I had to use an inverted clock for the BRAM, which almost makes sense but makes me uneasy about the timing, especially for the IO mapping. What is your normal way to do it?

The core interfaces to external memory using a WISHBONE bus (see opencores.org). It has an internal instruction cache though to improve performance. The interface to BRAM should be fairly straightforward. Connect address, and data input. Then return an ack from the BRAM after a clock cycle. It may also work with an inverted BRAM clock and ack in the same cycle. But WISHBONE needs to see an ack signal.
I had the 6809 running a system-on-chip for a Artix7-35 48 pin module from Digilent (I forget the exact name). It was using the external 512kB SRAM memory. There is a controller for the memory in the SoC.
The project is here (including CmodA7 components)
https://github.com/robfinch/rf6809
Thanks for interest.

_________________
Robert Finch http://www.finitron.ca


Wed Apr 30, 2025 4:43 am WWW
 [ 6 posts ] 

Who is online

Users browsing this forum: claudebot, SemrushBot and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software