在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3370|回复: 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 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 21:20 , Processed in 0.025587 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表