电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!
返回列表 发帖

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

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

本帖最后由 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;
复制代码

不懂哟。。。

TOP

go_rf_vld means the decoder to register file and to_rf_vld means the write_back to register file.

TOP

返回列表

站长推荐 关闭


Keysight Engineering Education 2019课程详细介绍

Keysight Engineering Education 2019课程详细介绍


查看