ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:116.52KB ,
资源ID:29826202      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29826202.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ALU设计报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ALU设计报告.docx

1、ALU设计报告青岛理工大学实 验 报 告实验课程: 计算机组成原理I 实验日期: 2013 年 9月18日, 交报告日期:2013 年9月30日,成绩:实验地点:现代教育技术中心101(计算机实验室)计算机工程 学院,计算机科学与技术 专业, 班级:计算112班实验指导教师:盛建伦 批阅教师:同组学生姓名任师锋秦世帅学号一、 实验课题设计一个16位ALU的逻辑,决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。实验内容:(1)、主要元件设计 14位并行进位加法器 功能要求:能完成两个4位二进制数(补码和无符号数)的加法和逻辑加运算。内

2、部有并行进位链。可以扩展成多位组。 2组间并行进位链逻辑 功能要求:4个4位小组的组间并行进位链逻辑。 将组间并行进位链逻辑与4个4位超前进位加法器连接可以构成16位进位加法器。可参考74182的逻辑函数。3函数发生器功能要求:能把输入的两个16位二进制数进行变换,与后面的16位超前进加法器配合完成两个16位二进制数(补码和无符号数)的8种算术运算(有些运算考虑低位来的进位)和8种逻辑运算。提示:ALU的功能参考数字逻辑课程的“多功能加法器”实验(2)、顶层设计 用层次结构设计的方法设计一个16位ALU。内部包括4个4位并行进位加 法器、组间并行进位链、16位函数发生器等。 功能要求:能完成两

3、个16位二进制数以及低位来的进位的8种算术运算和8种逻辑运算。可参考74181(3)、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚写明仿真波形数据是怎样设计的。二、逻辑设计一位全加器系统框图端口说明:P,G:进位传递函数,进位产生函数。S:输出a,b:输入cin:来自低位的进位cout:向高位的进位。推导的逻辑函数。S=abcin;P=a or b;G=a and b;Cout=G+P.cin; 超前进位琏系统框图 P(0-3),G(0-3):接收进位传递函数和进位产生函数的端口。C(0-3):产生的进位输出。Cin:来自低位的进位。PN,GN:分别是组件进位传递函数和

4、组件进位产生函数。超前进位输出逻辑函数: Carry0=G0+P0.Cin Carry1=G1+P1.C0 Carry2=G2+P2.C1 Carry3=G3+P3.C2GN =G3+P3G2+P3P2G1+P3P2P1G0 PN =P3P2P1P0四位并行加法器系统框图端口说明:M: 模式控制信号,M=0逻辑加,M=1算术加。A ,B: 输入。S:输出Cin:来自低位的进位。Cout:向高位的进位。PN,GN:分别输出片间的进位传递函数和进位产生函数。四位并行加法器逻辑图片(0-3):1位全加器。M:模式控制信号。G(0-3),P(0-3):分别是组件的进位产生函数和进位传递函数。Cin:来

5、自低位的进位Carry(0-3):超前进位琏产生的进位输出,他们分别与四位并行加法器的Cin(来自低位的进位)相连。Carry3没有用到。a(0-3),b(0-3):输入。S(0-3):是四位并行加法器的输出PN,GN:组件进位传递函数和组件进位产生函数。连接到超前进位琏端口的G(0-3),P(0-3),与一位全加器的PN,GN向连。函数发生器系统框图-M:模式控制信号Ctrl:函数发生控制信号。a,b:输入aout,bout:输出。Cin:低位的进位。Cout:输出函数发生器功能表ms2s1s0运算aoutboutcout1000a加bab01001a加1a011010a加b加低位进位abc

6、i1011b加10b11100a加a01101a加0a001110a加aaa01111a加 加1a10000a+ba+b000001a.ba.b000010000011000100abab000101a+a+000110000111a.a.00十六位并行加法器系统框图端口说明:M: 模式控制信号,M=0逻辑加,M=1算术加。Ctrl:函数控制信号,控制做哪种函数运算。A ,B: 输入。S:输出Cin:来自低位的进位。Cout:向高位的进位。十六位并行加法器逻辑图端口说明: 片(0-3):四位并行加法器(由于空间的限制,其中函数发生控制信号,并没有在逻辑如图中标出)。G(0-3),P(0-3):

7、分别是组件的进位产生函数和进位传递函数。Cin:来自低位的进位Carry(0-3):超前进位琏产生的进位输出,他们分别与四位并行加法器的Cin(来自低位的进位,图中没有标明端口名)相连。Carry3没有用到。S(0-15):是16位并行加法器的输出。M:模式控制信号。Ctrl(0-2):函数发生控制端。, , , :分别表示aout(0-3)bout(0-3),aout(4-7)bout(4-7),aout(8-11)bout(8-11),aout(12-15bout(12-15二、VHDL源程序一位全加器:entity OneAdder isport (a,b :in std_logic;-

8、input cin :in std_logic;-jinwei from the low bit P,G :out std_logic;-P 进位传递函数,G进位产生函数 s :out std_logic);-resultend OneAdder;architecture behave of OneAdder isbegin s=a xor b xor cin; P=a or b; G=a and b;end behave;超前进位琏:-super carrylibrary ieee;use ieee.std_logic_1164.all;entity SuperCarry isport (P

9、,G :in std_logic_vector(3 downto 0);-输入 cin :in std_logic;-来自低位的进位 carry :out std_logic_vector(3 downto 0);-进位输出 PN,GN :out std_logic);-产生组件的进位传递和进位产生函数end SuperCarry;architecture behave of SuperCarry issignal c : std_logic_vector(3 downto 0);begin c(0)=G(0) or (P(0) and cin); carry(0)=c(0); c(1)=G(

10、1) or (P(1) and c(0); carry(1)=c(1); c(2)=G(2) or (P(2) and c(1); carry(2)=c(2); c(3)=G(3) or (P(3) and c(2); carry(3)=c(3); GN=G(3) or (P(3) and G(2) or (P(3) and P(2) and G(1) or (P(3) and P(2) and P(1) and G(0);-产生组件进位产生函数 PN aout=a;bout=b;cout aout=a;bout=iz;cout aout=a;bout=b;cout aout=iz;bout=

11、b;cout aout=a;bout=not b;cout aout=a;bout=iz;cout aout=a;bout=a;cout aout=a;bout=not b;cout aout=a or b;bout=iz;cout aout=a and b;bout=iz;cout aout=not a;bout=iz;cout aout=not b;bout=iz;cout aout=a xor b;bout=iz;cout aout=a or (not b);bout=iz;cout aout=not(a xor b);bout=iz;cout aout=a and (not b);bo

12、ut=iz;cout=zero;-a.not b end case; end if; end process;end behave;四位并行加法器:-four adderlibrary ieee;use ieee.std_logic_1164.all;entity FourAdder isport (a,b :in std_logic_vector(3 downto 0);-input cin :in std_logic; PN,GN :out std_logic;-for the Adder16 组件进位函数,GN-进位产生函数,PN-进位传递函数 s :out std_logic_vect

13、or(3 downto 0);-output cout :out std_logic;-向高位的进位 M :in std_logic);-模式控制m=1 逻辑运算,M=0 算术运算end FourAdder;architecture behave of FourAdder is-declare OneAddercomponent OneAdderport (a,b :in std_logic;-input cin :in std_logic;-jinwei from the low bit P,G :out std_logic;-P 进位传递函数,G进位产生函数 s :out std_logi

14、c);-resultend component; -end declare of OneAdder-declare SuperCarrycomponent SuperCarryport (P,G :in std_logic_vector(3 downto 0); cin :in std_logic; carry :out std_logic_vector(3 downto 0); PN,GN :out std_logic);end component;-the end declare of SuperCarrysignal gt,pt : std_logic_vector(3 downto 0

15、);signal c : std_logic_vector(3 downto 0);-存储中间进位的结果signal xin :std_logic_vector(3 downto 0);begin xin(0)a(0),b=b(0),s=s(0),P=pt(0),G=gt(0),cin=xin(0); xin(1)a(1),b=b(1),s=s(1),P=pt(1),G=gt(1),cin=xin(1); xin(2)a(2),b=b(2),s=s(2),P=pt(2),G=gt(2),cin=xin(2); xin(3)a(3),b=b(3),s=s(3),P=pt(3),G=gt(3),c

16、in=xin(3); TAG5:SuperCarry port map-SuperCarry 实例化 1 (P=pt,G=gt,carry=c,cin=xin(0),PN=PN,GN=GN); coutctrl,M=M,a=a,b=b,cin=cin,aout=aout,bout=bout,cout=scout); x(0)aout(3 downto 0),b=bout(3 downto 0),cin=x(0),PN=pt(0),s=s(3 downto 0),GN=gt(0),M=M); x(1)aout(7 downto 4),b=bout(7 downto 4),cin=x(1),PN=

17、pt(1),s=s(7 downto 4),GN=gt(1),M=M); x(2)aout(11 downto 8),b=bout(11 downto 8),cin=x(2),PN=pt(2),s=s(11 downto 8),GN=gt(2),M=M); x(3)aout(15 downto 12),b=bout(15 downto 12),cin=x(3),PN=pt(3),s=s(15 downto 12),GN=gt(3),M=M); TAG5:SuperCarry port map-SuperCarry 实例化 2-超级进位连 (P=pt,G=gt,cin=x(0),carry=c)

18、; cout=M and c(3);end struct;三、仿真设计一位全加器的仿真数据:将所有的数据组合进行仿真。a00001111b00110011cin01010101P00111100G00000011s01101001注意:P,G,s都是理论应当得到的数据。超前进位琏仿真数据:分析:当进位产生函数为1时,一定会向高位进1.令数据G为0010,P为1000,cin为1预测结果:0010.当进位传递函数为1而进位产生函数为0时,只要来自低位的进位为1就向高位产生进位。令数据G为0000,p为0111,cin为1,预测结果0111.令数据G为0000,P为0101,cin为1,预测结果0001.原因在于低位的进位不为1,则不会向高位产生进位1只要G(3)为1,GN就为1,对于PN要所有的P(0-3)为1才为1。函数发生器仿真:输出aout ,bout ,cout要和功能表的输出一致仿真数据:(由于数据多,此处仅截取部分)数据一般取和功能表所属情况相反的例子进行验证。ms2s1s0abcin

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

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