FPGA入门——1位全加器设计
一、原理图输入
环境:QuartusⅡ13.0 && 开发板:Intel DE2-115
1.1 创建工程
详细步骤请看另一篇博客:Quartus使用基础——D触发器仿真与时序波形验证
选择目标芯片:CycloneIVE系列的EP4CE115F29C7

1.2 原理图输入
- 新建
Block Diagram,输入and2


- 调入
xnor、输入输出引脚input、output - 连接好电路图,并修改输入输出引脚名字

- 保存编译
1.3 将设计项目设置成可调用的元件
为了构成全加器的项层设计,必预将以上设计的半加器full_adder.bdf设置成可调用的元件。在打开半加器原理图文件full_adder.bdf的情况下,选择File中的Create/Update→Create Symbol Files for Current File项,即可将当前文件full_adder. bdf变成一个元件符号存盘,以待在高层次设计中调用。

1.4 半加器仿真
- 新建波形文件
- 输入波形文件

- 设置输入波形取值

- 仿真,先保存文件为
half_adder.vwf,然后点击
- 完成

1.5 设计全加器顶层文件
File->New->Block Diagram- 选择底层文件半加器的存储名“half_adder”调出半加器

- 再调出其他元件
or2 - 连好电路图

- 保存编译
Tools->Netlist->RTL Viewer

1.6 全加器仿真&同1.4
结果如下

1.7 硬件测试
- 引入pin引脚
网上查询相应引脚图
Assignments→Pin Planner或者点击如下图位置


Tools->Programmer第一次下载需要安装硬件

- 没有
altera USB blaster的需要安装驱动,下面是下载到硬件完成

二、Verilog编程
2.1 创建工程
2.2 Verilog代码
- 新建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
- 保存并编译文件
Tools->Netlist->RTL Viewer

2.3 仿真
- 新建波形文件
- 输入波形文件
- 设置输入波形取值

- 保存
- 功能仿真,出现错误

Tools->Launch Simulation Library Compiler,在下图位置选择保存文件的***\simulation\qsim位置,然后start compilation


- 重新功能仿真

- 时序仿真

Ending、参考资料
- FPGA——1位全加器的实现
- 嵌入式系统应用开发-实验1-FPGA编程入级
FPGA入门实践:1位全加器的原理图与Verilog实现
该博客介绍了FPGA入门的基础知识,通过QuartusⅡ13.0在Intel DE2-115开发板上设计和仿真1位全加器。首先,详细阐述了如何创建工程、绘制半加器的原理图并进行仿真。接着,将半加器设置为可调用元件,并设计全加器的顶层文件。在Verilog编程部分,展示了如何编写全加器的代码,并进行功能和时序仿真。最后,进行了硬件测试,确保设计的正确性。
9995

被折叠的 条评论
为什么被折叠?



