手把手教你Modelsim仿真【2020.4版本】

2023-11-18

  1. 首先新建一个文件夹【test5】

  2. 打开Modelsim,依次选择【File】->【Change Directory】,把目录选择到创建的【test5】文件夹。
    在这里插入图片描述

  3. 创建库。依次选择【File】->【New】->【Library】
    在这里插入图片描述
    一般我们选择第三个,库名和物理名称设置成work,点击OK。此时【test5】文件夹下就会多一个work的文件夹。
    在这里插入图片描述

  4. 创建项目。Project Name设置为test5,其余默认,OK。
    在这里插入图片描述

  5. 创建新文件。【Create New File】。
    在这里插入图片描述
    此时,我仿真一个加法器。创建一个文件名为add的verilog文件。
    在这里插入图片描述
    同时还要创建一个testbench文件,用来测试,命名为add_tb,同样是verilog文件(有的地方是.vt文件,一样的)。
    在这里插入图片描述

  6. 编写代码:

add.v

module add(
    input wire [7:0] a,
    input wire [7:0] b,
    output reg [8:0] out
);

always@(*)
begin
    out = a + b;
end

endmodule

add_tb.v

`timescale 1ns/1ns

module add_tb ();

reg [7:0] a;
reg [7:0] b;
wire [8:0] out;

add i1(
    .a(a),
    .b(b),
    .out(out)
);

initial
begin
    a = 8'd 1;
    b = 8'd 2;
    # 10_000;
    a = 8'd 11;
    b = 8'd 12;
    # 10_000;
    a = 8'd 21;
    b = 8'd 22;
    # 10_000;
    $stop;
end

endmodule

写完之后记得保存,不然编译会出问题。

  1. 编译文件。【Compile】->【Compile all】
    在这里插入图片描述
    编译完成之后,Status会由?变成√
    在这里插入图片描述
  2. 仿真。【Simulate】->【Start Simulation】
    在这里插入图片描述

选中add和add_tb文件,OK。
在这里插入图片描述
仿真完成。如果没有显示,记得把【Layout】选成【Simulate】。在这里插入图片描述
选择【Library】->【work】,选中add_tb文件,【Simulate】
在这里插入图片描述
在这里插入图片描述

把【Object】里的文件都拖到右边的【Wave】中(如果没有【Object】,则到【View】中勾选即可)。点击Run-All出现波形。
在这里插入图片描述
为了方便观察波形,我们可以选择无符号类型的标注
在这里插入图片描述
调节上方的放大镜可以放大/缩小波形。可以看到在0,10000ns和20000ns时刻的时刻实现了相加。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教你Modelsim仿真【2020.4版本】 的相关文章

  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • 将枚举转换为逻辑

    考虑以下模块声明 module DFF d q CLK RESET parameter W 2 input W 1 0 d input CLK input RESET output logic W 1 0 q endmodule 当 d 和
  • 学习STM32正点原子好吗?

    今日话题 学习STM32正点原子好吗 正点原子的教程内容简单明了 代码也清晰直接 使初学者能够轻松理解其功能和使用方法 尤其对于需要快速完成大学作业等任务的大学生来说 可以直接借鉴并稍作修改 便可满足需求 正点原子提供的资料通俗易懂 适合用
  • 如何获取值数组作为 plusargs?

    如何获取值数组作为参数 我需要从命令行获取一组未定义大小的命令 如何将这些参数放入数组或队列中 Eg CMDS READ WRITE READ N WRITE 它应该被带到一个数组中 value plusargs不支持数组 但支持字符串 看
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 如何正确使用电感和磁珠

    电感和磁珠不仅在外形上相似 而且功能上也存在很多相同之处 有些应用场景下 两者甚至可以相互替代使用 但是 电感和磁珠之间真的能完全划上等号吗 或许 以下的比较会让你更加清楚地知道两者之间存在的差异 额定电流 当电感的工作电流超过其额定电流时
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰
  • if 语句导致 Verilog 中的锁存推断?

    我正在编写用于合成算法的 Verilog 代码 我对哪些情况可能导致推断锁存器有点困惑 下面是这样的一段代码 虽然它在模拟中工作得很好 但我担心它可能会导致硬件问题 always b1 or b2 b1 map b2 map m1 map
  • 如何在 Verilog 中综合 While 循环?

    我尝试设计一个 Booth 乘法器 它在所有编译器中运行良好 包括 Modelsim Verilogger Extreme Aldec Active Hdl 和 Xilinx Isim 我知道模拟和综合是两个不同的过程 而且只有少数Veri
  • Verilog 中的“net”代表什么?

    我刚刚开始学习Verilog 据我了解 Verilog有net数据类型 什么是net代表 网络就是这样一种数据类型 您不使用它来存储值 它们代表物理连接 您可以将线路视为一种网络数据类型 你可以去网上看看更多here http www ee
  • 标识符必须用端口模式声明:busy。 (Verilog)

    我有如下所示的 Verilog 代码 当我编译它时 我收到以下错误消息 并且代码的第一行突出显示 Error 标识符必须用端口模式声明 busy Code module main clk rst start busy ready cnt s
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • verilog 中的案例陈述

    我遇到了优先级编码器设计 并找到了一种使用 case 语句来实现它的新方法 唯一令人困惑的是 case语句是否优先考虑case 例子 case 1 b1 A 3 Y lt 4 b1000 A 2 Y lt 4 b0100 A 1 Y lt
  • Verilog 双向握手示例

    我正在完成一个项目 要求是处理器内部功能单元之间的双向握手 我知道它是什么 但是有没有任何 标准 或一个简单的例子 我唯一能想到的就是两个单元之间 当它们之间有一条数据线并且当 X 发送到 Y 时 会给出一个单独的 发送 信号 当 Y 接收
  • 如何在 icarus verilog 中包含文件?

    我知道基本的 include filename v 命令 但是 我试图包含另一个文件夹中的模块 现在 该模块还包括同一文件夹中存在的其他模块 但是 当我尝试在最顶层运行该模块时 出现错误 C Users Dell Desktop MIPS
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更
  • Verilog 数组语法

    我是 Verilog 新手 并且遇到了很多麻烦 例如 我想要一个包含八个单元的数组 每个单元都是 8 位宽 以下不起作用 reg 7 0 transitionTable 0 7 assign transitionTable 0 10 仅仅做
  • \add_34/U1_1_6 的 Verilog 命名约定

    有人可以解释一下这个命名约定在下面的 Verilog 行中意味着什么吗 我不知道这是什么 add 34 部分的意思是 ADDHXL add 34 U1 1 6 A n1022 B add 34 carry 6 CO add 34 carry
  • 模块不是任务或 void 函数

    我正在尝试在 Verilog 中创建一个用于进位选择加法器的模块 除了以下部分导致编译错误之外 一切正常 module csa a b s cout input 15 0 a b output 15 0 s output cout wire

随机推荐

  • 图书推荐管理系统Python,基于Django和协同过滤算法等实现

    一 介绍 图书推荐系统 图书管理系统 以Python作为开发语言 基于Django实现 使用协同过滤算法实现对登录用户的图书推荐 二 效果展示 三 演示视频 视频 代码 https www yuque com ziwu yygu3z gq5
  • 基于ESP8266的CMSIS-DAP调试器

    前言 前段时间用8266制作了一个STM32的下载器 可以进行远程下载固件 不过我们用STM32的时候 经常需要进行各种调试 这时候一个调试器就很重要了 于是我想到也许可以做一个无线调试器 本来我打算自己写一个的 不过在github发现居然
  • 1. docker镜像拉取报错:Error response from daemon: Get https://registry-1.docker.io/v2/

    倘若不配置镜像 拉取速度会很慢 因此就会报超时的错误 试了网上的几个镜像 好些都无法使用 其中配置了中科院的和阿里云的 但是只有阿里云的可以使用 并且下载速度很快 大概一两分钟的样子 解决方案 1 打开终端 输入以下命令 sudo vi e
  • centos7中docker启动报错

    root localhost systemctl status docker docker service Docker Application Container Engine Loaded loaded usr lib systemd
  • gtest单元测试框架介绍及简单使用

    Gtest介绍 Gtest是Google的一个开源框架 它主要用于写单元测试 检查真自己的程序是否符合预期行为 可在多个平台上使用 包括Linux Mac OS X Windows Cygwin和Symbian 它提供了丰富的断言 致命和非
  • Laravel blade 模板压缩、加速扩展 renatomarinho/Laravel-page-speed 介绍

    在Laravel框架中 使用renatomarinho laravel page speed 扩展可以将blade模板渲染的html网页进行压缩 优化 可以节省了网络带宽 使我们的网站具有更快的访问速度 扩展包的文档中说明 可以自动优化网站
  • monitor-single-one-docker-host

    参考 https github com vegasbrianc prometheus 在github上有人使用docker compose启动Grafana Prometheus监控单台Host的docker容器 1 下载项目 git cl
  • 根据Explain结果中的key_len判断MySQL联合索引中实际用到的索引字段

    一 数据表staff 现有数据表staff 字符集utf8 并创建有一些字段单独索引及组合索引index age birth salary包含三个字段 sf age tinyint DEFAULT NULL sf birthday date
  • 廉价的全闪存雷电 NAS 折腾笔记:NUC9 操作系统踩坑

    上一篇文章中 分享了关于低成本全闪存 NAS 的个人方案选择 本篇文章 来聊聊硬件相关部分 以及软件的基础配置部分 也聊聊雷电组网的踩坑之旅 写在前面 我使用的设备是 NUC9i5QNX 这台设备的硬件基础规格 可以在 Intel ARK
  • 2023年华为od机试 Java【刻录光盘备份】

    前言 python代码 链接 JavaScript代码 链接 题目 有一系列文件需要通过光盘备份 每张光盘的容量固定为500MB 文件的大小均为整数MB并且不超过500MB 文件不可拆分或分卷备份 需要确定最少需要多少张光盘来完成备份 输入
  • ngnix+lua+js埋点 实现自定义日志采集

    ngnix lua js埋点 实现自定义日志采集 1 收集数据的页面 js埋点 在想要手机数据的页面预先放一段js代码 当用户发生行为时 触发js方法 收集数据 发到后端 http 192 168 4 101 index html 这里的i
  • 在Windons子系统ubuntu中安装ssh(保姆级教程)

    1 什么是ssh SSH Secure Shell 是一种用于远程登录和安全文件传输的网络协议 SSH服务是在计算机上运行的服务程序 它允许用户通过网络安全地远程访问计算机并执行各种操作 以下是关于SSH服务的一些重要信息 远程登录 SSH
  • 流操作

    StreamReader 与 FileStream 的区别用法 有关StreamReader的内容参考http blog sina com cn s blog 796ffec50100te51 html StreamReader 旨在以一种
  • “互联网+”最可行的路径就是“社群+”

    互联网 最可行的路径就是 社群 36氪的朋友们 2016 04 05 17 04 文章摘要 商业正从物以类聚走向人以群分 编者按 本文作者 卢彦 原文来自微信公众号 互联网思维 ID webthinking 36 氪经授权转载 前不久阿里
  • 【C++】通讯录管理系统

    1 系统功能介绍与展示 2 创建项目 3 菜单功能 代码 封装函数显示该界面 如 void showMenu 在main函数中调用封装好的函数 include
  • jmeter批量上传图片, csv文件参数化——详细讲解

    我们在测试的过程中 需要把图片放到请求中 而且还需要不一样的图片 批量修改图片后缀 我们也可以吧文件生成我们想要的后缀 1 首先创建一个文本txt 在文本中输入 ren jpg png 然后把txt的文件 修改 成bat后缀的 进行双击 在
  • 关于Altium Designer PCB元器件的3D封装

    关于Altium Designer PCB元器件的3D封装 虽然Altium Designer为我们提供了丰富的元件封装库资源 但是 在实际的电路设计中电子元器件技术的不断更新换代 有些特定的元器件封装仍需要我们自行制作 另外 有时根据工程
  • python3 中 dict和list 效率比较

    import time def count time func def int time args kwargs start time time time 程序开始时间 res func args kwargs over time time
  • 给 Ubuntu 操作系统配置静态 IP

    针对 Ubuntu 22 04 3 操作系统的静态 IP 配置 一 查看初始的网络信息 查看网卡名称 ifconfig 查看网关信息 route n 二 编辑网络配置文件 编辑文件 配置文件的名称可能不一样 自己去 etc netplan
  • 手把手教你Modelsim仿真【2020.4版本】

    首先新建一个文件夹 test5 打开Modelsim 依次选择 File gt Change Directory 把目录选择到创建的 test5 文件夹 创建库 依次选择 File gt New gt Library 一般我们选择第三个 库