由于项目需要,在LATTICE的开发平台代码上进行FPGA开发。基本的程序设计和编译通过后,在仿真软件Modelsim对DIAMOND中的程序进行联合仿真。相关的资料在网上都能搜到,但是都不够详细和全面,走了比较多的弯路。因此,为了让后续接触的朋友能够尽量避免遇见这样的情况,我对整个过程进行了梳理,并对其中遇到的问题提供一些解决的办法或者想法。
Modelsim的安装包是用的正点原子官方提供的资源:
百度网盘下载链接: https://pan.baidu.com/s/1a9d-bq9RZmWrRV542X4IEA
提取码:ifte
1.根据自己的电脑系统是32位还是64位的选择解压对应的压缩包,这里我选择的是64位的;

2.打开解压后的文件,双击运行.exe文件;

3.进入安装界面后,点击Next进行下一步;
4.然后点击红框中的Browse,选择安装目录;

5.这里我选择的是D盘,然后点击Next;

6.点击Agree,同意服务条款;

7.进入正式安装界面,稍等一会儿;

7.点击Yes,添加桌面快捷方式;

8.点击Yes,添加Modelsim的执行目录到路径中来;

9.这里点击No,进入到最后一步;

10.这里点击Done,就完成安装了。

1.在Modelsim注册的过程中需要用到两个文件,大家可以点击的下面的链接下载:
百度网盘下载链接: https://pan.baidu.com/s/1pD7ydJFxPYNJeDgwJP9lgQ
提取码:zcwj
2.下载并解压文件后,打开文件夹,可以看到下面两个文件,将这两个文件复制;

2.然后打开Modelsim安装目录下的win64文件夹,找到mgls64.dll这个文件;

3.右击该文件并打开属性栏,取消勾选只读属性,点击确定返回目录;

4.将第二步复制的两个文件,复制到win64文件夹下;

5.双击运行patch_dll.bat文件,得到一个用记事本打开的许可证文件LICENSE.TXT;

5.将这个文件随便选择一个位置进行保存,或者和我一样保存在Modelsim安装目录下的win64文件夹中;

6.然后右击此电脑>>属性>>高级系统设置>>环境变量,新建系统变量:MGLS_LICENSE_FILE,设置其变量值为第五步LICENSE.TXT文件保存的路径:D:\modeltech64_10.4\win64\LICENSE.TXT;

7.设置完成后点击确定,Modelsim的注册就完成了;
8.然后,同时按下Win+R键,输入cmd命令,点击确定进入Windows系统命令窗口;

9.在命令行输入vsim,按下Enter键运行;

10.若能打开Modelsim,说明注册成功;

1.在Modelsim的安装目录下新建一个文件夹lattice,用来存放Lattice的仿真库;

2.在此文件夹中新建一个文本文件sim.tcl,它会弹出如下提示,选择是即可;

3.以记事本打开该文件,输入如下脚本;
set DIAMOND_PATH D:/lscc/diamond/3.7_x64/cae_library/simulation/verilog
vlib work
vlib ec
vlib ecp
vlib ecp2
vlib ecp3
vlib ecp5u
vlib lptm
vlib lptm2
vlib machxo
vlib machxo2
vlib machxo3l
vlib pmi
vlib sc
vlib scm
vlib xp
vlib xp2
vlog -work ec $DIAMOND_PATH/ec/*.v
vlog -work ecp $DIAMOND_PATH/ecp/*.v
vlog -work ecp2 $DIAMOND_PATH/ecp2/*.v
vlog -work ecp3 $DIAMOND_PATH/ecp3/*.v
vlog -work ecp5u $DIAMOND_PATH/ecp5u/*.v
vlog -work lptm $DIAMOND_PATH/lptm/*.v
vlog -work lptm2 $DIAMOND_PATH/lptm2/*.v
vlog -work machxo $DIAMOND_PATH/machxo/*.v
vlog -work machxo2 $DIAMOND_PATH/machxo2/*.v
vlog -work machxo3l $DIAMOND_PATH/machxo3l/*.v
vlog -work pmi $DIAMOND_PATH/pmi/*.v
vlog -work sc $DIAMOND_PATH/sc/*.v
vlog -work scm $DIAMOND_PATH/scm/*.v
vlog -work xp $DIAMOND_PATH/xp/*.v
vlog -work xp2 $DIAMOND_PATH/xp2/*.v
4.根据LATTICE DIAMOND的实际安装位置,设置DIAMOND的路径,比如我的DIAMOND安装路径为:E:/lscc/diamond/3.12(注意:分隔符一定要为“/”);

5.保存并关闭sim.tcl文件,在刚刚建立的lattice文件夹下,用鼠标右键+shift选择在此处打开命令窗口,输入vsim -do sim.tcl,运行命令;

6.Modelsim会随之打开,可以看到下面Transcript窗口编译库文件;

7.等待其编译完成,可以在Library窗口看到Lattice的库;

8.然后,回到Modelsim主的安装目录:D:\modeltech64_10.4,找到并右击modelsim.ini文件,打开属性栏,取消勾选只读属性,点击确定返回目录;

9.双击modelsim.ini文件以记事本方式打开,复制以下脚本;
ec = $MODEL_TECH/../lattice/ec
ecp = $MODEL_TECH/../lattice/ecp
ecp2 = $MODEL_TECH/../lattice/ecp2
ecp3 = $MODEL_TECH/../lattice/ecp3
ecp5u = $MODEL_TECH/../lattice/ecp5u
lptm = $MODEL_TECH/../lattice/lptm
lptm2 = $MODEL_TECH/../lattice/lptm2
machxo = $MODEL_TECH/../lattice/machxo
machxo2 = $MODEL_TECH/../lattice/machxo2
machxo3l = $MODEL_TECH/../lattice/machxo3l
pmi = $MODEL_TECH/../lattice/pmi
sc = $MODEL_TECH/../lattice/sc
scm = $MODEL_TECH/../lattice/scm
xp = $MODEL_TECH/../lattice/xp
xp2 = $MODEL_TECH/../lattice/xp2
10.粘贴到**[Library]后,保存Modelsim.ini文件并关闭**;

11.从桌面快捷方式运行Modelsim,就可以在Modelsim的Library窗口看到Lattice的库(如果库的名称后面显示unavailable,可以尝试在工具栏菜单中File的下拉菜单选择Change Directory切换目录到Modelsim的安装目录);

12.至此,就成功在Modelsim中添加Modelsim的仿真库啦~。
本文的创作参考了以下创作的建议,谢谢他们分享的经验!
[1]: Modelsim添加Lattice库
[2]: Modelsim 安装步骤详解
[3]: 正点原子官方资料下载中心
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
当谈到运行时自省(introspection)和动态代码生成时,我认为ruby没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资
我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------