前言: 本栏目除特别说明以外,均采用的黑金AX7103开发板,该开发板时钟频率为200M,并且是双端时钟,因此在每个项目中都有一段原语将双端时钟变成200MHz的单端时钟。文章仅作为学习记录,如有不足请在评论区指出,博主不会对各位的问题作出解答,请谅解。博主深知网络上关于HDL Coder的资料十分稀少,特别是中文资料几乎没有,并且官方给出的例子大多挺难不适合入门,因此将自己摸索的过程记录下来,希望给后人一些启发。


当然,相位差校正还有不少其他的方法,比如相关法,滤波法等等。

我这里解释一下为什么后面偏移量我乘了一个系数2,这里是因为给Top模块的有效信号周期为2,但是Simulink本身的时钟周期是1,也就是说,如果你查看外部的输入信号是 1 1 2 2 3 3 4 4,Top收到的信号实际是1 2 3 4,你查看信号波形就明白了。
我找不到最初的模型了,一共写了很多版的代码,这个是比较早的版本,我觉得要清晰一些。

这是仿真结果。
我生成HDL 代码的时候是一个模块一个模块的生成单独测试的,不像之前的时候都是封装成一个顶层模块。也就是每次点
的时候,都要选中要生成的模块。或者你们再将里面所有的模块,除了信号源意外都再封装成一个子系统。


上面的仿真是直接生成TestBench的仿真结果,可以看到是可以实现功能的。不过对应的Simulink文件可能被我删掉了,我找不到了。


我给出一份可以直接使用的模型,以及对应的Vivado工程,没有Vivado测试文件,直接可以下载到AX7103的,管脚都已经配好了。 用了AD/DA模块:

我想应该没人会上板测试,两个模块都插到拓展口上,具体位置可以看看约束文件,我忘了,大概是AD J11,DA J13. 不知道有没有加按键功能,如果没有校正效果,看看按板卡上的两个按键有没有效果。
主要是让大家下载之后看看Simulinlk模型,我有点懒,讲的不太清楚,有问题再问吧。等下次看看会不会弄一个比较详细的新工程。
链接:https://pan.baidu.com/s/1_4m0sWSaNs_5eRDs2489wA?pwd=1111
提取码:1111
–来自百度网盘超级会员V6的分享