ET创芯网论坛(EETOP)

找回密码

  登录   注册  

汽车功能电子化、ADAS及自动驾驶等汽车电子资料合集
查看: 1938|回复: 2

[求助] 一段ARM verilog程序的问题

[复制链接]
发表于 2014-4-8 21:59:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 acel 于 2014-4-8 22:18 编辑

下面这段程序是从《arm9兼容内核》上抄下来的,这个always block应该是完成 对cmd_flag的赋值。我不明白的是为什么在to_rf_vld也需要给cmd_flag赋0, 因为to_rf_vld是ID的生成的,如果为1,则表示清空流水线中正在decode的指令前面的所有指令,因为PC会被改写。但是如果to_rf_vld为高电平,就设置cmd_flag,那么当前decode出来的指令到了EX阶段,就不会被执行了,这里是不是有什么问题?


   

        

                
  1. always @ ( posedge clk or posedge rst )
  2. if ( rst )
  3.     cmd_flag <= #`DEL 1'd0;
  4. else if ( cpu_en )
  5.     if ( int_all )

  6.     cmd_flag <= #`DEL  0;

  7. else if ( ~hold_en )

  8.     if ( wait_en | to_rf_vld | cha_rf_vld | go_rf_vld )

  9.     cmd_flag <= #`DEL  0;

  10. else

  11.     cmd_flag <= #`DEL  code_flag;

  12. else;
  13. else;
            

   

    复制代码
发表于 2014-11-7 14:59:56 | 显示全部楼层
不懂哟。。。
回复 支持 反对

使用道具 举报

发表于 2019-1-11 22:11:05 | 显示全部楼层
go_rf_vld means the decoder to register file and to_rf_vld means the write_back to register file.
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-6-24 23:50 , Processed in 0.065018 second(s), 16 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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