FPGA编程入门

1.一位全加器

(1)了解全加器

①先认识半加器
半加器的定义:
半加器是一种基本的数字电路,用于将两个输入位相加并输出它们的和以及一个进位位。半加器有两个输入,分别是加数和被加数,它们的和被输出到一个输出端,而进位位被输出到另一个输出端。

半加器可以通过逻辑门实现,通常由两个逻辑门组成。其中一个逻辑门实现了相加的操作,另一个逻辑门实现了进位位的操作。最常用的逻辑门是异或门和与门。

半加器是许多数字电路的基础,包括全加器和加法器。它们被广泛应用于数字电路中,用于实现各种数字运算和算法。

半加器的真值表:
A,B表示二进制数,C表示半加进位,S表示半加和

输出表达式:

逻辑电路图:
在这里插入图片描述

②认识全加器

全加器的定义:
全加器是一种数字电路元件,用于将三个二进制数(两个输入数和一个进位位)相加并产生两个输出(和与进位)。它是加法器的基本构建块之一。

全加器的输入包括两个二进制数位和一个进位位。如果两个二进制数位和进位位均为1,则产生一个进位输出,并将和输出设置为0。否则,和输出为两个二进制数位和进位位的异或值,进位输出为两个二进制数位和进位位的与值。

1位全加器的真值表:
Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和

输出表达式:
在这里插入图片描述

(2)输入原理图实现1位全加器

①先实现半加器原理图输入

点击如下按钮创建一个新项目
在这里插入图片描述
在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
在这里插入图片描述
点击File->New,进入后选择Block Diagram/Schematic File,然后创建如下的半加器原理图
在这里插入图片描述
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
在这里插入图片描述
②全加器原理图输入
将设计项目设置为可调用的元件
在打开半加器原理图文件w1.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件w1.bdf变成一个元件符号存盘,以待在高层次设计中调用
在这里插入图片描述
然后选择File->New,进入后选择Block Diagram/Schematic File,然后创建如下的全加器原理图
在这里插入图片描述
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
在这里插入图片描述
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
在这里插入图片描述
添加信号
在这里插入图片描述
编辑信号
在这里插入图片描述

功能仿真结果
在这里插入图片描述

时序仿真结果
在这里插入图片描述

(3)Verilog实现1位加法器

创建Verilog文件
代码实现

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图
在这里插入图片描述
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF,添加信号
编辑信号
在这里插入图片描述

保存文件并启动功能仿真,仿真结果:
在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/b249fd1f20ca47608444e8650c03e216.png

(4)测试

芯片引脚配置表
在这里插入图片描述
在这里插入图片描述

配置引脚
在这里插入图片描述

使用3个SW作为输入信号,2个LED作为输出信号

测试结果

在这里插入图片描述

2.四位全加器

(1)了解四位全加器

四位全加器的定义:
四位全加器是一种逻辑电路,用于将四个单独的二进制位相加,产生一个四位二进制数的和。它由四个单独的全加器组成,每个全加器接收两个输入位和一个来自前一个全加器的进位输入位。输出位产生这四个二进制位的和,而输出进位位传递到下一个全加器。 四位全加器通常用于处理二进制数字的加法和算术运算。

四位全加器的真值表:
在这里插入图片描述

输出表达式:
和 = A3 ^ B3 ^ C2 ^ (A2 ^ B2 ^ C1) ^ (A1 ^ B1 ^ C0)
进位 = (A3 & B3) | (C2 & (A3 ^ B3)) | (C1 & (A2 ^ B2)) | (C0 & (A1 ^ B1))

(2)输入原理图实现4位加法器

步骤和前文一样,仅原理图部分有所不同,所以不过多赘述
原理图部分:
在这里插入图片描述

(3)Verilog实现4位加法器

步骤和前文一样,仅代码部分有所不同,所以不过多赘述

代码部分:

module add_4
(
	input[3:0] a,b,
	output[3:0] sum,
	output cout,
	input cin
);
assign{cout,sum} = a+b+cin;
endmodule

芯片引脚配置表
在这里插入图片描述
在这里插入图片描述

配置引脚
在这里插入图片描述

使用9个SW作为输入信号,5个LED作为输出信号

测试结果
在这里插入图片描述

(4)测试

3.总结

这次的实验让我重温了上学期的fpga基础知识,比如如何创建原理图,如何去编写verlogi代码,如何仿真测试,最重要的是这次配置好引脚后,直接上板子烧录程序,然后实测,不是单仿真而已,所以这次实验令我印象深刻

4.参考

https://blog.csdn.net/qq_43279579/article/details/115480406

https://blog.csdn.net/weixin_52166467/article/details/129771367?spm=1001.2014.3001.5502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值