集成电路设计的系统级建模与仿真课件_第1页
集成电路设计的系统级建模与仿真课件_第2页
集成电路设计的系统级建模与仿真课件_第3页
集成电路设计的系统级建模与仿真课件_第4页
集成电路设计的系统级建模与仿真课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/6/9共107页1目录一、集成电路设计的一般流程二、系统级建模工具----Matlab三、系统级建模工具----Verilog-A四、建模仿真实例一、集成电路设计的一般流程2023/6/9共107页2集成电路设计中不同的抽象级别:结构或系统级晶体管级(电路)器件物理级2023/6/9共107页3VLSI数字集成电路设计模拟集成电路设计为什么需要系统级设计?

随着集成电路工艺和数字信号处理技术的不断发展,

1、电路的规模越来越大,系统构成越来越复杂。2、晶体管级电路仿真消耗很长时间,效率低下。3、采用行为级描述电路将降低仿真时间。

行为级模型足以表述各个电路模块的功能,通过行为级仿真可以在功能上预先验证所设计的系统是否能够满足要求。2023/6/9共107页4IC设计过程中系统工程师的地位产品功能的定义和模块的划分设计并验证系统的可行性分配各个模块的性能指标整个解决方案中芯片设计环节的组织者2023/6/9共107页5系统工程师在IC设计中具有非常重要的地位,他们一般是工作经验丰富的IC设计工程师,他们能够根据自己的经验积累恰当的选择系统架构,恰当的选择建模原型及高阶非理想因素来获得最接近真实情况的指标定义。二、系统级建模工具----MatlabMatlab语言简介Matlab基本知识Matlab的编程Matlab动态仿真工具Simulink2023/6/9共107页62023/6/9共107页7Matlab语言简介MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。其基本元素是无需定义维数的矩阵包括Toolbox的各类应用问题的求解工具。MATLAB被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作

Matlab最重要的特点是易于扩展,它允许用户自行建立完成指定功能的M文件,从而构成适合于其他领域的工具箱。2023/6/9共107页82023/6/9共107页9Matlab

基本知识2023/6/9共107页101、命令窗口

在matlab

提示符“>>”下,键入matlab命令。例如输入一个3X3的矩阵:a=[1,2,3;4,5,6;7,8,9]数据放在方括号内,行与行间分号间隔,数值间空格或逗号间隔。

Matlab语言是与大小写有关的语言,即变量A和a是两个完全不同的变量。应该注意的是:一般情况下,所有的函数名均由小写字母组成。2、图形窗口2023/6/9共107页11当调用一个产生图形的函数时,Matlab会自动建立一个图形窗口。这个窗口可分裂成多个窗口,并可以在它们之间选择,这样在一个屏幕上可以显示多个图形。2023/6/9共107页12Matlab的toolboxes数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程滤波器设计LinkForModelSim2023/6/9共107页13Matlab的编程MATLABCompiler是能够将M语言编译生成为函数库、可执行文件COM组件等等。通过M文件可以扩展MATLAB功能,使MATLAB能够同其他高级编程语言例如C/C++语言进行混合应用。利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。

Moreresource:/matlabcentral/fileexchange/loadCategory.do2023/6/9共107页14M文件语法简介Matlab提供近20类基本命令函数包括:通用函数、基本数学函数、矩阵操作函数,绘图函数等等充分使用help2023/6/9共107页152023/6/9共107页16一个简单的例子2023/6/9共107页17Simulink仿真基础工程中的控制系统需要专用的系统建模软件,准确地建模,对其进行进一步的分析与仿真。1990年,Matlab加入新的控制系统模型图输入与仿真工具,1992年正式将该软件更Simulink。Simulink的两个含义:Simu(仿真)和Link(连接),可以在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。2023/6/9共107页182023/6/9共107页19Simulink的公共模块库信源模块(Source)信宿模块(Sinks)连续模块库(Continuous)信号路由(SignalRouting)离散模块库(Discrete)数学运算模块库(Mathoperations)端口及子系统库(PortsandSubsystems)查表模块库(Look-UpTable)用户定义函数模块(User-DefinedFunctions)非线性模块库(Discontinuities)2023/6/9共107页20

simulink专业模块库

CDMA参考模块通讯电路模块控制系统工具DSP模块TIDSP应用箱MotorolaDSP模块模糊逻辑模块S参数模型Moreresource:http:///web_downloads/2023/6/9共107页21基于simulink的仿真系统2023/6/9共107页22仿真参数设置

算法器

仿真时间

仿真模式仿真精度误差容忍度

输出设置2023/6/9共107页23Simulink的简单例子(1)

———使能模块2023/6/9共107页24Simulink的简单例子(2)

———使能触发模块2023/6/9共107页25Simulink仿真数字系统(1)2023/6/9共107页26Simulink仿真数字系统(2)2023/6/9共107页27简单的数字电路的设计——10进制计数器2023/6/9共107页28LinkForModelSimLinkforModelSim是把MATLAB/Simulink和针对FPGA和ASIC的硬件设计流程无缝连结起来的联合仿真的接口扩展模块。它可以高效的在MATLAB/Simulink中验证ModelSim中的RTL模型。

备注:Matlab版本7.1以上,ModelSimSEPLUS5.62023/6/9共107页29一个综合的设计实例

——抽取滤波器的设计Toolboxes的FDA设定滤波器参数M文件实现传输函数的分析Simulink完成系统级的仿真函数对ModelSim的输出数据进行FFT分析2023/6/9共107页30抽取滤波器框图2023/6/9共107页31CIC传递函数及频率响应2023/6/9共107页32补偿滤波器设计hcic0=mfilt.cicdecim(32,1,4);hcic=cascade(dfilt.scalar(1/gain(hcic0)),hcic0);hc=design(fdesign.ciccomp(1,...4,20000,68200,.000075,110,352800));fvtool(hcic,hc,...cascade(hcic,hc),'Fs',[1128960035280011289600]);2023/6/9共107页33CICandCICcompensator2023/6/9共107页34半带滤波器h2=fdesign.decimator(2,'halfband',...48200,110,176400);h=equiripple(h2);fvtool(h);2023/6/9共107页35半带滤波器h3=fdesign.decimator(2,'halfband',...4100,110,88200);h=equiripple(h3);fvtool(h);2023/6/9共107页36整体滤波器设计hcic0=mfilt.cicdecim(32,1,4);hcic=cascade(dfilt.scalar(1/gain(hcic0)),hcic0);hc=design(fdesign.ciccomp(1,...4,20000,68200,.000075,110,352800));h2=fdesign.decimator(2,'halfband',...48200,110,176400);h22=equiripple(h2);h3=fdesign.decimator(2,'halfband',...4100,110,88200);h33=equiripple(h3);h=cascade(hcic,hc,h22,h33);fvtool(h,'Fs',11289600);fvtool(hcic,hc,h22,h33,...cascade(hcic,hc,h22,h33),'Fs',[112896003528001764008820011289600]);2023/6/9共107页37FilterDesign&Analysis设计滤波器系数2023/6/9共107页38滤波器系数2023/6/9共107页39GenerateHDL2023/6/9共107页40GenerateHDL参数设置2023/6/9共107页41filter.v2023/6/9共107页42filter_tb.v2023/6/9共107页43滤波器传输函数的分析2023/6/9共107页44Simulink

搭建的CIC2023/6/9共107页45Simulink搭建的halfband2023/6/9共107页46Simulink搭建的halfband2023/6/9共107页47Simulink的系统仿真2023/6/9共107页48输出数据FFT分析2023/6/9共107页49MATLABGUIDE(GraphicalUserInterfaceDevelopmentEnvironment)MATLAB图形用户界面开发环境2023/6/9共107页50MATLABGUI2023/6/9共107页51界面设计编辑器外观2023/6/9共107页52工具栏2023/6/9共107页53用户控件的放置2023/6/9共107页54用户控件的属性编辑2023/6/9共107页55用户控件属性对话框2023/6/9共107页56用户控件回调函数的查看2023/6/9共107页57用户控件的回调函数2023/6/9共107页58OpeningFcn2023/6/9共107页59Edittext控件2023/6/9共107页60用户控件的回调函数22023/6/9共107页61运行GUI2023/6/9共107页62激活的GUI2023/6/9共107页63误差放大器放大倍数的计算2023/6/9共107页64计算Aemin的回调函数2023/6/9共107页65计算Aemin的回调函数2023/6/9共107页66电源调整率2023/6/9共107页67Searchobject2023/6/9共107页682023/6/9共107页69

Back2023/6/9共107页70信宿模块以数值形式显示输入信号悬浮信号显示器为子系统或模型提供输出端口信号显示器当输入非零时停止仿真中断输出信号将仿真数据写入.mat文件将仿真数据输出到matlab工作空间使用matlab图形显示器Back2023/6/9共107页712023/6/9共107页72

Back2023/6/9共107页73

Back2023/6/9共107页742023/6/9共107页75

Back2023/6/9共107页76用户定义函数模块求取输入信号的数学函数值M函数(对输入进行运算输出结果)S-函数模块S-函数生成器

Back2023/6/9共107页77固定步长模式解法器ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。ode4:四阶龙格-库塔法,具有一定的计算精度。ode3:固定步长的二/三阶龙格-库塔法。ode2:改进的欧拉法。ode1:欧拉法。discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。Back2023/6/9共107页78误差容忍度Relativetolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。Absolutetolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。Back2023/6/9共107页79输出选项Refineoutput:这个选项是精细输出,其在仿真输出太稀松时,simulink会产生额外的精细输出。可以设置仿真时间步间插入的输出点数,产生更光滑的输出曲线。精细输出只能在变步长模式中才能使用,并且在ode45效果最好。Produceadditionaloutput:它允许用户直接指定产生输出的时间点。用户可以指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。Producespecifiedoutputonly:它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。Back三、系统级建模工具----Verilog-A2023/6/9共107页80Verilog-A简介Verilog是描述数字行为的常用工具,而SPICE则是描述模拟行为事实上的标准。Verilog-A是一种高层次的模块化硬件描述语言,它用模块的形式来描述模拟系统及其子系统的结构和行为2023/6/9共107页81Verilog-A语言对模拟电路的描述一是行为描述:指用一些数学表达式或者传输函数来描述目标电路的行为,其描述范围可以从基本的电阻电容到十分复杂的滤波器或其他模拟系统。二是结构描述:对各个子模块在系统中的用途以及子模块与子模块之间的连接关系进行描述,这可以理解为是对系统结构框图的描述。2023/6/9共107页82提供多层次的行为及结构模型和多种行为模块描述方法有限指数产生器limexp()积分产生器idt()微分产生器ddt()延迟产生器delay()2023/6/9共107页83良好的行为描述模型具有:良好的拟合度宽的适用性快速的执行效率2023/6/9共107页84Verilog-A的编程

2023/6/9共107页851、首先定义系统的结构和系统中模块的行为;2、用网表来定义整个系统结构;3、用子模块的互联来定义模块的内部连接关系;基本语法标识符:标识符用来对一个模块进行命名。标识符可以是任何的字符串、数字、$或者下划线。但是第一个字母不能是数字或者$但可以是下划线。Shiftreg_aBusa_index_bu$32023/6/9共107页86关键词:Verilog-A除了可以辨认VerilogHDL所定义的关键词外,还有特定的关键词。下面列出了Verilog-A中常用的关键词。注意:关键词只能用小写字母来表示。abstoldisciplinefrom…absasinatanh…

ac_stimdelayinitial_step…2023/6/9共107页87系统任务和函数:$用来引进一个系统任务或系统函数。比如:$display(“displayamessage”);$finish;2023/6/9共107页88汇编指令:’用来引进系统汇编指令。汇编程序接收到系统的汇编命令时就开始进行汇编工作。除非有新的汇编指令插入,否则一个汇编命令将在整个程序运行的过程起作用。例如:‘definewordsize82023/6/9共107页89

数据类型:Verilog-AHDL支持整数、实数和参数等数据类型。integera[1:64];//定义了一个具有64个整数的阵列realfloat;//定义了一个用来存储数据类型为实数的变量realgain_factor[1:30];//定义了一个具有30个乘数的阵列展。2023/6/9共107页90基本表达式

2023/6/9共107页91模拟运算符模拟运算符用于数学表达式中,返回一个值。若表达式是向量,则返回向量值,若表达式是标量,则返回标量值。模拟运算符的约束:

大部分情况下,模拟运算符不能用在条件声明(if和case)中。但如果条件声明的变量在仿真过程中不变则可以使用。2023/6/9共107页92Verilog-A仿真

在Verilog-A中,仿真需要用到analysis()这个函数。几种常用的仿真分析类型2023/6/9共107页93Verilog-A建模实例

要创建一个Verilog-A模拟模块或系统有两种方法,一种是直接打开编辑器输入Verilog-A代码,一种是使用Cadence中的向导来产生模块。下面先介绍用第一种方法来产生一个反相器的步骤。2023/6/9共107页94反相器1、在工作目录下新建一个库(Library),File-New-CellView…-,在Tool选项中选择VerilogA-Editor,则可见ViewName中会自动填入veriloga。填上CellName:inv。点击OK,至此对工作文件的创建完成。2023/6/9共107页952023/6/9共107页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论