微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 求助verilog语言中task任务的always问题

求助verilog语言中task任务的always问题

时间:10-02 整理:3721RD 点击:
小弟是verilog新手,以下程序就是两个错误(显示红色的两个always语句),看不懂,亲高手指点
module clockA21 (A21, A15, A20, A50, A51);
    output A21;
    input A15;
    input A20;
    input A50;
    input A51;
    reg A21;
    wire m1;  
    wire m2;
    reg m3;
   
    task my_tff;
      input ck;
      input set;
      output Q;
      output Qb;
      reg Q;
      assign Qb=~Q;
      
      always @(set)
      
          if(set)
              assign Q=1;
           else
               deassign Q;
     
      always @(posedge ck)
         Q=~Q;
     endtask
   
    assign m1=A50&A15&0;
    assign m2=m1|A20|A51;
    my_tff(m2,m3,Qb);
    assign A21=~m3;
endmodule

是不是task任务的always语句不接受,我想不通,请指点,谢谢

在不同的always里面对同一个变量赋值

楼上的高手能不能说明白点,我还是可能不懂啊
你说的同一变量是指哪个变量呢?
我认为:括号中的变量时set 、posedge ck是不同的完全独立的两个变量啊?
请指点,谢谢先了

楼上的高手说的同一变量是指哪个呢变量呢?
是不是指set、posedge ck 呢?
我不大明白,请高手明示,谢谢

楼上已经说得很清楚了,两个always里面都对Q进行了赋值。
另外,不要在always里面用assign赋值

不能在always里面用assign赋值

谢谢,辛苦了

谢谢了,辛苦了



    请问这位大神:deassign Q; 是谁教你的?解释下什么意思?

我也想问下deassign Q是什么意思?这么简单的东西根本不用task就可以完成,写的让自己都看不懂,别人更看不懂

两个问题,assign不能在always块中进行赋值,不同的变量不能在always块中进行赋值

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

网站地图

Top