系统仿真软件Matlab及数模混合仿真 2013年4月2日
内容 系统仿真软件Matlab 数模混合仿真 演示
一、系统仿真软件Matlab
VLSI数字集成电路设计 模拟集成电路设计
为什么需要系统级设计? 系统级仿真是用来指导电路设计,原因如下: 电路的规模越来越大,系统构成越来越复杂。 晶体管级电路仿真消耗很长时间,效率低下。 采用系统级描述电路将降低仿真时间。
IC设计过程中系统工程师的地位 系统工程师一般是工作经验丰富的IC设计工程师。其承担的工作: 产品功能的定义和模块的划分 设计并验证系统的可行性 分配各个模块的性能指标 整个解决方案中芯片设计环节的组织者
系统级建模工具----Matlab Matlab简介 Matlab基本知识 Matlab的编程 Matlab动态仿真工具Simulink
Matlab简介 MATLAB 是一种科学计算软件,专门以矩阵的形式处理数据。 包括Toolbox的各类应用问题的求解工具。
Matlab 基本知识 1、命令窗口 在matlab 提示符“>>”下,键入matlab命令。例如输入一个3X3的矩阵: Matlab语言是与大小写有关的语言,即变量A和a是两个完全不同的变量。
Matlab的编程 MATLAB Compiler 是能够将M 语言编译生成为函数库、可执行文件 COM 组件等等。 通过M文件可以扩展 MATLAB 功能,使 MATLAB 能够同其他高级编程语言例如 C/C++ 语言进行混合应用。 利用 M 语言还开发了相应的 MATLAB 专业工具箱函数供用户直接使用。 More resource: http://www.mathworks.com/matlabcentral/fileexchange/loadCategory.do
M文件语法简介 Matlab提供近20类基本命令函数 包括:通用函数、基本数学函数、矩阵操作函数,绘图函数等 充分使用help
Matlab的toolbox 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通讯系统设计与仿真 财务与金融工程 滤波器设计 Link For ModelSim
Simulink仿真基础 工程中的控制系统需要专用的系统建模软件,准确地建模,对其进行进一步的分析与仿真。 1990年,Matlab加入新的控制系统模型图输入与仿真工具 ,1992年正式将该软件更名为Simulink。 Simulink的两个含义:Simu(仿真)和Link(连接),可以在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。
Simulink的公共模块库 信源模块(Source) 信宿模块(Sinks) 连续模块库(Continuous) 信号路由(Signal Routing) 离散模块库(Discrete) 数学运算模块库(Math operations) 端口及子系统库(Ports and Subsystems) 查表模块库(Look-Up Table) 用户定义函数模块(User-Defined Functions) 非线性模块库(Discontinuities)
Simulink的专业模块库 More resource: http://www.mathworks.com/web_downloads/ CDMA参考模块 通讯电路模块 控制系统工具 DSP模块 TI DSP应用箱 Motorola DSP模块 模糊逻辑模块 S参数模型 More resource: http://www.mathworks.com/web_downloads/
Simulink的仿真系统
利用Simulink设计滤波器 1.抽取滤波器--18位音频模数转化芯片(ADC)数字电路部分。功能: 低通滤波器 降低信号采样频率 2.插值滤波器--18位音频数模转化芯片(DAC)数字电路部分。功能: 提高信号采样频率
抽取滤波器 原理图 Simulink图
梳状滤波器的幅频曲线放大图 补偿后 的曲线
抽取滤波器Simulink仿真结果 输入信号 CIC滤波器 CIC补偿滤波器 第一级半带滤波器 第二级半带滤波器
Filter Design&Analysis 也可用命令:filterbuilder
滤波器系数
生成 HDL代码
生成HDL代码参数设置
Verilog 类型滤波器代码
生成对应的Testbench
插值滤波器 第一级半带滤波器 2倍插值 第二级半带滤波器 2倍插值 CIC滤波器 16倍插值
插值滤波器Simulink仿真结果 输入信号 第一级半带滤波器 第二级半带滤波器 CIC滤波器
二、数模混合仿真
SpectreVerilog仿真技术 Mixed-Signal Simulator 的基本结构 以模拟电路仿真器为核心 同时包含模拟和数字两个仿真核: Specter仿真器 Ncverilog仿真器
软件启动 source /opt/demo/cdsmmsim7_cal11.env source /opt/demo/ldv4.env icfb&
数模混合仿真流程 创建模拟电路symbol 创建数字电路symbol 创建数模混合电路图 创建数模混合仿真配置文件 打开仿真配置文件设置数模接口电平 打开仿真器并设置 仿真
创建模拟电路symbol 1/4 2.创建 symbol 1.添加输 入输出管脚
创建模拟电路symbol 2/4
创建模拟电路symbol 3/4 管脚位置
创建模拟电路symbol 4/4
创建数字电路symbol 名称要一样 写代码时摁键盘上的insert键; 代码输入完成摁esc键; 然后输入:wq 摁回车键即可
创建数模混合电路图 数字模块 模拟模块
创建数模混合仿真配置文件1/4
创建数模混合仿真配置文件2/4
创建数模混合仿真配置文件3/4
创建数模混合仿真配置文件4/4 确认无误后保存
打开仿真配置文件
打开mix-signal选项
设置Partition选项
设置数模接口电平 低电平 高电平
设置数模接口电平 下降时间 上升时间
打开仿真器并设置1/3
打开仿真器并设置2/3
打开仿真器并设置3/3
仿真结果 数字结果 模拟结果
三、 演示
Modelsim 仿真步骤 准备阶段 建立新的编译库 FileNewlibrary 建立新的工程 FileNewproject 添加.v文件到新的project,包括测试激励testbench 编译 仿真
准备阶段—Linux下启动软件 创建启动软件的目录 mkdir sim 进入到启动软件的目录 cd sim 启动Modelsim source /opt/demo/modelsim.env(注意空格) vsim&
准备阶段—Linux下文本编辑 启动命令 gedit&
Linux 文本编辑器 gedit
建立新的工作库
建立新的工程1/2
建立新的工程2/2 存放verilog代码的目录
编译 编译前状态 编译后状态
编译状态刷新 状态刷新很慢的情况下 在主窗口下鼠标右键 弹出来的选项中选择 Update
数字表示错误代码行数,比如这里的16,表示代码第16行有错误,双击这行可以直接定位到错误处。 编译错误查看 绿色对号表示编译无误。红色叉号表示有错误。 黄色感叹号表示有警告。错误查看:双击红色叉号。 数字表示错误代码行数,比如这里的16,表示代码第16行有错误,双击这行可以直接定位到错误处。
错误修改 错误修改后需要保存,保存后代码状态又变成问号,需要重新编译。
选择的这个模块一定要是testbench的模块 仿真1/2 启动仿真方法一 选择的这个模块一定要是testbench的模块
仿真2/2 启动 仿真 方法二 选中testbench模块后鼠标右键
波形查看 变量 过程块
波形查看 选中要查看 的模块, 鼠标右键
波形查看 跑固定时间 跑完全部
结束仿真
THANK YOU!