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

1)原理图输入
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
在这里插入图片描述
1.绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File
在这里插入图片描述
选择元件,选用and2,xor,以及input和output,完成如下效果
在这里插入图片描述
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
在这里插入图片描述
2.仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
在这里插入图片描述
添加信号
在这里插入图片描述
编辑信号
在这里插入图片描述
保存文件并启动仿真
在这里插入图片描述
时序仿真
在这里插入图片描述
3.将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
在这里插入图片描述
4.绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File,然后再选择刚才保存的元件,完成如下效果
在这里插入图片描述
保存编译并仿真
在这里插入图片描述
在这里插入图片描述

2)Verilog编程
1.新建Verilog HDL文件
在这里插入图片描述

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) begin
	sum=(ain^bin)^cin;//本位和输出表达式
	s1=ain&cin;
	s2=bin&cin;
	s3=ain&bin;
	cout=(s1|s2)|s3;//高位进位输出表达式
end
endmodule

保存,设为顶层文件并编译
查看电路图
在这里插入图片描述

仿真
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。 首先,我们需要了解全加器和全减器的原理。全加器有三个输入和两个输出,它们分别是两个加数和一个,输出是一个和值和一个。全减器也有三个输入和两个输出,它们分别是被减数、减数和一个,输出是一个差值和一个。 下面是一个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全加全减器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值