**这个文章记录了我学习RISC-V蜂鸟E203处理器的学习历程**
针对代码的学习,我结合自己的理解对每个module的接口,以及内部关键信号做了详细的注释说明
原创不易,请保护版权,须转载请私信通知联系作者,并请注明出处,标出原始链接,谢谢~~~
e203_exu_oitf.v
/*
Copyright 2017 Silicon Integrated Microelectronics, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//=====================================================================
//-- _______ ___
//-- ( ____/ /__/
//-- \ \ __
//-- ____\ \ / /
//-- /_______\ /_/ MICROELECTRONICS
//--
//=====================================================================
// Designer : Bob Hu
//
// Description:
// The OITF (Oustanding Instructions Track FIFO) to hold all the non-ALU long
// pipeline instruction's status and information
//
// ====================================================================
`include "e203_defines.v"
module e203_exu_oitf (
output dis_ready, //oitf 非满,可以进行派遣,即可以允许指令入oitf
input dis_ena, //指令检查完了相关性,需要被派遣,需要写入oitf
input ret_ena, //指令完成了结果回写,需要从oitf中弹出
output [`E203_ITAG_WIDTH-1:0] dis_ptr, // oitf fifo的写地址
output [`E203_ITAG_WIDTH-1:0] ret_ptr, // oitf fifo的读地址
output [`E203_RFIDX_WIDTH-1:0] ret_rdidx, // 回写的指令的目的操作数rd的地址
output ret_rdwen, // 回写的指令是否有需要写入的目的操作数rd
output ret_rdfpu, // 回写的指令的目的操作数是否是浮点操作数
output [`E203_PC_SIZE-1:0] ret_pc, // 回写的指令的pc值
//待派遣指令的信息
input disp_i_rs1en, // 待派遣指令是否有rs1操作数
input disp_i_rs2en, // rs2操作数
input disp_i_rs3en, // rs3操作数
input disp_i_rdwen, // rd操作数
input disp_i_rs1fpu, // 待派遣指令操作数是否为浮点操作数
input disp_i_rs2fpu,
input disp_i_rs3fpu,
input disp_i_rdfpu,
input [`E203_RFIDX_WIDTH-1:0] disp_i_rs1idx, //待派遣指令操作数的地址
input [`E203_RFIDX_WIDTH-1:0] disp_i_rs2idx,