Quartus-II 9.0版本实现半加器,1位全加器,4位加法器的设计(数字逻辑课程实验1—半加器设计,1位全加器设计,4位加法其设计)

下面的设计均采用Quartus-II 9.0版本实现,包括时序仿真和功能仿真。

目录

一、半加器设计

1.实验原理

2.Quartus建立工程

3.实验结果展示

半加器原理图

半加器功能仿真结果图

半加器时序仿真结果图

4.补充说明

二、1位全加器设计

1.实验原理

2.Quartus建立工程

3.实验结果展示

全加器原理图

全加器功能仿真结果图

全加器时序仿真结果图

三、4位加法器设计

1.实验原理

2.Quartus建立工程

3.实验结果展示

4位加法器原理图

4位加法器功能仿真结果图

4位加法器时序仿真结果图


一、半加器设计

1.实验原理

半加器的设计由两个基本逻辑门元件组成,包括与门和逻辑门。

半加器的逻辑表达式:S = A ⊕B; C = A ● B;

就是S等于A异或B,C等于A与B。其中S是和值端口,C是进位端口,A、B是数据输入端口。

半加器真值表:

半加器真值表
ABSC
0000
0110
1010
1101

2.Quartus建立工程

(1)打开Quartus软件,开始一个新项目,依次点击File->New Project Wizard->next

 (2)选择项目保存位置以及命名,依次点击next

(3)根据设计要求选择相应的芯片类型,继续点击next ,直到Finish

 (4)依次点击New->Block Dicgram/Schematic File,进入原理图编辑窗口

 

 (5)双击原理图编辑窗口,选择相应电路元器件,这里我们依次选择异或门,与门,输入和输出引脚 ,按照设计好的原理图进行设计

​​​​

 (6)按照设计好的半加器原理图进行设计连线

 

 (7)设计完成后保存(这里必须保存,如果你直接用别人已经完成好的文件,则需要另存)

  

 (8)接下来使用编译工具进行编译,依次点击Processing->Compiler Tool->Start

 

 

(9)编译成功后得到如下结果

(10)接下来进行网表设计,依次点击File->New->Vector Waveform File,进入网表设计界面

(11)依次选择Edit->End Time设置截止时间,Edit->Insert->Insert Node Bus设置测试向量文件 

 

  

 

(12)设置输入引脚X,Y激励波形,设置完成后保存(这里也必须保存,与之前文件保存在同一目录下)

 

(13)接下来进行功能仿真,依次点击Processing->Simulator Tool,在模拟器窗口中必须点击Generate Functional Simulation Netlist,否则会出现报错

 

 

 

 

(14)接下来进行时序仿真,依次点击Processing->Simulator Tool

3.实验结果展示

半加器原理图

半加器功能仿真结果图

半加器时序仿真结果图

4.补充说明

注意,如出现如下报错,原因是没有在模拟器窗口中点击Generate Functional Simulation Netlist,解决方法是返回该窗口点击即可

二、1位全加器设计

1.实验原理

全加器的设计由两个半加器元件组成

2.Quartus建立工程

同半加器工程设计相同,这里省略

3.实验结果展示

全加器原理图

全加器功能仿真结果图

全加器时序仿真结果图

三、4位加法器设计

1.实验原理

4位加法器的设计由4个全加器元件组成

2.Quartus建立工程

同半加器工程设计相同,这里省略

3.实验结果展示

4位加法器原理图

4位加法器功能仿真结果图

4位加法器时序仿真结果图

 

 

  • 16
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我会尽力回答你的问题。 首先,我们需要了解全加器和全减器的原理。全加器有三个输入和两个输出,它们分别是两个加数和一个进,输出是一个和值和一个进。全减器也有三个输入和两个输出,它们分别是被减数、减数和一个借,输出是一个差值和一个借。 下面是一个1全加全减器的电路图: ![1-bit-full-adder-subtractor](https://i.imgur.com/wlG2QvK.png) 在Quartus-II软件中,我们可以使用VHDL语言来实现这个电路。下面是一个1全加全减器的VHDL代码: ```vhdl library ieee; use ieee.std_logic_1164.all; entity full_add_sub is port( a, b : in std_logic; cin, sub : in std_logic; s : out std_logic; cout, bout : out std_logic ); end full_add_sub; architecture Behavioral of full_add_sub is begin process(a, b, cin, sub) begin if sub = '1' then s <= a xor b xor cin; bout <= (not a) and b or ((not a) or b) and cin; cout <= (not s) xor cin; else s <= a xor b xor cin; cout <= a and b or a and cin or b and cin; bout <= (not s) and cin or (a and not b and not cin) or (not a and b and not cin); end if; end process; end Behavioral; ``` 在这个代码中,我们定义了一个名为`full_add_sub`的实体,它有五个输入和两个输出。输入分别是两个加数`a`和`b`,一个进`cin`,一个减法标志`sub`,输出分别是一个和值`s`和一个进/借`cout`/`bout`。 在实体的体系结构中,我们使用了一个进程来描述电路的行为。进程中的`if`语句根据减法标志`sub`的值来选择进行加法还是减法运算。在加法运算中,我们按照全加器的原理计算出和值`s`和进`cout`;在减法运算中,我们按照全减器的原理计算出差值`s`和借`bout`。 最后,我们需要在Quartus-II软件中创建一个新的项目,将这个VHDL代码添加到项目中,并进行编译和仿真。在仿真过程中,我们可以输入不同的加数、减数和进/借,观察输出结果是否符合预期。如果一切正常,我们可以将这个电路下载到FPGA芯片中,实现一个真实的1全加全减器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值