@@ -168,48 +168,69 @@ def __init__(self,
168168 if eth_phy in ["sfp0" , "sfp1" ]:
169169 from liteeth .phy .titanium_lvds_1000basex import EfinixTitaniumLVDS_1000BASEX
170170 _sfp_lpc_ios = [
171- ("sfp_lpc1" , 0 ,
172- Subsignal ("tx_enable" , Pins ("LPC:LA32_N" )),
173- Subsignal ("tx_p" , Pins ("LPC:LA09_P" )),
174- Subsignal ("tx_n" , Pins ("LPC:LA09_N" )),
175- Subsignal ("rx_p" , Pins ("LPC:LA05_P LPC:LA06_P LPC:LA07_P LPC:LA08_P" )),
176- Subsignal ("rx_n" , Pins ("LPC:LA05_N LPC:LA06_N LPC:LA07_N LPC:LA08_N" )),
177- Subsignal ("scl" , Pins ("LPC:LA30_N" )),
178- Subsignal ("sda" , Pins ("LPC:LA32_P" )),
179-
180- ),
181-
182- ("sfp_lpc1" , 1 ,
183- Subsignal ("tx_enable" , Pins ("LPC:LA16_P" )),
184- Subsignal ("tx_p" , Pins ("LPC:LA01_CC_P" )),
185- Subsignal ("tx_n" , Pins ("LPC:LA01_CC_N" )),
186- Subsignal ("rx_p" , Pins ("LPC:LA00_CC_P LPC:LA02_P LPC:LA03_P LPC:LA04_P" )),
187- Subsignal ("rx_n" , Pins ("LPC:LA00_CC_N LPC:LA02_N LPC:LA03_N LPC:LA04_N" )),
188- Subsignal ("scl" , Pins ("LPC:LA19_P" )),
189- Subsignal ("sda" , Pins ("LPC:LA19_N" )),
190- )
191- ]
171+ # SFP0.
172+ ("sfp_lpc1" , 0 ,
173+ Subsignal ("tx_enable" , Pins ("LPC:LA32_N" )),
174+ Subsignal ("tx_p" , Pins ("LPC:LA09_P" )),
175+ Subsignal ("tx_n" , Pins ("LPC:LA09_N" )),
176+ Subsignal ("rx_p" , Pins ("LPC:LA05_P LPC:LA06_P LPC:LA07_P LPC:LA08_P" )),
177+ Subsignal ("rx_n" , Pins ("LPC:LA05_N LPC:LA06_N LPC:LA07_N LPC:LA08_N" )),
178+ Subsignal ("scl" , Pins ("LPC:LA30_N" )),
179+ Subsignal ("sda" , Pins ("LPC:LA32_P" )),
180+
181+ ),
182+
183+ # SFP1.
184+ ("sfp_lpc1" , 1 ,
185+ Subsignal ("tx_enable" , Pins ("LPC:LA16_P" )),
186+ Subsignal ("tx_p" , Pins ("LPC:LA01_CC_P" )),
187+ Subsignal ("tx_n" , Pins ("LPC:LA01_CC_N" )),
188+ Subsignal ("rx_p" , Pins ("LPC:LA00_CC_P LPC:LA02_P LPC:LA03_P LPC:LA04_P" )),
189+ Subsignal ("rx_n" , Pins ("LPC:LA00_CC_N LPC:LA02_N LPC:LA03_N LPC:LA04_N" )),
190+ Subsignal ("scl" , Pins ("LPC:LA19_P" )),
191+ Subsignal ("sda" , Pins ("LPC:LA19_N" )),
192+ )
193+ ]
192194 platform .add_extension (_sfp_lpc_ios )
193195
196+ # 1000 BaseX PHY.
194197 ethphy_pads = platform .request ("sfp_lpc1" , int (eth_phy [- 1 ]))
195- self .comb += ethphy_pads .tx_enable .eq (1 )
196-
197198 self .ethphy = EfinixTitaniumLVDS_1000BASEX (
198199 pads = ethphy_pads ,
199200 refclk = self .crg .cd_sys .clk ,
200201 refclk_freq = sys_clk_freq ,
201202 rx_delay = [0 , 0 , 2 , 2 ], # FIXME: Explain/Adjust.
202203 )
204+ self .comb += ethphy_pads .tx_enable .eq (1 )
205+
206+ # Link Up LED for Debug.
207+ self .comb += platform .request ("user_led" , 0 ).eq (self .ethphy .link_up )
208+
209+ # # IRQ (if enabled).
203210 if hasattr (self .ethphy , "ev" ) and self .irq .enabled :
204211 self .irq .add ("ethphy" , use_loc_if_exists = True )
205- self .comb += platform .request ("user_led" , 0 ).eq (self .ethphy .link_up )
206212
207- platform .add_false_path_constraints (self .crg .cd_sys .clk , self .ethphy .crg .cd_eth_rx .clk , self .ethphy .crg .cd_eth_tx .clk )
213+ # Timing Constraints.
214+ platform .add_false_path_constraints (
215+ self .crg .cd_sys .clk ,
216+ self .ethphy .crg .cd_eth_rx .clk ,
217+ self .ethphy .crg .cd_eth_tx .clk ,
218+ )
208219
209220 if with_ethernet :
210- self .add_ethernet (phy = self .ethphy , local_ip = eth_ip , remote_ip = remote_ip , software_debug = False , with_timing_constraints = False )
221+ self .add_ethernet (
222+ phy = self .ethphy ,
223+ local_ip = eth_ip ,
224+ remote_ip = remote_ip ,
225+ software_debug = False ,
226+ with_timing_constraints = False ,
227+ )
211228 if with_etherbone :
212- self .add_etherbone (phy = self .ethphy , ip_address = eth_ip , with_timing_constraints = False )
229+ self .add_etherbone (
230+ phy = self .ethphy ,
231+ ip_address = eth_ip ,
232+ with_timing_constraints = False ,
233+ )
213234
214235 # HDMI -------------------------------------------------------------------------------------
215236 if hasattr (self .cpu , "video_clk" ):
0 commit comments