网站重新上线,多谢朋友们的关心
Oct 7
[2008.3.13]
XPS --> Debug --> Debug Configuration可以很方便地添加ChipScope的各种Core:ILA, IBA, VIO,工具会自动连线。值得注意的是VIO都能自动填上,这在ISE里面是需要手动例化的。

1. IBA 用来观察总线上的信号

2. ILA 可以观察各个Core的端口信号,但是看不到Core内部信号。
    如果要看内部信号,Workaround是
        a.在ISE中添加ILA。需要保证有可用的BSCAN资源,不过一般来说设计中没有自己例话BSCAN的话是不会不够用的。这种方法比b方法方便一些。
        b.预留好足够的Trigger/Data port,布局布线完成后在FPGA Editor中通过Tools --> ILA 工具修改。这样可以不用ISE(虽然现在import EDK to ISE越来越简单了),但是这样做的潜在问题是ChipScope连线的Timing有可能不满足。

一般来说推荐用a方法。

3. ILA 的属性:
默认情况下Trigger as Data是选上的,此时只需要连接Trig0 Trig1...等端口,不需要连接Data Port。如果取消选择,则需要手动分别选择Trig和Data。

[Update 2008.10.7]
4. 另外一种情况是,如果之需要对某一个Core做观察,那么可以把ChipScope ILA单独加到这个Core中。所使用的工具是ChipScope Inserter。
流程是:EDK -> Generate Netlists, 在implementation目录中找到对应的ngc文件,添加到chipscope inserter,设置好trigger属性后生成对应的ngo文件。把ngc文件改名,把ngo再改成ngc。然后在EDK中运行Hardware --> Generate Bitstream。
可能遇到的问题:这样插入的ChipScope Core和EDK的MDM都需要用到BSCAN。在Spartan3系列器件上不能通过,但是在Virtex4和Virtex5上是没有问题的。
Tags: , , ,
Sep 2

Profile 不指定

RickySu , 10:53 , 技术经验 , 评论(0) , 引用(0) , 阅读(771) , Via 本站原创
[2008.01.11]
一直没有做成功Profile,原来输在最后一步上。

Profile的主要流程如下:

1. 在硬件中添加用于Profile的timer。方便的方法是在做BSB的时候直接添上,那么中断控制器INTC也就自动连上了。
2. 在Software Platform Settings中设置OS and Libraries --> Enable SW instructive profiling = True --> Profile time
3. 打开SDK,设置project的版本属性为Profile(不是Debug和Release):右键Project --> Properities --> C/C++ Build --> Configuration = Profile
4. 设置Download ELF为Profile的ELF:Device Configuration --> Program Hardware Settings --> ELF in Profile folder
5. Run Profile: Run --> Run... --> New --> C/C++ Application = Profile/executable.elf --> Profiler --> Enable Profiling --> Scratch Memory Address = Free Memory
按OK后SDK开始Profile。但是有时候会停在%XMD %XMD,Progress一直显示在80% -- 此时按一下回车就可以了

问题
在ISE 9.2自带的edk_prof.pdf中说在SDK的project中也要设置允许interrupt。但是我没有在main program中打开Interrupt Enable,为什么也能成功?


[2008.09.02]
一篇新发布的White Paper - WP348 MicroBlaze System Performance Tuning
http://www.xilinx.com/support/documentation/white_papers/wp348.pdf
从一个实例开始讲述如何检查系统瓶颈,如何用Profile工具查看,如何解决问题。
FPGA系统不是通常的系统,它最大的优势是可以用硬件加速软件计算。



[参考资料]
EDK Profiling User Guide - \EDK\doc\usenglish\edk_prof.pdf
Tags: , ,
Aug 28

关于XmdStub 不指定

RickySu , 10:29 , 技术经验 , 评论(0) , 引用(0) , 阅读(520) , Via 本站原创
在用BSB Wizard建工程的时候,会让你选择是HW的Debug Module还是SW的,或者是None。
平时都用HW的,心血来潮研究一下SW的。

首先,不管是选HW的还是SW的,只要有debug module都可以用XMD连接MicroBlaze进行下载或调试。

如果是HW的,那么生成的软件在set compiler option菜单中需要选择executable,并且applications中的 microblaze_0_xmdstub不能选中。

如果是SW的,那么有两种方法分别是用JTAG Interface和Serial Interface
具体介绍看这里:d:/Xilinx101/EDK/doc/usenglish/platform_studio/ps_c_dbg_xmdstub_based_debugging.htm
Set Compiler Option要设置成XmdStub,microblaze_0_xmdstub选择为Mart to Initialize BRAM。

这样就类似于BRAM中有一个Load/Debug程序,把真正的工程当作自程序跑。

注意SW Debug不能设Hardware Breakpoint。


结论:如果不是一定要省这点MDM的资源,还是用HW的吧。
Tags: ,
May 25
在做VC的时候,程序总是不能设置断点,不能看内部变量的值。一直没明白怎么回事。
今天在冯的朋友的帮助下终于搞清楚了。

原来是在 工程->设置中,左上角有选Win32 Debug和Win32 Release。当时选在了Release,当然就不能调试了。就像GCC编译没有加-g标志一样。

先  组建(Build)-> 清除(Clear),清除VC自动生成的文件,然后再改为Win32 Debug就好了。^^



另外,还知道了Tools --> Spy++ --> Search --> Find Window工具可以查看每个窗口元素的handle。
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]