论文部分内容阅读
本课题的任务:一是分析计算器C9318 电路的指令系统,提取其开方算法;二是自主设计科学计算器的大规模集成电路芯片,形成比C9318 运算功能更加全面的计算器系统。使三角函数、指数函数、对数函数的运算都能在本设计中实现。在硬件方面,通过深入分析C9318 电路和微控制器PIC16CX 的系统结构和指令系统,本课题完全自主设计了一个能进行多种科学运算的MPU核。其模块包括:数据通道由ALU、数据寄存器、标志寄存器、工作寄存器组成;控制单元由程序存储器ROM、指令译码器、地址生成模块、程序计算器PC 组成。在指令系统方面,在提取C9318 开方算法的同时,对计算器的指令系统的指令格式、寻址方式、指令类型有了深刻的了解。本设计有32 条基本指令。指令实现的功能包括算术运算、逻辑运算和转移/跳转。本文主体上采用硬件描述语言VERILOG 自顶向下设计方式。其中对开方算法的提取采用了用EDA 软件VIEWLOIG 仿真。对诸如三角函数运算的算法应用数值计算软件MATLAB 进行仿真。VERILOG 编程应用EDA软件ACTIVE6.1。综合采用软件——Synplify 7.0。布局布线工具采用的是Xilinx 公司的Xilinx Foundation Series 3.1 中的Design Manager。本设计的创新之处在于: 一、C9318 采用一位串行加法器,即每次只能进行一位二进制的运算,完成一位十进制BCD 码的加法运算需要四个时钟周期,况且BCD 码的校验要等到下一个指令周期时才能完成。一个指令周期需要44 个时钟周期,速度较慢,所以只能进行基本的加、减、乘、除运算;而本设计采用的是四位并行加法器,即一个时钟周期内就完成了一位十进制运算,况且在运算的同时就能进行BCD 码的校验,一个指令周期包括了13 个时钟周期,因此在运算速度上有了极大的改善,实现了诸如三角函数等科学运算。二、通过大量的MATLAB 仿真,在收敛速度的条件的约束下,我采用切比雪夫多项式逼进算法来实现函数运算。它在所有相同阶数的多项式中,与原函数的最大偏差达到最小。