Matlab_Simulink和modelsim联合仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 选用ModelSim 6.1~6.3
• 如选用ModelSim AE
– 可以用 相应 相应ModelSim Se的 License. 例如 例如: 的 最新版本的ModelSim AE 6.4 可以使用 最新版本的 ModelSim Se 6.4的License 的
Altera的仿真库 的仿真库

– –
ModelSim
利用hdl coder生成的批命令和测试平台,然 生成的批命令和测试平台, 利用 生成的批命令和测试平台 后用Modelsim进行单独仿真 后用 进行单独仿真 Matlab/Simulink和Modelsim协同仿真 协同仿真
Matlab/Simulink ModelSim仿真 仿真
vlib work 创建工作库 vmap work work 映射工作库到物理目录 库到物理目录 vcom modsimrand 选择一个 择一个HDL文件进行编译 文件进行编译 择一个
MATLAB连接 连接ModelSim流程例 连接 流程例
• 5关联HDL设计与MATLAB函数 ,执行ModelSim
• 仿真库
– IP Core 仿真库
• 如果设计中包含了 如果设计中包含了MegaWizard 生成的 Core 或 生成的IP 直接调用了LPM, 则必须制定Altera 直接调用了LPM, 则必须制定Altera 仿真库
– 器件族仿真库
Altera仿真库 仿真库
添加Altera的仿真库三种方法 为ModelSim SE添加 添加 的仿真库三种方法
配置协同仿真模块— 配置协同仿真模块 共享内存连接
命令
vsimmatlab xxx xxx为设计名 例 vsimmatlab modsimrand
• 6加载仿真器,执行vsim命令
matlabtb xxx -mfunc yyy -rising zzz -socket 端口号 xxx为实例名, yyy为m函数名, zzz为时钟激励信号

matlabtb xxx -mfunc yyy -rising zzz 例: matlabtb modsimrand -mfunc modsimrand_plot -rising /modsimrand/clk
端口名称与ModelSim 信号命名相同,删除不 合适的端口 对输出端口设采样时间
配置协同仿真模块--端口设置 配置协同仿真模块 端口设置
• 自动填入端口信息:
– 在modelsim中关联:vsimulink 实体名 – 在simulink 协同仿真模块中删除已有端口,点 击 Auto Fill – 删除不必要的端口,如clk(clk信息应在clocks 选项卡中设置)
库文件视图
命令控制台
ModelSim> 设计加 载前的提示符
VSIM> 设计加载后 的提示符
1. 建立库
vlib <库名> 缺省值是 work工作库 工作库
2. 映射库到物理目录
vmap <logical_name> <directory_path> 例 vmap work work
3. 编译源代码
Matlab Link ModelSim
MATLAB 连接 连接HDL仿真器 仿真器
MATLAB 连接 连接HDL仿真器 仿真器
• MATLAB test bench function wraps around and communicates with the HDL simulator during a test bench simulation session.
matlabtb modsimrand mfunc modsimrand_plot -rising /modsimrand/clk -socket portnum
仿真
仿真结果可视化
用ModelSim 仿真例
仿真数据来自ModelSim, 由Matlab绘图 仿真数据来自 绘图
MATLAB连接 连接ModelSim流程例 连接 流程例 1. 建立连接通道 MATLAB
1. ModelSim
– 建库 – 编译
2. Simulink
– 建模 – 使用/配置协同仿真模块
• Matlab
– 建立连接
3. ModelSim
– 加载仿真器
4. Simulink
– 运行仿真
使用Simulink 协同仿真模块 使用
Simulink 建模
配置协同仿真模块--端口设置 配置协同仿真模块 端口设置
1. 从ModelSim AE版中复制 版中复制Altera的仿真库 版中复制 的仿真库 – 1安装 安装ModelSim AE版 安装 版 – 2在ModelSim AE的安装目录下的 在 的安装目录下的Altera目录 的安装目录下的 目录 就是所要的仿真库
Altera仿真库 仿真库
2 从Altera 官方网站下载预编译的仿真库 http://www.altera.com/support/software/do wnload/eda_software/modelsim/msmindex.jsp
Altera仿真库 从Quartus 中提取 仿真库-从 仿真库
• 还可以再编译其他器件系列的库 • 修改ModelSim 安装目录下的 修改 ModelSim.ini文件只读属性为可写,以便 文件只读属性为可写, 文件只读属性为可写 记录仿真库的路径及映射关系
ModelSim用户界面 用户界面
MATLAB连接 连接ModelSim流程例 连接 流程例
在ModelSim仿真过程中, MATLAB 绘 制输出信号
MATLAB连接 连接ModelSim流程例 连接 流程例
• 8 重新仿真
ModelSim: restart 重复步骤7, 输入激励信号,运行仿真。 重复步骤 , 输入激励信号,运行仿真。
– ModelSim AE 要有License 要有 – ModelSim AE Free 发行速度跟不上SE 版和 版和Quartus 的 发行速度跟不上 速度 – ModelSim SE 不带FPGA/CPLD厂家的仿真库 不带 厂家的仿真库
ModelSim版本 版本
• 如用于Matlab/Simulink协同仿真
MATLAB连接 连接ModelSim流程例 连接 流程例
• 7执行Vsim命令,输入激励信号,运行仿真。 输入激励信号, 输入激励信号 运行仿真。 例
force /modsimrand/clk 0 0 ns, 1 5 ns -repeat 10 ns force /modsimrand/clk_en 1 force /modsimrand/reset 1 0, 0 50 ns run 80000
MATLAB连接 连接ModelSim流程例 连接 流程例
• 9 结束仿真
– ModelSim
quit 退出仿真 quit 结束ModelSim
– Matlab
hdldaemon(‘kill’) 关闭连接
Simulink Link ModelSim
Simulink 连接 HDL 仿真器
Simulink 与HDL仿真器协同仿真流程 仿真器协同仿真流程
连接ModelSim流程例modsimrand.m 流程例 连接
Matlab启动 server in shared memory mode: ModelSim仿真
hdldaemon
modsimrand_plot.m function [iport,tnext] = modsimrand_plot(oport, tnow, portinfo)
ModelSim exe具体安装路径 具体安装路径
MATLAB连接 连接ModelSim流程例 连接 流程例
• 3 设置MATLAB当前目录

cd D:\MATLAB\toolbox\edalink\extensions\modelsim\modelsim demos 该目录下有modsimrand_plot.m文件
ModelSim版本 版本
• ModelSim AE
– Altera OEM 版,功能有限,速度较慢。有厂 功能有限,速度较慢。 家仿真库
• ModelSim PE • ModelSim SE
– 专业版, 性能最强 专业版, 性能最强。
Altera和ModelSim 和
• ModelSim 的版本
• 设置MODELSIM当前目录
–例
cd D:\MATLAB\toolbox\edalink\extensions\modelsim\modelsim demos\vhdl\modsimrand 该目录下有VHDL文件
MATLAB连接 连接ModelSim流程例 连接 流程例 •4 执行ModelSim命令
Matlab/Simulink 和EDA仿真工具 仿真工具
ModelSim
Links
Cadence HDL simulator Incisive Mentor Graphics Simulators ModelSim
仿真
• 功能仿真(前仿真) 功能仿真(前仿真)
– 验证电路功能是否符合设计要求,不考虑电路 验证电路功能是否符合设计要求, 的门延迟
环境中仿真HDL 在Matlab/Simulink环境中仿真 环境中仿真
• DSP Builder
– SIL(Quartus)
– 用DSP Builder 建模,生成HDL,仿真 建模,生成 , – 用DSP Builder将HDL导入,仿真 导入, 将 导入
– HIL(Quartus+JTAG+实验板 实验板) 实验板
1. hdldaemon('socket',端口号)
in TCP/IP socket mode端口号,0表示由系 端口号, 表示由系 端口号 统分配可用端口
或 2 Hdldaemon
in shared memory mode
MATLAB连接 连接ModelSim流程例 连接 流程例
• 2 从MATLAB环境启动ModelSim vsim 或 vsim('vsimdir','D:\Modeltech_6.1f\win32\')
Altera仿真库 从Quartus 中提取 仿真库-从 仿真库
3. 从Quartus 中提取
1. 改变工作目录到存放仿真库的目录下 2. 创建新的库 3. 编译库
Altera仿真库 从Quartus 中提取 仿真库-从 仿真库
• 编译库
–对新创建的库进行编译 对新创建的库进行编译——选择源文件: 选择源文件: 对新创建的库进行编译 选择源文件 Quartus安装目录 安装目录\eda\sim_lib\220pack.vhd 安装目录 altera_mf_components.vhd 选择编译余下的6 再选择编译余下的6个文件
ModelSim仿真 仿真
• • • • 设置断点 单步运行 查看当前信号值 从仿真波形回溯源代码
ModelSim的安装 的安装
1. 运行setup,安装程序。选择“Full product”选项 。当询问security key的时候,选择 NO。 当看 见“ License Wizard”对话框时候,选择“close” 。 2. 运行keygen,生成license.dat, 把它拷贝到新建的 keygen license.dat, c:\flexlm 目录中。 3. 设置环境变量: LM_LICENSE_FILE = c:\flexlm\license.dat (选择“我的电脑” 按右键 ,选“属性”,再选“高级”,可以看到环境变 量按钮) 4. 运行ModelSim,OK
• 综合后仿真
– 验证电路结构是否符合设计要求,估算电路的 验证电路结构是否符合设计要求, 门延迟, 门延迟, 不考虑布线的延迟
• 布局布线后仿真(时序仿真) 布局布线后仿真(时序仿真)
– 验证是否存在时序违规。电路已经映射到具体 验证是否存在时序违规。 的工艺环境, 的工艺环境,综合考虑电路的门延迟和路径延 迟
vcom <file1>.vhd <file2>.vhd vlog <file1>.v <file2>.v
4. 启动仿真器
vsim top_entity
Hale Waihona Puke BaiduModelSim基本 基本 仿真步骤
5. 添加信号到 添加信号到Wave窗 窗 add wave /* 6. 添加激励 运行仿真 添加激励,
force run <time_step> <time_units>
相关文档
最新文档