Vec文件的主要格式如下:
1 确定仿真开始时间和结束时间,单位为ns;
2 确定输入数据的格式,如二进制,十进制,十六进制等等。HEXADECIMAL,
DECIMAL, OCTAL
or BINARY;
3 确定间隔,intervals,单位ns
3 输入、输出数据及其取值
下面给出一个例子。
START 0;
STOP 1000;
RADIX Decimal;
INTERVAL 20;
inputs clk;
pattern
0 1;
inputs x_in[3..0];
pattern
1
2
3
4
5
10
8
8
9
10;
outputs y_out[3..0];
尝试了一下,不能设置不同的INTERVAL,好像这个顺序也不能改变,但是可以改变不同的RADIX。
对于负数的情况,需要求解其补码。
下面给出一个实际的例子。
仿真一个正弦信号作为输入,1M信号,40M采样,采集100个信号,下面是m程序:
%vec_data.m
clear;clc
fi=1;
fs=40;
N=100;
f=sin(2*pi*fi/fs*(1:100));
%采用12BitAD进行量化
f=fix(f*2047);
%对于负数的情况,求解其补码。
a=f>=-2048&f<0;
f(a)=f(a)+4096;
f=reshape(f,10,10);
f=f';
%产生数据完成了。一共有100数据。
然后是编写vec文件。
% units
default to ns %
START 0
;
STOP 1000
;
radix
decimal;
INTERVAL
10 ;
INPUTS
CLOCK ;
pattern
0
1;
radix
decimal;
INTERVAL
10 ;
inputs
a[11..0];
pattern
……
Matlab产生的数据的值放在这里
………;
outputs
b[1..0];
radix
decimal;
在quartus中导入就可以了。
把程序也给出来了
========================================
%units default to ns %
START 0 ;
STOP 1000 ;
radix decimal;
INTERVAL 10 ;
INPUTS CLOCK ;
pattern
0 1;
radix decimal;
INTERVAL 10 ;
inputs a[11..0];
pattern
320 632 929 1203 1447 1656 1823 1946 2021 2047
2021 1946 1823 1656 1447 1203 929 632 320 0
3776 3464 3167 2893 2649 2440 2273 2150 2075 2049
2075 2150 2273 2440 2649 2893 3167 3464 3776 0
320 632 929 1203 1447 1656 1823 1946 2021 2047
2021 1946 1823 1656 1447 1203 929 632 320 0
3776 3464 3167 2893 2649 2440 2273 2150 2075 2049
2075 2150 2273 2440 2649 2893 3167 3464 3776 0
320 632 929 1203 1447 1656 1823 1946 2021 2047
2021 1946 1823 1656 1447 1203 929 632 320 0;
outputs b[1..0];
radix decimal;
=======================================
clear;clc
fi=1;
fs=40;
N=100;
f=sin(2*pi*fi/fs*(1:100));
%采用12BitAD进行量化
f=fix(f*2047);
%对于负数的情况,求解其补码。
a=f>=-2048&f<0;
f(a)=f(a)+4096;
f=reshape(f,10,10);
f=f';
%产生数据完成了。一共有100数据。
=======================================