1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
阅读了SRIO相关文档,积累了一些问题,现列举如下:
1、lane和port的关系,是不是lane代表物理链路,而port代表传输一个数据包的基本单元? 2、1个6678可以有多个port,是否代表这些port可以去连接不同的设备? 3、我看到PLM_PORT_PATH_CONTROL寄存器用于配置PORT的PATHID PATHCONFIG PATHMODE,但是只有MODE是可写,其他两个是只读,那么我们怎么配置一个port是1x、2x还是4x呢? 4、最后,PATH又是什么概念呢? 请指教,谢谢! |
|
相关推荐
8个回答
|
|
我说下我的简单理解:
lane是传输数据的链路,port是传输数据的接口。 要正常传输数据,你需要一条链路和一个接口,这是基本的东西。当然,如果你觉得这个接口速度太慢,你可以用两个链路接到这个接口上,这就是2x。4个链路接到1个接口上就是4x。(这里的1条链路包括接收链路和发送链路) 至于如何配置1x,2x,4x。这个手册上写的很明白,就不多说了。 |
|
|
|
MAZHILEI 发表于 2018-6-21 15:17 那么一个6678的4条lane如果被分配成4个1x或者2个2x,是不是不同的port可以连接不同的设备呢 |
|
|
|
如果配置成4个1x模式,那么最多可以接4个设备。每个port都使用一条lane。 |
|
|
|
MAZHILEI 发表于 2018-6-21 15:17 你好,我用SRIO发送接收数据,使用的是下面的代码 void send_CSL(unsigned int lsu, unsigned int SrcAddr, unsigned int DstAddr, unsigned int ByteCnt, unsigned int DstID,unsigned int portnum) [ SRIO_LSU_TRANSFER lsuTransfer; CSL_SrioHandle hSrio; Uint8 context; Uint8 transID; Uint8 compCode; Uint8 contextBit; hSrio = CSL_SRIO_Open (0); while (1) [ if (CSL_SRIO_IsLSUFull (hSrio, lsu) == FALSE) break; ] // while(CSL_SRIO_IsLSUBusy(hSrio, lsu)==FALSE)[] retry: // Populate the Transfer Information. lsuTransfer.rapidIOMSB = 0x0;//0 lsuTransfer.rapidIOLSB = DstAddr;//目的地址 lsuTransfer.dspAddress = SrcAddr;//源地址 lsuTransfer.bytecount = ByteCnt;//数据大小 lsuTransfer.doorbellValid = 0;//0 lsuTransfer.intrRequest = 1;//1 lsuTransfer.supInt = 0;//0 lsuTransfer.xambs = 0;//0 lsuTransfer.priority = 2;//0 lsuTransfer.outPortID = portnum;//输出port号 lsuTransfer.idSize = 0;//目的ID 0-8bit or 1-16bit lsuTransfer.srcIDMap = 0;//0 lsuTransfer.dstID = DstID;//目的ID lsuTransfer.ttype = 4; lsuTransfer.ftype = 5; lsuTransfer.hopCount = 0x0; //FF lsuTransfer.doorbellInfo = 0; CSL_SRIO_GetLSUContextTransaction (hSrio,lsu ,&context, &transID); // Send the transfer on LSU 0 CSL_SRIO_SetLSUTransfer (hSrio, lsu, &lsuTransfer); while(CSL_SRIO_IsLSUBusy(hSrio, lsu)==TRUE)[] // polling, test BSY bit CSL_SRIO_GetLSUCompletionCode (hSrio, lsu, transID, &compCode, &contextBit); if (compCode!=0x0) [ goto retry; ] ] 对于这段代码有几个问题 1. outPortID是什么:输出端口还是? 2. srcIDMap:值是多少,怎么确定,是发送包里的源id么? 3. hotCount给多少? 4. idSize:怎么确定是8bit还是16bit?我给的dsp的设备id是9,这里应该是什么值? 对于设备ID有几个疑问,相关的额寄存器有base_id,host_base_id_lock,deviceID_reg0, deviceID_reg1。这几个寄存器里的值都是dsp设置的设备id么,这个设备id是不是就是发送包里填充的源id? 谢谢 |
|
|
|
MAZHILEI 发表于 2018-6-21 15:17 你好King, 那如果我的两块6678物理上只有port0连上了(即只有RIORXN0/P0与RIOTXN0/P0间有布了线),那是不是也可以实现4X,2X? |
|
|
|
小龙虾米 发表于 2018-6-21 16:10 不可以。芯片上看到的RIO0、RIO1对应于lane,2x使用两个lane,4x使用4个lane。 |
|
|
|
szbliy 发表于 2018-6-21 15:54 Hi,qian cui : 我最近在研究FPGA和DSP间的SRIO通信,对LSU寄存器填充的一些参数也不是很明白,想请教下你,发送数据的目的地址到底指的是什么,是怎么确定的,我对这些ID搞的也头晕,还有你上面提到的几个参数各有什么含义?我接收程序现在死在 CSL_SRIO_GetLSUCompletionCode (hSrio, lsu, transID, &compCode, &contextBit); 判断compCode=1,然后一直goto retry, transID=3,这个值是从寄存器读出来的,但不知道具体带表什么,感觉是哪个参数没配置对。 希望你能指点一下,非常感激!!! |
|
|
|
60user130 发表于 2018-6-21 16:40 希望讨论FPGA与DSP之间SRIO通信的朋友们能够加群74522342,相互讨论! |
|
|
|
只有小组成员才能发言,加入小组>>
332 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
772 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1124 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
54浏览 29评论
96浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
248浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
196浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 00:33 , Processed in 0.987929 second(s), Total 60, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号