【一个比较煞笔的问题】学习日志2025/3/22

比较两份代码,看看有什么问题

module top_module (
    input clk,
    input reset,
    input [31:0] in,
    output [31:0] out
);
    reg [31:0] temp01;
    always@(posedge clk)begin
        if(reset)
            out<=0;
        else begin
            temp01<=in;
            out<=temp01&(~in)|out;
        end


    end

endmodule
1  module top_module (
2      input clk,
3      input reset,
4      input [31:0] in,
5      output [31:0] out
6  );
7      reg[31:0] in_last;//in's last state
8      always@(posedge clk)//D Flip-Flop
9          in_last <= in;
10     always@(posedge clk) 
11        if(reset) 
12            out <= '0;
13        else
14            out <= out | in_last & ~in;
15 endmodule

 第一份是错的,第二份是对的。

其实根本不是时序的问题。

第一份的逻辑里,如果reset,那么temp01就不会存储上一次in的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值