0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计:4位全加器代码以及仿真

fpga加油站 来源:fpga加油站 2023-05-23 10:00 次阅读

大家好!今天给大家分享的是4位全加器的代码以及仿真程序。俗话说:“千里之行,始于足下。”对于初学者来说, 加法器是fpga初学者入门必须掌握的内容。我们很多朋友在入门时囫囵吞枣,一些基础的东西没有掌握好,导致后面在做大型项目的时候漏洞百出。因此,大家在开始学习或者正在学习fpga的过程中,一定要把一些基础的模块理解透彻。我会给大家分享一些常见的模块代码以及仿真程序,希望能帮助到大家更好的去学习fpga!下面一起来看下4位加法器的代码以及仿真程序:

4位全加器代码:

module adder4(cout,sum,ina,inb,cin);
output    cout;
output   [3:0] sum;
input  [3:0] ina,inb;
input cin;
assign {cout,sum}=ina+inb+cin;
endmodule

4位全加器的仿真程序:

`timescale 1ns/1ns
module tb; // 测试模块的名字
reg [3:0] ina,inb; // 测试输入信号定义为 reg 型
reg cin;
wire [3:0] sum; // 测试输出信号定义为 wire 型
wire cout;
integer i,j;
adder4 adder(cout,sum[3:0],ina[3:0],inb[3:0],cin); // 调用测试对象
always #5 cin=~cin; // 设定 cin 的取值




initial
begin
ina=0;inb=0;cin=0;
for (i=1;i<16;i=i+1)
#10 ina=i; // 设定 a 的取值
end




initial
begin
for (j=1;j<16;j=j+1)
#10 inb=j; // 设定 b 的取值
end
initial // 定义结果显示格式
begin
$monitor($time,,,"%d+%d+%b={%b,%d}",ina,inb,cin,cout,sum);
#160 $finish;
end
endmodule

modelsim仿真结果:

ee4efb8e-f891-11ed-90ce-dac502259ad0.png

ee5ca4d2-f891-11ed-90ce-dac502259ad0.png

具体的代码细节我就不详细阐述了,大家一定要学会思考,在这个代码中,主要要理解清楚这样几个问题:

什么叫全加器?

半加器和全加器的区别是什么?

什么叫低位进位?什么叫高位进位?

为什么仿真出来的波形图感觉和modelsim打印出来的结果不一样?比如感觉数据没对齐?

$monitor是什么意思?怎么使用?格式是什么?

这个4位全加器的电路图是什么样的?

就这样一个“简单”的4位全加器,你真的掌握了吗?如果你能快速回答出我上面提出的几个问题,那你就掌握了;如果不能,那还要好好看下!其实,我们很多的公司笔试就是考这些简单的题目,但是却可以难倒一大片同学!再次提醒大家!重视基础!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21323

    浏览量

    593213
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132162
  • 加法器
    +关注

    关注

    6

    文章

    174

    浏览量

    29732
  • 全加器
    +关注

    关注

    10

    文章

    59

    浏览量

    28108
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79543

原文标题:基础模块 | 4位全加器代码以及仿真

文章出处:【微信号:fpga加油站,微信公众号:fpga加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 FPGA技术应用:全加器设计

    fpga全加器
    Mr_haohao
    发布于 :2022年10月19日 17:24:52

    全加器代码VHDL

    用VHDL的人好少,哎……一全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 然后是代码:[code]USE IEEE.STD_LOGIC_1164.ALL; USE
    发表于 12-09 22:16

    全加器代码VHDL

    用VHDL的人好少,哎……一全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 然后是代码:[code]USE IEEE.STD_LOGIC_1164.ALL; USE
    发表于 12-09 22:17

    请问Quartus2中的用一全加器来实现四全加器

    全加器是我自己封装的,在四全加器中调用,在编译过程总是出错
    发表于 03-06 15:48

    FPGA入门——1全加器设计 精选资料分享

    FPGA入门——1全加器设计一、原理图输入1.1 创建工程1.2 原理图输入1.3 将设计项目设置成可调用的元件1.4 半加器仿真1.5 设计全加
    发表于 07-26 07:01

    怎样去设计一种基于FPGA的1全加器

    怎样去设计一种基于FPGA的1全加器?如何对基于FPGA的1全加器进行
    发表于 09-17 07:38

    基于Quartus II软件完成一个1全加器的设计

    FPGA 设计入门(嵌入式系统应用开发)一、实验要求二、实验步骤1. 新建工程2. 原理图设计3. 将设计项目设置成可调用的元件4. 半加器仿真5. 设计全加器顶层文件6. 将设计项目
    发表于 12-17 06:19

    什么是8全加器和8为带超前进位的全加器

    超前进位的8全加器:总结前言随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。以下是本篇文章正文内容,使用门级原语语句设计8
    发表于 02-09 07:49

    全加器,全加器是什么意思

    全加器,全加器是什么意思  full-adder    用门电路实现两个二进数相加并求出和的组合线路,称为一个全加器
    发表于 03-08 17:04 8.1w次阅读

    全加器是什么?全加器和半加器的区别?

    加器是能够计算低位进位的二进制加法电路。与半加器相比,全加器不只考虑本位计算结果是否有进位,也考虑上一位对本位的进位,可以把多个一位全加器级联后做成多位全加器
    发表于 07-25 11:15 7w次阅读
    <b class='flag-5'>全加器</b>是什么?<b class='flag-5'>全加器</b>和半加器的区别?

    什么是全加器 全加器工作原理

    全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器
    的头像 发表于 07-25 16:03 7.5w次阅读

    VHDL语言设计的全加器代码和工程文件免费下载

    本文档的主要内容详细介绍的是VHDL语言设计的全加器代码和工程文件免费下载。
    发表于 06-03 08:00 5次下载
    VHDL语言设计的<b class='flag-5'>全加器</b>源<b class='flag-5'>代码</b>和工程文件免费下载

    使用FPGA实现一位全加器的文本输入实验报告资料免费下载

    通过此实验了解FPGA 开发软件Quartus II 的使用方法及VHDL 的编程方法,学习用VHDL 语言来描述1 位全加器及电路的设计仿真和硬件测试。
    发表于 12-02 16:34 12次下载

    FPGA设计:4位计数器代码仿真程序

    大家好!今天给大家分享的是4位计数器的代码以及仿真程序。
    的头像 发表于 05-24 09:22 1202次阅读
    <b class='flag-5'>FPGA</b>设计:4位计数器<b class='flag-5'>代码</b>及<b class='flag-5'>仿真</b>程序

    在Spartan 6 FPGA上从头开始实现全加器

    电子发烧友网站提供《在Spartan 6 FPGA上从头开始实现全加器.zip》资料免费下载
    发表于 06-15 10:13 0次下载
    在Spartan 6 <b class='flag-5'>FPGA</b>上从头开始实现<b class='flag-5'>全加器</b>