广告

原创 【博客大赛】FPGA常用设计思想小结

2013-3-3 15:42 458 0 分类: FPGA/CPLD

一:流水线技术

1)  流水线原理

20130303153507289001.jpg

流水线的基本结构是将适当划分的N个操作步骤串联起来。流水线操作的最大特点是数据流在各个步骤的处理,从时间上看是连续的;其操作的关键在于时序设计的合理安排、前后级接口间数据的匹配。如果前级操作的时间等于后级操作的时间,直接输入即可;如果前级操作时间小于后级操作时间,则需要对前级数据进行缓存,才能输入到后级;如果前级操作时间大于后者,则需要串并转换等方法进行数据分流,然后再输入到下一级。

20130303153621535001.gif

2)  流水线应用实例(8 位全加器)

1.       无流水线

2.           module adder8 (cout ,sum ,clk ,cina ,cinb ,cin);

3.           input [7 :0 ]cina ,cinb;

4.           input clk ,cin;

5.           output [7 :0 ] sum;

6.           output cout;

7.            

8.           reg[7 :0 ]sum;

9.           reg cout ;

10.        

11.       always @(posedge clk) begin // 时钟上升沿有效;

12.       {cout ,sum} = cina + cinb + cin ; // 8 位相加;

13.       end

14.        

15.       endmodule

RTL结构图

20130303153519227003.jpg

仿真波形

20130303153647558001.gif

2.有两级流水线(可以根据设计情况设计成多级流水线)

} module adder8_2(cout ,sum ,clk ,cina ,cinb ,cin) ;

} input [7 :0]cina ,cinb; input clk ,cin;

} output [7 :0] sum; output cout;

} reg cout ; reg cout1 ; reg[3 :0]sum1; reg[7 :0]sum;

}  always @(posedge clk) begin //4 位相加;

} {cout1 , sum1} = cina [3 : 0] + cinb [3 : 0] + cin ;

} end

} always @(posedge clk) begin  //4 位相加,并且将8 位拼接起来;

} {cout ,sum} = {{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1} ,sum1};

} end

} endmodule

RTL结构图

20130303153530522005.jpg

仿真波形

20130303153711780001.gif

二:逻辑复用与逻辑复制技术

1

逻辑复用——速度换面积

逻辑复用是通过提高工作频率来节省面积的优化方法,经常用于存在多个资源可共享单元的设计中,是大规模FPGA设计的核心思想。

2

逻辑复制——面积换速度

逻辑复制是通过增加面积而改善设计时序的优化方法,经常用于调整信号的扇出。如果信号具有高的扇出(如:时钟和复位信号等),即要驱动很多后续电路,则要添加缓存器来增强驱动能力,但这会增大信号的时延。通过逻辑复制,使用多个相同的信号来分担驱动任务。这样,每路信号的扇出就会变低,就不需要额外的缓冲器来增强驱动,即可减少信号的路径延迟。

三:关键路径提取

1)简单组合电路关键路径的提取方法

简单组合电路的关键路径提取方法就是拆分逻辑,将复杂逻辑变成多个简单组合电路的进一步组合缩减关键信号的逻辑级数

简单关键电路的提取实例。对于语句:

assign y = a & b & c | d & e & b;

从中可以看出,信号b为关键信号。现将其简单路径计算,再经过关键路径逻辑。

assign temp = a & b & c & d;assign y = b & temp;

2)  复杂always块中关键路径的提取方法

对于always模块中时间要求非常紧的信号,需要通过分布提取方法,让关键路径先行,保证改写后的描述与原always块逻辑等效。

四:逻辑合并与拆分原理

逻辑合并和拆分操作主要用于修改逻辑结构。数字电路中的逻辑结构主要分为链状结构(Chain Architecture)和树状结构(Tree Architecture)。一般来讲,链状结构具有较大的时延,后者具有较小的时延。所谓的链状结构主要指程序是串行执行的,树状结构是串并结合的模式

20130303154203836001.jpg

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
我要评论
0
0
广告
关闭 热点推荐上一条 /2 下一条