原创 【博客大赛】SOC感悟----代码优化2

2016-4-19 21:48 267 0 分类: 工程师职场 文集: SOC

2.2)如何从优化的角度写代码

上面试从partition的角度来讲解在写代码的时候如何注意优化,下面注重从一行行代码的角度讲解如何写出比较好的代码,利于优化。我上面也讲到,好的开始是成功的一半,否则会出现南辕北辙的局面。

20160419214444687001.jpg

2.2.1)从电路的角度思考问题

我们在写代码的时候,脑海里最好有一块块的电路,RTL的含义就是register transfer level,所以你的脑海中要有一块块的电路,这个电路后面接着寄存器来敲一拍保证好的时序。

20160419214455583002.jpg

写出能够综合的代码,切记像写c语言一样去写代码(当然现在有些工具已经能够将c语言转换成rtl代码,但是还不够成熟)。

20160419214506277003.jpg

2.2.1)注意不同语句的影响

If-else语句,具有优先级,串行,比较省面积,速度慢;

20160419214516993004.jpg

该语句比较慢的原因就是因为它具有优先级的原因,如果if-else-else-else太长,会导致组合逻辑链太长进而影响速度,但是现在的工具都已经很智能了,不会蠢到一直延长逻辑链。

注意:纯组合逻辑的if-else if语句,最后不要忘了加上else,否则会综合出latch(电平触发,纯组合逻辑有时会出现,不必要的latch会导致电路面积很大,影响时序),latch在数字逻辑设计中是忌讳有的。在FPGA中根本没有锁存器这种东西,所以说,如果你的电路产生了锁存器latch的话,将耗费更多的资源来构成它。

20160419214528146005.jpg

20160419214539508006.jpg

Case语句,并行,面积大,速度快

20160419214549814007.jpg

上图的mux4-1采用case语句实现,最终是并行的,组合逻辑链不会太长,所以速度比较快,缺点是面积会比较大,这其实就是面积和速度之间的互换。注意最后不要忘了加default

For语句循环

这类语句一般用在产生电路中,其中for循环必须是确定的值,不能是变量,否则不可能综合出电路。

20160419214600858008.jpg

20160419214610505009.jpg

2.2.2)注意调整计算公式的架构

20160419214620355010.jpg

20160419214632484011.jpg

组合逻辑链路延时少了

20160419214641313012.jpg

20160419214653793013.jpg

多了mux,少了加法器,面积少了

 

现在的工具已经相当的智能了,可以将上面比较蠢的写法综合成很聪明的方式,列出这项的目的是希望大家平时写代码的时候还是要注意一下的,不要写出自己都觉得很傻的代码出来。

广告

文章评论 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 下一条