博客首页 | 排行榜 |

king0105的博客

个人档案
博文分类
【FPGA博客大赛】Chipscope iba核中总线宽度不同带来的错误  2010/02/05 15:13

前不久在做EDK11.26个实验,在lab6时遇到了个问题。

从前只用过9.1做过相关的实验,在9.1中,所用的总线为OPB,它的数据宽度是32位的。但是在11.2中所用到的是PLB总线,其数据宽度为64位的。那么问题就出来了,因为程序中所传输的数据是32位的,那么它是怎么匹配64位的数据宽度呢?

我们来看一下实验6中不同触发条件所导致的不同结果。在lab6中,我们需要实现的是记录当count变量传输给LED的值大于5时起记录之后的32个样本。如果是32位的数据总线,我们设置M2:TRIG2>0000_0005就可以实现了,那么64位呢?

触发条件设置窗口如下图所示,其中M0:TRIG0中包含了各种控制信号,M1:TRIG1PLB的地址总线,M2:TRIG2PLB的数据总线。从图中可以看出,PLB的地址总线宽度为32位,PLB的数据总线宽度为64位。

 

图中的设置如下:

M0:TRIG0==XXXX_XXXX_0XXX_XXXX,表示PLB_RNW=0,即此时PLB总线处于写状态。

M1:TRIG1==8140_0000,表示的是LED设备的基地址。

M2:TRIG2>0000_0005_0000_0005,表示数据大于5

Trigger Condition EquationM0 && M1,表示在写入LED设备基地址时,产生触发条件。

Depth32,表示采样32个样本。

Storage QualificationM0 && M1 && M2,表示存储大于5后的数据。

最后的结果如下:

 

现在我们修改M2:TRIG2>0000_0005_0000_0000。结果如下:

 

最后我们再次修改M2:TRIG2>0000_0000_0000_0005,结果如下:

 

从这几个不同设置,所显示出来的结果,我们可以看出,PLB总线在传输32位数据时,会把数据扩展成为64位,而其扩展的方式相当于重复传输2次所要传输的32为数据。

所以在设置触发条件的时候,还是需要认真想清楚设置的方法,否则就会出现令人困惑的问题。

 

类别:EDK基础实验 |
上一篇:关于11.2中XUPV5-LX110T的BSB包 | 下一篇:【FPGA博客大赛】SDK11.2中遇到的一些问题
以下网友评论只代表其个人观点,不代表本网站的观点或立场