Nov
26
调试EDK的工程一般STDIN/STDOUT必不可少。通常STDIN/STDOUT都是定向到RS232上去的。要是没有RS232该怎么办呢?
答案是可以用JTAG Terminal。
只要Project里有MDM,就可以将RS232定向到一个叫debug_module的模块上。这个Debug Module其实就是XMD。
要打开XMD的该功能,首先下载bitstream,打开XMD连接PPC/MB,dow elf,然后在XMD输入Terminal。Terminal会调用TeraTerm,这样就可以看到Print函数的输出了。如果不想用TeraTerm,也可以让XMD做一个Termianl转发服务器,它可以把数据通过TCP转发出去,这样用windows自带的超级终端也可以收到消息了。
命令行为:
terminal [-jtag_uart_server [port no]]
在MicroBlaze系统中,只要选择用H/W模式debug,MDM就会被默认加上;在PowerPC系统中,默认不会有MDM,但是如果系统已经有OPB总线,还是可以很方便地添加MDM UART的。具体方法是用Debug Configuration中的JTAG UART自动添加功能。
注意:
如果手动添加的MDM模块,需要手动连接OPB总线,并将IP设置为UART FIFO = 8。
参考资料:
Embedded System Toos Reference Manual -- XMD
MDM Datasheet
http://toolbox.xilinx.com/docsan/xilinx9/help/plat...
答案是可以用JTAG Terminal。
只要Project里有MDM,就可以将RS232定向到一个叫debug_module的模块上。这个Debug Module其实就是XMD。
要打开XMD的该功能,首先下载bitstream,打开XMD连接PPC/MB,dow elf,然后在XMD输入Terminal。Terminal会调用TeraTerm,这样就可以看到Print函数的输出了。如果不想用TeraTerm,也可以让XMD做一个Termianl转发服务器,它可以把数据通过TCP转发出去,这样用windows自带的超级终端也可以收到消息了。
命令行为:
terminal [-jtag_uart_server [port no]]
在MicroBlaze系统中,只要选择用H/W模式debug,MDM就会被默认加上;在PowerPC系统中,默认不会有MDM,但是如果系统已经有OPB总线,还是可以很方便地添加MDM UART的。具体方法是用Debug Configuration中的JTAG UART自动添加功能。
注意:
如果手动添加的MDM模块,需要手动连接OPB总线,并将IP设置为UART FIFO = 8。
参考资料:
Embedded System Toos Reference Manual -- XMD
MDM Datasheet
http://toolbox.xilinx.com/docsan/xilinx9/help/plat...
Nov
22
初试BFM。
用CIP新建IP到Project,自动生成BFM工程。
打开bfmsim下的工程,Simgen,报错:
把主project的vhd copy到这个project也不能解决问题。
Solution1: 用CIP时,不要将IP建到project下,而是用上面一个选项:To an EDK user repository。
将IP建到repository中,Simgen就能找到IP了,接下去仿真也没有问题。
Solution2: 在EDK --> Edit --> Preference --> Golbal Peripheral Repository中设置一个Golbal Repository,把新建的IP目录拷贝到Golbal Repository目录中去。
Repository的目录结构为:
用CIP新建IP到Project,自动生成BFM工程。
打开bfmsim下的工程,Simgen,报错:
引用
Generating simulator compile script ...
ERROR:MDT - File not found in any repository
'test_ip2_v1_00_a/hdl/vhdl/user_logic.vhd'
ERROR:MDT - File not found in any repository
'test_ip2_v1_00_a/hdl/vhdl/test_ip2.vhd'
ERROR:MDT - File not found in any repository
'test_ip2_v1_00_a/hdl/vhdl/user_logic.vhd'
ERROR:MDT - File not found in any repository
'test_ip2_v1_00_a/hdl/vhdl/test_ip2.vhd'
把主project的vhd copy到这个project也不能解决问题。
Solution1: 用CIP时,不要将IP建到project下,而是用上面一个选项:To an EDK user repository。
将IP建到repository中,Simgen就能找到IP了,接下去仿真也没有问题。
Solution2: 在EDK --> Edit --> Preference --> Golbal Peripheral Repository中设置一个Golbal Repository,把新建的IP目录拷贝到Golbal Repository目录中去。
Repository的目录结构为:
引用
EDK_REPOSITORY directory
└─MyProcessorIPLib
├─pcores
│ └─test_ip_v1_00_a
└─drivers
└─MyProcessorIPLib
├─pcores
│ └─test_ip_v1_00_a
└─drivers
Nov
21
问题: EDK找不到ModelSim怎么办?
Issue: 系统里明明装了ModelSim PE,而且也是可以用的,可是无论是用EDK编译库(compedklib)还是生成仿真模型(simgen),都提示找不到ModelSim。
Solution: 把ModelSim PE/SE的win32目录的路径放到PATH的环境变量中,然后重新启动compedklib或者EDK,就可以找到了。
后续问题1:
Issue: compedklib出莫名问题,想同时编译ISE和EDK的库,ISE的库编译只做了smartmodel部分,unisim, simprim都没编译成功,于是EDK的库由于缺少unisim也编译失败。
Solution: 用compxlib先编译ISE的库。
发现一个官方Solution,还没试过:AR24097
后续问题2:
Issue: 用compxlib编译出来的库,没有ModelSim.ini
Solution: 原来compxlib中指定的输出目录没起作用,ModelSim.ini被放到C:\Documents and Settings\目录中去了
后续问题3:
Issue: 库编译完成,要用Simgen生成仿真模型,结果说ISE库的目录里没有找到需要的内容
Solution: 在EDK库目录中有个.compedklib_edk_info的文件,ISE库目录没有。Copy过来,改名为.compedklib_ise_info。
后续问题4:
Issue: Windows的Explorer不支持改名为以.开头的文件名
Solution: 用EDK带的Cygwin Shell。CD到这个目录,用mv命令改名。
使用版本ISE 9.1.03, EDK 9.1.02
Update 10.1:
AR24097: http://www.xilinx.com/support/answers/24097.htm
Method2 - 将cygwin的路径添加到path,然后运行compxlib,就不会有以上问题
AR22214: http://www.xilinx.com/support/answers/22214.htm
设置Smartmodel的方法
10.1 SP2 更新:现在只需要将%LMC_HOME%/lib/pcnt.lib添加到path环境变量中,modelsim.ini已经不需要手动更改了。Launch HDL Simulator中已经有do文件可以自动更改modelsim.ini。只需要在"c"后运行"m",modelsim.ini中的swift接口就已经设置妥当拉。
Issue: 系统里明明装了ModelSim PE,而且也是可以用的,可是无论是用EDK编译库(compedklib)还是生成仿真模型(simgen),都提示找不到ModelSim。
Solution: 把ModelSim PE/SE的win32目录的路径放到PATH的环境变量中,然后重新启动compedklib或者EDK,就可以找到了。
后续问题1:
Issue: compedklib出莫名问题,想同时编译ISE和EDK的库,ISE的库编译只做了smartmodel部分,unisim, simprim都没编译成功,于是EDK的库由于缺少unisim也编译失败。
Solution: 用compxlib先编译ISE的库。
发现一个官方Solution,还没试过:AR24097
后续问题2:
Issue: 用compxlib编译出来的库,没有ModelSim.ini
Solution: 原来compxlib中指定的输出目录没起作用,ModelSim.ini被放到C:\Documents and Settings\
后续问题3:
Issue: 库编译完成,要用Simgen生成仿真模型,结果说ISE库的目录里没有找到需要的内容
Solution: 在EDK库目录中有个.compedklib_edk_info的文件,ISE库目录没有。Copy过来,改名为.compedklib_ise_info。
后续问题4:
Issue: Windows的Explorer不支持改名为以.开头的文件名
Solution: 用EDK带的Cygwin Shell。CD到这个目录,用mv命令改名。
使用版本ISE 9.1.03, EDK 9.1.02
Update 10.1:
AR24097: http://www.xilinx.com/support/answers/24097.htm
Method2 - 将cygwin的路径添加到path,然后运行compxlib,就不会有以上问题
AR22214: http://www.xilinx.com/support/answers/22214.htm
设置Smartmodel的方法
10.1 SP2 更新:现在只需要将%LMC_HOME%/lib/pcnt.lib添加到path环境变量中,modelsim.ini已经不需要手动更改了。Launch HDL Simulator中已经有do文件可以自动更改modelsim.ini。只需要在"c"后运行"m",modelsim.ini中的swift接口就已经设置妥当拉。
Nov
19
Oct
17
经常用VHDL的Generate语句,却对Verilog的generate不太熟悉。
下面是查了XST User Guide后得知的Verilog中generate的语法:
1. generate语法有generate for, genreate if和generate case三种
2. generate for语句必须有genvar关键字定义for的变量
3. for 的内容必须加begin和end
4. 必须给for语段起个名字
例子:
更详细的用法请在XST User Guide中搜索generate。
下面是查了XST User Guide后得知的Verilog中generate的语法:
1. generate语法有generate for, genreate if和generate case三种
2. generate for语句必须有genvar关键字定义for的变量
3. for 的内容必须加begin和end
4. 必须给for语段起个名字
例子:
引用
generate
genvar i;
for (i=0; i<=7; i=i+1)
begin : for_name
adder add (a[8*i+7 : 8*i], b[8*i+7 : 8*i],
ci[i], sum_for[8*i+7 : 8*i], c0_or[i+1]);
end
endgenerate
genvar i;
for (i=0; i<=7; i=i+1)
begin : for_name
adder add (a[8*i+7 : 8*i], b[8*i+7 : 8*i],
ci[i], sum_for[8*i+7 : 8*i], c0_or[i+1]);
end
endgenerate
更详细的用法请在XST User Guide中搜索generate。







