本文首先介绍了modelsim和ise在linux下安装的注意事项,然后介绍了如何用modelsim完全编译xilinx的库文件,最后介绍了一个makefile和vim配合使用modelsim的技巧。本文主要为讨论了在linux环境下进行eda以及相关嵌入式开发的一些技巧和方法,今后在我的学习过程中还会不断推出这个系列的文章,欢迎讨论,交流。
首先,让我们来看看
安装过程
modelsim的安装:
1 下载modelsim for linux的下载文件。应该总共有三个文件,分别是base,docs和linux.exe。都是gz压缩的。
2 解压缩linux.exe,解出来的是可以在终端中直接运行的文件,运行之,并安装。
3 分别解压base和docs在同一目录下。
4 把这时候的modeltech目录(也就是解压缩和安装后形成的目录)移动到你希望程序所存放的目录下,我这里选的是/opt。
5 把windows上的license文件拷贝到/opt/modeltech目录下。这个liense文件最好是在本机的windows环境下生成的。如果机器没有win环境,一定要把所使用的生成机器的mac改成自己机器的mac再用生成器生成。否则license不可用。
6 在home下的.bashrc中添加export LM_LICENSE_FILE=/YourInstallPath/YourLicenseFileName,然后source .bashrc
7 进入安装目录下的linux,运行./vsim即可。
ise和edk的安装:
1 首先,这个没有什么好说的,直接安装for linux平台的setup就行了。推荐把所有安装文件拷贝到本地硬盘上安装,这样快一些。
2 然后分别进入各自目录,运行settings.sh,这个是环境变量的配置文件
3 一劳永逸的做法,应该是在用户目录的 .bashrc 中将这两个sh配置文件都source进来。我用的是ubuntu,基于debian的,其它类型系统不一定有.bashrc,具体是什么文件自行摸索,反正是用户配置文件。
如果觉得不好理解,我在本文的附件中上传了我的.bashrc,www.kunli.info/wp-content/uploads/2007/04/bashrc.zip,仅供参考
编译库文件:
然后介绍一些如何用modelsim快速编译xilinx库文件。网上有很多不同版本的方法,下面这种是比较方便的一种:
1.首先将modelsim.ini文件只读模式去掉,存档前面打对勾。
2.在您安装ise的目录下,进入到bin/linux目录下,例如xxx:\ise6\bin\nt,确认有compxlib这个程序
3.在终端中中运行compxlib -s mti_se -f all -l all -o xxx\modeltech_6.0\xilinx_libs就可以了,xxx:\modeltech_6.0是我安装modelsim的目录,您可以作 相应的更改。参数也可以按照您的要求作相应的更改。
这样就搞定了。需要注意的是,如果你用的是windows系统,千万记住ise和modelsim的安装目录都不要出现空格,最好是直接安装在根目录下。
具体单独用modelsim进行behavioral model的方法是,打开modelsim,把你的代码和仿真代码文件加入,别忘了加入glbl.v文件。在哪里?自己找吧。然后编译,work库这些设置好后,命令行(modelsim里的)输入
vsim -L Xilinxcorelib_ver -L unisims_ver -L simprims_ver -lib work $yourtestname glbl
就可以了。
verilog+makefile调试技巧
由 于自己喜欢用vim编辑文件,感觉vim编辑verilog时比较不方便,vmake生成的makefile不是很全,所以花了一天晚上,总结了一个比较 通用的,用于linux,unix环境的,适用于veirlog编程的make文件,和vim以及modelsim有机接合,可以编辑时直接编译,最后自 动保存波形并观看。由于时间关系,以后再补充增加了ise处理命令的版本。
makefile文件代码:
EXECUTABLE := top_module #to be correct
MODULE := module_to_be_sim #to be correct
CC := vlog
CFLAGS := -reportprogress 300 +incdir+./include -work work -incr # add more option here if you want to compile with some library
COMPILE := $(CC) $(CFLAGS)
SIM := vsim
VIEW := vsim
TIME := -all
ACTION := “log -ports -internal $(EXECUTABLE)/*;log -r $(EXECUTABLE)/$(MODULE)/*;run $(TIME);quit”
SFLAGS := -c -do $(ACTION) -wlf $(EXECUTABLE).wlf
SIMULATE := $(SIM) $(SFLAGS)
SRCS := $(wildcard *.v )
all:$(EXECUTABLE)
$(EXECUTABLE):$(SRCS)
$(COMPILE) $(SRCS)
#run this when you compile the code the first time
start:
vlib work && vmap work work
sim:
$(SIMULATE) work.$(EXECUTABLE)
$(VIEW) $(EXECUTABLE).wlf
clean:
rm -rf *.wlf && bg && pkill make && pkill vish
思路介绍:
1 在机器上安装完modelsim(废话)
2 为你的工程建立一个文件夹,首先用make start建立好库文件。目录里面要包括源文件和测试文件。估计所有人都是这样的吧~~
3 如果目录不变,则以后的仿真都用这个work库就行了。但是如果工作目录变化的话,每一次都要重新运行一次make start,这样才能在当前目录下生成work目录,用以记录各种库中的各个模块信息。
4 直接make。从makefile中可以看出,调用的是vlog工具,打开了增量编译,因此在对任何一个源文件进行修改的时候,放心make就行了,速度 很快,立刻提示错误,呵呵。如果你使用的语言是VHDL,要把vlog改成vcom。具体VHDI的命令行编译我没有研究,请参考 modelsim_cmd_ref_ug.pdf这个官方文件。
5 之后用make sim进行波形仿真和查看,如果在testbench中用了display或者monitor这种语句的话,那么输出值会在终端中显示,还会保存在当前目 录的transcript中。波形文件用vsim看,这是唯一需要打开gui的地方。其他时候全部命令行执行,效率高多了,自己感觉,呵呵。
6 makefile中自动默认是每次仿真的时候都把所有信号,包括端口,内部信号等全部加到仿真波形之中。但是实际上我们在很多情况下是不需要观察全部信号 的,因此,可以在第一次仿真之后筛选出自己需要的信号,把无用信号删除,然后保存wave.do中,接下来把makefile中的ACTION选项改为
ACTION := “do wave.do;run $(TIME);quit”
这样,以后每次make sim的时候,自动就只添加你需要观察的信号了。
存在问题:
现在的问题是,只能从终端用vsim命令来启动modelsim,如果想把快捷程序图标加到面板上,属性设成 /opt/modeltech/linux/vsim(安装目录),怎么点都没有不能打开程序。由于无法直接让vsim在后台执行,所以要不然就手工关 闭,要不就自己c+z后用make clean关闭,这样比较不方便,正在想改进办法,看能否不关闭gui而直接重新编译并看波形,这个也有待实验。我本来想用vsim xx.wlf &的,在终端下可以,写进makefile就不行,还没有找到原因。
有问题欢迎讨论,期待有高手的指导。
欢迎点击查阅本系列其他文章:
linux-fpga专题系列
windstorm的技术天地 » Blog Archive » linux-fpga系列文章之——eda工具安装及modelsim的调试技巧…
本文首先介绍了modelsim和ise在linux下安装的注意事项,然后介绍了如何用modelsim完全编译xilinx的库文件,最后介绍了一个makefile和vim配合使用modelsim的技巧。…
不错。顶一个!
Icarus Verilog是个非常好用的verilog simulator, 而且还是free的。博主不妨研究一下。
以前曾经下载过,但是最后没有试用,呵呵,原因是考虑到项目组的整体都用modelsim,由于模块的交接性,还是统一的用modelsim的好,最后就没有用。
风雷大哥:
你好!
小弟常光顾这儿,感觉能学到不少东西,先谢了!有一个问题,就是关于linux下安装modelsim,我想问一下,modelsim for linux的安装文件能在哪下载吗?我去modelsim的官方网站上下载的安装文件没有license,为这问题小弟都花了好几天时间,最后只能在wine下虚拟安装,但xp下能用的license在ubuntu7.04下不能用,显示license无效,真个是无技可施了!
能告知一个modelsim for linux的有效下载地址吗?非常非常感谢!!!有了它,以后我就可以完全用上我所钟爱的ubuntu了~~
此致
敬礼!
小弟凌剑
07年7月5日中午
就是在官方网站下载的阿,安装modelsim关键不在于安装文件,而在于license。你是按照我文章中写的步骤生成的license么?license必须自己找破解工具来生成的
Dear sir,
I got a problem with linux.exe,my downolad version is modelsim6.2b(x86_64). ubuntu can’t excute exe format. Could you help to explain how to install modelsim with exe format?
Thank you!
I miss chmod +x for exe file.
It’s working now.
呵呵,谢啦。我再试试,不过昨天我照你说的装了个vbox,再在虚拟 XP上装了个modelsim,感觉帅呆了,谢啦
呵呵,不用谢~
你好 你的破解的那个生成器文件可以共享不??
ok, I will send it to you when I back to school by mail. please mail to notify me if you don’t get it in 3 days.
thank you. i resolved it. because my license file was license.dat, the modsim didnt recongnize it . changed the file to license.lic, all things are ok.
风雷你好:
我在feisty下面用synplify8.5的时候,总会出现下面的信息。无法运行软件.
***************************************************************
Warning: You are running on an unsupported platform
‘synplify’ only supports Redhat Enterprise Linux 3,4, SuSE Enterprise Linux Server 9
current platform: Ubuntu 7.04 \n \l
***************************************************************
/home/issac/fpga_85/linux/mbin/synplify: relocation error: /home/issac/fpga_85/linux/mfw/lib-linux_optimized/libkernel32.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
不知你有没有什么好的经验分享,谢谢
Maybe it has been linked with a version of glibc older than 2.3. In this situation, you would have to set up a compatibility environment with an older version of glibc, such as version 2.2.5.
First try to setting the environment
variable as LD_ASSUME_KERNEL=2.4.x, if it doesn’t work, then inform me.
和你的看法一致,synplify可能不支持高版本的glibc,环境变量也按你说的设置可没什么效果. 回来我再试试低版本glibc,谢谢你的回复.
You are welcome~ And don’t forget to inform me if you solve it.
你们的MODELSIM装的显示都正常的吗,我的6.2b字体很难看,在设置里面也只有很少的几种字体,感觉这个软件不是基于GTK和QT的,不知道在哪可以把字体添加进去
Actually my font is also ugly.
you can try to use monospace font and set the property to alias.
看到你的文章让我受益匪浅 ,
不能用快捷方式打开的原因是不是 因为vsim,com等文件都是到vco的链接 ,执行时 要从
命令行获取参数 的原因
为什么我安装后运行vsim总是提示找不到
viewer license,vsim is closing
步骤和以上的 一样阿,只不过license
是用keygen在wine下生成的 。Modelsim
是se 6.1c
hi,但是直接进入目录用./vsim就可以,这时候命令行也没有参数阿
不要在wine下生成,在windows下生成,试一试
当时写错了,是6。3c
6.3的license文件包含有viewer license
这个在6。2中可以关闭
后来我又下载了6.2的装上,就可以用了
那个source编译环境是怎么搞的阿,启动edk时候不是要编译环境什么的马?怎么高阿阿
你说的是什么source编译环境?
请教风雷,我在Fedora 8/CentOS 5下安装modelsim 6.2b,安装运行都正常。唯一的问题是界面不接受键盘输入。用鼠标控制运行,缩放波形等都可以,就是不能用键盘。不知你有没有遇到过类似的问题?谢谢。
遇到过,但我换了license好像就好了
另外后来我们统一用6.2g了
谢谢。我在CentOS 4.6里装了modelsim 6.3f。一切正常了。
您好!在安装完ISE和EDK9.2后,我用EDK建立了一个PPC的工程,就开了一个串口中断.但是LIBGEN的时候报错了.
我不知道这个错误该如何处理,劳烦您看一下.
ERROR:MDT – make failed for target “include”
ERROR:MDT – Error while running “make” for processor ppc405_0…
ERROR:MDT – make failed for target “include”
ERROR:MDT – Error while running “make” for processor ppc405_0…
用的系统是UBUNTU8.04.
谢谢!
打sp没有?我记得好像xilinx faq上有过这个问题,你去找找看。
记得一定要打最新补丁
我在centos5.1上装了6.3,在另一台windows上更改mac后生成的license
copy到centos上后,vsim 可以跳出gui。但是vsim mydesin就会发生erro:
couldn’t open socket:host is unreachabletrouble making server
modelsim崩溃。
例外我在另一台机器ubuntu7.08上安装modelsim6.3a没有任何问题,不过这
台机器上有window环境,是在本机上生成的license.
现在很困惑,不知道是哪里设置不对,不知道你遇到过没有
这个问题不是modelsim专有问题,很多linux下的软件都可能出现,所以我怀疑是安装的问题?
我自己没遇到过
我的问题解决了,主要问题是网卡的配置
在/etc/hosts文件中加入这样一行
127.0.0.1 localhost.loacaldomain localhost
保存,重新运行modelsim,一切OK!
不是license的问题
寒,居然这样解决,呵呵。
你好 你的破解的那个生成器文件可以共享不??
I need it, too! Thanks!
Sorry, I haven’t used it for a long time and I no longer have it.
那个你文中附加的 .bashrc 文件打开不了。 如果前辈看见了的话不知能否给我一个。把里面的命令回复我一下也行。。
非常感谢!
已经更新了连接
下载不了啊,直接打开是not found. 右键另存位是无法下载。。。-_-##
我直接给出了连接,你看看
我看你的export 路径和source路径 是/opt 打头的。opt不是用户目录下的一个文件夹吗?是不需要写完整路径吗?
因为 我打开terminal,cd 到license。bat所在文件夹,然后 pwd 一下它的整个path 是 home/ zzh/Modelsim/modeltech。 我不需要这么填写export 路径吗?
我的opt是专门根目录下的,你按照你的路经改就行了。你需要export,export你自己的路经
我在网上问过该问题,但没人回答我,希望前辈给帮忙看一下吧,plz。。。。真不知道自己错哪了。。。
我是这么做的:
1。在ubuntu上安装了modelsim 6.3 ,安装的根目录为 /home/zzh/Modelsim
2。 在windows 系统下用 license generator(网上下的)生成了license.dat
3。复制该license.dat 文件到 linux系统 /home/zzh/Mdelsim/modeltech 下
4。在用户目录 /home/zzh下新建了文件 vsim.bashrc , 里面添加
export M_LICENSE_FILE=/home/zzh/Modelsim/modeltech/license.dat
export PATH=$PATH:/home/zzh/Modelsim/modeltech/linux
5。打开terminal. 输入 source ./vsim.bashrc 回车; 再 vsim 回车。 它给我如下信息:
Unable to checkout a license. Make sure your license file environment variable (e.g., LM_LICENSE_FILE)
is set correctly and then run ‘lmutil lmdiag’ to diagnose the problem.
Unable to checkout a license. Vsim is closing.
** Fatal: Invalid license environment. Application closing.
然后我就照上所说的 ‘lmutil lmdiag’ 了一下,它回馈给我:
License file: /home/zzh/Mdelsim/modeltech/license.dat
—————————————————–
“mdbgdet_c” v2011.11, vendor: modeltech
uncounted nodelocked license, locked to ethernet address “0015c546578a” starts: 22-mar-2001, expires: 02-jan-2035
This is the correct node for this node-locked license
*************************
一次行不通,我就又试着将在terminal 输入:
export LM_LICENSE_FILE=/home/zzh/Modelsim/modeltech/license.dat
export PATH=$PATH:/home/zzh/Modelsim/modeltech/linux
又用echo $LM_LICENSE_FILE
和 echo $PATH 核实了环境变量确实已修改。显示如下:zhou7@ubuntu:~/modelsim$ echo $LM_LICENSE_FILE
/home/zzh/Modelsim/modeltech/license.dat
zhou7@ubuntu:~/modelsim$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/zzh/Modelsim/modeltech/linux:/home/zzh/Modelsim/modeltech/linux
再次执行 source .bashrc 回车; 然后 vsim 结果还是一样!
我又重启重新试了N多次。没有用。
我确定license.dat 里是我的MAC 地址!(“This is the correct node for this node-locked license“这句话可以证明。要是改了它就说hostid 与 License里不符“)
还是license有问题啊。请前辈指教到底错哪了呢??
Find me on Google+
最新文章
热门文章
最新评论
Friend in CU
friendship
linuxer
友情链接
Meta
Content © Windstorm | Powered by WordPress & built on WordPreciousss | Top