乘法器实验报告.docx

上传人:b****6 文档编号:5865178 上传时间:2023-01-01 格式:DOCX 页数:7 大小:16.95KB
下载 相关 举报
乘法器实验报告.docx_第1页
第1页 / 共7页
乘法器实验报告.docx_第2页
第2页 / 共7页
乘法器实验报告.docx_第3页
第3页 / 共7页
乘法器实验报告.docx_第4页
第4页 / 共7页
乘法器实验报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

乘法器实验报告.docx

《乘法器实验报告.docx》由会员分享,可在线阅读,更多相关《乘法器实验报告.docx(7页珍藏版)》请在冰豆网上搜索。

乘法器实验报告.docx

乘法器实验报告

乘法器实验报告

篇一:

计组-4位乘法器实验报告

  实验4位乘法器实验报告

  XXX姓名:

  课程名称:

计算机组成

  实验时间:

XXX学号:

同组学生姓名:

无实验地点:

指导老师:

XXX专业:

计算机科学与技术

  一、实验目的和要求

  1.熟练掌握乘法器的工作原理和逻辑功能

  二、实验内容和原理

  实验内容:

  根据课本上例3-7的原理,来实现4位移位乘法器的设计。

具体要求:

1.乘数和被乘数都是4位

  2.生成的乘积是8位的

  3.计算中涉及的所有数都是无符号数

  4.需要设计重置功能

  5.需要分步计算出结果(4位乘数的运算,需要四步算出结果)

  实验原理:

  1.乘法器原理图

  2.本实验的要求:

  1.需要设计按钮和相应开关,来增加乘数和被乘数

  2.每按一下M13,给一个时钟,数码管的左边两位显示每一步的乘

  积

  3.4步计算出最终结果后,LED灯亮,按RESET重新开始计算

  三、主要仪器设备

  1.Spartan-III开发板

  2.装有ISE的PC机

  1套1台

  四、操作方法与实验步骤

  实验步骤:

  1.创建新的工程和新的源文件

  2.编写verilog代码(top模块、display模块、乘法运算模块、去抖动模块以及UCF引脚)

  3.进行编译

  4.进行Debug工作,通过编译。

  5..生成FPGA代码,下载到实验板上并调试,看是否与实现了预期功能

  操作方法:

TOP:

  modulealu_top(clk,switch,o_seg,o_sel);

  inputwireclk;

  inputwire[4:

0]switch;

  outputwire[7:

0]o_seg;//只需七段显示数字,不用小数点outputwire[3:

0]o_sel;//4个数码管的位选

  wire[15:

0]disp_num;

  reg[15:

0]i_r,i_s;

  wire[15:

0]disp_code;

  wireo_zf;//zerodetector

  initial

  begin

  i_r  i_s  end

  aluM1(i_r,i_s,switch[4:

2],o_zf,disp_code);

  displayM3(clk,disp_num,o_seg,o_sel);

  assigndisp_num=switch[0]?

disp_code:

(switch[1]?

i_s:

i_r);

  endmodule

  DISPLAY:

  moduledisplay(clk,disp_num,o_seg,o_sel);inputwireclk;

  inputwire[15:

0]disp_num;//显示的数据

  outputreg[7:

0]o_seg;//七段,不需要小数点outputreg[3:

0]o_sel;//4个数码管的位选

  reg[3:

0]code=4'b0;

  reg[15:

0]count=15'b0;

  always@(posedgeclk)

  begin

  case(count[15:

14])

  2'b00:

  begin

  o_sel  2'b01:

  begin

  o_sel  code  2'b10:

  begin

  o_sel  2'b11:

  begin

  o_sel  code  endcase

  case(code)

  4'b0000:

o_seg  4'b0011:

o_seg乘法器实验报告)0000000;4'b1001:

o_seg  count  end

  endmodule

  UCF:

  Net“clk”loc=”T9”;

  Net“o_seg[0]”loc=”E14”;

  Net“o_seg[1]”loc=”G13”;

  Net“o_seg[2]”loc=”N15”;

  Net“o_seg[3]”loc=”P15”;

  Net“o_seg[4]”loc=”R16”;

  Net“o_seg[5]”loc=”F13”;

  Net“o_seg[6]”loc=”N16”;

  Net“o_seg[7]”loc=”P16”;

  Net“o_sel[0]”loc=”D14”;

  Net“o_sel[1]”loc=”G14”;

  Net“o_sel[2]”loc=”F14”;

  Net“o_sel[3]”loc=”E13”;

  Net“switch[0]”loc=”M10”;

  Net“switch[1]”loc=”F3”;

  Net“switch[2]”loc=”G4”;

  Net“switch[3]”loc=”E3”;

  Net“switch[4]”loc=”F4”;

  2.ALU控制器的实现:

  ?

输入用2+6=8个拨动开关

篇二:

1496模拟乘法器实验报告

  实验课程名称:

_高频电子线路

  -1-

  -2-

  -3-

  -4-

  -5-

篇三:

EDA8位乘法器实验报告

  南华大学

  船山学院实验报告

  (XX~XX学年度第二学期)

  课程名称实验名称

  EDA

  8位乘法器

  姓名学号

  专业计算机科学与

  技术

  班级01

  地点8-212

  教师

  一、实验目的:

  学习和了解八位乘法的原理和过程

  二、设计思路:

  纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。

这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。

其乘法原理是:

乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。

  三、实验逻辑图:

  CLK

  ARICTL

  四、实验代码:

  1)选通与门模块的源程序ANDARITH.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYANDARITHISPORT(ABIN:

INSTD_LOGIC;

  DIN:

INSTD_LOGIC_VECTOR(7DOWNTO0)DOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDANDARITH;ARCHITECTUREARTOFANDARITHISBEGIN

  PROCESS(ABIN,DIN)BEGIN

  FORIIN0TO7LOOP

  DOUT(I)  ENDPROCESS;ENDART;

  2)16位锁存器的源程序REG16B.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG16BISPORT(CLK:

INSTD_LOGIC;CLR:

INSTD_LOGIC;

  D:

INSTD_LOGIC_VECTOR(8DOWNTO0)Q:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDREG16B;

  ARCHITECTUREARTOFREG16BIS

  SIGNALR16S:

STD_LOGIC_VECTOR(15DOWNTO0);BEGINPROCESS(CLK,CLR)BEGIN

  IFCLR='1'THENR16S  R16S(6DOWNTO0)  ENDPROCESS;Q  3)8位右移寄存器的源程序SREG8B.VHDLIBRARYIEEE;

  USEIEEE.STD_LOGIC_1164.ALL;ENTITYSREG8BIS

  PORT(CLK:

INSTD_LOGIC;LOAD:

INSTD_LOGIC;BIN:

INSTD_LOGIC_VECTOR(7DOWNTO0);QB:

OUTSTD_LOGIC);ENDSREG8B;ARCHITECTUREARTOFSREG8BIS

  SIGNALREG8B:

STD_LOGIC_VECTOR(7DOWNTO0);BEGIN

  PROCESS(CLK,LOAD)BEGIN

  IFCLK'EVENTANDCLK='1'THENIFLOAD='1'THENREG8  4)乘法运算控制器的源程序ARICTL.VHDLIBRARY

  ELSEREG8(6DOWNTO0)  USEIEEE.STD_LOGIC_1164.ALL;

  USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYARICTLIS

  PORT(CLK:

INSTD_LOGIC;START:

INSTD_LOGIC;

  CLKOUT:

OUTSTD_LOGIC;RSTALL:

OUTSTD_LOGIC;

  ARIEND:

OUTSTD_LOGIC);

  ENDARICTL;ARCHITECTUREARTOFARICTLISSIGNALCNT4B:

STD_LOGIC_VECTOR(3DOWNTO0);BEGIN

  RSTALL  IFSTART='1'THENCNT4B  ELSIFCLK'EVENTANDCLK='1'THENIFCNT4B  CNT4B=CNT4B+1;ENDIF;ENDIF;ENDPROCESS;

  PROCESS(CLK,CNT4B,START)BEGIN

  IFSTART='0'THENIFCNT4B  CLKOUT  ELSECLKOUT  5)8位乘法器的源程序MULTI8X8.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMULTI8X8ISPORT(CLK:

INSTD_LOGIC;START:

INSTD_LOGIC;

  A:

INSTD_LOGIC_VECTOR(7DOWNTO0);B:

INSTD_LOGIC_VECTOR(7DOWNTO0);ARIEND:

OUTSTD_LOGIC;

  DOUT:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDMULTI8X8;

  ARCHITECTUREARTOFMULTI8X8IS

  COMPONENTARICTL

  PORT(CLK:

INSTD_LOGIC;START:

INSTD_LOGIC;CLKOUT:

OUTSTD_LOGIC;RSTALL:

OUTSTD_LOGIC;ARIEND:

OUTSTD_LOGIC);

  ENDCOMPONENT;COMPONENTANDARITHPORT(ABIN:

INSTD_LOGIC;DIN:

INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:

OUT_STD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;COMPONENTADDER8B...

  COMPONENTSREG8B...

  COMPONENTREG16B...

  SIGNALGNDINT:

STD_LOGIC;SIGNAL

  INTCLK:

STD_LOGIC;SIGNALRSTALL:

STD_LOGIC;SIGNALQB:

STD_LOGIC;

  SIGNALANDSD:

STD_LOGIC_VECTOR(7DOWNTO0);SIGNALDTBIN:

STD_LOGIC_VECTOR(8DOWNTO0);SIGNALDTBOUT:

STD_LOGIC_VECTOR(15DOWNTO0);BEGIN

  DOUT  U1:

ARICTLPORTMAP(CLK=>CLK,START=>START,CLKOUT=>INTCLK,RSTALL=>RSTALL,ARIEND=>ARIEND);U2:

SREG8BPORTMAP(CLK=>INTCLK,LOAD=>RSTALL.DIN=>B,QB=>QB);

  U3:

ANDARITHPORTMAP(ABIN=>QB,DIN=>A,DOUT=>ANDSD);U4:

ADDER8BPORT

  MAP(CIN=>GNDINT,A=>DTBOUT(15DOWNTO8),B=>ANDSD,S=>DTBIN(7DOWNTO0),COUT=>DTBIN(8));U5:

REG16BPORTMAP(CLK=>INTCLK,CLR=>RSTALL,

  D=>DTBIN,Q=>DTBOUT);ENDART;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1