学校要求的课设,两人一组,全部自学,记录一下学到的知识点。
浮点数加减法
浮点数由符号(阶符和数符,阶符与阶码存储在一起),小数(或尾数,是定点数),阶码和基数构成。例如: 2^(0010) * 0.11000101
0.11000101为小数,0010为阶码,2为基数。二进制表示时从高位到低位依次为符号位,阶码和小数。
课设要求采用浮点数IEEE754标准的短实数形式,即一位符号位,八位阶码,二十三
位小数,共32位。
- 对阶:比较两数阶码大小,不相等时,将原来小阶码化为大阶码。△E=|x-y|(阶码相差的 位数)。阶码小数其小数右移△E位,阶码加上△E,浮点数的值不变但是精度减小。原码右移补零且符号位不参与右移。补码移位规则:
对于正数,符号位不变,不论左移还是右移,空出位一律以0补入
对于负数,符号位不变,左移后的空出位补0,右移后的空出位补1 - 对两个对阶后的数实现小数的加减。
- 对结果进行规格化处理。(即基数为2时,小数应表示为01XXX……;基数为4时,表示为001XXX……)
- 舍入:因为对阶和计算阶段,小数结果位数会比要求的位数多,需要舍去一些高位。若舍去的数字为1,则在右移后的末尾加1,若为零,直接舍去即可。另一种方法无论舍去的高位是什么,都把结果最低位置1。
- 检查是否溢出。(若溢出,则结果的阶码符号位与运算数的不相同)
建立一个Quartus工程
一开始建立项目的时候总是报错,没有安装设备什么的(No install devices叭叭叭),发现是忘记下载器件库了。这里安装破解使用的是一篇博客里的教程:
点击这里资源与教程
- File>New Project Wizard next 填写工程位置,工程名称和顶层实体名称(二者需一致);
- 添加文件,有需要添加的文件即添加,没有则next;
- 选择FPGA器件(器件系列,型号,管脚数芯片型号等),next;
- 设置EDA工具,需要仿真的话,在Tool Name>Simulation中选择Module(需要下载),语言verilog HDL ;
- 最后会有一个总结页面,finish即可。
- 新建代码文件File>New…>Design Files>verilog HDL files,文件若是顶层实体,需与顶层实体名相同;
- 在刚刚建好的文件里就可以写代码了,模块名与文件名相同;
- 完成代码后Processing>start Compilation开始编译代码,根据报错内容修改代码。