自动化仿真模型的搭建---基于lattice DO文件和modelsim脚本

首先,我并不喜欢半自动的联合仿真,宁愿花一些时间写简单的脚本。

1.先建立自己的仿真文件夹sim,用于存放tb和相应的脚本以及仿真生成的垃圾,如下图。

2.编译库是必须的,如下以lattice的ECP3为例,其中添加了DDR、Frame_buffer、pll等IP。

为了可移植性的方便,我将相应的库拷贝到了自己指定的文件夹sim/lib下,将ECP3的器件库放到里面,如下图。

3.接下来就是写脚本(因IP存放相对位置不一样,脚本则不一样),先将写好的脚本贴出来,然后一一解释,如下图ddr3_frame_buffer.do和ddr3_frame_buffer.bat。

图ddr3_frame_buffer.bat

图ddr3_frame_buffer.bat中可以看到整个核心部件的当前文件夹是sim(这个做仿真文件关联的时候一定要注意),图ddr3_frame_buffer.bat的脚本很简单,不啰嗦。

图ddr3_frame_buffer.do,因为当前文件夹是sim,tb.v又在sim下,所以vlog     ./tb.v编译当前文件夹下的tb.v,如下图所示。

lattice的库在lib的ecp3和pmi下,所以vlog     ./lib/ecp3/*.v和./lib/pmi/*.v也很显然了。

接下来编译自己写的.V,vlog  ./../scr/*.v。

然后编译IP的实体,调用了DDR、Frame_buffer、pll,所以他们仿真模型的实体也得编译。

vlog  ./../pll/pll.v

vlog  ./../frame_buffer/frame_buffer_beh.v

这两句就是编译Frame_buffer和pll的仿真模型的实体。

DDR就没有这么简单了,因为DDR实体里面还包含了很多东西

vlog  ./../ecp3_ddr3/ecp3_ddr3_beh.v

vlog     ./../ecp3_ddr3/ddr_p_eval/ecp3_ddr3/src/rtl/top/ecp3/*.v

vlog     ./../ecp3_ddr3/ddr_p_eval/models/ecp3/*.v

看到工程的顶层包含了`include "ddr3_sdram_mem_params.v",他是指工程的相对于src作为当前路径,即指的是src文件夹为当前文件夹,如下图src下有"ddr3_sdram_mem_params.v"所以在工程编译的时候没有报错。

但是我们在编译仿真DDR仿真模型实体ecp3_ddr3_beh.v

的时候,里面没有去包含参数宏定义的文件ddr3_sdram_mem_params.v,如下图

这样必然会报错的,解决的办法有两个,第一将ddr3_sdram_mem_params.v包含在ecp3_ddr3_beh.v下面,但是包含的时候关联路径一定要注意,仿真指定的当前文件夹是sim,所以关联路径应该是,如下图。

`include "./../ecp3_ddr3/ddr_p_eval/ecp3_ddr3/src/params/ddr3_sdram_mem_params.v"

还没有完事,ecp3_ddr3_beh.v下面还包含了其他仿真实体,也要编译

vlog     ./../ecp3_ddr3/ddr_p_eval/ecp3_ddr3/src/rtl/top/ecp3/*.v

要编译哪些东西,东西从哪里来???看看自己的工程就知道(首先自己要保证自己的工程在diamond下能够编译通过),看着自己工程架构写脚本是最快的,以上脚本的所有步骤都是根据工程架构写的,工程架构如下图

根据上图加上脚本

vlog     ./../ecp3_ddr3/ddr_p_eval/ecp3_ddr3/src/rtl/top/ecp3/*.v

vlog     ./../ecp3_ddr3/ddr_p_eval/models/ecp3/*.v

还有一种办法就是根据给出生成IP目录下给出的.do脚本来修改,这种办法相对繁琐,但是也值得参考,如下图是自动生成的脚本。

至此整个工程所需要的东西就全了,可以开心的让工程仿真跑起来了。

如有疑问请联系QQ:825972925

时间: 2024-12-21 01:27:29

自动化仿真模型的搭建---基于lattice DO文件和modelsim脚本的相关文章

搭建基于 HDFS 碎片文件存储服务

安装 JDK HDFS 依赖 Java 环境,这里我们使用 yum 安装 JDK 8,在终端中键入如下命令: yum -y install java-1.8.0-openjdk* 使用如下命令查看下 Java 版本,我们可以验证 JDK 是否已成功安装: java -version 配置 Java 环境变量 在编辑器中打开文件 /etc/profile,在文件末尾追加如下内容,配置 Java 环境变量: export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjd

.net项目架构改造之搭建基于java环境配置一览【上】

最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net架构.很遗憾 的是基于windows的docker上部署在访问淘宝自身的api接口,总是会时不时的各种超时,阿里小二也整个一个星期没解决,给出的理由很简单,基于windows的docker 的服务也才引入不久,还有稳定性问题. 在选择docker镜像时把自己技术的tomcat顶的高高在上,卧槽,双重1w点暴击,预计.net架构用在这上面后面会有各种坑... 改

Jendins+svn+maven+tomcat自动化部署环境搭建

在一个Tomcat集群的架构体系中,需要一个自动发布平台,对于大的公司都是自己建设,而对于中小公司一般采取的使用开源搭建,所以接下来详细介绍基于Jendins+svn+maven+tomcat的自动化部署环境搭建. 1. jenkins安装(svn,maven,tomcat已安装): 将jenkins.war拷贝到tomcat的webapps目录下 访问ip+端口/jenkins即安装成功: 2. 配置: 全局环境配置: 在jenkins中进入系统管理页面,选择系统管理,配置页面中的JAVA_H

如何在ASP.NET 5上搭建基于TypeScript的Angular2项目

一.前言 就在上月,公司的一个同事建议当前的前端全面改用AngularJs进行开发,而我们采用的就是ASP.NET 5项目,原本我的计划是采用TypeScript直接进行Angular2开发.所以借用这段时间来写下如何在ASP.NET 5下搭建基于TypeScript的Angualr2的项目,下面我们就进入正题. 二.环境配置 如果读者直接按照Angular.io上的方式搭建是无法通过的,所以下面我们的教程基本跟Angular.io上的类似,只是其中的配置会有所不同,并且也会多出一些步骤. 1.

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

用FreeBSD10搭建基于ZFS的iSCSI服务

概述 对于ZFS我是一直在强烈推荐的,因为实在太好用了.但是直到现在,它还是只能运行于Oracle的Solaris和FreeBSD两个系统上,为了将它分享给别的系统只能通过NAS或SAN的方式. NAS的方式很简单,我一直在用Samba实现,当然NFS也是可以的,SAN的话之前还没试过.使用上当然是SAN更好一些,而且现在网速也够快.虽然对于存储来说,NAS和SAN都是外部存储,但对于客户机来说,它知道NAS是网络设备,而SAN则会被视同本地设备,这是二者的主要区别.之所以会这样,是因为NAS走

搭建基于MyEclipse的Hadoop开发环境

前面我们已经搭建了一个伪分布模式的Hadoop运行环境. 我们绝大多数都习惯在Eclipse或MyEclipse中做Java开发,本次随笔我就教大家如何搭建一个基于MyEclipse IDE的Hadoop开发环境. 闲话少说,走起! 第一步 安装MyEclipse的Hadoop插件 1 打开MyEclipse,查看是否已经安装过 window  ->  preferences 没有显示Hadoop Map/Reduce,所以说明是MyEclipse是没有安装过Eclipse的插件. 首先,确认你

Windows 7下 搭建 基于 ssh 的sftp 服务器

Windows  xp 下 搭建 基于  ssh 的sftp 服务器,服务器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezilla 来做服务器,找不到任何有关sftp的配置选项,推荐用freesshd,免费.简单,直观,客户端可以用一般的支持sftp的都可以,filezilla,f-secure client 等,我用freesshd和filezillazilla 搭建sftp 服务,我在内网搭建的,如果在外网发布,

selenium3+python自动化50-环境搭建(firefox)

前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodriver' executable needs to be in PATH 2.Expected browser binary location, but unable to find binary in default location 3.Unsupported Marionette protoco