Menu Close

关于网络通信(千兆网)的一点小问题

首页 论坛 FPGA FPGA硬件资源 关于网络通信(千兆网)的一点小问题

标签: 

正在查看 5 条回复
  • 作者
    帖子
    • #8092
      张晓强
      参与者

      <p style=”text-align: left;”></p>

      UDP协议  接收实验,顶层模块输入时钟E_RXC通过pll只生成了50MHZ时钟用于uart模块,并产生locked信号用于sys_rst_n复位。而在udp_receive模块,输入时钟用的E_RXC,但是复位信号用的是sys_rst_n。

      udp接收模块使用的时钟并不是pll倍频得到的时钟,那么使用pll产生的sys_rst_n复位信号在udp_receive模块是不是就起不到复位的作用?

       

    • #8153
      William
      管理员

      能起到复位的作用, 这个是异步复位 ,所以在udp_receive_inst 模块中应该使用

      always @ (posedge clk or negedge rst_n)

      if(!rst_n) …..

      else

      ….

      异步时钟复位,逻辑比较简单, 但容易出现亚稳态的情况。  所以最好将一个和时钟同步的reset 输入到 udp_receive_inst 模块比较好。

       

      参考: FPGA中 同步复位(sync)和异步复位(async)的使用

      • 该回复由William 于 4月、 2周前 修正。
    • #8177
      张晓强
      参与者

      那么一个项目中的不同模块之间可不可以一个模块用同步复位,另一个模块用异步复位?

    • #8209
      William
      管理员

      当然可以, 每个模块都可以选择自己的同步复位,和异步复位。 一个好的设计,会进行分区 对于系统时钟, 都会选择 和系统中相关的同步复位, 但接口上比如usb, ethernet, 等等, 都会选择和模块本身相关的同步复位,或者异步复位。

    • #8788
      张晓强
      参与者

      老师,咱们那个千兆网网络协议通信,在做发送模块时,如果做的是1G速率的,需要用到RGMII接口,用这个接口不是谁发送数据谁就发送时钟吗?现在是FPGA这端作为数据发送端,顶层模块输入时钟不是应该用FPGA板载时钟吗?怎么用的是从RTL8211过来的125M时钟?RTL8211内部也有晶振吗?

    • #8812
      William
      管理员

      RGMII 的发送时钟, 可以使用fpga 内部pll (dcm ) 产生的时钟, 也可以使用ethernet phy 传过来的时钟(fpga 接收RGMII 的时钟),只要保证发送的数据和时钟是同步的,就可以。 RTL8211 内部有pll 电路,可以产生2.5M, 25M , 125M 等时钟(根据10M, 100M , 1G )的连接方式。RTL8211 内部没有时钟,它需要外接一个时钟(晶体),

正在查看 5 条回复
  • 哎呀,回复话题必需登录。