32bit宽度总线与8bit宽度设计硬件上连接的问题。多谢指教......
时间:12-13
整理:3721RD
点击:
现在在用PEX8311,连接一个8bit宽度的SRAM和一个32bit宽度的设备。
PEX8311的LocalBus的地址线有LA31~LA2,最低的LA0和LA1没有从芯片上输出。有引出LBE0~LBE3指示字节有效。
LocalBus配置为32bit宽度,和32bit设备连接没啥疑问,直接了当。在和8bit SRAM连接时候,SRAM的最低2位地址从哪里来啊?照说应该用PEX8311的没有引出的LA0和LA1。不太理解这个机制。
请教一下版上的大侠有何想法。谢谢!
PEX8311的LocalBus的地址线有LA31~LA2,最低的LA0和LA1没有从芯片上输出。有引出LBE0~LBE3指示字节有效。
LocalBus配置为32bit宽度,和32bit设备连接没啥疑问,直接了当。在和8bit SRAM连接时候,SRAM的最低2位地址从哪里来啊?照说应该用PEX8311的没有引出的LA0和LA1。不太理解这个机制。
请教一下版上的大侠有何想法。谢谢!
上位机能否控制访问类型?或者看芯片能否配置内存总线的访问类型?
最差情况就是上位机总是32Bit访问,SRAM放在MSB,丢掉低24Bit完事儿。
浪费3/4的带宽呗。。。
你用的是C&J Mode吧?从pcie访问local bus是direct slave,
LA[2]接sram地址0,LBE#控制访问
看pex8311 databook的p114/p117页图,以及章节9.3.1和9.3.2.1
嗯呢。
不过,sram宽度是8bit,没有字节使能管脚。如果LA2接SRAM地址0的话,我理解访问SRAM偏移地址0,1,2,3的时候,LA2状态一直保持逻辑0,导致实际上访问的一直是SRAM偏移地址0的位置,1,2,3都访问不到。
不知道这种接法,LBE#如何用起来。
我理解如果local bus配置为8bit,软件需要读取32bit时候,local bus会执行4次访问,然后合并上来报给pcie。
反过来如果local bus配置为32bit,如果读取的设备也是32bit的,软件需要读取一个字节,local bus读取一次获得32bit,然后通过LBE来控制那个字节有效并获取到后上报给pcie。但是如果设备是8bit的,local bus还是读取一次,但是读不到偏移地址是1,2,3的位置啊
多谢指教!
那就把LBE#做一个4-2线编码,给SRAM的A[1:0]
这种事情,应该把能连的线都连上,留好测试点,上线测,不难。
不应该让report这种大牛级别的费这么多时间来讲解如何连线。
拜谢拜谢report大神!
拜谢大神!