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编程入级