信号多拍处理
一个信号的多拍处理也就是在时钟上将信号连续打多拍,这个处理在时序对齐和防止亚稳态有着十分重要的意义。将信号打多拍是比较简单的事情,利用移位寄存器即可。
代码示例:
仿真平台:
仿真波形:
得到数据的多拍后可以在不同的街拍进行不同的算法处理,这适用于某个需要n拍才能完成的算法。
示例:
如上所示,首先对信号TFT_VS_rise打多拍,然后在节拍上做算法处理。
仿真过程中文件的操作
有时候我们需要把仿真的数据提取出来,生成一个txt文档或者其他格式的文档放到matlab或其他软件里面进行分析仿真数据(例如我们将图片数据转化成二进制文件,然后使用仿真软件直接读入数据,将处理过的数据重新生成二进制文件,再还原成图片),我们可以直接对比前后的图片或者前后的数据,就可以知道我们的代码是否正确或者是否达到处理预期,在仿真的时候尽量达到预期。这时候verilog的文件操作函数就很有用。
6.1文件打开函数$fopen和文件关闭函数$fclose
用法:
Integer fp;//定义变量
fp =$fopen(“file_name”);//打开文件
$fclose(fp); //关闭文件
6.2 写文件$fdisplay,$fwrite
用法:
$fwrite(fb,"%d\n",signal);
$fdisplay(fb,"%d",signal);
我们将cordic算法的输出的正玄波数字信号生成11.txt文本文件。
示例:
结果:
我们用j来控制需要的数据个数,当达到我们所需要的数据时,仿真自动完成($finish)。
推荐阅读: