【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

2024-02-27 1057阅读

温馨提示:这篇文章已超过402天没有更新,请注意相关的内容是否还可用!

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

目录

一、实验目的

二、实验要求

三、实验说明

四、实验步骤

实验一 不带进位位逻辑或运算实验

实验二 不带进位位加法运算实验

实验三  带进位的加法运算实验

实验四  数据输入通用寄存器

实验五  寄存器内容无进位位左移实验

实验六  寄存器内容无进位位右移实验

实验七  32位ALU实验

实验八  32位寄存器实验

实验九   32位寄存器组实验

实验十  32位程序计数器 PC实验 

实验十一   中断控制实验

📝总结


一、实验目的

1、掌握运算器的数据传输方式。

2、掌握74LS181的功能和应用。

3、学习并掌握利用FPGA器件通过原理图进行算术逻辑单元的设计。

二、实验要求

1、完成32位不带进位位算术、逻辑运算实验。按照实验步骤完成实验项目,了解算术逻辑运算单元的运行过程。

2、通过原理图配置EP2C5的内部电路结构,使其替代分离的算术逻辑运算单元的设计。

三、实验说明

1、ALU单元实验构成

(1)运算器由8片74LS181构成32位字长的ALU单元。

(2)8片74LS374作为数据锁存器,8片74LS244作为数据驱动器,8个8芯插座作为数据输入端,可通过长8芯扁平电缆,把数据输入端连接到二进制开关上。

运算器的数据输出由4片74LS244(输出缓冲器)来控制,4个8芯插座作为数据输出端,由开关控制显示32位输出结果。可通过8芯扁平电缆线把数据输出端连接到微指令LED灯上。

2、ALU单元的工作原理

CLK有上升沿时,把来自数据总线的两路32位数据打入输入锁存器。

算术逻辑运算单元的核心是由8片74LS181组成,它可以进行2个32位二进制数的算术逻辑运算,74LS181的各种工作方式可通过设置其控制信号来实现(S0、S1、S2、S3、M、CN)。当实验者正确设置了74LS181的各个控制信号,74LS181会运算数据锁存器DR1(对应通道1数据)、DR2(对应通道2的数据)内的数据。由于DR1、DR2已经把数据锁存,只要74LS181的控制信号不变,那么74LS181的输出数据也不会发生改变。

输出缓冲器采用4片74LS244,当控制信号ALU-O为低电平时,两片74LS244导通,把74LS181的运算低位结果输出到数据总线,并在微指令单元LED上显示。

3、控制信号说明

信号名称

作  用

有效电平

CLK

寄存器工作脉冲

上升沿有效

S0~S3

74LS181工作方式选择

见附表

M

选择逻辑或算术运算

高电平为逻辑运算,低电平为算术运算

CN

有无进位输入

高电平有效

CLK

进位寄存器的工作脉冲

上升沿有效

ALU-OUT

74LS181计算结果16位输出至总线

低电平有效

四、实验步骤

实验一 不带进位位逻辑或运算实验

将右板中间的计算机组成原理连线板拔下,换成8位/16位/32位计算机组成原理与系统结构 扩展板。

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

把IO1(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J2插座相连(对应二进制开关S9~S16);把IO2(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J4插座相连(对应二进制开关S17~S24);把IO9(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J5插座相连(对应二进制开关S25~S32);把IO10(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J10插座相连(对应二进制开关S40~S47)。(S9~S16,S17~S24,S25~S32,S40~S47为32位数据输入通道1)。

把IO5(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J3插座相连(对应二进制开关S1~S8);把IO6(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J13插座相连(对应二进制开关S33~S48);把IO13(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J14插座相连(对应二进制开关S49~S56);把IO14(8芯的盒型插座,FPGA扩展实验区)与母板上的二进制开关单元中J01插座相连(对应二进制开关H16~H23)。(S1~S8,S33~S48,S49~S56,H16~H23为32位数据输入通道2)。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO15(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

把IO188(CLK)用连线连到脉冲单元的PLS1上作为输入寄存器控制时钟信号。

把IO191(ALU-O)用连线连到二进制单元的H6上作为输出允许控制信号。

把IO193(S3), IO197(S2), IO168(S1), IO164(S0)用连线分别连到二进制单元的H5,H4,H3,H2上用于控制74LS181的工作方式。

把IO162(M)用连线连到二进制单元的H1上用于控制74LS181的算术运算还是逻辑运算。

把IO160(CN)用连线连到二进制单元的H0上用于控制74LS181的带进位还是不带进位。

FPGA扩展板接口

左侧板接口

I01(输入A[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入A[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入A[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入A[7:0]位)

J10(扩展板二进制开关S40-S47)

I05(输入B[31:24]位)

J1(扩展板二进制开关S1-S8)

I06(输入B[23:16]位)

 J13(扩展板二进制开关S33-S48)

IO13(输入B[15:8]位)

J14(扩展板二进制开关S49-S56)

IO14(输入B[7:0]位)

J01(母板二进制开关H16-H23)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

IO188(输入寄存器时钟CLK)

时序单元PLS1

IO191(输出使能ALU-O)

母板二进制开关H6

IO193(S3), IO197(S2), IO168(S1), IO164(S0)

母板二进制开关H5,H4,H3,H2

IO162(工作模式选择M)

母板二进制开关H1

IO160(进位模式选择CN)

母板二进制开关H0

把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验1 不带进位位逻辑或运算\alu32文件夹中的alu32.sof程序下载到FPGA。

二进制开关作为数据输入通道1,置33333333H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

0

1

1

0

0

1

1

33H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

0

1

1

0

0

1

1

33H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

0

1

1

0

0

1

1

33H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

0

1

1

0

0

1

1

33H

二进制开关作为数据输入通道2,置55555555H(对应开关如下表)。

S1

S2

S3

S4

S5

S6

S7

S8

数据总线值

B31

B30

B29

B28

B27

B26

B25

B24

B[31:24]位数据

0

1

0

1

0

1

0

1

55H

S33

S34

S35

S36

S37

S38

S39

S48

数据总线值

B23

B22

B21

B20

B19

B18

B17

B16

B[23:16]位数据

0

1

0

1

0

1

0

1

55H

S49

S50

S51

S52

S53

S54

S55

S56

数据总线值

B15

B14

B13

B12

B11

B10

B9

B8

B[15:8]位数据

0

1

0

1

0

1

0

1

55H

H23

H22

H21

H20

H19

H18

H17

H16

数据总线值

B7

B6

B5

B4

B3

B2

B1

B0

B[7:0]位数据

0

1

0

1

0

1

0

1

55H

置各控制信号如下:

H6

H5

H4

H3

H2

H1

H0

ALU-0

S3

S2

S1

S0

M

CN

0

1

1

1

0

1

0

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿,把33333333H以及55555555H打入输入数据锁存器。

经过74LS181的计算,把运算结果(F=A或B)输出到数据总线上,数据总线上的LED灯显示灯显示77777777H。

实验二 不带进位位加法运算实验

将右板中间的计算机组成原理连线板拔下,换成8位/16位/32位计算机组成原理与系统结构 扩展板。

把IO1(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J2插座相连(对应二进制开关S9~S16);把IO2(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J4插座相连(对应二进制开关S17~S24);把IO9(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J5插座相连(对应二进制开关S25~S32);把IO10(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J10插座相连(对应二进制开关S40~S47)。(S9~S16,S17~S24,S25~S32,S40~S47为32位数据输入通道1)。

把IO5(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J1插座相连(对应二进制开关S1~S8);把IO6(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J13插座相连(对应二进制开关S33~S48);把IO13(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J14插座相连(对应二进制开关S49~S56);把IO14(8芯的盒型插座,FPGA扩展实验区)与母板上的二进制开关单元中J01插座相连(对应二进制开关H16~H23)。(S1~S8,S33~S48,S49~S56,H16~H23为32位数据输入通道2)。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO15(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

把IO188(CLK)用连线连到脉冲单元的PLS1上作为输入寄存器控制时钟信号。

把IO191(ALU-O)用连线连到二进制单元的H6上作为输出允许控制信号。

把IO193(S3), IO197(S2), IO168(S1), IO164(S0)用连线分别连到二进制单元的H5,H4,H3,H2上用于控制74LS181的工作方式。

把IO162(M)用连线连到二进制单元的H1上用于控制74LS181的算术运算还是逻辑运算。

把IO160(CN)用连线连到二进制单元的H0上用于控制74LS181的带进位还是不带进位。

把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验2 不带进位加法运算\alu32文件夹中的alu32.sof程序下载到FPGA。

二进制开关作为数据输入通道1,置33333333H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

0

1

1

0

0

1

1

33H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

0

1

1

0

0

1

1

33H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

0

1

1

0

0

1

1

33H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

0

1

1

0

0

1

1

33H

二进制开关作为数据输入通道2,置55555555H(对应开关如下表)。

S1

S2

S3

S4

S5

S6

S7

S8

数据总线值

B31

B30

B29

B28

B27

B26

B25

B24

B[31:24]位数据

0

1

0

1

0

1

0

1

55H

S33

S34

S35

S36

S37

S38

S39

S48

数据总线值

B23

B22

B21

B20

B19

B18

B17

B16

B[23:16]位数据

0

1

0

1

0

1

0

1

55H

S49

S50

S51

S52

S53

S54

S55

S56

数据总线值

B15

B14

B13

B12

B11

B10

B9

B8

B[15:8]位数据

0

1

0

1

0

1

0

1

55H

H23

H22

H21

H20

H19

H18

H17

H16

数据总线值

B7

B6

B5

B4

B3

B2

B1

B0

B[7:0]位数据

0

1

0

1

0

1

0

1

55H

置各控制信号如下:

H6

H5

H4

H3

H2

H1

H0

ALU-0

S3

S2

S1

S0

M

CN

0

1

0

0

1

0

1

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿,把33333333H及55555555H打入输入数据锁存器。

经过74LS181的计算,把运算结果(F=A+B)输出到数据总线上,数据总线上的LED显示灯应该显示88888888H。

附74LS181的逻辑(改变程序可设置不同的工作方式)

方式

M=1逻辑运算

M=0算术运算

S3 S2 S1 S0

逻辑运算

CN=1(无进位)

CN=0(有进位)

0000

F=/A

F=A

F=A加1

0001

F=/(A+B)

F=A+B

F=(A+B)加1

0010

F=/A B

F=A+/B

F=(A+/B)加1

0011

F=0

F=减1(2的补)

F=0

0100

F=/(AB)

F=A加A/B

F=A加A/B加1

0101

F=/B

F=(A+B)加A/B

F=(A+B)加A/B加1

0110

F=A⊕B

F=A减B减1

F=A减B

0111

F=A /B

F=A/B减1

F=A/B

1000

F=/A+B

F=A 加AB

F=A 加AB加 1

1001

F= /(A⊕B )

F=A加B

F=A加B加1

1010

F=B

F=(A+/B)加AB

F=(A+/B)加AB加1

1011

F=AB

F=AB减1

F=AB

1100

F=1

F=A加 A

F=A加 A 加1

1101

F=A+/B

F=(A+B) 加 A

F=(A+B) 加 A 加1

1110

F=A+B

F=(A+/B)加A

F=(A+/B)加A加1

1111

F=A

F=A减1

F=A

实验三  带进位的加法运算实验

进位电路与通用寄存器、ALU有着非常紧密的关系,算术逻辑单元的进位输出和通用寄存器带进位移动都会影响进位寄存器中的结果。

若实验者在做算术逻辑实验时,选择了算术运算方式,当ALU的计算结果输出至总线时,在CCK上来一个上升沿,将把74LS181的进位输出位(Cn+4)上的值(为了统一进位标识,1表示有进位,0表示无进位),打入进位寄存器中,并且有进位时LED(CY)发光。

FPGA扩展板接口

左侧板接口

I01(输入A[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入A[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入A[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入A[7:0]位)

J10(扩展板二进制开关S40-S47)

I05(输入B[31:24]位)

J1(扩展板二进制开关S1-S8)

I06(输入B[23:16]位)

 J13(扩展板二进制开关S33-S48)

IO13(输入B[15:8]位)

J14(扩展板二进制开关S49-S56)

IO14(输入B[7:0]位)

J01(母板二进制开关H16-H23)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

IO188(输入寄存器时钟CLK)

时序单元PLS1

IO191(输出使能ALU-O)

母板二进制开关H6

IO193(S3), IO197(S2), IO168(S1), IO164(S0)

母板二进制开关H5,H4,H3,H2

IO162(工作模式选择M)

母板二进制开关H1

IO160(进位模式选择CN)

母板二进制开关H0

3.1 控制信号说明

信号名称

作  用

有效电平

CLK

输入寄存器工作脉冲

上升沿有效

S0~S3

74LS181工作方式选择

见附表

M

选择逻辑或算术运算

低电平为逻辑运算,高电平为算术运算

CN

有无进位输入

高电平有效

ALU-OUT

74LS181计算结果16位输出至总线

低电平有效

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

3.2实验步骤

将右板中间的计算机组成原理连线板拔下,换成8位/16位/32位计算机组成原理与系统结构 扩展板。

把IO1(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J2插座相连(对应二进制开关S9~S16);把IO2(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J4插座相连(对应二进制开关S17~S24);把IO9(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J5插座相连(对应二进制开关S25~S32);把IO10(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J10插座相连(对应二进制开关S40~S47)。(S9~S16,S17~S24,S25~S32,S40~S47为32位数据输入通道1)。

把IO5(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J1插座相连(对应二进制开关S1~S8);把IO6(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J13插座相连(对应二进制开关S33~S48);把IO13(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J14插座相连(对应二进制开关S49~S56);把IO14(8芯的盒型插座,FPGA扩展实验区)与母板上的二进制开关单元中J01插座相连(对应二进制开关H16~H23)。(S1~S8,S33~S48,S49~S56,H16~H23为32位数据输入通道2)。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO15(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

把IO188(CLK)用连线连到脉冲单元的PLS1上作为输入寄存器控制时钟信号。

把IO191(ALU-O)用连线连到二进制单元的H6上作为输出允许控制信号。

把IO193(S3), IO197(S2), IO168(S1), IO164(S0)用连线分别连到二进制单元的H5,H4,H3,H2上用于控制74LS181的工作方式。

把IO163(M)用连线连到二进制单元的H1上用于控制74LS181的算术运算还是逻辑运算。

把IO162(CN)用连线连到二进制单元的H0上用于控制74LS181的带进位还是不带进位。

把IO161(CCK)用连线连到连到脉冲单元的PLS4上。

把IO160(CY)用连线连到母板微指令单元M15上,作为进位输出指示。

FPGA扩展板接口

左侧板接口

I01(输入A[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入A[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入A[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入A[7:0]位)

J10(扩展板二进制开关S40-S47)

I05(输入B[31:24]位)

J1(扩展板二进制开关S1-S8)

I06(输入B[23:16]位)

 J13(扩展板二进制开关S33-S48)

IO13(输入B[15:8]位)

J14(扩展板二进制开关S49-S56)

IO14(输入B[7:0]位)

J01(母板二进制开关H16-H23)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

IO188(输入寄存器时钟CLK)

时序单元PLS1

IO191(输出使能ALU-O)

母板二进制开关H6

IO193(S3), IO197(S2), IO168(S1), IO164(S0)

母板二进制开关H5,H4,H3,H2

IO163(工作模式选择M)

母板二进制开关H1

IO162(进位模式选择CN)

母板二进制开关H0

IO161(CCK)

时序单元PLS4

IO160(进拉输出CY)

微指令单元M15

将右板中间的计算机组成原理连线板拔下,把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验3 带进位位的加法运算\alu32文件夹中的alu32.sof程序下载到FPGA。

二进制开关作为数据输入通道1,置65656565H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

1

1

0

0

1

0

1

65H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

1

1

0

0

1

0

1

65H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

1

1

0

0

1

0

1

65H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

1

1

0

0

1

0

1

65H

二进制开关作为数据输入通道2,置A7A7A7A7H(对应开关如下表)。

S1

S2

S3

S4

S5

S6

S7

S8

数据总线值

B31

B30

B29

B28

B27

B26

B25

B24

B[31:24]位数据

1

0

1

0

0

1

1

1

A7H

S33

S34

S35

S36

S37

S38

S39

S48

数据总线值

B23

B22

B21

B20

B19

B18

B17

B16

B[23:16]位数据

1

0

1

0

0

1

1

1

A7H

S49

S50

S51

S52

S53

S54

S55

S56

数据总线值

B15

B14

B13

B12

B11

B10

B9

B8

B[15:8]位数据

1

0

1

0

0

1

1

1

A7H

H23

H22

H21

H20

H19

H18

H17

H16

数据总线值

B7

B6

B5

B4

B3

B2

B1

B0

B[7:0]位数据

1

0

1

0

0

1

1

1

A7H

置各控制信号如下:

H6

H5

H4

H3

H2

H1

H0 

ALU-0

S3

S2

S1

S0

M

CN

0

1

0

0

1

0

1

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿的脉冲,把65656565H及A7A7A7A7H打入输入数据锁存器。

按脉冲单元中的PLS4脉冲按键,在CCK上产生一个上升沿,把74LS181的进位打入进位寄存器中,在有进位的情况下,CY指示灯M15亮,并且数据总线上的LED显示灯应该显示0D0D0D0CH。


实验四  数据输入通用寄存器

一、实验目的

了解通用32位寄存器的组成和硬件电路,利用通用寄存器实现数据的置数、左移、右移等功能。

二、实验要求

按照实验步骤完成实验项目, 实现通用寄存器移位操作。了解通用寄存器单元的工作原理运用。

三、实验说明

1、寄存器实验构成:

通用寄存器由4片74LS198构成32位字长的寄存器单元。四个8芯插座作为数据输入端,可通过8芯数据电缆,把数据输入端连接到二进制开关总线上。

数据输出由4片74LS244(输出缓冲器)来控制。用32个FPGA IO作为数据输出端,通过32根数据线连接到微指令的LED灯上。

2、通用寄存器单元的工作原理

通用寄存器单元的核心部件为4片74LS198,它具有锁存、左移、右移、保存等功能。各个功能都由X1、X2信号和工作脉冲CLK来决定。X0=1、X1=1,CLK有上升沿时,把总线上的数据打入通用寄存器。可通过设置X0、X1来指定通用寄存器工作方式。

输出缓冲器采用74LS244,把通用寄存器内容输出到总线。

3、控制信号说明

信号名称

作      用

有效电平

CLK

通用寄存器工作脉冲

上升沿有效

四、实验步骤

将右板中间的计算机组成原理连线板拔下,换成8位/16位/32位计算机组成原理与系统结构 扩展板。

把IO1(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J2插座相连(对应二进制开关S9~S16);把IO2(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J4插座相连(对应二进制开关S17~S24);把IO9(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J5插座相连(对应二进制开关S25~S32);把IO10(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J10插座相连(对应二进制开关S40~S47)。(S9~S16,S17~S24,S25~S32,S40~S47为32位数据输入)。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO13(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

将FPGA扩展板接口IO188,用数据线与左板二进制开关单元PLS1连接,对应74LS198CLK时钟控制信号。

将FPGA扩展板接口IO193,用数据线与扩展板H57连接。

本实验增加了数码管显示输入输出寄存器功能,若要数码管与二进制LED灯同时显示,请进行如下连接:

将将FPGA扩展板接口IO5与扩展板J9相连,IO6与J6相连,IO13与J7相连,IO14与J8相连。

实验连线表如下:

FPGA扩展板接口

左侧板接口

I01(输入A[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入A[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入A[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入A[7:0]位)

J10(扩展板二进制开关S40-S47)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

IO5(输入数码管数据)

J9

IO6(输出数码管扫描选通)

J6

IO13(输出数码管数据)

J7

IO14(输入数码管扫描选通)

J8

IO188(输入寄存器时钟CLK)

时序单元PLS1

IO193(数码管复位)

H57

把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验4 数据输入通用寄存器文件夹中的regist32.sof程序下载到CPLD。

二进制开关作为数据输入通道,置42424242H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

1

0

0

0

0

1

0

42H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

1

0

0

0

0

1

0

42H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

1

0

0

0

0

1

0

42H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

1

0

0

0

0

1

0

42H

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿,把42424242H打入通用寄存器,此时微指令总线上的指示灯应该显示为42424242H。

实验五  寄存器内容无进位位左移实验

一、通用寄存器单元的工作原理:

通用寄存器单元的核心部件为4片74LS198,它具有锁存、左移、右移、保存等功能。各个功能都由X1、X2信号和工作脉冲CLK来决定。X0=1、X1=1,CLK有上升沿时,把总线上的数据打入通用寄存器。可通过设置X0、X1来指定通用寄存器工作方式。

输出缓冲器采用74LS244,,把通用寄存器内容输出到总线。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO15(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

将FPGA扩展板接口IO188,用数据线与右板二进制开关单元PLS1连接,对应74LS198CLK时钟控制信号。

将FPGA扩展板接口IO191,用数据线与右板二进制开关单元H3连接,对应74LS198输出控制信号。

将FPGA扩展板接口IO193,用数据线与右板二进制开关单元H2连接,对应74LS198X1控制信号。

将FPGA扩展板接口IO197,用数据线与右板二进制开关单元H1连接,对应74LS198X0控制信号。

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

将FPGA扩展板接口IO160,用数据线与左板二进制开关单元H0连接,对应74LS198CLR清0控制信号。

将FPGA扩展板接口IO162,用数据线与H57连接,对应74LS198CLK时钟控制信号。

实验连线表如下:

FPGA扩展板接口

左侧板接口

I01(输入[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入[7:0]位)

J10(扩展板二进制开关S40-S47)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

I0188(寄存器工作脉冲)

时序单元PLS1

I0191(OUT)

H3(二进制开关)

I0193(X1)

H2(二进制开关)

I0197(X0)

H1(二进制开关)

I0160(CLR)

H0(二进制开关)

IO162(nRST)

H57

把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验5 寄存器内容无进位位左移文件夹中的regist32.sof程序下载到FPGA。

二进制开关作为数据输入通道,置42424242H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

1

0

0

0

0

1

0

42H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

1

0

0

0

0

1

0

42H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

1

0

0

0

0

1

0

42H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

1

0

0

0

0

1

0

42H

置各控制信号如下:

H3

H2

H1

H0

OUT

X1

X0

CLREN

0

1

1

1

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿,把42424242H打入通用寄存器,此时微指令总线上的指示灯应该显示为42424242H,

再改变各控制信号如下:

H3

H2

H1

H0

OUT

X1

X0

CLREN

0

0

1

1

按脉冲单元中的PLS1脉冲按键,此时总线上的LED指示灯应该显示84848484H。

再按脉冲单元中的PLS1脉冲按键,使通用寄存器中的值左移,此时总线上的LED指示灯应该显示为09090909H。若一直按PLS1,在总线上将看见数据循环左移的现象。

实验六  寄存器内容无进位位右移实验

一、通用寄存器单元的工作原理:

通用寄存器单元的核心部件为4片74LS198,它具有锁存、左移、右移、保存等功能。各个功能都由X1、X2信号和工作脉冲CLK来决定。X0=1、X1=1,CLK有上升沿时,把总线上的数据打入通用寄存器。可通过设置X0、X1来指定通用寄存器工作方式。

输出缓冲器采用74LS244,,把通用寄存器内容输出到总线。

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)

控制信号说明

信号名称

作      用

有效电平

X0、X1

通用寄存器的工作模式

见附表

OUT

16位输出控制信号

低电平

CLK

通用寄存器工作脉冲

上升延有效

二、实验步骤

将右板中间的计算机组成原理连线板拔下,换成8位/16位/32位计算机组成原理与系统结构 扩展板。

把IO1(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J2插座相连(对应二进制开关S9~S16);把IO2(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J4插座相连(对应二进制开关S17~S24);把IO9(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J5插座相连(对应二进制开关S25~S32);把IO10(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的二进制开关单元中J10插座相连(对应二进制开关S40~S47)。(S9~S16,S17~S24,S25~S32,S40~S47为32位数据输入)。

把IO7(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J3插座相连(对应LED灯,L17-L24);把IO8(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上J11插座相连(对应LED灯L42-L57);把IO15(8芯的盒型插座,FPGA扩展实验区)与计算机组成原理与系统结构扩展板上的J12插座相连(对应LED灯,L58-L65),把IO16(8芯的盒型插座,FPGA扩展实验区)与母板上微指令单元M04插座相连(对应微指令LED灯L1-L8),扩展板上L17-L24,L42-L57,L58-L65及母板上L1-L16,为32位数据输出。

将FPGA扩展板接口IO188,用数据线与右板二进制开关单元PLS1连接,对应74LS198CLK时钟控制信号。

将FPGA扩展板接口IO191,用数据线与右板二进制开关单元H3连接,对应74LS198输出控制信号。

将FPGA扩展板接口IO193,用数据线与右板二进制开关单元H2连接,对应74LS198X1控制信号。

将FPGA扩展板接口IO197,用数据线与右板二进制开关单元H1连接,对应74LS198X0控制信号。

将FPGA扩展板接口IO160,用数据线与左板二进制开关单元H0连接,对应74LS198CLR清0控制信号。

将FPGA扩展板接口IO162,用数据线与H57连接,对应74LS198CLK时钟控制信号。实验连线表如下:

FPGA扩展板接口

左侧板接口

I01(输入[31:24]位)

J2(扩展板二进制开关S9-S16)

I02(输入[23:16]位)

 J4(扩展板二进制开关S17-S24)

IO9(输入[15:8]位)

J5(扩展板二进制开关S25-S32)

IO10(输入[7:0]位)

J10(扩展板二进制开关S40-S47)

I07(输出[31:24]位)

J3(扩展板L17-L24)

I08(输出[23:16]位)

J11(扩展板L42-L57)

IO15(输出[15:8]位)

J12(扩展板L58-L65)

IO16(输出[7:0]位)

M04(母板L1-L8)

I0188(寄存器工作脉冲)

时序单元PLS1

I0191(OUT)

H3(二进制开关)

I0193(X1)

H2(二进制开关)

I0197(X0)

H1(二进制开关)

I0160(CLR)

H0(二进制开关)

IO162(nRST)

H57

把ALTERA下载器一端连到微机的并口,一端连接到FPGA扩展区的JTAG口,打开实验系统电源,把计算机组成原理32位\实验6 寄存器内容无进位位右移文件夹中的regist32.sof程序下载到FPGA。

二进制开关作为数据输入,置42424242H(对应开关如下表)。

S9

S10

S11

S12

S13

S14

S15

S16

数据总线值

A31

A30

A29

A28

A27

A26

A25

A24

A[31:24]位数据

0

1

0

0

0

0

1

0

42H

S17

S18

S19

S20

S21

S22

S23

S24

数据总线值

A23

A22

A21

A20

A19

A18

A17

A16

A[23:16]位数据

0

1

0

0

0

0

1

0

42H

S25

S26

S27

S28

S29

S30

S31

S32

数据总线值

A15

A14

A13

A12

A11

A10

A9

A8

A[15:8]位数据

0

1

0

0

0

0

1

0

42H

S40

S41

S42

S43

S44

S45

S46

S47

数据总线值

A7

A6

A5

A4

A3

A2

A1

A0

A[7:0]位数据

0

1

0

0

0

0

1

0

42H

置各控制信号如下:

H3

H2

H1

H0

OUT

X1

X0

CLREN

0

1

1

1

按脉冲单元中的PLS1脉冲按键,在CLK上产生一个上升沿,把42424242H打入通用寄存器,此时微指令总线上的指示灯应该显示为42424242H,

再改变各控制信号如下:

H3

H2

H1

H0

OUT

X1

X0

CLREN

0

1

0

1

按脉冲单元中的PLS1脉冲按键,此时总线上的LED指示灯应该显示为21212121H。

按脉冲单元中的PLS1脉冲按键,使通用寄存器中的值右移,此时总线上的LED指示灯应该显示为90909090H。若一直按PLS1,在总线上将看见数据循环右移的现象。

附:通用寄存器的逻辑

通用寄存器(8位并入并出移位寄存器)

CLR

X1   X0

CLK

SL  SR

QA~AH

0

X    X

X

X   X

全 0

1

X    X

0

X   X

保持不变

1

1     1

上升沿

X   X

并行接数A~H

1

0     1

上升沿

X   0

右移 移入0

1

0     1

上升沿

X   1

右移 移入1

1

1     0

上升沿

0   X

左移 移入0

1

1     0

上升沿

1   X

左移 移入1

实验七  32位ALU实验

一、实验要求

用扩展实验板上的开关做为输入,二进制开关及八段数码管做为输出。用VHDL语言编写程序下载到EP2C5Q08中实现32位模型机的ALU功能。

了解32位模型机中算术逻辑运算单元ALU的工作原理和实现方法。学习用VHDL语言描述硬件逻辑,学习使用EDA开发环境。

二、实验目的

32位ALU的VHDL:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY alu32 IS

PORT (

  A         : IN    STD_LOGIC_VECTOR(32 DOWNTO 1); 

  W         : IN    STD_LOGIC_VECTOR(32 DOWNTO 1);  

  S0        : IN    STD_LOGIC;                     

  S1        : IN    STD_LOGIC;                     

  S2        : IN    STD_LOGIC;                    

  D         : OUT   STD_LOGIC_VECTOR(32 DOWNTO 1); 

  CIn       : IN    STD_LOGIC;                    

  COut      : OUT   STD_LOGIC                      

);

END alu32;

ARCHITECTURE behv OF alu32 IS

SIGNAL T: STD_LOGIC_VECTOR(33 DOWNTO 1);    

BEGIN

    T

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]