加载中…
正文 字体大小:

4位流水线乘法器

(2017-04-12 17:29:39)
标签:

verilog

明德扬

流水线

至简设计法

乘法器

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

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

一、功能描述

流水线功能好比一个加工厂在创业之初,只有一间小车间及孤军奋战的老板,那么,当他接到一张订单之后,他必然忙于完成第1张订单,而没有能力去接第2张订单。这样接订单→完成订单→接订单→……是一个串行的过程。后来,老板发现接受订单不费太多时间,而且他还有了一个帮工,他们可以相互独立地工作,这样,老板就在完成上张订单产品的同时,接受下一张订单的订货。而多级流水线的形式,将相邻的两个部分乘积结果再加到最终的输出乘积上,即排列成一个二叉树形式的结构,这样对于N位乘法器需要log2(N)级来实现。本案例用Verilog HDL语言实现了4位流水线乘法器的功能。


二、平台效果图

仿真效果图

4位流水线乘法器

三、实现过程


输入输出信号列表如下:

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

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

vld_in

I

1

输入有效指示信号

x

I

4

数据a

y

I

4

数据b

p

O

8

乘积结果

vld_out

O

1

输出有效指示信号

 


从仿真结果可以看出,上述流水线乘法器比串行乘法器的速度快很多,在非高速的信号处理中有着广泛的应用。

判断x的4位从低到高是否为1,然后对应移位y并并置上对应的0,让其成为一个移位后的8位数据,比如x[2]为1,y为1100,则将y变为00110000,然后将对应的四个数据放入寄存器a0,b0,a1,b1,然后计算tmp0<=a0+b0,tmp1<=a1+b1,然后再p <= {2'b0,tmp0} + tmp1;即可得到最终乘积p。


以此实现了一个4位流水线乘法器。


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

0

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

       

    发评论

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

      

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

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

    新浪公司 版权所有