1位全加器

一、1位全加器

1. 基本原理

真值表:
在这里插入图片描述

二、绘制原理图实现1位全加器

1. 半加器实现

  1. 创建工程文件,并勾选所需型号芯片
    在这里插入图片描述
  2. File->New,进入后选择Block Diagram/Schematic File
    在这里插入图片描述
  3. 选择原件,实现半加器需要 一个and2 一个xor原件,后进行电路连接
    在这里插入图片描述
  4. 保存文件,并通过RTL Viewer查看线路效果图
    在这里插入图片描述
  5. 仿真测试半加器是否正确
    • 新建向量波形文件 在这里插入图片描述
    • 添加信号,及所设引脚 在这里插入图片描述
    • 编辑信号,并进行仿真操作 在这里插入图片描述
      半加器运行效果

2. 全加器实现

  1. 全加器的实现是基于半加器模块实现,通过多个半加器原件实现全加器,需要将半加器原件文件设置为可调
    File-> Create/Update→CreateSymbolFilesforCurrentFile将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
    在这里插入图片描述
  2. 绘制全加器原理图
    • 新建原理图绘制 File->New -> Block Diagram/Schematic File
      在这里插入图片描述
    • 勾选原件,此时可以使用已经绘制的半加器原件,进行使用
      在这里插入图片描述
    • 勾选所需原件,绘制全加器原理图 在这里插入图片描述
    • 保存原理图,并进行测试是否存在问题,并通过RTL 查看器件电路图 在这里插入图片描述
  3. 仿真实现
    • 创建波形文件,并添加信号 在这里插入图片描述
    • 编辑信号,并进行仿真操作,查看波形
      功能仿真: 在这里插入图片描述
      时序仿真 在这里插入图片描述

三、Verilog实现一位全加器

  1. 新建工程项目,并建立Verilog文件
    在这里插入图片描述
  2. 编写Verilog一位全加器,并运行查看电路图
module Fulladder(
  input ain,bin,cin,//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位
  output reg cout,sum//输出信号,cout表示向高位的进位,sum表示本位的相加和
  
);
reg s1,s2,s3;
always @(ain or bin or cin) begin
  sum=(ain^bin)^cin;
  s1=ain&cin;
  s2=bin&cin;
  s3=ain&bin;
  cout=(s1|s2)|s3;
end 
endmodule

在这里插入图片描述
3. 新建波形文件,添加信号并进行仿真测试
在这里插入图片描述

  • 功能仿真 在这里插入图片描述
  • 时序仿真 在这里插入图片描述

四、硬件测试

1. 原理图测试

  1. 设置原理图为顶层文件,方便后续调用
    在这里插入图片描述
  2. 配置引脚
    3个SW作为输入信号,通过两个LED灯作为输出信号
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 引脚配置完成后,需要进行重新编译,才能将引脚绑定在所对应的位置
    在这里插入图片描述
  4. 下载
    在这里插入图片描述
  5. 硬件验证
    • 输入信号1 0 1
      进位端为1,和为0在这里插入图片描述
    • 输入信号1 1 1
      进位端为1,和为1在这里插入图片描述
    • 输入信号0 0 1
      进位端为0,和为1在这里插入图片描述

2. Verilog测试

  1. 同理配置引脚同原理图引脚相同
    在这里插入图片描述
  2. 执行同操作,实现全加器
  3. 实物操作与验证

五、总结

  1. 硬件测试过程中,通过对相应引脚的绑定,测试,到电路测试运行,可以清楚实验并完成全加器的测试
  2. 通过本次实验中,学习到加法器的实现,可以通过底层逻辑向上逐级实现,通过个人绘制底层半加器,并通过逻辑电路进行组合仿真实现一位全加器,进一步验证全加器功能

参考

FPGA——1位全加器的实现

  • 12
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值