modelsim仿真含Xilinx原语代码块
很早之前笔者已经写过关于modelsim仿真的文章了,不过之前笔者做的仿真都是有现成代码块的仿真。对于那些使用原语的代码块进行仿真时则需要产生相关的仿真库,笔者这里使用modeltech64_2020.4,Vivado 2020.1。由于vivado产生的仿真库生成对应一些modelsim的版本,版本不匹配貌似在生成仿真库过程会报错,笔者也遇到过多次,所以笔者这里就使用仿真成功过的modelsim版本及Vivado版本。
一、生成仿真库步骤
1.打开vivado,先点击Tools,接着选择Compile Simulation Libraries...

2.先选择仿真库存放的路径地址,接着点击下方的Compile,之后便跳出Initializing project...的显示框


3.此时查看Tcl Console可以查看编译的信息,之后需要等待一段较长的时间。

4.编译成功后,Tcl Console显示如下:

二、编写好modelsim的.do文件
下面的代码中把上面步骤生成的仿真库添加进来,第10行-L F:/vivado2020_lib/xpm就是起到了这个作用,这里需要对含xpm_fifo_sync原语的代码块进行仿真,所以后面是xpm。需要注意的是如果10行中的代码用旧版本的vsim -novopt work.Uart_sim -L F:/vivado2020_lib/xpm work.glbl,就会出现下图2中的错误,这是新版本modelsim需要注意的事。-voptargs="+acc"是允许自动优化,可加可不加。
1 #删除work工作目录
2 quit -sim
3 .main clear
4
5 vlib work
6 vlog -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF *.sv
7 vlog -cover sbctf -coveropt 3 ../rtl/*.v
8 vlog -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF ../glbl/glbl.v
9
10 vsim -voptargs="+acc" work.Uart_sim -L F:/vivado2020_lib/xpm work.glbl
11 #观察DUT的信号波形
12 add wave -position insertpoint sim:/Uart_sim/u_AXI4_UART/u_Uart_tx/*
13 view -new wave
14 add wave -position insertpoint sim:/Uart_sim/u_AXI4_UART/u_Uart_rx/*
15
16 run 10ms

三、直接点击run.bat,自动仿真完成
代码用的是前面UART的相关代码《基于Axi4_lite的UART串口Verilog代码实现》。仿真完成如下:

modelsim仿真含Xilinx原语代码块的更多相关文章
- Vivado级联Modelsim仿真Re-launch问题
前两天在群里看到有朋友说Vivado级联Modelsim仿真出现修改设计代码后重新run do文件,波形没有随着代码修改而改变,这个问题博主之前没有注意到,因为把Vivado和Modelsim级联好后 ...
- 87.在ModelSim中添加Xilinx ISE仿真库
在ModelSim中添加Xilinx ISE仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\ ...
- 在ModelSim中添加Xilinx仿真库
在ModelSim中添加Xilinx仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\Mode ...
- 加快modelsim仿真速度的方法(原创)
①仿真精度越高,仿真效率月底. 仿真时采用`timescale 1ns/1ns比采用1ns/100ps的仿真效率高 simulation was two billion ns. ②clock gene ...
- ModelSim仿真入门
ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...
- 【黑金原创教程】【Modelsim】【第一章】Modelsim仿真的扫盲文
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- Java static 静态代码块执行分析
假设有这样一个类: public class Utils { static { Log.i("static","isLoad!"); } public stat ...
- 用Modelsim仿真QuartusII综合后网表时库的添加方法(转)
这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法.说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨.把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博 ...
- modelsim 仿真时出现无限迭代(iteration reach limitation)的原因及其解决办法
modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因: 一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signa ...
- modelsim仿真时让状态机波形显示状态的名字
在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示(如IDLE等).当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,如下面所示,这种显示 ...
随机推荐
- Os-hackNos
Os-hackNos 目录 Os-hackNos 1 环境配置 1.1 靶场环境 1.2 靶机未获取到IP时配置 2 信息收集 2.1 端口扫描 2.2 目录扫描 3 对Drupal 7.57版本安全 ...
- echart折线图异常多出一条连接线
开发背景:vue3父传子,父中调子组件echarts图表 问题:第一次进入数据图表正常,再次进入不更新图表数据的情况下,图表异常多出来一条开始到结尾的连接线 原因:上次数据没清空 解决:请求完接口后先 ...
- 2022年冬pat乙级考试题目及代码解析附部分错误原因
快考pat乙级了,花了十块钱做了一下去年冬天的pat乙级,不难,现在在花ac之后的时间来写文章,默默许愿几天后的也不难,但是我们也要做好准备啊~ B-1 谣言检测仪 分数 15 作者 陈越 单位 浙江 ...
- Vue 组件VueComponent中_ _proto_ _ 原型对象的指向(指向Vue的原型对象 _ _proto_ _)
1.VueComponent.prototype.__proto__ === Vue.prototype 2.让组件实例对象(vc)可以访问到Vue原型上的属性.方法 图片如下: 案例: Vue.pr ...
- 使用树莓派PICO点灯
使用树莓派PICO点灯树莓派PICO简介具体步骤方式①下载Thonny软件②为PICO烧录MicroPython固件①下载UF2文件②PICO进入boot模式烧录固件③进行点灯效果总结 具体步骤方式① ...
- 同一ip地址不同的主机冲突解决
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HA ...
- 将现有vue项目基于electron打包成桌面应用程序 如何隐藏electron窗体的菜单栏
一.前言 项目本来打算采用B/S架构去做的,浏览器网址方式打开还是让用户不方便: 二.使用electron集成桌面应用 本身项目是使用vue-cli开发的,在使用electron之前,需要将本身的项目 ...
- s-hr实现单点登录,看我这份笔记就够了!!!
https://pan.kingdee.com/s/MTA5ODk4NyxjNzk1来自:云之家企业云盘
- 如果还有问ARKIME不会部署安装,你就把这篇丢给他!
前言 关于在线安装和离线安装的配合方式,在本文中不再赘述.基本就是准备在线.离线两个一模一样的环境,在在线环境中边安装边借助yumdownloader.wget等解析依赖和下载安装包,然后再离线环境中 ...
- mybatis面试资料
1.#{}和${}的区别 #{} 数据类型检查: 若检测到字符串类型,就加上引号: 若检测到数值类型,就不加引号. 安全检查: 若变量的值带有引号,会对引号进行转义处理,这样可以防止sql注入. ${ ...