资讯详情

运算器设计(HUST)·头歌实训

实验内容如下:

ps.如果内容检查正确,可以直接拉到页面底部。

第一关:8位可控加减法电路设计

  • 任务要求
  • 评论
  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试
  • 常见问题

实验目的

帮助学生掌握全加器的实现逻辑,掌握多个可控加减电路的实现逻辑,熟悉 Logisim 平台基本功能,能在 logisim 实现多个可控加减法电路。

视频讲解

实验内容

在 Logisim 打开模拟器 alu.circ 文件,在相应的子电路中设计了8个串行可控加减电路,电路引脚定义如图所示,用户可以直接在电路中使用相应的隧道标签 X,Y 为两个输入数,Sub 加减控制信号,S 输出计算结果,Cout 进位输出,OF 有符号运算溢出位。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 8 位 加数/减数
Y 输入 8 位 加数/减数
Sub 输入 1 位 运算控制位 1:减法 0:加法
S 输出 8 位 运算结果 和/差
Cout 输出 1 位 进位输出
OF 输出 1 位 有符号运算溢出检测位置

电路测试

实验完成后,打开文本编辑工具 alu.circ 复制粘贴所有文本信息 Educoder 平台的 alu.circ 在文件中,然后单击评估按钮进行本关测试。该平台将自动测试您设计的电路。为便于测试,请勿修改子电路包装。本关测试如下:

 
  1. X Y Sub S Cout OF
  2. 10 21 0 31 0 0
  3. 7f 02 0 81 0 1
  4. ff fe 0 fd 1 0
  5. 81 82 0 03 1 1
  6. 10 df 1 31 0 0
  7. 7f fe 1 81 0 1
  8. ff 02 1 fd 1 0
  9. 81 7e 1 03 1 1

常见问题

第2关:CLA1824先进位电路设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

帮助学生掌握快速加法器中先进位的原理,利用相关知识设计4个先进位电路,利用4个先进位电路构建4个快速加法器,分析相应电路的时间延迟。

视频讲解

实验内容

在 Logisim 中打开 alu.circ 根据图中定义的输入输出引脚,在相应的子电路中实现可级联的四位先进电路。 Gi,Pi 为进位生成函数和传递函数,Cin 为进位输入,C1~C4 进位输出,G,P 成组进位生成函数和成组进位传递函数。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
G4 输入 1 位 第 4 位生成函数
P4 输入 1 位 第 4 位传递函数
G3 输入 1 位 第 3 位生成函数
P3 输入 1 位 第 3 位传递函数
G2 输入 1 位 第 2 位生成函数
P2 输入 1 位 第 2 位传递函数
G1 输入 1 位 第 1 位生成函数
P1 输入 1 位 第 1 位传递函数
Cin 输入 1 位 低位进位位
C4 输出 1 位 最高位进位
C3 输出 1 位 第 3 位进位位
C2 输出 1 位 第 2 位进位位
C1 输出 1 位 第 1 位进位位
G* 输出 1 位 成组生成函数
P* 输出 1 位 成组传递函数

电路测试

实验完成后,打开文本编辑工具 alu.circ 复制粘贴所有文本信息 Educoder 平台的 alu.circ 在文件中,然后单击评估按钮进行本关测试。该平台将自动测试您设计的电路。为便于测试,请勿修改子电路包装。本关测试如下:

  1. Cnt Cin PGintput G P C4 C3 C2 C1
  2. 00 1 00000000 0 0 0 0 0 0
  3. 01 0 01100111 1 0 1 1 1 1
  4. 02 1 01101111 1 0 1 1 1 1
  5. 03 1 11001000 1 0 1 0 1 0
  6. 04 0 10001001 1 0 1 0 1 0
  7. 05 0 00110101 0 0 0 1 0 0
  8. 06 0 10001110 1 0 1 0 1 1
  9. 07 1 00100100 0 0 0 1 0 0
  10. 08 0 00000100 0 0 0 0 0 0
  11. ...

第3关:4位快速加法器设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

帮助学生掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。

视频讲解

实验内容

利用前一步设计好的四位先行进位电路构造四位快速加法器,其引脚定义如图所示,其中 X,Y 为四位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,G,P 为 4 位成组进位生成函数和成组进位传递函数。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 4 位 加数
Y 输入 4 位 加数
C0 输入 1 位 进位输入
S 输出 4 位 运算和
C4 输出 1 位 最高位进位位
C3 输出 1 位 第 3 位进位位
G* 输出 1 位 成组生成函数
P* 输出 1 位 成组传递函数

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y C0 Sum G P C4 C3
  2. 00 0 0 1 1 0 0 0 0
  3. 01 6 7 0 d 0 0 0 1
  4. 02 6 f 1 6 1 0 1 1
  5. 03 c 8 1 5 1 0 1 0
  6. 04 8 9 0 1 1 0 1 0
  7. 05 3 5 0 8 0 0 0 1
  8. 06 8 e 0 6 1 0 1 0
  9. ...

 第4关:16位快速加法器设计

  • 实验目的
  • 视频讲解
  • 电路框架
  • 电路引脚
  • 电路测试
  • 常见调试问题

实验目的

帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

视频讲解

####实验内容 在 Logisim 中打开 alu.circ 文件,在对应的子电路中利用四位先行进位电路和四位快速加法器构造十六位组间先行进位,组内先行进位快速加法器,并验证其功能是否正常,快速加法器引脚定义如图所示。其中 X,Y 为16位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,G,P 为16位成组进位生成函数和成组进位传递函数。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 16 位 加数
Y 输入 16 位 加数
C0 输入 1 位 进位输入
S 输出 16 位 运算和
C16 输出 1 位 最 16 位进位位
C15 输出 1 位 第 15 位进位位
G* 输出 1 位 成组生成函数
P* 输出 1 位 成组传递函数

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y C0 Sum G P C16 C15
  2. 00 8001 0005 0 8006 0 0 0 0
  3. 01 2ece ea08 1 18d7 1 0 1 1
  4. 02 c8df e0e1 1 a9c1 1 0 1 1
  5. 03 9591 d843 0 6dd4 1 0 1 0
  6. 04 2f12 3a2a 0 693c 0 0 0 0
  7. 05 ba6a b8da 1 7345 1 0 1 0
  8. 06 cb1c 9d86 0 68a2 1 0 1 0
  9. 07 4649 fad8 0 4121 1 0 1 1
  10. 08 bc08 4570 0 0178 1 0 1 1
  11. 09 3a12 d42b 0 0e3d 1 0 1 1
  12. ...

常见调试问题

为什么左右两边的内容完全一致,还判我错啊!

显示窗口没有显示完整,左右移动一下就会发现不一样的地方了。

第5关:32位快速加法器设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

视频讲解

实验内容

利用16位快速加法器以及先行进位电路构建32位快速加法器,并探讨其时间延迟。 可能方案:(1)2个16位加法器直接串联,C16 信号采用下层的进位输出;(2))2个16位加法器直接串联,C16 进位输入采用上层的进位输出;(3)在16位快速加法器的基础上再增加一级组间先行进位电路,类似64位快速加法器的方法;分别分析3种不同方案可能的总延迟,选择速度最快的方案实现32位快速加法器,并分析其时间延迟,其引脚如图所示。其中 X,Y 为32位相加数,Cin 为进位输入,S 为和数输出,Cout 为进位输出,Overflow 为有符号加法运算溢出信号。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 32位 加数
Y 输入 32位 加数
C0 输入 1位 进位输入
S 输出 32位 运算和
C32 输出 1位 最32位进位位
C31 输出 1位 第31位进位位

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y C0 Sum C32 C31
  2. 00 00000005 c0000003 0 c0000008 0 0
  3. 01 c1d5aa08 0119cc6b 1 c2ef6774 0 0
  4. 02 fe41a0e1 9a2b14e0 1 986c5bc2 1 1
  5. 03 da405843 c728b6ea 0 a169f02d 1 1
  6. 04 3d1c7a2a 9fad949e 0 dccae0c8 0 0
  7. 05 b5b838da b59899a2 1 6b502d7d 1 0
  8. 06 89585d86 ce717451 0 57c91dd7 1 0
  9. 07 e4f4bad8 ed64e090 0 d259b968 1 1
  10. 08 72560570 094220bc 0 7b98622c 0 0
  11. ...

第6关:5位无符号阵列乘法器设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

帮助学生掌握阵列乘法器的实现原理,能够分析阵列乘法器的性能,能在 Logisim 中绘制阵列乘法器电路。

视频讲解

实验内容

在 Logisim 中打开 alu.circ 文件,在5位阵列乘法器中实现斜向进位的阵列乘法器,该电路引脚定义如图所示,其中 X,Y 为5位被乘数和乘数,P 为乘积输出,阵列乘法所需的25按位与的乘积项已经通过辅助电路生成,如图2.21所示,所有乘积项均通过隧道标签给出,用户只需要在已给出的电路框架中进行简单连线即可完成5位阵列乘法器。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 5 位 被乘数
Y 输入 5 位 乘数
乘积 输出 10 位 乘积

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y MUL
  2. 00 05 03 00f
  3. 01 08 0b 058
  4. 02 01 00 000
  5. 03 03 0a 01e
  6. 04 0a 1e 12c
  7. 05 1a 02 034
  8. 06 06 11 066
  9. 07 18 10 180
  10. 08 10 1c 1c0
  11. ...

第7关:6位有符号补码阵列乘法器

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

帮助学生掌握补码阵列乘法器的实现原理。

视频讲解

实验内容

在 Logisim 中打开 alu.circ 文件,在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器,实验框架如图所示:

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 6 位 被乘数补码
Y 输入 6 位 乘数补码
乘积 输出 11 位 乘积补码

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y Mul
  2. 00 33 32 0b6
  3. 01 0b 3c 7d4
  4. 02 20 0f 000
  5. 03 3a 2e 06c
  6. 04 2e 28 1b0
  7. 05 22 26 30c
  8. 06 31 17 6a7
  9. 07 30 0d 730
  10. 08 0c 02 018
  11. ...

第8关:乘法流水线设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

学生掌握运算流水线基本概念,理解将复杂运算步骤细分成子过程的思想,能够实现简单的乘法运算流水线。

视频讲解

实验内容

在 Logisim 中打开 alu.circ 文件,在6位补码阵列乘法器中利用5位阵列乘法器以及求补器等部件实现补码阵列乘法器,实验框架如图所示:

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 5 位 被乘数
Y 输入 5 位 乘数
P2 输出 10 位 第 2 步部分积输入
P3 输出 10 位 第 3 步部分积输入
P4 输出 10 位 第 4 步部分积输入
P5 输出 10 位 第 5 步部分积输入

电路测试

完成实验后,利用文本编辑工具打开 alu.circ 文件,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt X Y P2 P3 P4 P5
  2. 00 1e 1f 000 000 000 000
  3. 01 18 02 05a 000 000 000
  4. 02 03 01 030 0d2 000 000
  5. 03 1e 00 003 030 1c2 000
  6. 04 0c 09 000 003 030 3a2
  7. 05 14 01 00c 000 003 030
  8. 06 06 03 014 00c 000 003
  9. 07 00 0c 012 014 06c 000
  10. 08 00 0e 000 012 014 06c
  11. ...

第9关:原码一位乘法器设计

  • 实验目的
  • 视频讲解
  • 电路框架
  • 电路引脚
  • 电路测试
  • 常见问题

实验目的

学生掌握原码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个 8*8位的无符号数乘法器。

视频讲解

####实验内容 在 alu.circ 文件中的原码一位乘法器子电路中,增加控制电路和数据通路,使得该电路能自动完成8位无符号数的一位乘法运算。再设置引脚初始值,然后驱动时钟自动仿真,电路可自动完成运算。运算结束,结果传输到输出引脚。运算结束时,电路应该自动停止。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 8 位 被乘数
Y 输入 8 位 乘数
乘积 MulResult 输出 16 位 乘积

电路测试

实验完成后,可利用文本编辑工具打开 alu.circ,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt x y MulResult
  2. 00 ff 03 0000
  3. 01 ff 03 0003
  4. 02 ff 03 7f81
  5. 03 ff 03 bf40
  6. 04 ff 03 5fa0
  7. 05 ff 03 2fd0
  8. 06 ff 03 17e8
  9. 07 ff 03 0bf4
  10. 08 ff 03 05fa
  11. 09 ff 03 02fd

常见问题

部分同学没有采用教材上的方案,只用了8个时钟周期就计算完毕,导致无法通关。目前平台还不支持两个答案,所以建议修改方案后通关。

第10关:补码一位乘法器设计

  • 实验目的
  • 视频讲解
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

学生掌握补码一位乘法运算的基本原理,熟练掌握 Logisim 寄存器电路的使用,能在 Logisim 平台中设计实现一个8*8 位的补码 Booth一位乘法器。

视频讲解

####实验内容 在 alu.circ 文件中的补码一位乘法器子电路中,增加控制电路和数据通路,使得该电路能自动完成8位补码一位乘法运算。再设置引脚初始值,然后驱动时钟自动仿真,电路可自动完成运算。运算结束,结果传输到输出引脚。运算结束时,电路应该自动停止。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 8 位 被乘数补码
Y 输入 8 位 乘数补码
乘积 MulResult 输出 16 位 乘积补码

电路测试

实验完成后,可利用文本编辑工具打开 alu.circ,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. Cnt x y Mul
  2. 00 ff 03 0000
  3. 01 ff 03 0003
  4. 02 ff 03 0081
  5. 03 ff 03 0040
  6. 04 ff 03 ffa0
  7. 05 ff 03 ffd0
  8. 06 ff 03 ffe8
  9. 07 ff 03 fff4
  10. 08 ff 03 fffa
  11. 09 ff 03 fffd

 第11关:MIPS运算器设计

  • 实验目的
  • 视频讲解
  • 实验内容
  • 电路框架
  • 电路引脚
  • 电路测试

实验目的

学生理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。

视频讲解

实验内容

利用前面实验封装好的32位加法器以及 Logisim 平台中现有运算部件,构建一个32位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号溢出 OF 、无符号溢出 UOF ,结果相等 Equal ),ALU 功能以及输入输出引脚见后表,在主电路中详细测试自己封装的 ALU ,并分析该运算器的优缺点。

电路框架

alu.circ

电路引脚

信号 输入/输出 位宽 说明
X 输入 32 位 操作数 X
Y 输入 32 位 操作数 X
ALU_OP 输入 4 位 运算器功能码,具体功能见下表
Result 输出 32 位 ALU 运算结果
Result2 输出 32 位 ALU 结果第二部分,用于乘法指令结果高位或除法指令的余数位,其它运算时值为零
OF 输出 1 位 有符号加减运算溢出标记,其它运算时值为零
UOF 输出 1 位 无符号加减运算溢出标记,其它运算时值为零,溢出条件(加法和小于加数,减法差大于被减数)
Equal 输出 1 位 Equal=(x==y)?1:0, 对所有运算均有效
ALU_OP 十进制 运算功能
0000 0 Result = X << Y 逻辑左移 (Y 取低五位) Result2=0
0001 1 Result = X >>>Y 算术右移 (Y 取低五位) Result2=0
0010 2 Result = X >> Y 逻辑右移 (Y 取低五位) Result2=0
0011 3 Result = (X * Y)[31:0]; Result2 = (X * Y)[63:32] 无符号乘法
0100 4 Result = X/Y; Result2 = X%Y 无符号除法
0101 5 Result = X + Y (Set OF/UOF)
0110 6 Result = X - Y (Set OF/UOF)
0111 7 Result = X & Y 按位与
1000 8 Result = X or Y 按位或
1001 9 Result = X⊕Y 按位异或
1010 10 Result = ~(X orY) 按位或非
1011 11 Result = (X < Y) ? 1 : 0 符号比较
1100 12 Result = (X < Y) ? 1 : 0 无符号比较

电路测试

电路框架提供了自动测试子电路,也可以自行评分,具体测试电路如下图所示:

完成实验后,利用文本编辑工具打开 alu.circ ,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
    
  1. CNT X Y AluOp Result Result2 OF UOF EQ
  2. 00 ff00ffff 00000007 0 807fff80 00000000 0 0 0
  3. 01 ff00ffff ff00ffff 0 80000000 00000000 0 0 1
  4. 02 ff000000 00000018 1 ffffffff 00000000 0 0 0
  5. 03 ff00ffff 00000018 2 000000ff 00000000 0 0 0
  6. 04 7fffffff 00000010 3 fffffff0 00000007 0 0 0
  7. 05 fffffffe 00000010 4 0fffffff 0000000e 0 0 0
  8. 06 0000ffff 00000080 5 0001007f 00000000 0 0 0
  9. 07 ffffffff ffffffff 5 fffffffe 00000000 0 1 1
  10. 08 7fffffff 0000000c 5 8000000b 00000000 1 0 0
  11. 09 80000000 80000000 5 00000000 00000000 1 1 1
  12. 0a 7ff00000 0000007c 6 7fefff84 00000000 0 0 0
  13. 0b 0000007c 7ff00000 6 8010007c 00000000 0 1 0
  14. 0c 80000000 00000001 6 7fffffff 00000000 1 0 0
  15. 0d 7fffffff fffffffe 6 80000001 00000000 1 1 0
  16. 0e ff00ffff 00000018 7 00000018 00000000 0 0 0
  17. 0f 7fffffff 00000074 8 7fffffff 00000000 0 0 0

资料 4.9 元

代做6.9元

qq:3303847739。

备注“运算器设计(HUST)

24-48小时内回复提取码

标签: 24bc08集成电路ic

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台