基于Quartus件完成1位全加器的设计及4位全加器的设计

这篇具有很好参考价值的文章主要介绍了基于Quartus件完成1位全加器的设计及4位全加器的设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、1位全加器设计

1、原理图输入方法设计1位全加器

(1)、半加器的设计

半加器: 指对输入的两个一位二进制数相加a与b,输出一个结果位sum和进位cout
半加器真值表:

a b sum cout
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1

半加器输出表达式:
基于Quartus件完成1位全加器的设计及4位全加器的设计
项目创建:
打开Quartus创建新项目:
基于Quartus件完成1位全加器的设计及4位全加器的设计
设置项目路径及名称(adder4位实验名命名):
基于Quartus件完成1位全加器的设计及4位全加器的设计
选择芯片(EP4CE115F29C7):
基于Quartus件完成1位全加器的设计及4位全加器的设计
新建原理图文件:
点击File->New,然后选择Block Diagram/Schematic File:
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计
选择元件and2和xor,并绘制原理图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计

保存编译,将原理保存至adder4文件夹下,并命名为half_adder.bdf
基于Quartus件完成1位全加器的设计及4位全加器的设计
此时编译无误可以通过tool->Netlist Viewers->RTL Viewer,查看电路图:
基于Quartus件完成1位全加器的设计及4位全加器的设计

将项目设置为可调用元件:
基于Quartus件完成1位全加器的设计及4位全加器的设计
半加器仿真:
创建一个向量波形文件,选择菜单项 File→New->VWF:
基于Quartus件完成1位全加器的设计及4位全加器的设计
添加信号:
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计
编辑信号:
基于Quartus件完成1位全加器的设计及4位全加器的设计

保存文件并启动功能仿真:
基于Quartus件完成1位全加器的设计及4位全加器的设计
通过仿真结果可以发现当a和b相同时s为0,否则为1;逻辑关系属于异或;当a和b同时为1时,co等于1,其余都为零,逻辑关系为与。

(2)、全加器的设计

全加器: 全加器是指对输入的两个二进制数相加(A与B)同时会输入一个低位传来的进位(Ci-1),得到和数(SUM)和进位(Ci);一位全加器可以处理低位进位,并输出本位加法进位。
全加器真值表:
基于Quartus件完成1位全加器的设计及4位全加器的设计
全加器输出表达式:
基于Quartus件完成1位全加器的设计及4位全加器的设计
新建原理图文件:
点击File->New,然后选择Block Diagram/Schematic File,选择元件half_adder和or
2,并绘制原理图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
将原理保存至adder4文件夹下,并命名为full_adder.bdf:
基于Quartus件完成1位全加器的设计及4位全加器的设计
将full_adder.bdf设置为顶层文件并编译:
基于Quartus件完成1位全加器的设计及4位全加器的设计
此时编译无误可以通过tool->Netlist Viewers->RTL Viewer,查看电路图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
全加器仿真:
创建一个向量波形文件,并添加、编辑信号:
基于Quartus件完成1位全加器的设计及4位全加器的设计
保存文件并启动功能仿真:
基于Quartus件完成1位全加器的设计及4位全加器的设计

2、Verilog编程方法设计1位全加器

创建Verilog文件:
基于Quartus件完成1位全加器的设计及4位全加器的设计
基于Quartus件完成1位全加器的设计及4位全加器的设计
代码:

module full_adder2(

	input ain,bin,cin,//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位
	output cout,sum//输出信号,cout表示向高位的进位,sum表示本位的相加和
	
);

	assign sum=(ain^bin)^cin;//本位和输出表达式
	assign cout=(ain&bin)|((ain^bin)&cin);//高位进位输出表达式
	
endmodule

保存并编译,此时编译无误可以通过tool->Netlist Viewers->RTL Viewer,查看电路图:
基于Quartus件完成1位全加器的设计及4位全加器的设计

仿真实现:
创建一个向量波形文件,并添加、编辑信号:
基于Quartus件完成1位全加器的设计及4位全加器的设计
保存文件并启动功能仿真:
基于Quartus件完成1位全加器的设计及4位全加器的设计

3、上板检验

二、4位全加器设计

1、输入原理图方法设计4位全加器

4位全加器可看作4个1位全加器患行构成,具体连接方法如下图所示:
基于Quartus件完成1位全加器的设计及4位全加器的设计
4位全加器输出表达式:
基于Quartus件完成1位全加器的设计及4位全加器的设计
将full_adder设置为可调用元件:
基于Quartus件完成1位全加器的设计及4位全加器的设计
新建原理图文件:

点击File->New,然后选择Block Diagram/Schematic File,选择元件full_adder,并绘制原理图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
将原理保存至adder4文件夹下,并命名为full_adder4.bdf,将full_adder4.bdf设置为顶层文件并编译:
基于Quartus件完成1位全加器的设计及4位全加器的设计
此时编译无误可以通过tool->Netlist Viewers->RTL Viewer,查看电路图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
仿真:
创建一个向量波形文件,并添加、编辑信号:
基于Quartus件完成1位全加器的设计及4位全加器的设计
保存文件并启动功能仿真:
基于Quartus件完成1位全加器的设计及4位全加器的设计

2、Verilog编程方法设计4位全加器

代码:

module four (
    num1,
    num2,
    cin,
    cout,
    sum
);

input   [3:0]   num1;
input   [3:0]   num2;
input           cin;
output          cout;
output  [3:0]   sum;


reg             cout;
reg     [3:0]   sum;
reg             add;
reg     [1:0]   cnt;
always @(num1 or num2 or cin)
begin
    // 第一位
    sum[0] = (num1[0] ^ num2[0]) ^ cin;
    cout = (num1[0] & num2[0]) | (num2[0] & cin) | (num1[0] & cin);
    add = cout;
    // 第二位
    sum[1] = (num1[1] ^ num2[1]) ^ add;
    cout = (num1[1] & num2[1]) | (num2[1] & add) | (num1[1] & add);
    add = cout;
    // 第三位
    sum[2] = (num1[2] ^ num2[2]) ^ add;
    cout = (num1[2] & num2[2]) | (num2[2] & add) | (num1[2] & add);
    add = cout;
    // 第四位
    sum[3] = (num1[3] ^ num2[3]) ^ add;
    cout = (num1[3] & num2[3]) | (num2[3] & add) | (num1[3] & add);
    add = cout;
end
endmodule

保存并编译,此时编译无误可以通过tool->Netlist Viewers->RTL Viewer,查看电路图:
基于Quartus件完成1位全加器的设计及4位全加器的设计
使用modelsim进行验证:
验证代码:

module four_tb ();
    reg     [3:0]     num1;
    reg     [3:0]     num2;
    reg               cin;
    wire              cout;
    wire    [3:0]     sum;

    four uut(
        .num1(num1),
        .num2(num2),
        .cin (cin),
        .cout(cout),
        .sum (sum)
    );
    initial
    begin
            num1 <= 4'b0000; num2 <= 4'b0000; cin <= 0;
        #10 num1 <= 4'b0000; num2 <= 4'b0000; cin <= 1;
        #10 num1 <= 4'b0101; num2 <= 4'b0001; cin <= 0;
        #10 num1 <= 4'b1000; num2 <= 4'b0100; cin <= 0;
        #10 num1 <= 4'b1111; num2 <= 4'b1111; cin <= 0;
        #10 num1 <= 4'b1100; num2 <= 4'b0100; cin <= 1;
        #10 num1 <= 4'b0011; num2 <= 4'b0000; cin <= 1;
        #10 num1 <= 4'b1111; num2 <= 4'b1111; cin <= 1;
    end
endmodule

验证结果:
基于Quartus件完成1位全加器的设计及4位全加器的设计文章来源地址https://www.toymoban.com/news/detail-446729.html

3、上板验证

到了这里,关于基于Quartus件完成1位全加器的设计及4位全加器的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • # Quartus实现四位全加器

    1.首先将之前做的一位全加器作为模块选择File-Create/Update-CreateSymbolFilesforCurrentFile 选择File-New-Block Diagram/Schematic File 选择元件(四个fulladder,两个input,两个output,两个gnd) 原理图如下(注意标注输入输出名和分支名) 编译成功后选择tool-Netlist Viewers-RTL Viewer得到电路图如下

    2024年02月08日
    浏览(34)
  • Quartus实现一位全加器

    真值表 A B C0 S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 表达式 S=A⊕B C=AB 真值表 ain bin cin cout sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 表达式 Sum=Ain⊕Bin⊕Cin Cout=(Ain⊕Bin)⋅Cin+AinBin=(AinBin)∣(BinCin)∣(AinCin) 选择File-New Project Wizard 设置项目路径和项目名 按个人需求选择芯片

    2024年02月08日
    浏览(32)
  • Quartus-II利用两个半加器实现简单全加器

    软件基于 quartusII 13.1 版本,开发板基于Intel DE2-115 。 1.新建并命名工程 2.选择芯片型号 3.新建半加器原理图

    2023年04月08日
    浏览(29)
  • Verilog设计_全加器

    一种全加器的设计。 目录 一、全加器 二、代码实现 全加器是用门电路实现两个二进制数相加并求和的组合线路,也称为一位全加器,是一种常用的设计。全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器,例如常用的二进制四位

    2024年02月07日
    浏览(33)
  • 07-层次化设计 -- 全加器

    数字电路中根据模块层次不同有两种基本的结构设计方法: 自底向上的设计方法和自顶向下的设计方法 自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存在的基本单元出发的(基本单元是已有的或者是购买的),有基本单元构建高层单元,依次向上,直至构建

    2024年02月06日
    浏览(29)
  • 一位全加器的设计与实践

    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路,其真值表如下 也就是说,这个半加器的输出表达式为S=A⊕B,C=AB,逻辑电路图如下 全加器的真值表如下,其中Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和

    2024年02月08日
    浏览(28)
  • 四位全加器的设计与实践

    通过底层逻辑,我们可以通过组建半加器到一位全加器再到四位全加器,四位全加器可以由四个一位全加器构成,加法器之间可以通过串行方式实现。通过将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相连接 每一次新建一个block文件和Verilog文件,编

    2024年02月09日
    浏览(28)
  • Verilog学习二:设计一个一位全加器

    本部分将不再介绍Vivado工程的整体流程,将主要精力放在代码上面,具体的流程可参考:https://blog.csdn.net/crodemese/article/details/130438348 本部分代码也已上传到github:https://github.com/linxunxr/VerilogStudy 那么什么是全加器呢?我们都知道加法,即1+1=2,当个位数相加大于9时就需要进位。

    2024年02月08日
    浏览(34)
  • 四位全加器Modelsim仿真及QuartusII下查看RTL原理图

    四位全加器代码

    2023年04月08日
    浏览(21)
  • 基于Verilog与器件图的1位全加器实现

    1位二进制数全加器是一个具有三个输入端和两个输出端的,能对被加数、加数以及来自低位的进位相加得到“全加和”与“全加进位”。 它的真值表如下: Ai Bi Ci-1 Ci Si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 它的逻辑表达式如下: 从仿真的结果来看,

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包