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