使用systemverilog完成仿真时钟频率的自动调整
时间:10-02
整理:3721RD
点击:
想使用systemverilog设计monitor,在后端仿真中,实现对verilog硬件的最高工作频率的测试
1、对比运行结果,若运行结果正确,则提升仿真时钟频率
2、若运行结果不正确,则记录当前仿真时钟频率
1、对比运行结果,若运行结果正确,则提升仿真时钟频率
2、若运行结果不正确,则记录当前仿真时钟频率
这个估计要用脚本实现吧,你提升频率以后,肯定要重新编译仿真的。你想要动态改变吗?
是的,动态改变
这个和SV没什么关系,时钟激励肯定是你的环境BFM发起的,你只要添加一些控制信号,能够让环境反馈给BFM去选择不同频率的时钟激励即可,不管你是在tb_top还是另外用bfm去实现时钟激励,自己构造的激励应该是容易实现可控的,接下来就是在monitor直接控制那个选择信号即可,monitor是可以看到tb_top的信号的,不知道这样的思路是否能够解决你的问题?
当然了,时钟的切换是要慎重的,所以最好是先复位然后再复位阶段改变时钟频率的选择,在让模块解复位进行工作,尤其是后端,一点点毛刺都会导致意料不到的错误。
是否可以这样理解:“时钟激励部分的时钟源需要自己编写频率,即可选频率是固定的,比如,50M,100M,..等等。
是否可以实现周期递增呢,如当前时钟周期为T,每次增加XT,时钟周期最终设定在[T,TL]中间呢?”
激励是由你自己定,当然可以了。只不过看你用什么方式实现而已。用一个case就可以搞定了。