第01练 - 组合逻辑设计 (04-10、04-17、04-24)¶
使用课上介绍的方法对除法进行算法建模
输入:数据类型为S0I8F0的被除数dat_a_i;数据类型为S0I8F0的除数dat_b_i。
输出:数据类型为S0I8F8的商dat_c_o。
精度:与“全精度运算”保持一致。
方法:
全精度运算(作为例子)
直接使用“/”(作为例子)
使用恢复余数除法(作为例子)
使用不恢复余数除法(自行实现)
使用LUT(自行实现)
使用二分法(逐比特)(自行实现)
使用牛顿-拉夫逊迭代法(自行实现)
环境:不做限制。
语言:不做限制。
注意:
牛顿-拉夫逊迭代法的发散性: 当初始值大于2 / divisor时,x * (2 - divisor * x)会趋向于负无穷。
python中round的特性(python默认采用银行家round): round(0.5) = 0 # 可采用floor(x + 0.5)替代。
使用牛顿-拉夫逊迭代法对除法进行(组合逻辑的)硬件描述
输入:数据类型为S0I8F0的被除数dat_a_i;数据类型为S0I8F0的除数dat_b_i。
输出:数据类型为S0I8F8的商dat_c_o。
精度:与“全精度运算”保持一致。
环境:不做限制。
语言:Verilog。
请于05-08前提交实验报告至作业邮箱,应包含以下内容
标题(组合逻辑设计实验:牛顿-拉夫逊迭代求解除法)
实验日期
学生信息
实验目的
实验原理
实验环境
代码及分析
仿真及分析
实验总结
注意简洁性,不要长篇大论,讲出关键内容就可以!!
注意简洁性,不要长篇大论,讲出关键内容就可以!!
注意简洁性,不要长篇大论,讲出关键内容就可以!!
选做:使用CORDIC方法对sin()进行算法建模和(组合逻辑的)硬件描述:
输入:数据类型为S0I1F16的弧度值dat_i(假设输入总是落在[0,pi/2)之间)。
输出:数据类型为S0I1F16的正弦值dat_o。
精度:在迭代16次的情况下,与全精度运算相比误差在3LSB(含)以内。
算法环境:不做限制。
算法语言:不做限制。
硬件环境:不做限制。
硬件语言:Verilog。