在Linux下的MinSOC的仿真调试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Linux下MinSOC的Modelsim仿真调试
前期准备:1.安装虚拟机VMware,
2.在虚拟机上安装Ubuntu操作系统
(612实验室FTP,用户名software下,06system中提供Ubuntu10.04
安装包,此操作系统已安装modelsim,debussy,无需再自行安装)
3. 建立共享文件夹myshare(建立方法自行百度)
4. 下载两个压缩文件minisoc_tags_release-1.0.tar.gz,
or32-elf-1.0rc1-x86.tar.bz2
提示:如果读者仅想调通代码,可按照方框中的方法操作,无需看其他内容,每一方块第一步操作所在的路径均为上一方块最后一步操作所在路径。
一.配置工具链
1. 解压工具链包
步骤1:将minisoc_tags_release-1.0.tar.gz,or32-elf-1.0rc1-x86.tar.bz2放到已建立好的共享文件夹中。
步骤2:在iccad目录下创建一个新的文件夹Minsoc。
方法:打开一个新的终端,输入指令:mkdir Minsoc
解释:此文件夹用于暂时存放两个所需的压缩文件。
步骤3:将共享文件夹中的两个压缩文件minisoc_tags_release-1.0.tar.gz,or32-elf-1.0rc1-x86.tar.bz2拷贝到Minsoc文件夹下。
方法:输入指令:
u cp /mnt/hgfs/myshare/minisoc_tags_release-1.0.tar.gz /mnt/hgfs/myshare/or32-elf-1.0rc1-x86.tar.bz2 ./Minsoc
解释:共享文件都在” /mnt/hgfs/myshare/”目录下,其中共享文件夹
名不一定为myshare,根据自己的共享文件夹名修改指令。另外,无论
当前在哪个文件夹下,输入cd /mnt/hgfs/myshare就可直接进入共享文
件夹。
步骤4:进入Minsoc下,解压文件
方法:输入指令:
u cd Minsoc
u bunzip2 or32-elf-1.0rc1-x86.tar.bz2
解释:此时输入指令ls, 查看Minsoc中的文件会发现
or32-elf-1.0rc1-x86.tar.bz2变成or32-elf-1.0rc1-x86.tar,即去除
了一层压缩。
2. 安装工具链包
步骤1:在usr目录下,创建tools文件夹。
方法:输入指令:
u cd /usr
u sudo mkdir tools
u密码为:qw1234
解释:进入系统自带的usr目录下,在此目录下必须加上超级用户命令”sudo”才能操作。另外,无论当前在哪个文件夹下,输入cd /usr 就可直接进入usr文件夹。
步骤2:在/usr/tools路径下安装工具链
方法:输入指令:
u sudo tar –xvf /home/iccad/Minsoc/or32-elf-1.0rc1-x86.tar
解释:此指令输入后安装开始,安装完成后,查看当前文件夹/usr/tools 中的内容,出现or1ksim-0.5.1rc1和or32-elf-1.0rc1两个文件,前者为仿真器,后者为编译器。另外,”-xvf”中每一个字母均为为”tar”命令的参数,参数具体含义可通过输入指令”tar --help”进行查看。
步骤3:在home/iccad路径下的.bashrc文件中添加路径
方法:输入指令:
u cd ~
u vi .bashrc
u在打开的文件结尾位置插入如下四行语句:
export OR32_HOME=/usr/tools
export OR32_GCC=$OR32_HOME/ or32-elf-1.0rc1 ###注意数字1和字母l不要打错,elf中“l”为字母,1.0rc1中“1”其余为数字1。
export OR32_SIM=$OR32_HOME/ or1ksim-0.5.1rc1###or1k中“1”为数字1。
export PATH=$OR32_GCC/bin:$ OR32_SIM/bin:$PATH 解释:.bashrc是一个隐藏文件,需用“la”命令才可查看到,这个文件主要保存个人的一些个性化设置,如命令别名、路径等,在此文件中增加如上环境变量。在调用一个变量前,要加”$”; ”:”为分隔符;”bin”
用于存放二进制文件。
结果:我们完成了工具链的安装,将仿真器和编译器安装在了/usr/tools 路径下。
二.修改代码文件,并仿真
由于我们得到的代码包minisoc_tags_release-1.0.tar.gz中的代码有很多bug,所以若想仿真调试,我们需要做很多修改。
步骤1:更新刚配置好的编译器,并在Minsoc文件夹下解压代码文件方法:打开一个新的终端,输入指令:
u source .bashrc ####更新文件
u cd Minsoc
u tar -xvzf minisoc_tags_release-1.0.tar.gz ####解压代码
解释:等待解压完成后,查看Minsoc/release1.0下的内容:
“backend”文件夹包含具体板子(如ug257)的信息,不同的板子所包含的文件也是不一样的;
“prj”文件夹下有一个“src”文件夹(source的简称),其内容为一些“.prj”的文件用于生成后续其他文件;
“sim”文件夹下的“modelsim”文件夹中包含一些“.bat”和“.sh”
文件,其中“.bat”为window下批处理文件,在此处Linux系统下,“.bat”
文件没有用处。查看三个“.sh”文件的内容,可发现“prepare”,“compile”,“run”分别对映“vlib”,“vlog”,“vsim”。
“bench”文件夹包含搭建测试平台的文件。
“rtl”文件夹为设计代码。
“doc”文件夹为参考文档。
“sw”文件夹表示“software”,其包含的“uart”文件夹包含测试,所用的.c激励文件;“utils”文件夹下包含实现提取指令功能的.c文件。
步骤2:生成minsoc_verilog.src文件
minsoc_verilog.src是一个文件列表,将每个源文件需要调用的文件的寻找路径和基于的文件以列表的形式写在minsoc_verilog.src中, 这个文件的用途是:在接下来编译(vlog)代码的时候,就依照minsoc_verilog.src中的内容进行编译。所以此时,要先在prj下make, 来生成minsoc_verilog.src文件。
若此时查看release1.0/prj/sim路径下的内容,是空的。
方法:输入指令:
u cd release1.0/prj ####进入prj目录下
u make
出现错误:找不到minsoc_bench_defines.v这个文件,如图1所示。
图 1
解决方法:输入指令:
u cd src ####进入released1.0/prj/src目录
u vi minsoc_bench.prj
u在第一行“backend”后插入“/ug257”,并保存退出。
u vi minsoc_top.prj
u在第一行“backend”后插入“/ug257”,并保存退出。
u cd ../ ####返回prj目录下
u make ####再次make, 成功!
解释:make时找不到minsoc_bench_defines.v这个文件,是因为