Lattice Diamond3.10与modelsim10联合仿真环境设置

2024-02-09 18:32

本文主要是介绍Lattice Diamond3.10与modelsim10联合仿真环境设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Lattice FPGA开发环境在仿真时可以使用modelsim,相比于Diamond自带的Active-HDL仿真工具,具有更好的交互性以及更便捷的可操作性。与其他FPGA的开发环境一样,需要设置联合仿真环境。

本文使用的环境为:Diamond 3.9 modelsim se 10.0c。具体安装步骤请参考相关文档,modelsim在安装后需要配置好环境变量。 
其中modelsim se 10.0c版本相对较低,请参考本文的设计者选择更高版本。

主要分成以下几个步骤:

  • 建立仿真库
  • 编译库
  • 建立Diamond关联modelsim
  • 仿真

step1 . 建立仿真库 
在使用modelsim的时候,经常需要建立不同厂商的仿真库,例如Xilinx,Altera,Lattice等,推荐在modelsim安装根目录下新建对应厂商仿真库文件夹。以Lattice为例,在X:\modeltech_10.0c下建立文件夹Lattice.

step2 . 去掉modelsim安装根目录下modelsim.ini的只读属性,以方便在编译库的时候自动添加仿真库信息。

step3 . 设置仿真库存放的路径。打开modelsim,File >> change directory,选择在第1步新建的文件夹“Lattice”,如下图所示: 
图1

step4 . 根据实际开发的Lattice Device的Family来确定需要编译的库,然后在modelsim中输入对应的库的名称。例如在本文中使用的器件为ECP3系列器件,在modelsim中选择File >> New >> Library中的Library Name中输入ECP3 
图2 
输入完成后,ECP3库变成如下形态(empty) 
图3

step5 . 选中空库(ECP3(empty)),在modelsim的菜单栏中选择Compile >> Compile,出现如下对话框,注意在Library中选择刚才新建的库(ECP3),在“查找范围”中,选择Lattice对应Family的器件需要编译的文件,在编译的时候一般需要编译两个文件夹下的子文件,在本例中一个为ecp3文件夹下的所有文件,另一个为pmi文件夹下的所有文件。在编译以前,一定要确认需要仿真的顶层文件是verilog还是VHDL。如果是verilog文件,那么需要编译的库文件的路径为:X:\lscc\diamond\3.9\cae_library\simulation\verilog 
若顶层仿真文件为VHDL,那么路径为:C:\lscc\diamond\3.9\cae_library\simulation\vhdl 
在这两个文件夹下,分别有ecp3和pmi文件。pmi文件夹中的文件,主要为一些ip core的仿真库。 
另外,如果选择其他family的device,在编译的时候,最好即编译family仿真库文件,也编译pmi文件。例如如果选择的时machxo2 family device,在编译的时候,既编译上面两个路径下的machxo2,也需要编译pmi。以防止出现不可预测的错误。 
图4

step6 . 选择ecp3下的所有文件,点击Compile. 
图5 
查看modelsim最下方的Transcript信息中,当编译无错后,选择编译pmi中的所有文件 
图6 
编译完成,在Transcript中没有错误出现后。点击Done,退出Modelsim.

step7 . 打开modelsim.ini文件(推荐使用UE打开),在[Library]部分的最后,[vcom]的上方,会发现有一行:ECP3 = ECP3,修改这一行为:ECP3 = X:\modeltech_10.0c\Lattice\ECP3,其功能为指定仿真库的路径。修改完成后保存退出,并添加modelsim.ini的只读属性,防止错误修改。

打开modelsim后,查看仿真库的状态,如下状态为正常。 
图7

至此,modelsim部分的设置就已经全部完成。接下来需要设置Diamond。

step8 . 在Diamond中选择 Tools > Options > Environment > Directories,在Simulation的Modelsim/QuestaSim选择modelsim的安装路径:X:/modeltech_10.0c/win32

step9 . Diamond中的File List中的Input Files,右键选择Add > New File > Verilog Files.在新建的verilog中编写testbench. 在我的工程中,需要仿真的文件名称为start_up.v,所以新建的testbench文件名称取为start_up_tb.v.

step10 . 在Diamond的菜单栏中选择Tools > Simulation Wizard. 输入仿真工程名以及路径,选择仿真工具Modelsim.在点击Finish后会自动启动modelsim,并跳转到project栏,出现如下画面: 
图8 
编译全部文件,在这个过程中如果出错,请修改。 
在modelsim的菜单栏中选择Simulate > Start Simulate 
在Libraries中选择需要添加的仿真库,这个仿真库必须与所选用的器件是同一Family的,并点击OK 
图9

然后再点击Design选项卡,选择work中的start_up_tb.v文件,点击OK,开始仿真。 
图10

step11 . 需要查看的信号添加到wave窗口。退出仿真工程的时候,可以在Transcript中输入quit -sim退出。

注意,在编写testbench的时候需要添加一下两段代码:

• GSR GSR_INST(.GSR(1'b1));
• PUR PUR_INST(.PUR(1'b1));
  • 1
  • 2

这是因为有些LATTICE 的 FIFO_DC IP核这个IP核的子模块中使用了DIAMOND的全局GSR_INST 变量 ,其实还有一个PUR_INST变量。这时由于仿真不具有这个全局变量 我们就在顶层文件的模块中添加上面两段代码。

这篇关于Lattice Diamond3.10与modelsim10联合仿真环境设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694986

相关文章

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo