- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15章 并行处理(pipelined processing)
第 15 章 并行处理(Pipelined Processing )
在以前FPGA设计刚萌芽阶段,一般的设计者不会考虑以PPGA来完成较复杂的
运算工作。原因是当时FPGA能容纳的逻辑门数目太少,而且内部的布线资源也不
够多,使得一个小小的8-bit X 8-bit乘法器都很难放置入当时的FPGA中,然而
随着半导体工艺上的进步,FPGA能容纳的逻辑门数目由数百个增加到数千个,甚
至到现在的数百万个,半导体的工艺也由1microm降低到0.8microm、0.6microm、
0.5microm、0.35microm、0.25microm,甚至0.18microm。在这么大容量的逻辑
门数目、这么快速的工艺演进下,以前FPGA所不能做的工作,现在都已经能够轻
易的完成了,但是现今的要求却也不是十年前所能比拟的,也许十年前的只是
8-bit X 8-bit的乘法器,但现在要的却是32-bit X 32-bit的乘法器,且以前所
要求的可只是1 MHz的运算速度,但现在所要的却是100 MHz的运算速度,也许现
在的规格比起十年前并不像当时的规格一般令人有无法达到的感觉,但要完成此
工作却也要费一番脑筋。
接下来我们所要介绍的是以一个实际的例子声明并行处理的设计方式,并比
较使用并行处理与未使用并行处理之间的差异,再分析并行处理设计所要注意的
地方,虽然并行处理能解决设计上速度的要求,但也不是没有缺点 的,像是
1atency time的增加及逻辑门使用的增多等,在后面的各节中都会有详细的叙述。
15-1 未使用并行处理的乘法器
在这一节中我们所要提出的例子是一个未使用并行处理的乘法器,乘法器
是数字信号处理中不可或缺的角色,在各种synthesis的1ibrary中应该都有提供
乘法器,以方便程序调用。而大部分的FPGA厂家也会提供乘法器的IP,让设计者
在做RTL level设计时可直接调用,本节使用的方式是直接使用乘法的运算子,
借着调用synthesizer的1ibrary来完成设计,最后再以仿真的结果来看看其效
果。
首先我们来看看其VHDL的程序。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_signed.all;
entity M16x16 is
port(InA : in std_logic_vector(15 downto 0);
InB : in std_logic_vector(15 downto 0);
DOut : out std_logic_vector(31 downto 0);
Clk : in std_logic);
end M16x16;
architecture A_M16x16 of M16x16 is
begin
process
begin
wait until Clk = 1 and Clkevent;
DOut = InA * InB;
end process;
end A_M16x16;
我想这已经是一个简单得不能再简单的程序了。声明的四组接口信号中,有
两组是16-bit的输入信号,分别代表乘数及被乘数,一组是32-bit的输出,代表
的是相乘所得的积。最后的一组是clock信号。
接下来的动作是先以软件计算出相乘的结果,再将被乘数、乘数和积分别
存在文件中,以便之后可以让设计以textio的方式读入数据,在此我们还要撰写
一个层次比乘法器还高的VHDL程序,也就是test bench,它可以用textio package
的procedure读入数据,再送到我们的设计中以供仿真,在程序中我们还将相乘
的结果直接进行对比,因为输入数据一共是一千个,若是设计者要一个一个的对
比下去也太浪费生命了,下面的程序即是这个用来仿真的程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_l
您可能关注的文档
- 牛津6B UNIT 2知识点整理.doc
- 牛津英语8A总复习材料.doc
- 牛津译林版英语高三Module11《unit3thesecretofsuccess》word教英语:Unit3Thesecretofsuccess—Project教案(牛津译林版选修11).doc
- 牛津译林版英语高三Module11《unit3thesecretofsuccess》word教英语:Unit3Thesecretofsuccess—Task教案(牛津译林版选修11).doc
- 牛津小学英语4A Unit4 单位演习.doc
- 牛股是怎样炼成的[经典].doc
- 牛顿第二定律(课时为2学时).doc
- 牛顿运动定律(五).doc
- 爱惜公物,从我做起.ppt
- 物流园区业务框架[专业论文].ppt
文档评论(0)