加载中…
正文 字体大小:

16位2级流水灯加法器

(2017-03-21 16:24:28)
标签:

明德扬

至简设计法

流水灯

加法器

verilog

分类: 明德扬---至简设计法

本案例:明德扬首创全新FPGA设计技巧--至简设计法,教你如何一步一步去完成一个复杂电路的设计,里面很多有实用技巧,熟练运用这些技巧,有助于你写出非常优秀的FPGA设计代码。非常简洁易读,欢迎比较。

一、   功能描述

    在无线通信的信号处理中,常常要用到多位数字量的加法运算,但串行加法器速度较慢,并行加法器则能满足要求,且结构不复杂,但在使用了并行加法器后,仍然只有在输出稳定后才能输入新的数据进行下一次计算,即计算的节拍必须大于运算电路的延迟;此外,许多门级电路和布线的延迟会随着位数的增加而累加,因此加法器的频率还是受到了限制。所以采用流水线,就有可能将一个算术操作分解为一些小规模的基本操作,将进位和中间值储存在寄存器中,并在下一个时钟周期内继续运算,这样就可以提高电路的利用效率。将流水线规则应用于FPGA中,只需要很少或者根本不需要额外的成本。

    本案例实现162级流水灯的功能。

二、        平台效果图

仿真效果图

16位2级流水灯加法器

三、    实现过程

输入输出信号列表如下:

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

系统复位信号,低电平有效

vld_in

I

2

输入有效指示信号

a

I

16

数据a

b

I

16

数据b

cin

I

1

输入进位

sum

O

16

cout

O

1

输出进位

vld_out

O

1

输出有效指示信号

 

首先将输入信号的低八位与进位进行相加{cout1,sum1} <= {1'b0,a[7:0]} + {1'b0,b[7:0]} + cin;

并存入寄存器中,然后将高八位放入寄存器在下一个时钟进行相加并与低八位进行合并

{cout,sum} <= {({1'b0,a_ff0[7:0]} + {1'b0,b_ff0[7:0]} + cout1),sum1};以此实现了162级流水灯加法器的功能。


代码资料下载:http://pan.baidu.com/s/1slhMSfb

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

       

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有