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窗口中以二进制编码的形式显示,如下面所示,这种显示 ...
随机推荐
- UOJ NOI Round #6
总结 \(\text{Day1}\) 只打了 \(T1\),想正解无果以致于没时间打暴力 \(\text{T1}\) 考虑到最后一个面基者要么落在点上,要么落在边上 所以可以枚举点和边,统计最久的落在 ...
- 题解 TSP 但是你有约束
Description 给定一张带权完全图,求一条路径满足 不重复经过一个点. 在过点 \(i\) 时,\(1\cdots i - 1\) 要么全访问过,要么都没有访问过. 点数 \(n\) 有 \( ...
- centos7 ssh服务
转载博客园: Centos7开启SSH服务 - KinwingHU - 博客园 (cnblogs.com)
- Sonarqube安装(Docker)
一,拉取相关镜像并运行 # 拉取sonarqube镜像 docker pull sonarqube:9.1.0-community 在运行之前要提前安装postgres并允许,新建数据库名为sonar ...
- (一)钉钉宜搭低代码应用开发高级认证之远程API调用方法示例
大家好,我是代号六零一,在此分享近期学习的低代码开发知识~,如有疑问欢迎在评论区下方点评,作者愿与您一道共同探讨: 一.创建数据源 二.请求地址配置 钉钉路径示例:/dingtalk/web/APP_ ...
- 一文搞懂│http 和 https 的通信过程及区别
目录 两者的区别 HTTP的通信过程 HTTPS的通信过程 两者的区别 端口: http 端口号是80,https 端口号是443 传输协议: http 是超文本传输协议,属于明文传输:https 是 ...
- 从0搭建Vue3组件库(二):Monorepo项目搭建
本篇文章是从0搭建Vue3组件库系列文章第二篇,本篇文章将带领大家使用pnpm搭建一个简单的Monorepo项目,并完成包的关联与测试 什么是 Monorepo 其实很简单,就是一个代码库里包含很多的 ...
- 【MySQL速通篇001】5000字吃透MySQL部分重要知识点
写在前面 这篇5000多字博客也花了我几天的时间,主要是我对MySQL一部分重要知识点的理解[后面当然还会写博客补充噻,欢迎关注我哟],当然这篇文章可能也会有不恰当的地方[毕竟也写了这么多字,错别字可 ...
- STM32定时器TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函数详解
-------------------------------------------版权声明:本文为CSDN博主「qlexcel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...
- python启动robotframework-ride失败,解决方案
python启动robotframework-ride提示str(os.path.dirname(rf_file), 'utf-8'))).publish() UnicodeDecodeErro的解决 ...