搜索
bottom↓
回复: 4

特权同学SD卡代码疑问begin end 中连续出现两个 if 如何分析?

[复制链接]

出0入0汤圆

发表于 2013-5-22 21:57:23 | 显示全部楼层 |阅读模式
本帖最后由 orange-208 于 2013-5-23 09:30 编辑

如题:

代码中如果两个if同时都满足,是按先后顺序执行? 还是两句同时执行?



代码如下:
                        CMD_RES:
                                begin
                                        if(retry_rep == 8'hff)
                                                //响应超时,返回IDLE重新发起命令
                                                cmd_nstate <= CMD_IDLE;       
                                       
                                        if(spi_rx_rdy && (!spi_tx_enr & !spi_rx_enr))
                                                begin                               
                                                        case(sdinit_cstate)
                                               
                                                                SD_RD_PT,SD_RD_BPB:
                                                                        //接收到RD命令的起始字节8'hfe,立即读取后面的512B       
                                                                        if(spi_rx_dbr == 8'hfe)
                                                                                cmd_nstate <= CMD_RD;       
                                                                        else
                                                                                cmd_nstate <= CMD_RES;
                                                                       
                                                                SDINIT_CMD0,SDINIT_CMD55,SDINIT_ACMD41,SDINIT_CMD16:
                                                                        if(spi_rx_dbr == 8'hff)
                                                                                cmd_nstate <= CMD_RES;       
                                                                        else       
                                                                                //产生正确响应,结束当前命令        
                                                                                cmd_nstate <= CMD_CLKE;       
                                                                       
                                                                default:
                                                                        cmd_nstate <= CMD_CLKE;
                                                        endcase
                                                end
                       
                                        else
                                                cmd_nstate <= CMD_RES;                       
                                end

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入90汤圆

发表于 2013-5-22 22:43:52 来自手机 | 显示全部楼层
begin-end 是顺序的,fork-join 是并发的

出0入0汤圆

发表于 2013-5-23 09:07:07 | 显示全部楼层
begin
是那一门语言的??????

出0入0汤圆

 楼主| 发表于 2013-5-23 09:54:04 | 显示全部楼层
今天分析了下,发现当两个if条件都满足时,不管是顺序的还是并行的, cmd_nstate 都会出现竞争。

出0入0汤圆

发表于 2013-5-24 17:56:23 | 显示全部楼层
自己要看RTL视图的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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