找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5368|回复: 1
打印 上一主题 下一主题
收起左侧

FPGA入门实例(一)加法器

[复制链接]
跳转到指定楼层
楼主
在FPGA工程设计中,加法器的身影随处可见,加法器看似简单在实际的应用中很容易出错,尤其是在做定点数加法时往往会遇到没有小数点位置对齐导致错误。加法器主要可分为半加器、全加器;按操作数不同可以分定点数加法器、浮点数加法器,针对有符号无符号数也要设计不同的加法器。学习是个由浅及深循序渐进的过程,一开始就从最简单的半加器开始,这里用最简单的加法器熟悉一下FPGA开发流程,建工程的一些规范及怎样写去仿真。
1.一位半加器: 电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。 是实现两个一位二进制数的加法运算电路。半加器不考虑低位的进位
module halfadder(cout,sum,a,b);

         outputcout,sum; //不申明,默认是wire变量

         input  a,b;

         assign{cout,sum}=a+b;//cout为进位,sum为和

endmodul



2.全加器  :是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。

module fulladder(a,b,cin,cout,sum);

         inputa,b,cin;

         outputcout,sum;

         assign{cout,sum}=a+b+cin;

endmodule

3.两个半加器构成全加器

module fulladder(x,y,c_in,sum,c_out);

         inputx;

         inputy;

         inputc_in;

         outputsum;

         outputc_out;

         wirea_sum;

         wirea_out;

         wireb_out;   

         assignc_out=a_out|b_out;

         halfadderhalf(x,y,a_sum,a_out);

         halfadderhalf1(c_in,a_sum,sum,b_out);

endmodule

第一步新建一个文件夹

建工程文件夹尽量规范,文件夹下最要包含 doc  prj  RTL  Testbench 文件夹 doc主要放一些工程文档 前期没有可以空着,prj文件夹放工程,及ip核文件,RTL放模块代码.v文件 ,Testbench文件夹放测试激励文件。



2.打开quartus 软件新建工程,

选择路径 并给工程命名

选择仿真工具和 仿真语言

新建一个verilog文件

编写代码并保存

将代码保存到RTL文件夹

再新建一个verilog文件 作为Tb文件 编写tb文件后保存到TB文件下。
编写完成后需要进行仿真设置。


选择设置菜单


选择simulation设置


添加TB文件




添加完成后进行仿真


仿真结果




51hei截图20200111114535.png (37.72 KB, 下载次数: 90)

51hei截图20200111114535.png

51hei截图20200111115800.png (114.73 KB, 下载次数: 84)

51hei截图20200111115800.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:704585 发表于 2020-3-26 11:09 | 只看该作者
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表