首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
利用MATLAB增强MAX+PLUSII的仿真功能
来源:本站整理  作者:佚名  2011-03-22 16:08:53



  PATTERN%定义两 个输入信号%

  %DATAINX和DATAINY%

  0>00

  220>10

  320>11%绝对时间描述%

  570>01%大于号前为绝对时间值%

  720>11%大于号后为两个输入值%

  ;

  INPUTSCLEAR;

  PATTERN

  0>1%产生宽度100ns的清零信号%

  100>0%100ns后CLEAR信号保持高电平%

  在这个例子中,定义了一个周期为200ns的时钟信号、一个100ns以前起作用的清零信号(高电平有效)以及两个输入信号DATAINX、 DATAINY。在实际使用时,我们可以用同样的方法方便地产生时钟、复位等常用信号。而对于复杂的输入信号,可以先用 MATLAB 来产生,然后以相对时间的方式写入向量文件。

  在产生复杂输入信号之前,必须注意以下几点:

  第一,MATLAB产生的是浮点或整数信号,而数字模块的输入为N位二进制数,这之间有一个进制转换的问题。因此,我们先要根据要采用的A/D位数对原始信号进行量化。

  第二,在MAX+PLUSII的 仿真 器中,数据可以采用2/8/10/16进制显示格式,但其十进制显示用的是无符号数的方式,在表示那些补码形式的2/8/16进制数时会发生错误,因此必须把输入信号转换为2/16进制数。

  第三,进制转换程序必须自己编制。因为MATLAB是用字符串来表示2/8/16进制数的,虽然有一些进制变换的函数(如HEX2DEC、DEC2HEX等),但尚不能满足需要,必须在此基础上自己编制新的函数。

  1.3仿真输出文件

  向量文件产生后,就可以进行仿真了,仿真结果转换成Table文件输出。Table文件示例如下。

  INPUTSclkresetdin;

  OUTPUTSy

  UNITns%定义时间单位%

  RADIXHEX;%定义显示进制%

  PATIERN

  %r%

  %e

  %csd%

  %lei%

  %ktny%

  0.0>X00000=0000

  40.0>X10000=0000

  50.0>010000=0000

  ……

  1475.0>110000=0000

  1500.0>XXXXXX=XXXX

  Table文件的构成与向量文件大致相同。它的开始部分是注释(同样是以%…%标注的文字),接着是对输入/输出信号、时间单位、显示采用进制的定义,第三部分就是对输入/输出信号在仿真后的列表。其中,“>”号以前的是时间值,“=”号后面则是我们关心的仿真输出结果了。根据Table文件的这些特点,我们可以编制MATLAB函数将关心的东西(如时间值、某输出结果)提取出来形成数据序列,以便后续处理。在这里要注意一个问题,就是Table文件中会对每一个信号的变化时刻都进行记录,我们用图2的一个简单的D触发器的部分仿真时序来作说明,图中示出了D触发器的输入信号D、时钟,以及其输出信号Q,在这一段仿真中,Table文件会记录从T1~T9的9个信号变化的时刻,这使得输出信号的每一个值被记录了多次。如果我们对此不加甄别就照单全收的话,就会对此后的分析工作带来麻烦。因此,对于同步数字系统,我们只应提取那些我们关心的时钟上沿/下沿时刻的输出值。

D触发器的部分仿真时序

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:80,386.72000 毫秒