微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求问一个会不会产生latch的问题

求问一个会不会产生latch的问题

时间:10-02 整理:3721RD 点击:
问题如下,谢谢!
有两段verilog程序,判断哪一段会产生latch,并修改
简要的代码如下:
   代码A:
      input a,b,en;
    always@(en or a or b)
     begin
     if(en)
      data = a;
     else
      data = b;
     end
  代码B:
     input[2:0] data;
     always@(data)
     case(data)
     0: out1 = 1'b1;
     1,3 ut2 = 1'b1;
     2,4,5,7 ut3 = 1'b1;
     default: out4 = 1'b1;
    endcase

我个人认为是代码B,always条件上要加out1,2,3,4。但室友认为是A,求解答

第一个不会,原因是一个条件语句完整,且状态变量都有。
第二个会,因为每个条件下都是对不同的输出赋值,在这种情况会有锁存器的产生。

同意楼上的,代码B是信号赋值不完整,所以造成latch~

了解了,条件语句不完整会产生latch

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

网站地图

Top