版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.电子课程设计 -移位相加8位硬件乘法器电路设计 学院 :电子信息工程学院 班级 : 通信071501 姓名 : 许瀛 指导老师:高文华 2009年12月 目录一 设计任务与要求2二 总体框图3三 选择器件4四 功能模块5五 总体设计电路图15六 心得体会17 移位相加8位硬件乘法起一、设计任务与要求 设计一个乘法器的控制模块,接受实验系统上的连续脉冲,当给定启动/清零信号后,能自动发出CLK信号驱动乘法运算,当8个脉冲后自动停止。设计一个纯组合电路的8X8等于16位的乘法器(选择不同的流水线方式),具体说明并比较这几种乘法器的逻辑资源占用情况和运行速度情况。二、总体框图控制模块16位锁存器/
2、右移寄存器分段模块8位右移寄存器1位乘法器8位加法器7段数码显示译码器1、模块功能A、运算控制模块:控制电路的起始和终止。B、8位右移寄存器:在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;每输入一个时钟脉冲,寄存器的数据就顺序向右移动一位。C、1位乘法器:D、8位加法器:E、16位锁存器/右移寄存器:此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八位加法器,所以关键是设计好八位加法器。方案:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合各方面的考虑,决定采用方案
3、二。2、设计思路:纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。三、选择器件1、配有QuartusII软件的计算机一台;2、选用FPGA芯片,如:FLEX10K系列的EPF10K10LC84-4;(1)、FPGA适配器板:标准配置是EPF10K10
4、接口板;(2)、下载接口是数字芯片的下载接口(JTAG),主要用于FPGA芯片的数据下载;(3)、拨码开关、按键开关和LED灯;(4)、时钟源。四、功能模块1、乘法器等层设计模块VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;Use ieee.std_logic_unsigned.all;ENTITY MULTI8X8 IS -8位乘法器顶层设计PORT ( CLKk,hkey, START :IN STD_LOGIC; A, B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Mmax :out STD_LOGIC_VECT
5、OR(3 DOWNTO 0); ARIEND : OUT STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END MULTI8X8;ARCHITECTURE struc OF MULTI8X8 ISCOMPONENT ARICTL PORT ( CLK : IN STD_LOGIC; START : IN STD_LOGIC; CLKOUT :OUT STD_LOGIC ; RSTALL : OUT STD_LOGIC; ARIEND : OUT STD_LOGIC );END COMPONENT;COMPONENT ANDARITHPO
6、RT ( ABIN : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;COMPONENT ADDER8BPORT (CIN : IN STD_LOGIC; A, B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT : OUT STD_LOGIC );END COMPONENT;COMPONENT SREG8BPORT (
7、 CLK : IN STD_LOGIC; LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END COMPONENT;COMPONENT REG16BPORT ( CLK : IN STD_LOGIC; CLR : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );END COMPONENT;SIGNAL GNDINT, INTCLK,RSTALL,N
8、EWSTART, QB,clk : STD_LOGIC;SIGNAL ANDSD : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL count,maxx : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DTBIN : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL DTBOUT : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN DOUT <= DTBOUT; GNDINT <= '0'PROCESS(CLK,START)BEGIN IF START='1&
9、#39; THEN NEWSTART<='1' ELSIF CLK='0'THEN NEWSTART<='0' END IF;END PROCESS;Process(hkey) Begin If(hkey'event and hkey='1')then maxx<=maxx+'1' End if;End process;Mmax<=maxx;Process(clkk)BeginIf clkk'event and clkk='1'thenIf(count<
10、maxx)then count<=count+'1'Else count<="0000"clk<=not clk;End if; End if;End process;U1 : ARICTL PORT MAP(CLK =>CLK, START =>NEWSTART, -FOR THE BETTER CLKOUT => INTCLK, RSTALL => RSTALL, ARIEND =>ARIEND );U2 : SREG8B PORT MAP(CLK =>INTCLK,LOAD=>RSTALL,D
11、IN=>B,QB=>QB);U3 : ANDARITH PORT MAP(ABIN =>QB, DIN => A,DOUT => ANDSD);U4 : ADDER8B PORT MAP(CIN =>GNDINT, A=>DTBOUT(15 DOWNTO 8),B=>ANDSD, S => DTBIN(7 DOWNTO 0),COUT => DTBIN(8);U5 : REG16B PORT MAP(CLK => INTCLK, CLR => RSTALL,D=>DTBIN,Q=>DTBOUT );END st
12、ruc;2、8位右移寄存器(1)模块图形符号及其逻辑功能描述 图1(2)VHDL程序LIBRARY IEEE; -8位右移寄存器USE IEEE.STD_LOGIC_1164.ALL;ENTITY SREG8B ISPORT( CLK,LOAD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB:OUT STD_LOGIC );END SREG8B;ARCHITECTURE behav OF SREG8B ISSIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS (CLK,LOAD)B
13、EGIN IF CLKEVENT AND CLK=1THEN IF LOAD=1THEN REG8<=DIN; ELSE REG8(6 DOWNTO 0)<=REG8(7 DOWNTO 1); END IF; END IF;END PROCESS;QB <= REG8(0); -输出最低位END behav;(3)仿真结果及其分析 图2仿真分析:在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;每输入一个时钟脉冲,寄存器的数据就顺序向右移动一位。3、8位加法器 (1)模块图形符号及其逻辑功能描述 图3(2)VHDL程序LIBRARY IEEE; -
14、8位加法器USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER8B ISPORT(CIN:IN STD_LOGIC; A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT STD_LOGIC);END ADDER8B;ARCHITECTURE behav OF ADDER8B IS SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINAA<
15、;='0'&A; BB<='0'&B; SINT<=AA+BB+CIN;S<=SINT(7 DOWNTO 0);COUT<=SINT(8);END behav;(3)仿真结果及其分析 图5仿真分析:输入10000000与00000001相加得到10000001仿真正确4、1位乘法器(1)模块图形符号及其逻辑功能描述 图6(2)VHDL程序LIBRARY IEEE; -1位乘法器USE IEEE.STD_LOGIC_1164.ALL;ENTITY ANDARITH ISPORT (ABIN:IN STD_LOGIC; DIN
16、:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ANDARITH;ARCHITECTURE behav OF ANDARITH ISBEGINPROCESS(ABIN,DIN)BEGINFOR I IN 0 TO 7 LOOP -循环,完成8位与1位运算 DOUT(I)<=DIN(I)AND ABIN;END LOOP;END PROCESS;END behav;(3)仿真结果及其分析 图7仿真分析:当ABIN为高电平时输出计算结果,当它为低电平时清零。仿真分析正确。5、16位锁存器/
17、右移寄存器(1)模块图形符号及其逻辑功能描述 图8 (2)VHDL程序LIBRARY IEEE; -16位锁存器/右移寄存器USE IEEE.STD_LOGIC_1164.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B ISPORT (CLK, CLR : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END REG16B;ARCHITECTURE behav OF REG16B ISSIGNA
18、L R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINPROCESS(CLK,CLR)BEGINIF CLR='1' THEN R16S<="0000000000000000" ;-时钟到来时,锁存输入值,并右移低8位ELSIF CLK'EVENT AND CLK='1' THEN R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1); -右移低8位 R16S(15 DOWNTO 7)<= D; -将输入锁存到高8位 END IF;END PROCESS;Q <
19、= R16S;END behav;(3)仿真结果及其分析 图9仿真分析:输入110010101移位后得到110010101111111仿真正确6、运算控制模块(1)模块图形符号及其逻辑描述 图10(2)VHDL程序LIBRARY IEEE; -运算控制模块USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ARICTL ISPORT (CLK,START : IN STD_LOGIC; CLKOUT,RSTALL,ARIEND : OUT STD_LOGIC);END ARICTL;ARCHITECTURE be
20、have OF ARICTL ISSIGNAL CNT4B : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RSTALL <= START;PROCESS(CLK,START)BEGIN IF START = '1' THEN CNT4B <= "0000" ELSIF CLK'EVENT AND CLK = '1' THEN IF CNT4B < 8 THEN CNT4B <= CNT4B + 1; END IF; END IF;END PROCESS;PROCESS(CLK, CN
21、T4B, START)BEGIN IF START = '0' THEN IF CNT4B < 8 THEN CLKOUT <=CLK; ARIEND <= '0' ELSE CLKOUT <= '0'ARIEND <= '1'END IF; ELSE CLKOUT <= CLK; ARIEND <= '0' END IF;END PROCESS;END behave;(3)仿真结果及其分析 图11仿真分析:当开始START信号发出后,RSTALL重置,CLKOUT才原样输
22、出CLK信号,起到控制器件工作的作用!仿真正确!五、总体设计电路图 图121、工作原理:本乘法器由五个模块组成,其中ARICTL是乘法运算控制电路,它的START信号上的上跳沿与高电平有2个功能,即16位寄存器清零和被乘数A7.0向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号,乘法时钟信号从ARICTL的CLK输入。当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。当为1时,一位乘法器ANDARITH打开,8位乘数B7.0在同一节拍进入8位加法器,与上一次锁存在16位锁存器REG16B中的高8位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数的移出位为0时,一位乘法器全零输出。如此往复,直至8个时钟脉冲后,由ARICTL的控制,乘法运算过程自动中止,ARIEND输出高电平,乘法结束。此时REG16B的输出即为最后的乘积2、仿真结果及其分析 图13仿真分析:两个十六进制数FD和9F相乘,当开始脉冲加进时,乘法器开始工作,经过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度建筑物拆除工程承包与智能拆除设备租赁合同
- 2025年度股东公司市场营销与品牌推广协议书
- 延期审理申请书模板
- 2025年度建筑劳务分包合同(绿色建材应用推广)
- 高效提升学生体质健康的措施
- 2025年度高端装备制造仓储仓单质押担保协议
- 房地产行业的智能化趋势与前景分析
- 2025年中国煤炭机械行业市场深度分析及投资策略研究报告
- 2024-2030年中国半身裙行业市场深度分析及发展潜力预测报告
- 公司转证申请书
- 2025年湖南九嶷职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 农产品贮运与加工考试题(附答案)
- 幼儿园开学教职工安全教育培训
- 学校财务年终工作总结4
- 钢铁是怎样炼成的钢铁读书笔记
- 2025年汽车加气站作业人员安全全国考试题库(含答案)
- 化工过程安全管理导则安全仪表管理课件
- 【化学】高中化学手写笔记
- 中国高血压防治指南-解读全篇
- 2024年监控安装合同范文6篇
- 2024年山东省高考政治试卷真题(含答案逐题解析)
评论
0/150
提交评论