16位2级流水灯加法器

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


一、功能描述

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


本案例实现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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值