3087|5

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

非阻塞赋值容易错语法点讨论 [复制链接]

请教下大家!我发现光盘里的例程有一段是这样子的:
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里面多次(重复)非阻塞赋值结果是?
此帖出自FPGA/CPLD论坛

最新回复

仔细想想,这也苻合硬件的实际情况。  详情 回复 发表于 2013-4-16 21:10
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

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

问题答案:最后有效执行的才行。
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

always 块内语句是顺序执行的

always块里是顺序执行的
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 
顺序执行,但所有的执行完后,才给出结果!
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 
前两天还看书补了一下, 突然想不起来怎么表达了;
仿真时, "<="优先级别最低, 会被放到事件队列中, 最后才被执行;
eeleader的答案是对滴
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

6
 
仔细想想,这也苻合硬件的实际情况。
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表