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

目录

前言

一、原理图设计全加器

1.1半加器设计

1、新建工程

2、新建原理图文件

3、将设计项目设置成可调用的元件

4、半加器仿真

1.2 全加器设计

1新建原理图

2、将设计项目设置成顶层文件并编译仿真

二、Verilog实现全加器

1、创建 Verilog 文件

2、编写代码

3、编译

4、实验电路结果图

三、下载文件到开发板上

3.1 引脚绑定

​编辑3.2 烧录文件

四、总结

五、参考文献


前言

本文内容:基于 Quartus 软件完成一个 1 位全加器的设计,分别采用
1)原理图设计;
2)Verilog 编程
实现方法。

软件基于 quartusII 13.0 版本,开发板基于 Intel DE2-115

一、原理图设计全加器

1.1半加器设计

1、新建工程

【File】→【New Project Wizard…

点击【Next】后进入如下界面:选择保存路径及工程名,然后点击【Next】。

点击【Next】后进入如下界面:选择【Cyclone IV E】,勾选第二个,选择【EP4CE115F29C7】系列,然后点击【Next】

点击【Next】【Finish】后即可完成创建。

2、新建原理图文件

【File】→【New…】。

选择【Block Diagram/Schematic File】后点击【OK】。

摆放元件:点击插头图样或者双击原理图空白处,调出新窗口。

在元件搜索框内输入 and2 和 xor 并摆放到图上。

分别摆放两个输入和输出。

双击【pin name】修改管脚名,然后用鼠标连接管脚。

点击保存按钮,然后点击【保存】。

点击【编译按钮】(无错误即可,忽略警告)

3、将设计项目设置成可调用的元件

在打开半加器原理图文件【Demo1.bdf】的情况下,选择菜中【File】→【Create/Update】→【Create Symbol Files for Current File】项,即可将当前文件【Demo1. bdf】变成一个元件符号存盘,以待在高层次设计中调用。

4、半加器仿真

新建波形文件:【File】→【New…】。选择【University Program VWF】,点击【OK】。

【Edit】→【Insert】→【Insert Node or Bus…】。

点击【Node Finder】→【List】→【>>】→【OK】→【OK】。

选中要改变电平的区域,然后点击左上方的 “0” “1” 图样即可。

保存 .vwf 文件。

点击编译按钮

1.2 全加器设计

1新建原理图

编辑原理图如下:

2、将设计项目设置成顶层文件并编译仿真

二、Verilog实现全加器

1、创建 Verilog 文件

【File】→【New…】。选择【Verilog HDL File】,点击【OK】。

2、编写代码

完整代码如下

module Verilog1(
	//输入信号,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

3、编译

4、实验电路结果图

通过【Tools】→【Netlist Viewers】→【RTL Viewer】查看电路图。

三、下载文件到开发板上

3.1 引脚绑定

  • 开发板上的18个拨码开关选其中三个:SW0、SW1、SW2 分别接 ain、bin、cin(开关向上拨和向下拨分别显示输入是高还是低电平)
  • LED0、LED1 分别接 cout 和 sum,灯亮表示输出为 “1”,灯灭表示输出为 “0”。
  • 开始绑定引脚:点击【Assignments】→【Pin Planner】。
  • 在【location】栏填入对应的 FPGA 引脚。
  • 3.2 烧录文件

  • 第一次下载需安装硬件:即在下载界面中点击按钮【hardware setup…】,然后在弹出的对话框中选择【USB blaster】,再点击【ok】,则硬件被安装上。
  • 勾选上,点击【Start】,烧录成功
  • 真机显示
  • 由于没有板子,就没有完成实验
  • 四、总结

  • 通过本次实验,我们深入了解了硬件加速器的原理和设计方法。通过Quartus软件,我们成功地实现了1位加速器的设计,并验证了其功能。实验过程中,我们也遇到了一些问题,如代码调试、仿真与实际测试的差异等。这些问题提醒我们在今后的实验中需要更加细心和耐心,注重理论与实践的结合。
  • 五、参考文献

  • 使用 Quartus-ll 两种方法仿真全加器并烧录到 Intel DE2-115 开发板中验证_quartus烧录-CSDN博客
  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会尽力回答你的问题。 首先,我们需要了解的原理。有三个输入和两个输出,它们分别是两个数和一个进位位,输出是一个和值和一个进位位。也有三个输入和两个输出,它们分别是被减数、减数和一个借位位,输出是一个差值和一个借位位。 下面是一个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位

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值