33from amaranth import *
44from amaranth_boards .ulx3s import *
55from amaranth .lib .cdc import ResetSynchronizer
6+ from amaranth .lib import io
67
78from amaranth_orchard .memory .spimemio import QSPIPins
89from amaranth_orchard .base .gpio import GPIOPins
@@ -53,7 +54,8 @@ def __init__(self):
5354 def elaborate (self , platform ):
5455 m = Module ()
5556 for i in range (8 ):
56- led = platform .request ("led" , i )
57+ led = io .Buffer ("o" , platform .request ("led" , i , dir = "-" ))
58+ m .submodules [f"led_{ i } " ] = led
5759 m .d .comb += led .o .eq (self .pins .o [i ])
5860 return m
5961
@@ -65,7 +67,8 @@ def __init__(self):
6567 def elaborate (self , platform ):
6668 m = Module ()
6769 for i in range (2 ):
68- btn = platform .request ("button_fire" , i )
70+ btn = io .Buffer ("i" , platform .request ("button_fire" , i , dir = "-" ))
71+ m .submodules [f"btn_{ i } " ] = btn
6972 m .d .comb += self .pins .i [i ].eq (btn .i )
7073 return m
7174
@@ -75,12 +78,13 @@ def __init__(self):
7578 self .pins = UARTPins ()
7679
7780 def elaborate (self , platform ):
78- uart = platform .request ("uart" )
79-
8081 m = Module ()
82+ uart_pins = platform .request ("uart" , 0 , dir = {"rx" : "-" , "tx" : "-" })
83+ m .submodules .uart_rx = uart_rx = io .Buffer ("i" , uart_pins .rx )
84+ m .submodules .uart_tx = uart_tx = io .Buffer ("o" , uart_pins .tx )
8185 m .d .comb += [
82- uart . tx .o .eq (self .pins .tx_o ),
83- self .pins .rx_i .eq (uart . rx .i ),
86+ uart_tx .o .eq (self .pins .tx_o ),
87+ self .pins .rx_i .eq (uart_rx .i ),
8488 ]
8589 return m
8690
@@ -139,6 +143,8 @@ def __init__(self):
139143
140144 def elaborate (self , platform ):
141145 m = Module ()
142- m .d .comb += ClockSignal ("sync" ).eq (platform .request ("clk25" ).i )
143- m .submodules += ResetSynchronizer (platform .request ("button_pwr" ).i , domain = "sync" )
146+ m .submodules .clk25 = clk25 = io .Buffer ("i" , platform .request ("clk25" , dir = "-" ))
147+ m .d .comb += ClockSignal ("sync" ).eq (clk25 .i )
148+ m .submodules .btn_pwr = btn_pwr = io .Buffer ("i" , platform .request ("button_pwr" , dir = "-" ))
149+ m .submodules += ResetSynchronizer (btn_pwr .i , domain = "sync" )
144150 return m
0 commit comments