博客首页 | 排行榜 |

utoo的博客

个人档案
博文分类
【FPGA博客大赛】使用chipscope来观察coreconnect总线时序之plb时序  2010-02-22 18:03

 

最近的项目要在coreconnect上搭些外设,了解coreconnecttransfer的时序非常重要,coreconnect包括三大总线,我想就写三篇博文来简单总结一下coreconnecttransfer的时序。

第一篇是使用chipscope来观察coreconnect总线时序之plb时序

其实看coreconnect总线的transfer的时序有两种方法:

     1BFM进行仿真。这要建立仿真的工具,modelsim和所需的EDK的仿真库。这只要PC机就能完成,但是建立仿真工具比较麻烦,而且我自己建的仿真工具对一些外设仿真不了。像读写CF卡这些,我搞很久都搞不定,如果有人知道,请教小弟。

     2,利用chipsocpeEDK里提供的Chipscope Integrated logic Analyzer (ILA)来观察FPGA里实际的总线信号。但是这要有开发板。我想这是最准确的debug的方法。
   其实EDK里也提供chipscope_plb_iba可以对PLB进行观察,但是我发现其实这个IP也是根据Chipscope Integrated logic Analyzer (ILA)修改完成,只是它把plb的所有信号列为观察的信号,但是其实有些信号我们根本都关心,有点多余,观察起来很费劲,所以还是用这个Chipscope Integrated logic Analyzer (ILA)来自定义自己所需观察的信号。

Processor Local Bus的作用:

1PLB 总线是一种高带宽、低延迟、高性能的处理器内部总线。

2,高速的 CPU 核、高速存储器控制器、仲裁器、高速的 DMA 控制器等高性能、宽带宽的设备都连接在 PLB 上。

    我用的是ISE9.1i,EDK9.1i,chipsocpe9.1.03.

   ISEEDK是没有打SP的,但是chipsocpechipsocpe9.1.03的,如果用chipsocpe9.1.01的,EDK生成硬件时会报错。xilinxforum里有人讲。

   这里要用的例子是xilinx提供的在XUPV2P开发板上完成的Slide Show using 256 MB DDR Memory的例程。http://www.xilinx.com/univ/xupv2p_demo_ref_designs.htm

  这个例程是VGA_FrameBufferDDR中读取一行pixel的数据到VGA_FrameBuffer里的Block_ram,最后读取Block_ram里的数据进行显示。

 我关心的是,VGA_FrameBuffer作为一个Master,用plb总线的哪一种transfer来读取DDR里面的数据。

整个过程如下:

首先,打开例程。在这里你会看到chipscope_iconchipscope_ila,双击添加这两个IP

 

 

添加后如下:

 

第二:修改代码,把关心的信号从VGA_FrameBuffer中引出。

 

 

第三:双击chipscope_ila设置参数。

1,采样数

 

 

采样如果没有资源限制当然是越多越好,但是chipsocpe得采样数据是用片上的BlockRAM来存储,设置太大,综合时会报错。

2Trigger Unit

我要观察八组信号,所以使能8Trigger Unit,设置如下:

 

 

第四:连接chipscope_iconchipscope_ila之间的控制信号。

 


注意CLK要连接sys_clk_s

第五,将要观察的信号连接到chipscope_ila

 

 

 

这样就可以生成硬件了。

然后,下载硬件,并把软件也跑起来。

打开chipsocpe,点File下面那个图标连接到JTAG

 

 

成功连接后,可以看到

 

 

这些triggerport对应刚才我们连接到上面的信号。右击可以修改triggerport名字。

修改后我们可以观察到这样的信号图:

 

 

 

这就是实际中64-bit Master 8-word Line Read From a 64-bit Slave的时序

 

这与64bitPlbBus.pdf的是大致相同,但是访问DDR要等16clk才能得到数据。

 

总结:实际的总线时序和datasheet画的总是有一些偏差,有了chipsocpe真的对观察实际运行的总线时序帮助很大,但是就是综合一次比较久。

类别:默认 |
上一篇:【FPGA博客大赛】使用chipscope来观察coreconnect总线时序之DCR时序 | 下一篇:【FPGA博客大赛】Powerpc的Cache的使能函数的使用
以下网友评论只代表其个人观点,不代表本网站的观点或立场