EDA8位乘法器实验报告.doc_第1页
EDA8位乘法器实验报告.doc_第2页
EDA8位乘法器实验报告.doc_第3页
EDA8位乘法器实验报告.doc_第4页
EDA8位乘法器实验报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

南华大学船山学院实验报告 ( 2009 2010 学年度 第二学期 )课程名称EDA实验名称8位乘法器 姓名 学号 专业计算机科学与技术班级01地点8-212教师1、 实验目的: 学习和了解八位乘法的原理和过程2、 设计思路: 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。3、 实验逻辑图:4、 实验代码:1) 选通与门模块的源程序ANDARITH.VHDLIBRARY 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 ART OF ANDARITH IS BEGIN PROCESS (ABIN,DIN) BEGIN FOR I IN 0 TO 7 LOOP DOUT (I)=DIN (I)AND ABIN; END LOOP; END PROCESS;END ART;2) 16位锁存器的源程序REG16B.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B IS PORT (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 REG16B;ARCHITECTURE ART OF REG16B IS SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINPROCESS (CLK,CLR) BEGIN IF CLR = 1 THEN R16S= 0000000000000000; ELSIF CLKEVENT AND CLK = 1 THEN R16S(6 DOWNTO 0)=R16S(7 DOWNTO 1); R16S(15 DOWNTO 7)=D; END IF; END PROCESS; Q=R16S;END ART;3) 8位右移寄存器的源程序SREG8B.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY SREG8B IS PORT (CLK:IN STD_LOGIC; LOAD :IN STD _LOGIC; BIN:IN STD_LOGIC_VECTOR(7DOWNTO 0);QB:OUT STD_LOGIC );END SREG8B;ARCHITECTURE ART OF SREG8B IS SIGNAL REG8B:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS (CLK,LOAD) BEGIN IF CLKEVENT AND CLK= 1 THEN IF LOAD = 1 THEN REG8=DIN; ELSE REG8(6 DOWNTO0)=REG8(7 DOWNTO 1); END IF; END IF; END PROCESS; QB= REG8 (0); END ART;4) 乘法运算控制器的源程序ARICTL.VHD LIBRARY 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 ARICTL;ARCHITECTURE ART OF ARICTL IS SIGNAL CNT4B:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RSTALL=START; PROCESS (CLK,START) BEGIN IF START = 1 THEN CNT4B= 0000; ELSIF CLKEVENT AND CLK = 1 THEN IF CNT4B8 THEN CNT4B=CNT4B+1; END IF; END IF;END PROCESS;PROCESS (CLK,CNT4B,START)BEGINIF 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 ART;5) 8位乘法器的源程序MULTI8X8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY MULTI8X8 IS PORT(CLK:IN STD_LOGIC; START:IN STD_LOGIC; A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); ARIEND:OUT STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END MULTI8X8;ARCHITECTURE ART OF MULTI8X8 IS COMPONENT 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 ANDARITH PORT(ABIN:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT_STD_LOGIC_VECTOR( 7 DOWNTO 0) );END COMPONENT;COMPONENT ADDER8B .COMPONENT SREG8B .COMPONENT REG16B .SIGNAL GNDINT:STD_LOGIC;SIGNAL INTCLK:STD_LOGIC;SIGNAL RSTALL:STD_LOGIC;SIGNAL QB:STD_LOGIC;SIGNAL ANDSD:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DTBIN:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL DTBOUT:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINDOUT=DTBOUT;GNDINTCLK, START=START, CLKOUT=INTCLK, RSTALL=RSTALL, ARIEND=ARIEND); U2:SREG8B PORT MAP(CLK=INTCLK, LOAD=RSTALL. DIN=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

温馨提示

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

评论

0/150

提交评论