3
3
4
4
__all__ = [
5
5
"UARTResource" , "IrDAResource" , "SPIResource" , "I2CResource" ,
6
- "DirectUSBResource" , "ULPIResource"
6
+ "DirectUSBResource" , "ULPIResource" , "RGMIIResource"
7
7
]
8
8
9
9
@@ -130,3 +130,20 @@ def ULPIResource(*args, data, clk, dir, nxt, stp, rst=None,
130
130
if attrs is not None :
131
131
io .append (attrs )
132
132
return Resource .family (* args , default_name = "usb" , ios = io )
133
+
134
+
135
+ def RGMIIResource (* args , txc , txd , tx_ctl , rxc , rxd , rx_ctl , mdc , mdio , attrs = None , conn = None ):
136
+ io = []
137
+
138
+ io .append (Subsignal ("txc" , Pins (txc , dir = "o" , conn = conn , assert_width = 1 )))
139
+ io .append (Subsignal ("txd" , Pins (txd , dir = "o" , conn = conn , assert_width = 4 )))
140
+ io .append (Subsignal ("tx_ctl" , Pins (txc , dir = "o" , conn = conn , assert_width = 1 )))
141
+ io .append (Subsignal ("rxc" , Pins (rxc , dir = "i" , conn = conn , assert_width = 1 )))
142
+ io .append (Subsignal ("rxd" , Pins (rxd , dir = "i" , conn = conn , assert_width = 4 )))
143
+ io .append (Subsignal ("rx_ctl" , Pins (txc , dir = "i" , conn = conn , assert_width = 1 )))
144
+ io .append (Subsignal ("mdc" , Pins (mdc , dir = "o" , conn = conn , assert_width = 1 )))
145
+ io .append (Subsignal ("mdio" , Pins (mdio , dir = "io" , conn = conn , assert_width = 1 )))
146
+
147
+ if attrs is not None :
148
+ io .append (attrs )
149
+ return Resource .family (* args , default_name = "rgmii" , ios = io )
0 commit comments