在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 5437|回复: 13

这个代码无法综合的原因

[复制链接]
发表于 2009-4-23 16:59:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
module testtime(IN1,STP1,STP2,OUT);
time TimeA;
input IN1;
wire IN1;
input STP1;
input STP2;
output [1:0]OUT;
reg [1:0]OUT;
parameter Width = 30;


always @( posedge IN1 )
  begin     
   if (STP1& STP2)
    begin
     TimeA = $time ;
      @( negedge IN1 );     //  我综合的时候就说这一句话有错误 不知道是不是这种写法不能被综合 ??
     if (($time  - TimeA) > Width)     //这一句话是什么意思了??
      begin
       OUT=2'b00;
      end
     else
      begin
       OUT=2'b01;
      end
    end
   else
    begin
     OUT=2'b11;
    end
  end
//}} End of automatically maintained section

// -- Enter your statements here -- //

endmodule

[ 本帖最后由 hvpower 于 2009-4-23 20:39 编辑 ]
发表于 2009-4-23 17:32:24 | 显示全部楼层
@( negedge DISC );     //  我综合的时候就说这一句话有错误 不知道是不是这种写法不能被综合 ??

显然是因为这个
回复 支持 反对

使用道具 举报

发表于 2009-4-23 17:33:28 | 显示全部楼层
大哥,基本概念要明白
综合器只是给你干体力活的,它能识别的代码只是你见过的一个子集
比如: @(----)  ,  time类型 等,你要能综合就有鬼了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-23 18:03:19 | 显示全部楼层
我是才开始学习的

就拿别人写的代码来恶补 所以很多东西都不太清楚  书上也找不到可以参考的地方 就只有发帖问大家了 谢谢楼上的
回复 支持 反对

使用道具 举报

发表于 2009-4-23 18:04:03 | 显示全部楼层
這代碼頂多只能拿來跑跑模擬
要拿來綜合肯定是不行的
這代碼比較像behavier code,不是RTL code
要想綜合,可能要寫成RTL code的方式
回复 支持 反对

使用道具 举报

发表于 2009-4-24 00:02:36 | 显示全部楼层
晕,第一次看到提这个问题的,
能中和的时许器件的写法有一个严格的格式要求
我粗统计有4中

同期rst
同期rst  加enable
非同期rst
非同期rst + enable
回复 支持 反对

使用道具 举报

发表于 2009-4-24 08:59:23 | 显示全部楼层
楼上很正确!可综合的代码其实是Verilog的一个子集!
回复 支持 反对

使用道具 举报

发表于 2009-6-24 09:40:12 | 显示全部楼层
时间是不可综合地
回复 支持 反对

使用道具 举报

发表于 2009-6-24 14:08:50 | 显示全部楼层

看看

语法和可综合性有很大的差别
回复 支持 反对

使用道具 举报

发表于 2009-7-2 17:12:55 | 显示全部楼层
太随意了,有些工具很牛,但不是做综合的,综合工具要处理的东西太多了,没有去考虑代码乱写的问题
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-26 15:20 , Processed in 0.037556 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表