ET创芯网论坛(EETOP)

您现在是游客状态

请您   登录   或  注册  享受更多权益

电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!
查看: 1873|回复: 2

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

[复制链接]
发表于 2014-4-8 21:59:09 | 显示全部楼层 |阅读模式
本帖最后由 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.
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

小黑屋|手机版|Archiver|ET创芯网 ( 京ICP备:10050787号 京公网安备:110105001212 )

GMT+8, 2019-3-22 16:25 , Processed in 0.063750 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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