mult_div 源码
设计实施 为了设计MultDiv,需要几个组件。 每一个都在下面描述。 乘数 乘法器的完整设计遵循讲座中的示意图。 乘法器使用一个65位乘积寄存器,该寄存器用乘法器初始化,并利用改进的Booth算法处理每个周期的最低3位,并对被乘数执行适当的加/减。 对于32位数字,此过程恰好执行了17个周期(第一个周期是初始化乘积寄存器),直到数据准备就绪为止。 如果发生溢出,则会引发异常,这可以通过检查寄存器的高33位是否为相同的值来检测,在这种情况下,32位答案等于64位答案,并且没有溢出发生。 分频器 分频器的完整设计遵循讲座中的示意图。 除法器使用64位的余数/商(AQ)寄存器,该寄存器用除数初始化,并利用无符号整数的非恢复除法算法在每个步骤中确定是否对除数进行加/减,并基于最低有效位进行调整。在AQ寄存器中最高有效位的符号上。 对于32位数字,此过程恰好执行了33个周期(第一个周期是初始化AQ
用户评论