FPGA编程入门

FPGA编程入门

一、1位全加器

1. 原理图

1.1. 半加器

创建工程过程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。

image-20230320181336078

image-20230321210522740

image-20230320181739843

首先选择File->New,进入后选择Block Diagram/Schematic File
image-20230321213836613

选择元件

image-20230320182217709

image-20230320182310890

image-20230320183031806

image-20230320183549356

原理图
image-20230320184145863

保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图

image-20230320184955832

仿真模拟:

创建一个向量波形文件,选择菜单项 File→New->VWF

image-20230321214857216

在波形文件编辑器左端大片空白处双击,出现“insert node or bus”对话框,点击“node finder”按钮。

image-20230321215335033

添加信号

image-20230321215405589

image-20230321215442711

编辑信号

image-20230321215520210

保存文件并启动功能仿真,结果如下

image-20230321220347847

1.2 全加器

利用半加器元件实现全加器

将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用

image-20230321221342118

选择File->New,进入后选择Block Diagram/Schematic File

image-20230321222251111

同上面一样,选择元器件

image-20230321222207422

image-20230320185333572

原理图如下

image-20230320185948849

将全加器设置为顶层文件

image-20230321222746163

编译,查看RTL

image-20230321222921827

仿真模拟:

image-20230321223237503

2. verilog实现1位全加器

重头开始创建一个项目,选择verilog HDL FILE

image-20230321203554592

2.1 代码
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

image-20230320193728115

2.2 编译,查看RTL

image-20230320193831364

2.3 仿真实现

image-20230321210016326

二、烧录到FPGA板上

将其设置为顶层文件

image-20230320201748764

设置管脚

image-20230320201919904

image-20230320203419258

再编译一次

烧录

image-20230320203655138

image-20230320203622511

效果:

在这里插入图片描述

在这里插入图片描述

三、4位全加器

1. 原理图实现4位全加器

将1位全加器保存为元件

image-20230322093944848

新建空白图层,搭建4位全加器

image-20230322101100527

RTL

image-20230322101032349

仿真实现:

image-20230322101006797

2. verilog实现4位全加器

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

image-20230321204104813

2.2 RTL

image-20230321204039788

2.3 仿真实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NTPoquER-1679451545698)(https://gitee.com/jiyny/pictures/raw/master/202303212052367.png)]

四、烧录

设置管脚

image-20230320211134173

效果
在这里插入图片描述

在这里插入图片描述

五、总结

通过这次试验,掌握了项目的创建,原理图与verilog语言的编写,如何将写好的程序烧录到FPGA板中。也掌握了半加器,全加器的相关知识。

参考文章

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值