原创 LPM函数的LPM_PIPELINE参数研究

2008-3-13 18:10 7659 6 8 分类: FPGA/CPLD

    本文研究含有LPM_PIPELINE参数的LPM函数(如:LPM_ADD_SUBLPM_MULT等),对LPM_PIPELINE参数的作用做了一些探讨。


LPM_PIPELINE参数的说明是:“Specifies the number of clock cycles of latency associated with the result [] output. The default value of zero indicates that no latency exists, and that a purely combinatorial function will be instantiated. The default value is zero (non-pipelined).”——from LPM quick reference guide》。翻译过来就是:“(此参数)指定了输出值result []的时钟延时周期。缺省值是0,也就是没有延时,是纯粹的组合逻辑电路。缺省值是0,即流水线级数为0。”


那么,该参数除了能使输出结果延时,对提升系统整体处理速率还有什么帮助呢?今天hustzq就利用LPM_MULT函数做了这样的实验。实验程序是利用3次乘法和3次加/减法完成一次复数乘:R+jI=(x+jy)(c+js)。将此等式化成:R=(c-s)y+c(x-y)I=(c+s)x-c(x-y)。在Quartus II中使用Cyclone III芯片仿真。LPM_MULTLPM_PIPELINE参数设为3


第一组实验:clk=50ns。不使用LPM_PIPELINE参数和使用LPM_PIPELINE参数的对比:


点击看大图



1  不使用LPM_PIPELINE参数,clk=50ns


点击看大图



2  使用LPM_PIPELINE参数,clk=50ns


第二组实验:clk=5ns。不使用LPM_PIPELINE参数和使用LPM_PIPELINE参数的对比:



点击看大图


3  不使用LPM_PIPELINE参数,clk=5ns


点击看大图



4  使用LPM_PIPELINE参数,clk=5ns


    分析第一组实验:图2比图1输出延时3clk,计算速度并没有增加,实际计算耗时都是6ns左右。


    分析第二组实验:两个图的计算结果不同。第二个才是正确的按照时钟输出的结果。


    结论:如果时钟周期比计算过程本身所耗费时间大很多,即计算、处理的时间很小、可忽略不计,则在一个时钟内完全可以完成计算,pipeline的作用仅仅是延时输出结果。如果计算处理的时间和时钟周期相当,在一个时钟内不能完成计算,则必须使用pipeline,否则前一次计算还没完成,又有新数据输入要求计算,此时输出是错误结果。


原来在一个时钟内不能完成运算,现在加入pipeline,虽然输出延迟几个clk周期,但可以正确的完成计算,如果把系统作为一个“黑盒”,设置pipeline “加快”了运算速度。这也就是pipeline的最终作用。


 


 


参考文献:


1. Altera公司:《LPM quick reference guide


2. Uwe Meyer-Baese著 刘凌 胡永生 译:《数字信号处理的FPGA实现》

文章评论2条评论)

登录后参与讨论

ilove314_323192455 2009-2-3 18:38

呵呵,分析的很到位

ash_riple_768180695 2008-3-15 08:13

这就是multicycle的效果啊!
相关推荐阅读
用户1238217 2009-08-28 22:02
关于quartus hdl综合的一个疑问
今天用quartus写了一个带clock enable的d触发器:library ieee;use ieee.std_logic_1164.all;entity test is    port(d, ...
用户1238217 2009-02-23 14:24
[zz]关于TI DSP的EDMA
几天调下来,总感觉TI的文档语焉不详。不过想想也对,250页的文档是谁都要写到郁闷的。而且一个懂了的人给初学者讲东西总会自然的略过一些看似当然的关键。     这几天遇到的问题就是EDMA可以工作,却...
用户1238217 2009-01-21 11:45
Synplify DSP安装、设置指南
Installing the Software on a Windows PlatformWindows平台安装指南(摘自Synplify? DSP Installation and License ...
用户1238217 2009-01-20 09:36
mif文件的格式定义(From Altera)
Memory Initialization File (.mif) DefinitionAn ASCII text file (with the extension .mif) that specif...
用户1238217 2009-01-19 17:38
用matlab生成mif文件
网上有一位网友提供了如何使用matlab生成mif文件的方法。但经过试验,在Quartus中无法打开生成的mif文件,提示有语法错误。以下是hustzq的一个小程序,生成了[0,pi/2]区间的正弦表...
用户1238217 2009-01-19 14:27
【转帖】利用excel生成“.MIF”文件的办法
注:本文转帖自网友ql_smbj的博客:http://blog.ednchina.com/ql_smbj在FGPA的设计中,经常会对ROM进行初始化操作,如果内存数据不是很大(比如几十个),完全可以在...
我要评论
2
6
关闭 站长推荐上一条 /2 下一条