利用MATLAB增强MAX+PLUS II的仿真功能

[11-20 16:13:14]   来源:http://www.88dzw.com  FPGA   阅读:8741

文章摘要: 我们先介绍MATLAB与MAX+PLUS II联合仿真的流程,以使大家心中有一个概念。然后再分别介绍各部分的实现。联合仿真流程为: (1)先在MATLAB中产生原始信号,并转换为2/16进制序列; (2)利用自己编写的MATLAB函数按一定格式生成向量文件(*.vec,纯文本文件); (3)在MAX+PLUS II中,打开你要仿真的FPGA源文件,设置为“当前工程”并作编译; (4)打开simulator,选“File\Inputs/Outputs”,输入在MATLAB中生成的向量文件名,按:“确定”按钮生成*.scf文件; (5)进行仿真; (6)选菜单“Fi

利用MATLAB增强MAX+PLUS II的仿真功能,标签:fpga是什么,fpga教程,http://www.88dzw.com

    我们先介绍MATLAB与MAX+PLUS II联合仿真的流程,以使大家心中有一个概念。然后再分别介绍各部分的实现。联合仿真流程为:

   (1)先在MATLAB中产生原始信号,并转换为2/16进制序列;

   (2)利用自己编写的MATLAB函数按一定格式生成向量文件(*.vec,纯文本文件);

   (3)在MAX+PLUS II中,打开你要仿真的FPGA源文件,设置为“当前工程”并作编译;

   (4)打开simulator,选“File\Inputs/Outputs”,输入在MATLAB中生成的向量文件名,按:“确定”按钮生成*.scf文件;

   (5)进行仿真;

   (6)选菜单“File\Create Table Files”,生成相应的*.tbl文件(纯文本文件);

   (7)回到MATLAB下,运行自己编写的函数,自动从Table文件提取需要的输出数据、进制转换(变为十进制),生成仿真结果序列;

   (8)对结果序列进行进一步分析、处理。

    1.2 仿真输入文件

    在MAX+PLUS II的仿真输入文件中有一种文本形式的向量文件(Vector File),其后缀名为“*.vec。这种文件是用一定格式的文本来描述仿真信号的。我们可以很方便地使用任何纯文本编辑器来书写文件,定义仿真时间长度,以相对/绝对时间单位来定义周期重复的输入信号(如时钟)和其它复杂输入信号。下面给出一个该文件的简单例子:

    %时间单位缺省为以%

    START 0; %定义仿真开始、结束时间%

    STOP 1000;

    iNTERVAL 100; %定义时间步长:100ns%

    INPUTS CLOCK;

    PATTERN

    01; %相对向量值定义:CLOCK %

    %每100ns翻转一次%

    INPUTS DATAINX DATAINY;

    PATTERN %定义两个输入信号%

    %DATAINX和DATAINY%

    0>00

    220> 10

    320> 11%绝对时间描述%

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

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

    ;

    INPUTS CLEAR;

    PATTERN

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

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

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

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

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

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

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


Tag:FPGAfpga是什么,fpga教程FPGA
分类导航
最新更新
热门排行