有符号5位整数乘法器设计与制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈尔滨工业大学(威海)
信息科学与工程学院
EDA课程设计报告
有符号5位整数乘法器设计与制作
指导老师:胡屏
学生班级:0802102
学生姓名:傅愉
学生学号:080210210
2009年11月10日
目录
1.课程设计的性质、目的和任务 (1)
2.题目要求 (1)
3.总体设计 (1)
3.1算法设计 (1)
3.2整体框图及原理 (2)
4.电路设计 (4)
4.1 乘法器总体电路原理图: (4)
4.2分时输入模块电路图: ........................................................... - 5 -
4.3乘法运算电路图: (6)
4.4阀门控制模块电路: ............................................................... - 9 -
4.5计数单元电路图: ................................................................. - 12 -
4.6数码管显示单元电路: ......................................................... - 14 -
4.7报警电路示意: ......................................... 错误!未定义书签。
5.调试过程中出现的问题以及解决办法 .......................................... - 19 -
6.心得体会........................................................................................... - 20 -
7.建议:............................................................................................... - 21 -
1.课程设计的性质、目的和任务
创新精神和实践能力二者之中,实践能力是基础和根本。这是由
乘
数
被乘数
移位寄存 移位寄存
相乘逻辑
累加器
结果寄存
时钟
于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
2.题目要求
设计一个两个5位数相乘的乘法器。用发光二极管显示输入数值,用7段显示器显示十进制结果。乘数和被乘数分两次输入。在输入乘数和被乘数时,要求显示十进制输入数据。输入显示和计算结果显示,采用分时显示方式进行,可参见计算器的显示功能。
3.总体设计
3.1算法设计
图:乘法器对应的方框图
两个带符号的五位数相乘,首先将符号位与数值位分离,最终结果的符号位由两个数的符号位经过异或操作后得到,乘法运算采用移位相加的原理来实现。
移位相加原理:从乘数的最低位开始,若为1,则将被乘数右端与乘数右端对齐写在下面;若为0,则将与被乘数同样位数的0写在下面。然后进行乘数的次低位,若为1,则被乘数左移一位后与上一次的结果相加;若为0,则左移一位后以全0相加。以此类推,每次若乘数相应位为1,则被乘数左移一位与前次和相加;若乘数相应位为0,则左移一位以全0与前次和相加。相乘结果用十进制数表示。
3.2整体框图及原理
图:整体设计框图
乘法计算:
使用者通过按键输入二进制5位有符号的乘数与被乘数,并将乘数与被乘数分别用十进制显示,经过乘法器运算,显示十进制结果,完
成与计算器近似的简单乘法运算;
下面是部分模块的功能介绍:
分时输入:在控制端EA,EB和CLK的控制下,依次输入乘数与被乘数,且在输入被乘数后,按下定义的乘号键,可保持所显示的被乘数不变,改变数值,输入乘数,显示数值为乘数。
分时显示控制:在控制端EA,EB和CLK的控制下,实现对被乘数,乘数以及运算结果的分时显示。
4.电路设计
4.1 乘法器总体电路原理图:
MAX+PLUS II中的电路原理图
4.2分时输入模块电路图:
分时输入电路图
VHDL程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY INPUT1 IS
PORT(EA,EB,CLK:IN STD_LOGIC;
I:IN STD_LOGIC_VECTOR(4 DOWNTO 0);
A,B:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END INPUT1;
ARCHITECTURE behave OF INPUT1 IS
BEGIN
PROCESS(EA,EB,I,CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF EA='1' THEN
A<=I;
ELSE NULL;
END IF;
IF EB='1' THEN
B<=I;
ELSE NULL;
END IF;
END IF;
END PROCESS;
END behave;
功能仿真,结束时间为200ns;
MAX+PLUS II 中的功能仿真图