FPGA——DE2-115开发板实现一位全加器与四位全加器 Quartus使用教程
一、刷题 HDLBits — Verilog Practice
1、记录
2、遇到的问题
(1)非阻塞赋值与阻塞式赋值
在 Verilog 中,<=
符号用于时序逻辑电路非阻塞赋值(non-blocking assignment),这种赋值在同一个 always 块中的所有赋值完成后才进行更新,所以在同一个块中,非阻塞式赋值所在的位置不影响赋值顺序。
而在组合逻辑电路中,一般使用普通的等号 =
进行阻塞赋值(blocking assignment),这意味着赋值会立即生效,必须是阻塞赋值完成后,才进行下一条语句的执行。
二、Quartus实现全加器
1、绘制原理图实现一位全加器
2、verilog实现一位全加器
//verilog
module Verilog1(
//输入信号,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、原理图实现四位全加器
5、verilog语言实现四位全加器
module Verilog2(
input[3:0] a,b,
input cin,
output[3:0] sum,
output cout
);
assign{cout,sum} = a+b+cin;
endmodule
6、仿真测试四位全加器
三、烧录程序到DE2-115
1、配置原理图引脚与硬件对应参照DE2-115开发板引脚配置表
2、实验现象
(1)一位全加器
(2)四位全加器
4BitFullAdder
四、Quartus的一些操作
1、创建新项目
2、让写好的代码或者画好的原理图变成可拖拽组件
3、编译之前置需要编译的文件为顶层
蓝色三角形按钮即为编译,将需要编译的文件置顶,指定后会显示在左侧窗口中,比如下图中的,Verilog2。
4、设置原理图引脚与硬件引脚对应
点击PinPlanner,在弹出界面的下方location栏中设置,通常需要查阅手册设置对应引脚。
5、烧录程序
先点击Programmer,弹出面板中点击Hardware Setup设置硬件接口,再点击Start