RISC-V MCU中文社区

【分享】 e203乘除法模块的相关控制信号(二)

发表于 开源蜂鸟E203 2023-05-25 17:40:44
0
452
0

一、队伍介绍

报名编号:CICC2740
团队名称:管他三七二十一
学校名称:华中科技大学
队伍成员:龚绎天、李泽立、王欣倓
指导老师:王超
大家好,本篇是我们队伍的第六篇分享,主要内容是继续介绍e203乘除法模块的相关控制信号。水平有限,如有错误,欢迎大家批评指正。

二、主要内容:

首先是关于除法完成后的判断是否需要余数和商的校正的一个周期和完成余数和商的校正的两个周期。
补码加减交替算法算法规则如下:
1.被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数
2.余数和除数同号,商为1,余数左移一位,下次减除数;余数和除数异号,商为0,余数左移一位,下次加除数。
3.重复步骤2,包括符号在内,工作n+1步
为什么加减交替法需要进行校正?
这是因为对于不同符号,除法的商和取余的规则是不同的。
具体规则如下:

  1. 1、商的校正
    a) 刚好能除尽(余数为0)
    除数为正,则不必校正
    除数为负,则需要校正,即商+2-n
    b) 不能除尽
    商为正,则不必校正
    商为负,则需要校正,即商+2-n
  2. 2、余数的校正
    若商为正,余数与被除数异号时,余数+除数
    若商为负,余数与被除数异号时,余数-除数

因此在计算完成之后需要判断是否需要校正,然后花费两个周期分别进行商和余数的校正。


最后是muldiv这个模块的状态机的分析,状态机共有五个状态

分别是初始状态、计算状态(根据乘法指令还是除法指令来判定退出周期是17个周期还是33个周期)、校正判定状态,(这个状态仅仅在除法阶段会进入,
用于判定是否进行商和余数的纠正)、而后如果需要进行则进入商校正状态一个
周期、余数校正状态一个周期。

最后补充一点Flush信号的理解,这个信号已知是流水线冲刷信号,当此信号拉高的时候,状态机会重置到初始状态。具体时序和逻辑没有搞的很清楚。还需要再研究。

喜欢0
用户评论
小王

小王 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板