赞
踩
A | B | C0 | S |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
S=A⊕B
C=AB
ain | bin | cin | cout | sum |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
Sum=Ain⊕Bin⊕Cin
Cout=(Ain⊕Bin)⋅Cin+AinBin=(Ain&Bin)∣(Bin&Cin)∣(Ain&Cin)
选择File->New Project Wizard
设置项目路径和项目名
按个人需求选择芯片
选择File->New->Block Diagram/Schematic File
选择元件(一个and2,一个xor,两个input,两个output)
原理图如下
编译成功后选择tool->Netlist Viewers->RTL Viewer
得到电路图如下
选择File→New->VWF
按如下操作添加信号
配置信号前需要做如下配置(tool->launch simulation library complier)
编辑信号并仿真
仿真效果如下
选择File->Create/Update->CreateSymbolFilesforCurrentFile
选择File->New->Block Diagram/Schematic File
选择元件(两个halfadder,一个or2,三个input,两个output)
原理图如下
注意在此处需要先将fulladder置顶(Project->Set as Top-Level-Entity)再进行编译
电路图如下
编辑信号并仿真
仿真效果如下
创建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
注意编译时需要保证模块名和文件名一致,不然会报错
电路图如下
选择File→New->VWF
编辑信号并仿真
仿真结果如下
Pin Planner中配置引脚
Programmer中下载
上学期接触了FPGA开发,但是由于假期重做系统,重新下载的quartus和modelsim,本文中quartus和modelsim都是用的13.1版本。本次实验出现了一些错误,包括破解失败导致无法运行quartus相关文件,包括EDA实现quartus和modelsim自动仿真时参考教程学习,Verilog实现1位全加器时模块名和文件名不一致导致的报错,参考学长学姐的博客都得到了解决,这次实验是FPGA较为初级的操作。仍需进一步学习,后期会定期更新有关FPGA的博客。
https://blog.csdn.net/qq_43279579/article/details/115158140
https://blog.csdn.net/qq_43279579/article/details/115176423
https://blog.csdn.net/qq_43279579/article/details/115480406
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。