EDA课设八位硬件乘法器.docx_第1页
EDA课设八位硬件乘法器.docx_第2页
EDA课设八位硬件乘法器.docx_第3页
EDA课设八位硬件乘法器.docx_第4页
EDA课设八位硬件乘法器.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8位硬件乘法器一、设计目的 学习移位相加时序式乘法器的设计方法学习层次化设计方法学习原理图调用VHDL模块方法熟悉EDA仿真分析方法2、 设计原理 (1)设计原理 由加法器构成的时序逻辑方式的乘法器的原理是,通过逐项移位相加原理来实现,从被乘数的最低位开始,若为,若为1,则乘数左移与上一次和相加;若为0,左移后以全零相加,直至被乘数的最高位。 在下图中。ARICTL是乘法运算控制电路,它的START信号的上升沿与高电平有两个功能,即16位寄存器清0和被乘数A向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号。 CLK为乘法时钟信号,当被乘数加载于8位右移寄存器SEG8B后,在时钟同步下由低位至高位逐位移出,当其为1时,与门ANDARITH打开,8位乘数B在同一节拍进入8位加法器,与上一节拍锁存在16位锁存器REG26B中的高8位进行相加,其和在下一时钟节拍的上升沿被锁存进此锁存器;而当被乘数的移出位为0时,与门全0输出。如此往复,直至8个时钟脉冲后,乘法运算过程中止,此时REG16B的输出值即为最后乘积。原理图如下: (2)乘法器中各模块 (电路的总体框图)说明:此电路由五部分组成它们,分别是控制器,锁存器,寄存器,乘法器,加法器。1控制器是一个乘法器的控制模块,用来接受实验系统上的连续脉冲。2锁存器起锁存的作用,它可以锁存8位乘数。3移位寄存器起移位的作用,便于被乘数可以逐位移出。4乘法器功能类似一个特殊的与非门。5加法器用于8位乘数和高8位相加。三、选择器件与功能模块选择器件:SREG8B(移位寄存器)REG16B(16位琐存器)ARICTL(运算控制器)ANDARITH(1位乘法器)ADDER8B(8位加法器)数码管(显示结果)功能模块:18位右移寄存器SREG8BLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY SREG8 IS PORT ( CLK : IN STD_LOGIC; LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);EN:IN STD_LOGIC; QB : OUT STD_LOGIC );END SREG8;ARCHITECTURE behave OF SREG8 IS SIGNAL REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS (CLK,LOAD,EN) BEGIN IF EN=1 THEN IF LOAD = 1 THEN REG8 = DIN; ELSIF CLKEVENT AND CLK = 1 THEN REG8(6 DOWNTO 0) = REG8(7 DOWNTO 1); END IF; END IF; END PROCESS; QB = REG8(0); END behave;时序仿真图:2. 8为加法器ADDER8BLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder8 IS PORT(B, A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(8 DOWNTO 0) );END adder8;ARCHITECTURE behave OF adder8 IS BEGIN S = 0&A + B ;END behave;时序仿真图:3. 选通与门模块:ANDARITHLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY andarith IS PORT ( ABIN : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END andarith;ARCHITECTURE behave OF andarith ISBEGIN PROCESS(ABIN, DIN) BEGIN FOR I IN 0 TO 7 LOOP DOUT(I) = DIN(I) AND ABIN; END LOOP; END PROCESS;END behave;时序仿真图:4. 16为锁存寄存器REG16LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16 IS PORT ( CLK,CLR,EN : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END REG16;ARCHITECTURE behave OF REG16 IS SIGNAL R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS(CLK, CLR,EN) BEGIN IF EN=1 THEN IF CLR = 1 THEN R16S 0) ; ELSIF CLKEVENT AND CLK=1 THEN R16S(6 DOWNTO 0) = R16S(7 DOWNTO 1); R16S(15 DOWNTO 7) = D; END IF; END IF; END PROCESS; Q = R16S; END behave;时序仿真图:5. 运算控制器ARICTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY arictl IS PORT ( CLK:IN STD_LOGIC; START:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC; RSTALL:OUT STD_LOGIC; ARIEND:OUT STD_LOGIC);END ENTITY arictl;ARCHITECTURE ART5 OF arictl IS SIGNAL CNT4B:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RSTALL=START; PROCESS (CLK,START) BEGIN IF START = 1THEN CNT4B=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CNT4B8 THEN CNT4B=CNT4B+1; END IF; END IF;END PROCESS;PROCESS (CLK,CNT4B,START)BEGIN IF START = 0 THEN IF CNT4B8 THEN CLKOUT =CLK; ARIEND= 0; ELSE CLKOUT=0; ARIEND= 1; END IF; ELSE CLKOUT=CLK; ARIEND= 0; END IF;END PROCESS;END ARCHITECTURE ART5;时序仿真图:四、实验数据记录及结果实验电路图:引脚分布图:仿真结果:进行仿真时,先分别将A,B置数,之后将置入的数据锁存,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论