文档介绍:河南科技大学
课程设计说明书
课程名称__ 现代数字系统设计____
题目九九乘法表系统的设计_____
学院___电子信息工程学院__
班级__ 研班
专业
学号__
学生姓名___
指导教师_ _ 刘珊中__
九九乘法表系统的设计
1. 系统功能和技术指标
九九乘法表系统能够自动或手动进行两个1位十进制数的乘法,并自动显示被乘数、乘数和乘积,该系统示意图如下图所示。图中AA和BB分别为被乘数和乘数的外部输
入端,它们用 1位 BCD码表示。系统用十进制七段数字显示器显示被乘数A、乘数B和乘积M的值,其中M用2位十进制显示器显示。
系统的功能和指标如下:
(1)自动进行乘法运算并显示。用户将控制开关ARH置逻辑1,则系统内部自动产生被乘数A’和乘数B’,并按常规的九九乘法表方式,依照一定速率自动进行 A’= 0~9和 B’= 0~9的乘法运算,即 A’×B’= 0 × 0,……,0×9;1×0,……,1×9;……;8×0;……,8×9;9×0,……,9×9。相应有乘积M=0,……,0;0,……,9;……;0,……,72;0,……,81等。
由于被乘数和乘数的最大值为9,故配置1位十进制显示;而乘积最大值为81 ,则配置两位十进制数字显示。
(2)手动进行乘法运算并显示。当控制开关ARH为逻辑0时,则乘法表系统仅对外部输人被乘数AA和乘数BB的特定数据进行乘法运算并输出。在手动工作状态时,分别采用两组4位开关产生被乘数和乘数的BCD码输人。
(3)乘法运算是以二进制数的乘法来进行的,而其结果要用变换器转换为2位 BCD码输出,并应配有相应的显示译码器。
2. 算法设计
乘法器M=A*B具有自动运算和手动运算两种方式,自动方式时,,;在手动方式时,A=AA,B=BB,这由控制开关ARH的来决定。
现设定信号EE为九九乘法表完成一次自动工作,从,全过程的结束信号;TT是某定时器(计数器)的结束信号,该定时器确定手动运算的显示时间。则本系统的算法流程图如图所示。这张图是系统算法流程,在增加了状态标注和明确了输出信号后,也可看做系统控制器的ASM图,有关状态标识和输出信号等已在图中给出。
图1 九九乘法表系统算法流程图(系统控制器的ASM图)
3. 数据处理单元的实现
九九乘法表系统的数据处理单元结构框图如图2所示。
图2 九九乘法表系统的数据处理单元结构框图
(1)高速乘法器电路
图3 乘法器电路
对于4位乘法器而言,设A=1011,B=1101,则运算过程可由图3所示。从乘法运算过程可知,乘法运算可分解为移位和相加两种子运算,而且是多次相加运算,所以是一个累加的过程。实现这一累加过程的方法是,把每次相加的结果用部分积P表示,若B中某一位 Bi=1,把部分积P与A相加后右移1位;若B中某一位Bi= 0,则部分积P与0相加后右移1位(相当于只移位不累加)。通过4次累加和移位,最后得到的部分积P就是A与B的乘积。
(2)被乘数、乘数自动发生器。系统处于自动工作状态时,被乘数和乘数应自动、有序地产生,为此采用两只模10加计数器分别实现。被乘数计数器由0→9记满时,进位信号CO=1,则乘法计数器加1,从而达到被乘数的从0→9变化和乘数的从0→9变化按次序相乘。
(3)被乘数、乘数选择电路。由于在自动和手动工作状态时,乘法器的输入分别为数据处理单元内部自动产生或系统外部输入被乘数和乘数,为此配置两个4位2选1数据选择器来选择恰当的输入,其地址变量由控制器根据ARH的状态来确定。
(4)码制变换电路。快速乘法器输出乘积M=A×B为7位二进制数,即,必须转换为两位8421BCD码显示,也就是说,从0×0=0直到9×9=81,均应以十进制显示,以使用户直接观察到十进制运算结果(被乘数、乘数也用十进制数字显示),码制变换电路就是为实现该功能而设置的。
(5)显示译码电路。把BCD码表示的A、B和M变换为1位或2位十进制数字显示器(七段显示器)的控制信号,这是显示译码器应实现的功能。
4. 设计输入
建立九九乘法表系统的输入文件可以有多种方式:图形描述方式、VHDL或VerilogHDL语言描述方式或者图形和文本相结合的描述方式。但是,无论采用何种描述方式,对于复杂的系统,总采用层次化设计描述的思路,九九乘法表系统也不例外。因为在一个设计文件中完成全部的逻辑描述是非常困难的,也不利于设计调试,因而单层次的描述不是一种优良的设计风格。
利用VHDL支持层次化设计的功能,依据图2所示的结构框图,采用了如图4的层次结构来建立九九乘法表系统的VHDL文件输入文件。
图4 系统层次结构
在本系统的设计文件中,由于各种元件都是通用型的,为此采用程序包。该系统使用了两个程