FPGA设计入门——一位全加速器的实现

阅读: 评论:0

FPGA设计入门——一位全加速器的实现

FPGA设计入门——一位全加速器的实现

目录

      • 一、认识全加器
        • 1、半加器
        • 2、1位全加器
      • 二、输入原理图实现1位加法器
        • 1、半加器原理图输入
        • 2、全加器原理图输入
      • 三、Verilog实现1位加法器
      • 四、烧录测试
      • 参考链接

一、认识全加器

1、半加器
  1. 半加器的定义
    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路
  2. 半加器的真值表
    A,B表示二进制数,C表示半加进位,S表示半加和
  3. 输出表达式
    S = A ˉ B + A B ˉ = A ⊕ B
    C = A B
  4. 逻辑电路图
2、1位全加器
  1. 1位全加器的真值表
    Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
  2. 输出表达式
    S u m = A i n ⊕ B i n ⊕ C i n
    C o u t = ( A i n ⊕ B i n ) ⋅ C i n + A i n B i n = ( A i n & B i n ) ∣ ( B i n & C i n ) ∣ ( A i n & C i n )
  3. 逻辑图

二、输入原理图实现1位加法器

创建工程过程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。

1、半加器原理图输入
  1. 绘制过程实现
    首先选择File->New,进入后选择Block Diagram/Schematic File

    选择元件

    添加输入输出,完成效果

    保存文件,并编译
    通过tool->Netlist Viewers->RTL Viewer,查看电路图
  2. 仿真实现
    创建一个向量波形文件,选择菜单项 File→New->VWF

    添加信号

    编辑信号

    保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

    功能仿真结果

    时序仿真结果
2、全加器原理图输入

利用半加器元件实现全加器

  1. 将设计项目设置为可调用的元件
    在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
  2. 绘制过程实现
    首先选择File->New,进入后选择Block Diagram/Schematic File

    选择元件

    添加输入输出,完成效果

    保存文件,并编译
    通过tool->Netlist Viewers->RTL Viewer,查看电路图
  3. 仿真实现
    创建一个向量波形文件,选择菜单项 File→New->VWF

    添加信号

    编辑信号

    保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

    功能仿真结果

    时序仿真结果
  4. 硬件实操
    选择目标芯片


    引脚绑定
    注:这里需要参考具体的硬件外围设备分布,哪个输入输出对应哪个引脚
    比如这里我将ain,bin,cin对应了我这里的硬件的三个拨码开关,cout和sum对应两个led灯


    再编译,将引脚真正绑定

    绑定硬件
    连接设备:
    将USB Blaster下载器一端连接电脑,另一端与开发板上的JTAG接口相连接;然后连接开发板电源线,并打开电源开关

    这里就可以设置连接的硬件及烧录程序了

三、Verilog实现1位加法器

  1. 创建Verilog文件
  2. 代码实现
module full_adder(//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位input ain,bin,cin,//输出信号,cout表示向高位的进位,sum表示本位的相加和output reg cout,sum);
reg s1,s2,s3;
always @(ain or bin or cin) beginsum=(ain^bin)^cin;//本位和输出表达式s1=ain&cin;s2=bin&cin;s3=ain&bin;cout=(s1|s2)|s3;//高位进位输出表达式
end
endmodule

保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图

3. 仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF

添加信号

编辑信号

保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

功能仿真结果

时序仿真结果

四、烧录测试

芯片引脚配置表


输入原理图

  1. 将设计项目设置为顶层文件
    选中对应的设计文件
  2. 配置引脚
    使用3个SW作为输入信号,2个LED作为输出信号

    原理图如下
  3. 下载
  4. 结果效果
    通过拨动SW,观察LED的亮灭的效果,发现SW开表示1,关表示0,LED亮表示1,灭表示0。最终,验证的结果为跟其真值表相吻合。

参考链接

Verilog全加器
FPGA——1位全加器的实现

本文发布于:2024-01-28 06:35:58,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063949615502.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:加速器   入门   FPGA
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23