第六周实验1--- FPGA设计入门
一、设计原理
1、认识全加器和半加器
全加器是用门电路实现两个二进制相加并求出和的组合线路,成为一位全加器,一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。
Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
半加器:
实验准备
实验目的:
基于Quartus-II软件完成一个1位全加器的设计,分别采用:原理图输入以及Verilog编程 这两种设计方法。
开发环境
环境:QuartusⅡ13.0 && 开发板:Intel DE2-115
1.1创建项目
之前做过,具体步骤在:第四周—数字电路基础与Quartus-II入门
选择目标芯片:CycloneIVE系列的EP4CE115F29C7
1.2 输入原理图
1.新建,然后选择Block Diagram,输入and2
2.调入xnor、输入输出引脚input、output
3.连接好电路图,并修改输入输出引脚名字
4.保存并编译
1.3. 将设计项目设置成可调用的元件
为了构成全加器的项层设计,必预将以上设计的半加器half_adder.bdf 设置成可调用的元件。
选择菜中File中的Create/Update→Create Symbol Files for Current File
项,即可将当前文件half_adder. bdf
变成一个元件符号存盘,以 待在高层次设计中调用。
1.4. 新家全加器原理图文件
新建方法同第二步新建半加器原理图文件方法一样
在弹出的“symbol”窗的“name”栏输入底层文件半加器的存储名“half_adder” 调出半加器
设计原理图如下:
1.5. 将设计项目设置成顶层文件并编译仿真
将顶层文件full_adder.bdf
设置为顶层文件的方法:选中full_adder.bdf
文件,然后project→set as top_level entity
。
仿真前:
仿真后:
1.6. 引脚绑定及硬件下载测试
① 选择目标芯片:cycloneIVE
系列的EP4CE11529C7
,在菜单中选择,“assignments→device…
”(同新建工程所选择的型号一样)
② 引脚绑定
先从菜单中选择“assignments→pin planner
”,然后进行如下配置:
选定了引脚之后原理图文件一定要再编译一次,才能真正把引脚绑定上
③ 把开发板接上电源,USB 接口接电脑, 然后点击Programmer按钮,然后弹出一个下载界面。
如果第一次下载需安装 硬件。即在下载界面中点击按钮“hardware setup…”,然后在弹出的对话框中选择“USB
blaster”,再点击“ok”,则硬件被安装上。
如果找不到,请先在电脑设备管理器中配置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
3.保存并编译文件
4.Tools->Netlist->RTL Viewer
2.3 进行仿真
- 新建波形文件
- 输入波形文件
- 设置输入波形取值
- 保存
- 功能仿真
- 时序仿真