ttang 发表于 2011-11-1 23:55:22

请教:关于多个敏感信号的问题--可能与异步有关

always@(posedge clk or negedge inc)
begin
if(inc == 1'b0)
        begin
                if(qout >= 4'd9)
                        begin
                                qout = 0;
                                cout = 1;
                        end
                else
                        begin
                                qout = qout + 1;
                                cout = 0;
                        end
        end
else
        begin
        if( qout >= 4'd9)       
                begin
                        qout = 0;
                        cout = 1;
                end
        else
                begin
                        qout = qout + 1;
                        cout = 0;
                end
       
        end

end就是一个模10计数器,希望它每个clk来临时加1,每个inc下降沿到来时也加1,结果仿真的时候,inc下降沿到来时,qout变化得很剧烈,根本不是加1,能否解释一下为什么会这样?
另外,如果去掉if语句,又会报错
求教:dizzy:

至芯兴洪 发表于 2011-11-5 09:32:34

你的设计思想就不对,当然不能达到预期的结果,虽说你想采集inc的下降沿,可根本就没有实现采集下降沿相应的代码,你的always块是一个时钟和一个复位的模式,你不会是想在复位期间计数吧

jiezhouliping 发表于 2011-11-5 11:33:04

always@(posedge clk or negedge inc)

begin

if(inc == 1'b0)

第一行与第三行是不是有问题啊
页: [1]
查看完整版本: 请教:关于多个敏感信号的问题--可能与异步有关