首页 > 试题广场 >

在verilog设计时,我们应当避免锁存器(Latch) 的

[不定项选择题]
在verilog设计时,我们应当避免锁存器(Latch) 的产生,下列代码中,会被综合为锁存器的有
  • ```
    module modulea(
    input data,
    input en ,
    output reg q) ;
    always @(*) begin
    if (en) q = data ;
    end
    endmodule
    ```
  • ```
    module moduleb(
    input data1,
    input data2,
    input en ,
    output reg q1 ,
    output reg q2 ) ;
    always @(*) begin
    if (en) q1 = data1 ;
    else q2 = data2 ;
    end
    endmodule
    ```
  • ```
    module modulec(
    input data1,
    input data2,
    input [1:0] sel ,
    output reg q ) ;
    always @(*) begin
    case(sel)
    2'b00: q = data1 ;
    2'b01: q = data2 ;
    endcase
    end
    endmodule
    ```
  • ```
    module moduled(
    rd,
    rst,
    outdata
    );
    input rd;
    input rst;
    output reg outdata;
    always@(rst)
    if(!rst)
    outdata = 1'b0;
    else
    outdata = rd;
    endmodule
    ```
D因为敏感列表没写全,rd变化的时候,data并不会变,锁存最初的状态
发表于 2022-03-07 12:45:06 回复(0)
语句完整性,驱动完备性,敏感充分性
发表于 2022-10-18 15:08:36 回复(1)
B为啥啊
发表于 2022-03-08 00:03:37 回复(2)
第二个赋值不完全,假设en有效,仅仅赋值了q1,这时q2就会所存,en无效情况也一样;
低四个则是敏感列表不完整,仅仅rst变化时才会赋值,其他变量如rd变化就会被忽略,造成锁存。
发表于 2022-09-27 20:35:32 回复(0)
B赋值语句不完整,D敏感列表不全
发表于 2022-07-14 16:29:12 回复(0)
D选项不指定边沿,即为组合电路,需要将所有敏感信号列出
发表于 2022-06-07 01:40:42 回复(0)
要想不被综合为锁存器 就需要变量被赋值为确切的值(可以是赋初值或者在组合逻辑里面赋值)
发表于 2022-03-08 10:08:42 回复(2)
D为啥?
发表于 2022-03-04 10:13:02 回复(1)
首先4个都是组合逻辑,B中每条分支下赋值语句不完整,会产生latch; D中敏感列表中因素不全;
发表于 2022-11-03 19:11:37 回复(0)
请问一下B为什么会综合为锁存器呀?
发表于 2022-04-14 11:00:27 回复(2)
rst信号电平敏感
发表于 2022-03-25 11:54:31 回复(0)
D为啥?
发表于 2022-03-06 16:55:19 回复(1)
当出现q=q这种赋值时,电路会综合出存储单元保持信号q的状态。
如果该赋值是被信号边沿触发,该存储单元为触发器;如果是信号电平触发则是锁存器。
当某个信号在某状态下没有被指定值时(条件语句、case语句描述不全,敏感列表不全),默认为保持不变,即q=q,又不是边沿触发,所以会产生锁存器。
锁存器的问题主要是:易受毛刺影响,影响时序分析。而上述这种意料之外的锁存器对系统影响更大。
发表于 2024-05-07 17:37:07 回复(1)
latch锁存器产生的情形就是语句中情况不全,比如if语句没有else,case语句没有default,if语句下的赋值语句不完整,always敏感列表不完整
发表于 2023-06-09 22:05:50 回复(0)
b不太懂
发表于 2022-09-13 12:58:48 回复(0)
我第一眼看D以为是时序逻辑
发表于 2022-05-23 16:47:13 回复(0)
B为啥啊????
发表于 2022-04-28 11:37:52 回复(0)
敏感信号列表应列出影响块内取值的所有信号
发表于 2022-03-28 11:10:20 回复(0)
always(*)和不指定边沿触发是电平敏感触发,综合的是组合逻辑,D选项在复位时outdata赋初值,之后在非复位状态下会被一直锁存为rd
编辑于 2022-03-06 22:55:22 回复(0)