热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

modelsim和matlab联合仿真,一个simulink和modelsim联合仿真的简单例子(转)

首先,要安装matlab和modelsim,这个是不用说的了。然后要在matlab里对modelsim进行配置,在命令窗口中输入confi

首先,要安装matlab和modelsim,这个是不用说的了。

然后要在matlab里对modelsim进行配置,在命令窗口中输入configuremodelsim,根据提示一步一步进行即可。

然后在matlab的File/Set Path菜单中加入Modelsim所在的路径。

把matlab的当前路径切换到modelsim的可执行文件所在的目录,在命令窗口中输入

vsim('socketsimulink',4449)

则modelsim软件被启动,在modelsim中创建一个inverter.v文件:

module inverter(sin,sout,clk);

input [7:0] sin;

output [7:0] sout;

input clk;

reg [7:0] sout;

always @(posedge clk)

begin

sout<=~sin;

end

endmodule

这个程序很简单,就是个取反逻辑。

在modelsim的命令窗口输入:

vlib work

vmap work work

vlog inverter.v

如果有出错信息,注意检查modelsim的工作路径与文件的路径是否一致,代码是否有输入错误。

如果编译没有错误,就在命令窗口继续输入:

vsimulink work.inverter

现在modelsim的仿真已经运行起来了,但是这个仿真没有测试向量输入,实际上,modelsim是作为一个服务器,等待着simulink发送输入信号,并把输出信号返回给simulink。

所以我们现在回到matlab,在命令窗口输入simulink,进入simulink环境。

建立一个新的模型文件,在文件窗口内,建立如下的模型:

f6500bb7.jpg

模型由三个模块组成:最左侧的是一个信号源,最右侧的是一个示波器,中间就是simulink和modelsim的桥梁--HDL Cosimulation模块。

Counter Free-Running的参数设置如下:

Number of Bits:8

Sample time:1

这表示信号源输出一个8位二进制数,采样周期为1秒,每个1秒输出值加1。

示波器参数不需要设置,比较复杂的是HDL Cosimulation模块的参数设置,为了描述简单,我这里直接给出参数设置的图片,具体参数的解释在下一篇里讲。

(1)Ports参数

20031027.jpg

(2)Clocks参数

1197960127411eac9d.jpg

(3)Timescales参数

60a724c1.jpg

(4)Connection参数

c92a5a2b.jpg

(5)Tcl参数

b7b969f1.jpg

设置好模块参数后,再设置仿真的配置参数如下:

e29703d2.jpg

下面就可以点击仿真按钮,如果没有错误的话,双击示波器模块,就可以看到输出信号波形,和输入信号相比,两者在数值上正好是二进制的取反。

好,一个simulink和modelsim仿真的完整过程就实现了,有时间再仔细讨论具体的参数。



推荐阅读
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • Linux 数据流重定向详解
    本文详细介绍了 Linux 系统中的数据流重定向技术,包括标准输出(stdout)、标准错误输出(stderr)和标准输入(stdin)的重定向方法,以及其在实际应用中的具体示例。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat&nbsp;-anlp&nbsp;|&nbsp;grep&nbsp;mysqltcp&nbsp;0&am ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 一、安装telnet1.上传如下的rpm安装包http:mirrors.163.comcentos7.6.1810osx86_64Packagestelnet-0.17-64.el ... [详细]
  • 并不是上一个用SocketServer的聊天室的延续。用远程调用完成的聊天室。正好有Java的RMI聊天室的作业,就先用Python写了一个简单的类似远程调用的东西& ... [详细]
author-avatar
立案whan_597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有