coding style

一、禁用多驱动

一个wire型变量(具体到每个bit),只能在一个assign语句赋值

一个reg型变量(具体到每个bit),只能在一个always语句赋值

综合工具不能识别互斥条件

在一个always块内,一次触发,对同一个信号最多只赋一次值

比如:不要用多个if

always@(posedge clk or negedge rstn)begin
    if(!rstn)begin
    b<='d0;
    end
    else begin
        if(c)begin
        	b<=a0;
        end
        if(d)begin
        	b<=a1;
        end
    end
end

这种写法是可以综合的,但是不便于理解和后期维护。如果c和d两个条件同时满足,综合时会采用d这个结果(最后面的一个条件)。

应该按照如下写法:

always@(posedge clk or negedge rstn)begin
    if(!rstn)begin
    b<='d0;
    end
    else begin
        if(c)begin
        	b<=a0;
        end
        else if(d)begin
        	b<=a1;
        end
    end
end

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值