您的位置:首页 > 娱乐 > 明星 > 开源多商户商城系统_婚纱摄影网站制作_嵌入式培训_网络营销专业是学什么的

开源多商户商城系统_婚纱摄影网站制作_嵌入式培训_网络营销专业是学什么的

2024/10/13 7:26:01 来源:https://blog.csdn.net/qq1016019583/article/details/142727018  浏览:    关键词:开源多商户商城系统_婚纱摄影网站制作_嵌入式培训_网络营销专业是学什么的
开源多商户商城系统_婚纱摄影网站制作_嵌入式培训_网络营销专业是学什么的

问题所在

       最近在使用黑金的AXU3EG板卡对着正点原子ZYNQ7020的例程进行移植学习。但在编写tb代码以及使用modelsim进行仿真时出了问题,发现我的实际波形与正点的对不上,仔细测量一下波形发现,我的系统时钟是6ns周期,而不是理想中的5ns周期,这才想到,正点的板子用的是50M单端时钟,也就是20ns的时钟周期,一半也就是10ns,而黑金的板子用的是200M的差分时钟,也就是5ns的时钟周期,一半也就是2.5ns(虽然我在编写tb代码时只用了其中一级),而正是这个小数出了问题!

       我开始时编写的tb代码中:

`timescale 1ns / 1ns       //仿真单位/仿真精度...initial beginsys_clk <= 1'b0;sys_rst_n <= 1'b0;#200sys_rst_n <= 1'b1;
endalways begin#2.5sys_clk <= ~sys_clk;
end...

       时钟的翻转是我自己臆想的2.5ns翻一次,而实际上,由于仿真单位和仿真精度都是定义的1ns,也就是说,我对于时钟的翻转,最后会给优化为四舍五入的#3,即3ns,也就导致最后的时钟为6ns的周期。

问题的解决

       知道了问题的所在,解决起来就轻松了,只需要把仿真单位和仿真精度再提高一些就行了,而在ns后面的单位是ps,它们之间的进制也是1000,修改代码如下:

`timescale 100ps / 100ps       //仿真单位/仿真精度...initial beginsys_clk <= 1'b0;sys_rst_n <= 1'b0;#2000sys_rst_n <= 1'b1;
endalways begin#25sys_clk <= ~sys_clk;
end...

       这里需要注意,不仅仅是只改变最上面的仿真单位和精度,下面使用#的所有延时都要同步的进行修改。

       然后继续进行仿真,发现由于修改了仿真单位和精度,最后的坐标轴变成了以ps为单位,这会把所有数都显得很大,不太美观,如下图所示:

在这里插入图片描述

       这时,我们只需要右键点击坐标轴,选择“Grid, Timeline & Cursor Control…”。

在这里插入图片描述

       再把Time units改回ns即可。

       这时再测量系统时钟,就是预期的5ns时钟周期了。

535ba202b48b0" style="zoom:33%;" />

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com