搬家热线:020-29895848

常用数字处理算法的Verilog实现

小编:广州人人搬家 出自:www.hc5688.com 点击: 发稿时间:11/09/24 关键字: 广州吊玻璃

2.6.3 常用数字处理算法的Verilog实现
1.加法器的Verilog实现
串行加法器
组合逻辑的加法器可以利用真值表,通过与门和非门简单地实现.假设 和 表示两个加数, 表示和, 表示来自低位的进位, 表示向高位的进位.每个全加器都执行如下的逻辑表达式:
这样可以得到加法器的一种串行结构.因此,式(2.1)所示的加法器也被称为串行加法器.如图2-20给出了一个4位串行加法器的结构示意图.
图2-20 串行加法器的结构示意图
在无线通信的信号处理中,常常要用到多位数字量的加法运算.如果用串行加法器实现,速度较慢,而并行加法器就能满足要求,并且结构并不复杂.现在普遍使用的并性加法器是超前进位加法器,只是在几个全加器的基础上增加了一个超前进位形成逻辑,以减少由于逐步进位信号的传递所造成的时延.图2-21给出了一个4位并行加法器的结构示意图.
图2-21 串行加法器的示意图
在4位并行加法器的基础上,可以递推出16位、32位和64位的快速并行加法器.
流水线加法器
在使用了并行加法器后,仍旧只有在输出稳定后才能输入新的数进行下一次计算,即计算的节拍必须大于运算电路的延迟;此外,许多门级电路和布线的延迟会随着位数的增加而累加,因此加法器的频率还是受到了限制.但如果采用流水线,就有可能将一个算术操作分解为一些小规模的基本操作,将进位和中间值存储在寄存器中,并在下一个时钟周期内继续运算,这样就可以提高电路的利用效率.将流水线规则应用于FPGA中,只需要很少或根本不需要额外的成本.这是因为每个逻辑单元都包含两个触发器,大多数情况下这两个触发器或者没有用到,或者用于存储布线资源,那么就可以利用其来实现流水线结构.如果采用了流水线后,加法器的速度仍然不能满足需要的话,可以采用第3章中将会提到的串并转换来进一步提高计算的并行度.
由于一个slice中有两个触发器,还需要有1个触发器来作为进位输出,那么采用 级流水线,就可以构造一个最大位数为 位的加法器.
下面给出一个16位流水线加法器的代码.
例2-24 16位2级流水线加法器的Verilog设计
module adder16_2(cout ,sum ,clk ,cina ,cinb ,cin) ;
input [15 :0 ]cina ,cinb ;
input clk ,cin ;
output [15 :0 ] sum;
output cout ;
reg cout ;
reg cout1 ;
reg[7 :0 ] sum1 ;
reg[15 :0 ] sum;
always @(posedge clk) begin // 低8 位相加;
{cout1 , sum1} = {cina [7], cina [ 7 : 0 ]} + {cinb[7], cinb [ 7 : 0 ]} +cin ;
end
always @(posedge clk) begin // 高8 位相加,并连成16位{cout ,sum} = {{cina [15], cina [15 :8 ] }+

关于人人 | 人人分部 | 搬家关键词 | 友情链接 | 案例展示 | 联系我们 | 在线预约 | 搬家吉日 | 网站地图
Copyright © 2009-2021 广州人人搬家集团 版权所有
提供:厂房搬迁,仓库转运,搬办公室,家庭搬家
公司地址:广州市天河区科韵路238号