集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1820|回复: 0

非阻塞赋值容易错语法点问答

[复制链接]
older123 发表于 2012-12-22 09:02:56 | 显示全部楼层 |阅读模式
请教下大家!我发现光盘里的例程有一段是这样子的:
always @(dac_sta or wr_act )
begin
        dac_load_r <= 1'b1;
        bit_counter_rst <= 1'b0;
        dac_sta_next <= dac_idle;
        case(dac_sta)
                dac_idle:
                begin
                        bit_counter_rst <= 1'b1;          //空闲时复位发送位计数器
                        if (wr_act)                            //有写数据信号时,进入发送状态
                                dac_sta_next <= dac_send;
                        else
                                dac_sta_next <= dac_idle;
                end
               
                dac_send:
                begin
                        if (dac_dat_send_finish)  //位数据发送完成后进入数据锁存状态
                                dac_sta_next <= dac_store;
                        else
                                dac_sta_next <= dac_send;
                end
               
                dac_store:
                begin
                        bit_counter_rst <= 1'b1;         //发送位计数器复位
                        dac_load_r <= 1'b0;              //Load 变低进行数据锁存
                        if (div_clk)                     //锁存状态为1个div_clk周期
                                dac_sta_next <= dac_idle;
                        else
                                dac_sta_next <= dac_store;
                end
               
        endcase
end


其中:
        dac_load_r <= 1'b1;
        bit_counter_rst <= 1'b0;
        dac_sta_next <= dac_idle;
用了非阻塞赋值,接着下面的CASE里面又分别给他们三个各自再次赋值了一次。请问到时是哪个有效呢?
请教下:对同一个寄存器变量在一个ALWAYS里面多次(重复)非阻塞赋值结果是?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-2 11:01 , Processed in 0.125887 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表