PHY配置_MDIO接口协议设计

一.基本知识

  千兆以太网通过MAC和PHY芯片通信,MAC端可由FPGA实现,而PHY是物理芯片,只需要配置其工作模式,速率等等参数,便可正常运行。在前面的千兆以太网收发模块中我们并没有考虑配置PHY芯片,因为它在默认状态下也可以正常工作。本次设计主要学习如何配置PHY芯片。

①通信协议

  理解:协议分为读和写两种情况。可以看到两种情况都会有前导码等内容,一开始我的疑惑是写的时候为什么还要由mac端来发送前导码,不是应该由phy发送整个帧让mac端来接收并提取出data吗?(这是学了千兆以太网的惯性思维,千兆以太网就是一端发一端收),理清疑惑:mdio区别于千兆以太网这种两个端都能封装发送帧的通信模式,phy端只能读取或者写入phy内部寄存器,不能封装发送帧。

通信过程:

Ⅰ.写阶段:mac端依次发送前导码,开始位,读写标志位,phy芯片地址,寄存器地址,TA转向位(固定),要写入寄存器的数据等通信协议的内容,把数据写入phy内部寄存器。

Ⅱ.读阶段:mac端仍然发送前导码,开始位,读写标志位,phy芯片地址,寄存器地址,TA转向位(转向),此时mac输出变为高阻态,由phy芯片读取寄存器数据并输出。

可以看到,mdio数据信道在读阶段,可由mac端驱动,也可由phy芯片端驱动,之前的想法是这需要两条数据线,但其实一条就够了,在两端把数据接口设置为inout类型,就可以实现一个接口分时实现输入输出数据,便可实现本次通信协议的要求。(前面不理解是不知道或者忘了有inout口)。

②接口读写时序

   理解:MDC时钟是由mac端设计产生的控制phy的时钟(MDC频率跟mac系统时钟频率是不同的,所以才有计数器奇偶之分,才有上下沿的实现)。在写阶段,mac端可以设计在MDC时钟的下降沿发送数据,这样子到达phy端,在MDC的上升沿采集数据时数据已经稳定了,不会产生亚稳态。同理,由于phy端内部设计也是在MDC时钟的下降沿采集数据并发送,所以mac端在MDC时钟的上升沿采集数据。

  在设计过程中,要严格按照时序解读来设计哪一位输出什么,才能成功实现功能。

③ inout端口(难点)

  inout端口口可实现输入输出,功能比input和output更丰富,但设计也更加复杂。

Ⅰ.inout端口由三态门实现,有输入,输出,高阻态三个状态。

Ⅱ.inout端口不可能独立存在,本机使用inout端口,那么这个端口连接的另外一个端口也须为inout端口,才能实现输入输出功能,

Ⅲ.两个相连的inout端口由一对信号交错控制。通信过程存在以下情况:①一个输入,一个输出。此时输入端设置为高阻态,再由寄存器接收输入数据。②两个都输入数据。即设置为高阻态,此时两端都不传输数据。③两个都输出数据。这种情况会产生冲突,要避免。

  由此可知这对信号并非相反信号,因为存在情况②。

Ⅳ.inout端口作为输入端可以由reg型缓冲。时序性更好。

例:

inout databus;
assign databus=(control)?databus:'bz;
//时序逻辑(control_1信号得思考如何设计)
reg data_in;
always @(control_1)
    If(control_1)
        data_in<=databus;
//组合逻辑(简单)
wire data_in
assign data_in = databus;

 另:

pullup(sig) ;//当sig为高阻态时拉为高电平,当sig为其他状态时没有效果(可以一直拉着,反之只有在高阻态时产生效果,其他情况不影响信号)
pulldowm(sig);//同上,只不过是拉低。

如图:

Ⅰ.逻辑正常

 

 

Ⅱ.逻辑冲突

 

 

 

 

二.逻辑设计

1.模块框图

2.实现方式:三段式状态机

  上一次设计用的三段式状态机是用nextstate来控制变化信号的变化,而本次使用的是currstate,实际上两种都可以,一个是时序变化一个是组合逻辑,currstate变化的时序会慢一拍,两种情况的变化点设计会有所区别,具体可以看仿真图来设定。

3.状态转换图

   具体的实现仍然是用计数器。

4.从机仿真模型

  本次设计的是mac端,由于MDIO口是inout口,势必要有另外一个inout口来对应,才能输入输出数据,且在时序上不能冲突。本次从网上找到了一个phy芯片的仿真模型,可以跟mac端的设计实现通信,这个仿真模型可以实现phy芯片的功能,设计较为复杂,当然也可以自己设计,在时序上不能和mac端冲突。

  从机是相对于主机而言的,例如本次主机是mac端,从机就是phy芯片。类似的叫法还有上位机等等。

5.仿真结果

 

 

 

 

 

posted @ 2022-09-03 12:02  little_breeze  阅读(1066)  评论(0编辑  收藏  举报