[求助] 逻辑功能求助

bioger   2022-11-16 15:22 楼主

inout reg [15:0] Fsmc_data;
reg id_temp;

always @(negedge Fsmc_NOE or negedge rst_n)
begin 

        
        case ({Fsmc_addr, Fsmc_NBL0, Fsmc_NBL1, Fsmc_NE3, Fsmc_NOE, Fsmc_NWE})
        
        13'b0000111100001:    
                       begin                    //addr=0x6800000F  NBL=0  NE3=0  NOE=0  NWE=1 read 
                            id_temp <= ~id_temp;
                            Fsmc_data <= {id_temp,11'b0,id};
                    
                            end                    
        13'b0001000000001:    
                       begin                    //addr=0x68000010  NBL=0  NE3=0  NOE=0  NWE=1 read 
                            Fsmc_data <= 16'h5a5a;
                            
                            end
        default:        begin 

                                Fsmc_data <= Fsmc_data;
                                id_temp <= id_temp;
                        end
        endcase
    end
    如上,这段逻辑,目前要实现的是   NOE下降沿状态下,Fsmc_data的数据高位翻转一次,但实际功能不对,不知道是哪里问题,麻烦大神帮忙看看。

回复评论 (3)

格式没排版,看起来有些废眼,你电脑没装时序模拟软件啊? Fsmc_data <= {id_temp,11'b0,id};  这里的id是哪来的?当状态为 【13'b0001000000001:    】时,id_temp 的状态呢?没赋值,默认锁存,确保这里是16位的【Fsmc_data <= {id_temp,11'b0,id};】
点赞  2022-11-17 09:06

你写一个testbench,仿真一下,不就很简单的事情吗?

点赞  2022-11-26 14:37
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2022-11-30 15:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复