在一般情况下,我们仅仅需要看到数据的二进制或者十六进制,但是当信号为方波正弦波信号或者为频谱信号时候,在仿真过程中,如果能够显示出波形信号,那么仿真结果将更加直观,由于公司不能上网,所以在家实现该仿真功能,结果如下:
第一步:生成sin波形文件(sin.txt)
这一步使用matlab完成,matlab中的代码如下:
fc = 10e6;
n = 1/fc/256;
t = [0:255]*n;
x = sin(2*pi*fc*t);
xx = fix(128+(2^7-1)*x);
y = dec2hex(xx);
解释:
在一个周期采样256个点,fix函数是将数据向0取整,例如1.1变成1,1.2也变成1.这里先将正弦波幅值变成128.最后将数据变成16进制。最后将y的值存到sin.txt文件中,结果如下图所示:
第二步:编写testbench文件
编写testbench的原理不解释,如下图所示:
第三步:运行modelsim
对于这样只有tb文件而没有其他模块的仿真对于我还是第一次,首先新建工程,添加文件后,编译,仿真,添加信号,结果如下图所示。
这时候信号显示为二进制,其中data_out就是正弦波信号,如果要将这个信号在modelsim中显示为正弦波图形,需要进行下面设置:
1、选择data_out信号,右击—>Radix—>Unsigned
2、选择data_out信号,右击—>Format—>Analog(automatic)
设置好后,就可以显示正弦波,如下图所示。
其实这个仅仅是为了后面做FFT的仿真做铺垫,后期将会对其频谱进行图形显示。