【嵌入式系统应用开发】FPGA——四位全加器的实现

前言

在上一篇文章中,已经实现了一位加法器,在此基础上,下文将用原理图与Verilog编程两种方式,完成四位加法器的设计。

下文步骤将不进行详细讲述,如有看不懂的地方,详见上一篇文章

1 原理图实现

1.1 模块引入

将上一篇博客中所做的一位加法器作为引入模块使用

在这里插入图片描述

此处需要将引入的模块与下文新建文件在同一项目中

1.2 建原理图

新建原理图文件File->New->Block Diagram/Schematic File

选择元件(四个fulladder,两个input,两个output,两个gnd)

编辑原理图如下:
在这里插入图片描述

1.3 编译并仿真

保存编译后,查看原理图如下:

在这里插入图片描述

创建一个向量波形文件,选择菜单项 File→New->VWF,添加信号
在这里插入图片描述

仿真结果如下:

在这里插入图片描述

2 Verilog实现

2.1 创建Verilog文件

不做赘述,上篇博客有讲解

添加代码如下:

module four_bit(a,b,cin,cout,dout);  
//与保存的文件名相同,但尽量不与之前的原理图名相同 
	input [3:0] a,b;   //a,b为4位输入
	input       cin;
	output cout; 
	output [3:0] dout;
 
	assign {cout,dout} = a+b+cin;   //a+b 加法操作
	//使用拼接运算符将cout、dout拼接,dout取结果中的低四位
 
endmodule

2.2 编译并仿真

保存编译后,查看原理图,结果如下:

在这里插入图片描述

新建一个波形图仿真,还是file,new
添加并编辑信号

在这里插入图片描述

仿真结果如下:

在这里插入图片描述

总结

由于上一篇文章步骤较为详细,本次四位加法器的实现步骤省略了一部分,详情可参考上一篇文章。四位加法器是在一位加法器的基础上实现的。


参考:
https://blog.csdn.net/weixin_47554309/article/details/123743633

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,打开Vivado软件,创建一个新的工程。选择FPGA的型号,并设置工作目录和工程名称。 接下来,创建一个新的Verilog文件,命名为"full_adder.v",并添以下代码: ```verilog module full_adder(input a, b, carry_in, output sum, carry_out); assign sum = a ^ b ^ carry_in; assign carry_out = (a & b) | (a & carry_in) | (b & carry_in); endmodule ``` 代码实现了一个4位,输入包括两个4位二进制数a和b以及一个进位信号carry_in,输出为一个4位二进制数sum和一个进位信号carry_out。 接下来,创建一个新的Verilog文件,命名为"testbench.v",并添以下代码: ```verilog module testbench; reg [3:0]a, b, carry_in; wire [3:0]sum, carry_out; full_adder UUT(a, b, carry_in, sum, carry_out); initial begin a = 4'b0000; b = 4'b1111; carry_in = 1'b0; #10; $display("a = %b, b = %b, carry_in = %b, sum = %b, carry_out = %b", a, b, carry_in, sum, carry_out); #10; a = 4'b1111; b = 4'b1111; carry_in = 1'b1; #10; $display("a = %b, b = %b, carry_in = %b, sum = %b, carry_out = %b", a, b, carry_in, sum, carry_out); #10; $finish; end endmodule ``` 代码实现了一个测试台,用于测试4位的功能。首先,将a和b设置为0和15,carry_in设置为0,然后将结果输出。接着,将a和b设置为15,carry_in设置为1,然后再次输出结果。最后,结束仿真。 接下来,综合并实现设计,生成比特流文件。在左侧面板的"Flow Navigator"中选择"Generate Bitstream",并按照提示操作。 最后,将比特流文件下载到FPGA板上进行测试。将a和b设置为0和15,carry_in设置为0,然后将结果输出。接着,将a和b设置为15,carry_in设置为1,然后再次输出结果。如果输出结果符合预期,说明4位的设计和实现都是正确的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日常脱发的小迈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值