千兆以太网接口
125m上升沿*4bit+125m下降沿*4bit=1Gbit.
可以考虑产生两个同源同频不同相(差90°)的125m时钟,这样不就变成都是上升沿采样数据了?
供参考。
直接使用FPGA的DDR口输出就可以了
是这样想的,但是,二个不同时钟的采样肯定不在一个进程中,不能有二个触发的,我又采取什么机制让它依次输出到TXD中,这个选择的触发该用什么信号?
表示不理解,我没有ddr IP核,感觉那样是挺相似的!
仅从功能实现角度可以这么做:假设A时125m clk,B延迟半个周期的反向125m clk。
准备好txdata=TXD0,时钟A上升沿打出TXD0[3:0];过半个CLK 时钟B上升沿打出TXD0[7:4],同时锁存下一次的txdata=TXD1[7:0],循环直到数据发送完毕。
嗯,现在在就是这个思路,不过不知道自己按照这个思路能不能实现,多谢指点了,后面如果还有什么问题请不吝赐教啊!
好像千兆网里面有个控制信号就是控制信号4bit传输的,合起来就8bit
.datain_h({GMII_TXD[3:0],GMII_TXEN,1'b1}),
.datain_l({GMII_TXD[7:4],GMII_TXEN ^ GMII_TXERR,1'b0}),
.outclock(GMII_TXC),
.dataout({RGMII_TXD,RGMII_TXCTL,RGMII_TXC})
);
其中RGMII_TXCTL就是,用ddio实现
ddio是altera的IP吧,如果不用它的芯片呢!有源代码吗?
不顶就沉底了!
不需要DDR IP,而是一般的FPGA的IO都可以配置为双沿(DDR)输出,输入。时钟只需一个就行了
长知识了,我们开始做万兆以太网口了
ddio_out IP怎么使用?我使用的怎么输出始终未0?需要进行约束吗?
例化一个RGMII的IP核,参考一下里面ODDR,现成的。