后仿真一个奇怪的问题

[复制链接]
4040|25
 楼主| kdurant 发表于 2012-5-13 23:14 | 显示全部楼层 |阅读模式
本帖最后由 kdurant 于 2012-5-13 23:15 编辑
  1. always @(posedge SMG_CLK or negedge RSTn)
  2. begin
  3.     if(~RSTn)
  4.         begin
  5.             SMG_DATA    <= 0;
  6.             count_sent  <= 0;   
  7.             SELECT_ALL  <= 8'b00000000;
  8.             SELECT_1st  <= 8'b11100000;
  9.             SELECT_2nd  <= 8'b11010000;
  10.             SELECT_3th  <= 8'b10110000;
  11.             SELECT_4th  <= 8'b01110000;
  12.         end   
  13.     else
  14.         begin
  15.             if(count_sent < 7)
  16.                 begin
  17.                     count_sent  <= count_sent + 1;
  18.                     SMG_DATA    <= SELECT_2nd[7-count_sent];
  19.                 end
  20.             else
  21.                 count_sent      <= 0;
  22.         end
  23. end     
后仿真的时候count_sent居然在SMG_CLK跳变之前就加1了,求解释

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Backkom80 发表于 2012-5-14 09:45 | 显示全部楼层
截同一层次的SMG_CLK和count_sent的数据看看
现在截的这个图两信号不在同一层次
GoldSunMonkey 发表于 2012-5-14 10:16 | 显示全部楼层
贝壳,有点奇怪啊
 楼主| kdurant 发表于 2012-5-14 11:01 | 显示全部楼层
那只能晚上回去截图了
Backkom80 发表于 2012-5-14 17:26 | 显示全部楼层
贝壳,有点奇怪啊
GoldSunMonkey 发表于 2012-5-14 10:16


是的啊,确实有点奇怪,呵呵,
 楼主| kdurant 发表于 2012-5-14 19:16 | 显示全部楼层
应LS要求,发出同一层次的截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| kdurant 发表于 2012-5-14 21:37 | 显示全部楼层
呼叫大神
icecut 发表于 2012-5-15 00:04 | 显示全部楼层
差0.5ns,也就是探测点晚了1个mm???
Backkom80 发表于 2012-5-15 08:37 | 显示全部楼层
如果可能的话将工程上传上来,我想想细细看看,同时将你的操作步骤详细说明下,我好能将这个现象重复出来。确实有点奇怪,
 楼主| kdurant 发表于 2012-5-15 09:14 | 显示全部楼层
好的,晚上回去的,忘记把工程放网盘了
GoldSunMonkey 发表于 2012-5-15 10:11 | 显示全部楼层
;P是呀,很奇怪啊。
GoldSunMonkey 发表于 2012-5-15 10:11 | 显示全部楼层
我从来都没有遇到过这样的问题。
 楼主| kdurant 发表于 2012-5-15 19:13 | 显示全部楼层
上传附件quartus11.0SP1
modelsim工程在simulation目录下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Backkom80 发表于 2012-5-16 11:55 | 显示全部楼层
我看了工程没有太大问题,功能仿真和时序仿真都是对的,
count_sent的变化也是在SMG_CLK沿之后的,这个地没有错,
你看到的那个图,是正确的,是你想错了,
如果count_sent的延时较长接近一个时钟周期就变成你的那个图了,
如,时钟周期为T,count_sent的延时有T-0.5ns,当t0时刻沿到来,过T-0.5ns数据才变化,而过T时刻下一个时钟沿到来了,就是你看到的那个图了
:lol
yuanw 发表于 2012-5-16 12:02 | 显示全部楼层
 楼主| kdurant 发表于 2012-5-16 13:02 | 显示全部楼层
14# Backkom80
SMG_CLK的时钟为1M,为1000ns

你意思是count_sent的延迟为999.5ns?
GoldSunMonkey 发表于 2012-5-16 15:32 | 显示全部楼层
14# Backkom80
SMG_CLK的时钟为1M,为1000ns

你意思是count_sent的延迟为999.5ns?
kdurant 发表于 2012-5-16 13:02
是的,这样是有可能的。
可能你写的组合逻辑延时太大了。
 楼主| kdurant 发表于 2012-5-16 16:18 | 显示全部楼层
。。。。这也太蛋疼了,而且我好像没有用到组合逻辑
貌似就一个always块
 楼主| kdurant 发表于 2012-5-16 20:08 | 显示全部楼层
针对GSM说的问题,我又看了下,上面图显示的是SMG_CLK的第一个时钟上升沿

所以不会是Backkom80 说的问题

请大神们仔细看下啊
Backkom80 发表于 2012-5-17 08:51 | 显示全部楼层
本帖最后由 Backkom80 于 2012-5-17 08:55 编辑

呵呵,我看了下Post-Fitting后的图和RTL有些不同,估计是被优化了的,altera的片子底层我不熟,为什么这么优化不清楚,但是可以给你的这个时序仿真一个合理的解释吧,嘻嘻,post-fitting的图00,图中的smg_clk_reg0的Q端输出给了smg_clk的IO口(红色的那根线),而count_sent的触发clk是smg_clk_reg0clkctrl,细细比较modelsim中关于这几个信号的时序关系就ok了(图01为modelsim的部分),为什么smg_clk会晚是布线延时的问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

279

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部