一、HDLBits
(一)HDLBits介绍
HDLBits是一个在线的Verilog编程学习网站。
可以在上面通过例程快速上手学习Verilog编程,不过因为是全英文的,所以建议看不懂的地方可以参考HDLBits 中文导学来学习。
(二)实践练习
1.门电路
题目1:
题目2:题目3:2.组合电路题目1:题目2:题目3:
3.时序电路
题目1:
题目2:
二、Quartus实现加法器
(一)原理图实现1位加法器
1.启动 Quartus II 软件
选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
2.先实现半加器
首先选择File->New,进入后选择Block Diagram/Schematic File添加输入输出,完成效果保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号
保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier
3.全加器实现
利用半加器元件实现全加器
将设计项目设置为可调用的元件在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
(二)Verilog实现1位加法器
1.创建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
保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图创建一个向量波形文件,选择菜单项 File→New->VWF
编辑信号
仿真结果
(三)下载测试
芯片引脚配置表
三、总结
通过半加器能更快构建全加器,再通过全加器可以构建多位全加器,因为时间原因,没能上板测试四位全加器,所以只给出1位全加器。