文章目录

1、利用Quartus输入原理图实现一个1位全加器的设计1、实现半加器输入2、全加器原理输入

2、利用Verilog实现1位加法器1、创建Verilog文件2、写入代码3、保存并编译4、查看RTL5、仿真实现6、结果

3、下载测试1、输入原理图2、配置引脚3、下载4、结果效果

1、利用Quartus输入原理图实现一个1位全加器的设计

1、实现半加器输入

1、创建项目 点击file->NEW Project…->Block Diagram/Schematic File 自命名 2、输入下面的设备 点击以下两个图标,加入and2,rox和input,output 完成下列图标

3、保存,编译 4、查看电路图 通过tool->Netlist Viewers->RTL Viewer,查看电路图 5、仿真 创建一个向量波形文件,选择菜单项 File→New->VWF 点击Edit->insert->…->node… 编辑信号,仿真 如出现错误,则需要进行配置 选择tool->launch simulation library complier 功能仿真结果 时序仿真结果

2、全加器原理输入

1、将设计项目设置为可调用的元件 在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用 然后,点击OK 2、选择File->New,进入后选择Block Diagram/Schematic File 3、选择原件 选择half_adder和or2原件组成下图 保存文件,并编译 通过tool->Netlist Viewers->RTL Viewer,查看电路图 3、仿真实现 创建一个向量波形文件,选择菜单项 File→New->VWF 操作如之前一样 功能仿真结果 时序仿真结果

2、利用Verilog实现1位加法器

1、创建Verilog文件

2、写入代码

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、查看RTL

5、仿真实现

如前文,创建一个波形向量文件 然后,编辑输入信号 启动仿真。

6、结果

功能仿真结果 时序仿真结果

3、下载测试

1、输入原理图

1、将设计项目设置为顶层文件

2、配置引脚

使用3个SW作为输入信号,2个LED作为输出信号

3、下载

4、结果效果

通过拨动SW,观察LED的亮灭的效果,发现SW开表示1,关表示0,LED亮表示1,灭表示0。最终,验证的结果为跟其真值表相吻合。

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。