aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaf Verhaegen <staf@stafverhaegen.be>2024-05-01 09:14:41 +0200
committerCatherine <whitequark@whitequark.org>2024-05-01 15:08:31 +0100
commitaba2300dc83216523e1c98fdb22471cb4bac5027 (patch)
treef7da1b73d3d1194387b7d70e8a061b4350562a3c
parent8be265b8ed89c1bbb4d9785a14dcfa415898a9d7 (diff)
Add MiST board.
This is the original Amiga/Atari ST FPGA board; the predecessor to the MiSTer board.
-rw-r--r--amaranth_boards/mist.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/amaranth_boards/mist.py b/amaranth_boards/mist.py
new file mode 100644
index 0000000..fa7eb1a
--- /dev/null
+++ b/amaranth_boards/mist.py
@@ -0,0 +1,81 @@
+from amaranth import *
+from amaranth.build import *
+from amaranth.vendor import IntelPlatform
+from .resources import *
+
+__all__ = ["MiSTPlatform"]
+
+
+class MiSTPlatform(IntelPlatform):
+ """MiST is the original Amiga/Atari ST retro FPGA board. It has been
+ the inspiration for the MiSTer board.
+
+ More information can be found on the wiki page:
+ https://github.com/mist-devel/mist-board/wiki
+ """
+ device = "EP3C25" # Cyclone III 25K LEs
+ package = "E144"
+ speed = "C8"
+ default_clk = "clk27"
+ resources = [
+ Resource(
+ "clk27", 0, Pins("54", dir="i"),
+ Clock(27e6), Attrs(io_standard="3.3-V LVTTL"),
+ ),
+ Resource(
+ "clk27", 1, Pins("55", dir="i"),
+ Clock(27e6), Attrs(io_standard="3.3-V LVTTL")),
+
+ *LEDResources(
+ pins="7",
+ attrs=Attrs(io_standard="3.3-V LVTTL"),
+ ),
+
+ VGAResource(0,
+ r="135 137 141 142 143 144",
+ g="106 110 111 112 113 114",
+ b="115 120 121 125 132 133",
+ hs="119", vs="136",
+ attrs=Attrs(io_standard="3.3-V LVTTL"),
+ ),
+
+ UARTResource(0,
+ rx="31", tx="46",
+ attrs=Attrs(io_standard="3.3-V LVTTL"),
+ ),
+
+ SPIResource(0,
+ cs_n="127 91 90", # SS2/FPGA, SS3/OSD, SS4/SD_DIRECT
+ clk="126", copi="88", cipo="105",
+ attrs=Attrs(io_standard="3.3-V LVTTL"),
+ ),
+
+ SDRAMResource(0,
+ clk="43", cs_n="59", we_n="66", ras_n="60", cas_n="64",
+ ba="58 51", a="49 44 42 39 4 6 8 10 11 28 50 30 32",
+ dq="83 79 77 76 72 71 69 68 86 87 98 99 100 101 103 104",
+ dqm="67 85",
+ attrs=Attrs(io_standard="3.3-V LVCMOS"),
+ ),
+
+ Resource("audio", 0,
+ Subsignal("l", Pins("65", dir="o")),
+ Subsignal("r", Pins("80", dir="o")),
+ Attrs(io_standard="3.3-V LVTTL"),
+ ),
+
+ Resource("conf_data0", 0,
+ Pins("13", dir="i"),
+ Attrs(io_standard="3.3-V LVTTL"),
+ ),
+ ]
+ connectors = []
+
+
+if __name__ == "__main__":
+ from .test.blinky import Blinky
+ MiSTPlatform().build(Blinky(), do_program=False)
+ print((
+ "To use test bitstream on MiST; copy 'build/top.rbf' to file\n"
+ "named 'core.rbf' on SD card so it will be loaded by MiST firmware"
+ ))