原创 【博客大赛】TSE的loopback功能设置和调试

2013-3-4 21:49 3273 13 17 分类: FPGA/CPLD

TSE的loopback功能设置和调试

所谓loopback,便是TSE的收发形成一个闭环,通常是在初步调试验证MAC的基本功能时使用。TSE的这个loopback功能的开启可有两道“门槛”,一个不能少,不仅软件编程开启,而且硬件也有“玄机”,一不留意恐怕你死活也搞不定它。尤其是当原型调试时,你还真搞不懂是loopback没配置好还是MAC的收发不工作。

废话不多说,直接上图。首先在配置TSE的IP组件时,需要勾选MAC Options页面的Enable local loopback on MII/GMII/RGMII选项,默认可是不勾选的,所以需要特别开启。在Small MAC模式下,没有loopback功能,所以无从设置。

20130304214000590.jpg

在User guide中对此有专门说明。

20130304214021813.jpg

其次,在软件编程时,使能Config寄存器的bit15,使LOOP_ENA功能被开启。

20130304214043272.jpg

20130304214105691.jpg

具体编程操作时,可以参考如下顺序进行操作。

20130304214140656.jpg

初始化的代码如下。

//Ethernet初始化

void ethernet_init(void)

{

alt_u32 temp;

//MDIO phy地址设置 = 5‘b10000(参考88E1111_datasheet page63)

IOWR_ALTERA_TSEMAC_MDIO_ADDR0(MY_TSE_BASE,0x11);

IOWR_ALTERA_TSEMAC_MDIO_ADDR1(MY_TSE_BASE,0x11);

//MAC配置寄存器初始化

//关闭MAC数据流接收和发送使能位

do {

IOWR_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE,0x00802220);

temp = IORD_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE);

} while(temp != 0x00800220);

//MAC FIFO配置

/*  Tx_section_empty = Max FIFO size - 16

Tx_almost_full = 3

Tx_almost_empty = 8

Rx_section_empty = Max FIFO size - 16

Rx_almost_full = 8

Rx_almost_empty = 8

//Cut Throught Mode, Set this Threshold to 0 to enable Store and Forward Mode

Tx_section_full = 16

//Cut Throught Mode, Set this Threshold to 0 to enable Store and Forward  Mode

Rx_section_full = 16 */

IOWR_ALTERA_TSEMAC_TX_SECTION_EMPTY(MY_TSE_BASE,(MY_TSE_TRANSMIT_FIFO_DEPTH-16));

IOWR_ALTERA_TSEMAC_TX_ALMOST_FULL(MY_TSE_BASE,3);

IOWR_ALTERA_TSEMAC_TX_ALMOST_EMPTY(MY_TSE_BASE,8);

IOWR_ALTERA_TSEMAC_RX_SECTION_EMPTY(MY_TSE_BASE,(MY_TSE_RECEIVE_FIFO_DEPTH-16));

IOWR_ALTERA_TSEMAC_RX_ALMOST_FULL(MY_TSE_BASE,8);

IOWR_ALTERA_TSEMAC_RX_ALMOST_EMPTY(MY_TSE_BASE,8);

IOWR_ALTERA_TSEMAC_TX_SECTION_FULL(MY_TSE_BASE,0);

IOWR_ALTERA_TSEMAC_RX_SECTION_FULL(MY_TSE_BASE,0);

//MAC地址配置

//MAC address is 00-1C-23-17-4A-CB

/* Low word (bits 31:0) of MAC address */

IOWR_ALTERA_TSEMAC_MAC_0(MY_TSE_BASE,0x17231c00);

/* High half-word (bits 47:32) of MAC address. Upper 16 bits reserved */

IOWR_ALTERA_TSEMAC_MAC_1(MY_TSE_BASE,0x0000cb4a);

//MAC功能配置

/*  //Maximum Frame Length is 1518 bytes

Frm_length = 1518

//Minimum Inter Packet Gap is 12 bytes

Tx_ipg_length = 12

//Maximum Pause Quanta Value for Flow Control

Pause_quant = 0xFFFF

//Set the MAC with the following option:

// 100Mbps, User can get this information from the PHY status/PCS status

//Full Duplex, User can get this information from the PHY status/PCS status

//Padding Removal on Receive

//CRC Removal

//TX MAC Address Insertion on Transmit Packet

//Select mac_0 and mac_1 as the source MAC Address

Command_config Register = 0x00800220      */

IOWR_ALTERA_TSEMAC_FRM_LENGTH(MY_TSE_BASE,1518);

IOWR_ALTERA_TSEMAC_TX_IPG_LENGTH(MY_TSE_BASE,12);

IOWR_ALTERA_TSEMAC_PAUSE_QUANT(MY_TSE_BASE,0xffff);

IOWR_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE,0x00800220);

//MAC复位

//Set SW_RESET bit to 1

do {

IOWR_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE,0x00802220);

} while(IORD_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE) != 0x00800220);

//MAC数据流发送和接收使能

do {   //BIT15--loop_enable=1

IOWR_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE,0x00808223);

temp = IORD_ALTERA_TSEMAC_CMD_CONFIG(MY_TSE_BASE);

} while(temp != 0x00808223);

printf("Ethernet initial successful.\n");

}

TSE的用户收发端的Avalon-ST接口都连接到了onchip-RAM上,实时观测到他们的收发数据帧是完全一致的。说明这个loopback功能和TSE收发已经完全正常了。

20130304214201629.jpg

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

ilove314_323192455 2013-3-11 14:56

In-system memory content editor,可以参考下一篇博文介绍

guojianjun5_823636633 2013-3-11 11:07

最后这个图片看不到

用户430586 2013-3-7 16:02

问大神一个问题,这个最后的图片是数据使用什么抓取的呢?赐教啊,呵呵,谢谢

用户593939 2013-3-6 22:38

学习参考了
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
4
13
关闭 站长推荐上一条 /3 下一条