用ModelSim仿真Microblaze简易教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用ModelSim仿真Microblaze简易教程
-1 软件版本
ISE: 8.2.03i
EDK: 8.2.02i
ModelSim:6.1e
注:EDK XPS的GUI编译工具仅支持ModelSim SE/PE 6.0d or later, excluding 6.1 or 6.1a。我之前用ModelSim XE 6.0a ,编译库的时候出现了很多Error。
0 参考资料
(1) Xilinx: Embedded System Tools Reference Manual. est_rm.pdf, v6.0, June 23, 2006.
在EDK的doc目录下有。
(2) Xilinx: EDK 8.2 MicroBlaze Tutorial in Spartan.
EDK_82_MB_Tutorial.pdf。
在Xilinx网站上有,链接
/support/techsup/tutorials/EDK_82_MB_Tutorial.pd f
(3) Module m07: Using ModelSim to Simulate Your Designs. M07.pdf。
在University of Toronto的一个主页上有,链接
/~pc/courses/edk/
上面有好多入门资料,强烈推荐!
接下来进入正题~~~
1 编译ISE和EDK的库
(1)安装ModelSim。比如我安装到了E:\Modeltech_6.1e\ 这个目录里。
(2)建两个空目录用来存放编译好的库。我的目录是
E:\xilinx_lib_me\ise\和E:\xilinx_lib_me\edk\。
(3)编译ISE的库。进入Dos命令行界面,敲入:
compxlib -s mti_se -arch all -l all -lib all -w -o
E:\xilinx_lib_me\ise\ -smartmodel_setup -p
E:\Modeltech_6.1e\win32\
当然,更好的做法是用批处理文件。用任意文本编辑器,把这行命令拷贝到一个新文件里,保存为xxx.bat的批处理文件。然后运行它就可以了。
等待电脑编译完成。如果没有报错,这步就OK。在你输入Dos命令所在的当前目录里,已经生成了modelsim.ini文件,打开这个文件把[Library]下面的这几行复制到ModelSim安装目录下的modelsim.ini的[Library]下面。
UNISIMS_VER = E:\xilinx_lib_me\ise\unisims_ver
UNI9000_VER = E:\xilinx_lib_me\ise\uni9000_ver
SIMPRIMS_VER = E:\xilinx_lib_me\ise\simprims_ver XILINXCORELIB_VER = E:\xilinx_lib_me\ise\XilinxCoreLib_ver AIM_VER = E:\xilinx_lib_me\ise\abel_ver\aim_ver
CPLD_VER = E:\xilinx_lib_me\ise\cpld_ver
UNISIM = E:\xilinx_lib_me\ise\unisim
SIMPRIM = E:\xilinx_lib_me\ise\simprim
XILINXCORELIB = E:\xilinx_lib_me\ise\XilinxCoreLib
AIM = E:\xilinx_lib_me\ise\abel\aim
PLS = E:\xilinx_lib_me\ise\abel\pls
CPLD = E:\xilinx_lib_me\ise\cpld
需要注意的是ModelSim安装目录下的modelsim.ini是只读的,要先把它的只读属性去掉。
到此这步完成!
命令参数说明(可以跳过不看):
compxlib -s
[-l
[-o
[-w]
[-p
对照上面的命令行,很容易明白各个参数的含义。-p是指定你的ModelSim可执行文件的目录。如果该路径在你系统环境变量PATH有,也可以不添加。
(3)编译EDK的库。还是Dos命令行界面,输入:
compedklib -o E:\xilinx_lib_me\edk\ -X E:\xilinx_lib_me\ise\ -exclude deprecated
也可以使用批处理。
然后是等待。直到出现100% complete, 0 errors 就OK了。
命令行参数说明(可以跳过不看):
compedklib -o
-X
-X后面的目录是你存放ISE库的目录。
2 建立EDK工程(本小节都在XPS环境下)
(1)使用XPS新建一个工程,名字叫system.xmp(记住这个名字哦,下面好多地方要用到)。工程很简单,50MHz输入,高电平复位,没有Debug模块,只添加一个RS232串口,波特率在MHS文件中手动设置为3125000。
MHS文件如下:
PARAMETER VERSION = 2.1.0
PORT fpga_0_RS232_req_to_send_pin = net_gnd, DIR = O
PORT fpga_0_RS232_RX_pin = fpga_0_RS232_RX, DIR = I
PORT fpga_0_RS232_TX_pin = fpga_0_RS232_TX, DIR = O
PORT sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 50000000 PORT sys_rst_pin = sys_rst_s, DIR = I, RST_POLARITY = 1, SIGIS = RST
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 4.00.b
PARAMETER C_USE_FPU = 0
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
BUS_INTERFACE DOPB = mb_opb
BUS_INTERFACE IOPB = mb_opb
END
BEGIN lmb_v10
PARAMETER INSTANCE = ilmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END
BEGIN lmb_v10
PARAMETER INSTANCE = dlmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END