always和assign语法区别

always语句可以带时钟, 也可以不带时钟。

一,assign和always区别

assign 语句使用时不能带时钟。

assign  a=1;

assign b=2;

在always不带时钟时,逻辑功能和assign完全一致,都是只产生组合逻辑。比较简单的组合逻辑推荐使用assign语句,比较复杂的组合逻辑推荐使用 always语句。

always @(*)

begin

     a=1;

     b=2;

end

二,带时钟的always和不带时钟的always  区别

在always不带时钟时,逻辑功能和assign完全一致,虽然产生的信号定义还是reg类型,但是该语句产生的还是组合逻辑。

reg [3:0] led;
always @(*) 
begin
   case (led_ctrl_cnt)
        2'd0 : led = 4'b0001;
        2'd1 : led = 4'b0010;
        2'd2 : led = 4'b0100;
        2'd3 : led = 4'b1000;
       default : led = 4'b0000;
       endcase
end

always带时钟信号时,这个逻辑语句才能产生真正的寄存器。

//用于产生 0.5 秒使能信号的计数器
always @(posedge sys_clk or 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒听雪落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值