11# amaranth: UnusedElaboratable=no
2+ # type: ignore[reportAttributeAccessIssue]
23
34# SPDX-License-Identifier: BSD-2-Clause
45import logging
@@ -275,29 +276,20 @@ def instantiate_ports(self, m: Module):
275276 for name , port in v .items ():
276277 self ._ports [port .port_name ] = SiliconPlatformPort (component , name , port )
277278
278- for clock , name in self ._config .chipflow .clocks .items ():
279- port_data = pinlock .package .clocks [name ]
280- port = SiliconPlatformPort (component , name , port_data , invert = True )
281- self ._ports [name ] = port
282-
283- if clock == 'default' :
284- clock = 'sync'
285- setattr (m .domains , clock , ClockDomain (name = clock ))
286- clk_buffer = io .Buffer ("i" , port )
287- setattr (m .submodules , "clk_buffer_" + clock , clk_buffer )
288- m .d .comb += ClockSignal ().eq (clk_buffer .i )
289-
290- for reset , name in self ._config .chipflow .resets .items ():
291- port_data = pinlock .package .resets [name ]
292- port = SiliconPlatformPort (component , name , port_data )
293- self ._ports [name ] = port
279+ for clock in pinlock .port_map .get_clocks ():
280+ setattr (m .domains , clock .port_name , ClockDomain (name = clock ))
281+ clk_buffer = io .Buffer ("i" , self ._ports [clock .port_name ])
282+ setattr (m .submodules , "clk_buffer_" + clock .port_name , clk_buffer )
283+ m .d .comb += ClockSignal ().eq (clk_buffer .i ) #type: ignore[reportAttributeAccessIssue]
284+
285+ for reset in pinlock .port_map .get_clocks ():
294286 rst_buffer = io .Buffer ("i" , port )
295- setattr (m .submodules , reset , rst_buffer )
296- setattr (m .submodules , reset + "_sync" , FFSynchronizer (rst_buffer .i , ResetSignal ()))
287+ setattr (m .submodules , reset . port_name , rst_buffer )
288+ setattr (m .submodules , reset . port_name + "_sync" , FFSynchronizer (rst_buffer .i , ResetSignal ())) #type: ignore[reportAttributeAccessIssue]
297289
298290 self .pinlock = pinlock
299291
300- def request (self , name = None , ** kwargs ):
292+ def request (self , name , ** kwargs ):
301293 if "$" in name :
302294 raise NameError (f"Reserved character `$` used in pad name `{ name } `" )
303295 if name not in self ._ports :
@@ -314,10 +306,10 @@ def get_io_buffer(self, buffer):
314306 raise TypeError (f"Unsupported buffer type { buffer !r} " )
315307
316308 if buffer .direction is not io .Direction .Output :
317- result .i = buffer .i
309+ result .i = buffer .i #type: ignore[reportAttributeAccessIssue]
318310 if buffer .direction is not io .Direction .Input :
319- result .o = buffer .o
320- result .oe = buffer .oe
311+ result .o = buffer .o #type: ignore[reportAttributeAccessIssue]
312+ result .oe = buffer .oe #type: ignore[reportAttributeAccessIssue]
321313
322314 return result
323315
@@ -394,13 +386,3 @@ def build(self, elaboratable, name="top"):
394386 "-o" , output_rtlil .replace ("\\ " , "/" )
395387 ])
396388 return output_rtlil
397-
398- def default_clock (m , platform , clock , reset ):
399- # Clock generation
400- m .domains .sync = ClockDomain ()
401-
402- clk = platform .request (clock )
403- m .d .comb += ClockSignal ().eq (clk .i )
404- m .submodules .rst_sync = FFSynchronizer (
405- ~ platform .request (reset ).i ,
406- ResetSignal ())
0 commit comments