实验CPU算术逻辑单元

实验CPU算术逻辑单元

ID:39615843

大小:102.50 KB

页数:5页

时间:2019-07-07

实验CPU算术逻辑单元_第1页
实验CPU算术逻辑单元_第2页
实验CPU算术逻辑单元_第3页
实验CPU算术逻辑单元_第4页
实验CPU算术逻辑单元_第5页
资源描述:

《实验CPU算术逻辑单元》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验CPU算术逻辑单元姓名:闫盼蛟学号:2009432017一、实验目的(1)掌握运算器的工作原理。(2)验证运算器的功能。二、实验原理算术逻辑单元的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移位操作。算术运算包括定点加减乘除运算;逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。ALU通常有两个数据输入端A和B,一个数据输出端Y以及标志位等。三、实验要求1、实验设计目标设计一个16位算术逻辑单元,满足以下要求。(1)16位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传送。用3位运算操作码OP[2..0]进行运算,控

2、制方式如下表所示。运算操作码OP[2..0]运算对标志位Z和C的影响000ResultßA+B影响标志位Z和C001ResultßA+1影响标志位Z和C010ResultßA-B影响标志位Z和C011ResultßA-1影响标志位Z和C100ResultßAandB影响标志位Z101ResultßAorB影响标志位Z110ResultßnotB影响标志位Z111ResultßB不影响标志位Z和C(2)设立两个标志寄存器Z和C。当复位信号reset为低电平时,将这两个标志寄存器清零。当运算结束后,在时钟clk的上升沿改变标志寄存器Z和C的值。运算结果改变

3、标志寄存器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保不变;传送操作保持Z、C不变。因此在运算结束Z、C需要两个D触发器保存。(3)为了保存操作数A和B,设计两个16位寄存器A和B。当寄存器选择信号sel=0时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入A寄存器;当寄存器选择信号sel=1时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入B寄存器。(4)算术逻辑单元用一个设计实体完成。2.顶层设计实体的引脚要求(1)clk对应试验台上的时钟(单

4、脉冲)。(2)reset对应实验台上的CPU复位信号CPU-RST。(3)数据输入dinput对应试验台开关SD15~SD0。(4)允许写信号write对应试验台开关SA5.(5)OP[2..0]对应试验台开关SA2~SA0.(6)寄存器选择信号sel对应试验台开关SA4.(7)16为运算结果result对应实验台上的指示灯A15~A0.(8)Z、C标志位对应试验台上的Z、C指示灯。四、实验代码libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_l

5、ogic_unsigned.all;entityALUisport(reset,clk:instd_logic;OP:instd_logic_vector(2downto0);sel:instd_logic;write:instd_logic;C,Z:outstd_logic;Dinput:instd_logic_vector(15downto0);result:outstd_logic_vector(15downto0));endALU;architecturebehavofaluiscomponentregisport(clr:instd_logi

6、c;D:instd_logic_vector(15downto0);clock:instd_logic;write:instd_logic;sel:instd_logic;Q:outstd_logic_vector(15downto0));endcomponent;signalz_tmp:std_logic;signalA,B:std_logic_vector(15downto0);signalresult_t:std_logic_vector(16downto0);beginA_reg:regportmap(clr=>reset,D=>Dinput,

7、clock=>clk,write=>write,sel=>(notsel),Q=>A);B_reg:regportmap(clr=>reset,D=>Dinput,clock=>clk,write=>write,sel=>sel,Q=>B);alu_proc:process(OP,A,B)begincaseOPiswhen"000"=>result_t<=('0'&A)+('0'&B);when"001"=>result_t<=('0'&A)+'1';when"010"=>result_t<=('0'&A)-('0'&B);when"011"=>res

8、ult_t<=('0'&A)-'1';when"100"=>result_t<=('0'&A)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。