IEEE1588时钟同步(2)

程序猿,用代码记录生活

2018/12/28

  1. 简单的搭了下电路:
    在这里插入图片描述

  2. 简单写一下管脚约束文件

########  clk  #####
NET "fosc"         LOC = "P8";   
NET "HIGH_FOSC"    LOC = "P9";

########    TEST       #########
NET "LED1"         LOC = "M16";   
NET "LED2"         LOC = "N16";
NET "LED_ON"       LOC = "L16";
NET "TEST1" 		 LOC = "T13";
NET "TEST2" 		 LOC = "T14";
NET "TEST3"  		 LOC = "R15";
NET "TEST4" 		 LOC = "P15";
NET "TEST5" 		 LOC = "P16";

########## DP83640-A ############################

NET "PMDIO"    LOC = "H3";     # SMI DATA CLOCK
NET "PMDC"     LOC = "J1";     # SMI DATA I/O

NET "PCOL"     LOC = "C4";     # PHY ADDRESS [4:0]
NET "PRXD3"    LOC = "G2";
NET "PRXD2"    LOC = "H1";
NET "PRXD1"    LOC = "F3";
NET "PRXD0"    LOC = "G1";

NET "PRXDV"    LOC = "E2";     # select MII MODE = 0 & RMII MODE = 1
NET "PRXER"    LOC = "D3";     # RECEIVE ERROR

NET "PRXCLK"   LOC = "F1";     # O MII RECEIVE CLOCK & RMII  
NET "PTXCLK"   LOC = "C2";     # O MII RECEIVE CLOCK & RMII
 
NET "PTXEN"    LOC = "D1";     # I 
NET "PTXER"    LOC = "E1"; 
   
NET "PTXD0"    LOC = "B3";     # MII RECEIVE DATA [3:0]  & RMII RECEIVE DATA [1:0]
NET "PTXD1"    LOC = "C1"; 
NET "PTXD2"    LOC = "B4"; 
NET "PTXD3"    LOC = "A3"; 

NET "PCRS"     LOC = "A4";

########    DP83640-B    #########

NET "BPMDIO"    LOC = "B6";    # SMI DATA CLOCK
NET "BPMDC"     LOC = "A6";    # SMI DATA I/O

NET "BPCOL"     LOC = "B14";   # PHY ADDRESS [4:0]
NET "BPRXD3"    LOC = "C7";
NET "BPRXD2"    LOC = "A7";
NET "BPRXD1"    LOC = "B8";
NET "BPRXD0"    LOC = "A8";

NET "BPRXDV"    LOC = "C9";    #select MII MODE = 0 & RMII MODE = 1
NET "BPRXER"    LOC = "B10";   # RECEIVE ERROR

NET "BPRXCLK"   LOC = "A9";    # O MII RECEIVE CLOCK & RMII 
NET "BPTXCLK"   LOC = "C11";   # O MII RECEIVE CLOCK & RMII

NET "BPTXER"    LOC = "A10"; 
NET "BPTXEN"    LOC = "A11"; 

NET "BPTXD0"    LOC = "B12";   # MII RECEIVE DATA [3:0]  & RMII RECEIVE DATA [1:0]
NET "BPTXD1"    LOC = "A12"; 
NET "BPTXD2"    LOC = "C13"; 
NET "BPTXD3"    LOC = "A13"; 

NET "BPCRS"     LOC = "A14";

注释是依照芯片手册简单查了一下。

首先是定义寄存器:MDC/MDIO 串行管理接口
在这里插入图片描述

芯片手册的 page 58-59 是对寄存器地址和功能的描述。
page 60 之后是定义Register Data 每一位的含义。

看了芯片手册还是乱糟糟的,这个MII mode 和 RMII mode 是区分使用引脚数量不同么?
看个一篇Applicaion Note :AN-1729 里面 3.1 简单介绍了一个 rate correction function
先简单写一个module,向寄存器写数据。然后一步一步来试吧。

猜你喜欢

转载自blog.csdn.net/weixin_44337658/article/details/85383638