微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 这个代码无法综合的原因

这个代码无法综合的原因

时间:10-02 整理:3721RD 点击:
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

@( negedge DISC );     //  我综合的时候就说这一句话有错误 不知道是不是这种写法不能被综合 ?
显然是因为这个

大哥,基本概念要明白
综合器只是给你干体力活的,它能识别的代码只是你见过的一个子集
比如: @(----)  ,  time类型 等,你要能综合就有鬼了

我是才开始学习的
就拿别人写的代码来恶补 所以很多东西都不太清楚  书上也找不到可以参考的地方 就只有发帖问大家了 谢谢楼上的

這代碼頂多只能拿來跑跑模擬
要拿來綜合肯定是不行的
這代碼比較像behavier code,不是RTL code
要想綜合,可能要寫成RTL code的方式

晕,第一次看到提这个问题的,
能中和的时许器件的写法有一个严格的格式要求
我粗统计有4中
同期rst
同期rst  加enable
非同期rst
非同期rst + enable

楼上很正确!可综合的代码其实是Verilog的一个子集!

时间是不可综合地

看看
语法和可综合性有很大的差别

太随意了,有些工具很牛,但不是做综合的,综合工具要处理的东西太多了,没有去考虑代码乱写的问题

了解点数字电路概念吧。

要认真学习可综合rtl风格

这个不是说的时间吧,是上升沿的时候对下降沿操作了吧
不大明白噢

不大明白,不知道matlab自动生成的code是不是可以综合的呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top