建议版主发起讨论:hdl设计时怎样可以节约资源
我觉得在做开发时这个问题是一个很值得研究的问题:如果在编程时,通过优化程序减少可编程逻辑器件的使用门数,就可以选择少一些门数的pld器件,可以降低成本;因为门数的减少可以降低功耗,于是可以延长便携式设备的待机时间........
但是怎样编写的程序能减少可编程逻辑器件使用的门数呢?也许实践者最有发言权,希望大家能广泛交流,共同提高。也许我们这里的讨论能激发出一些全新的方法而应用到实际中,从而提高了我们的生活质量!
建议小编发起讨论:hdl设计时怎样可以节约资源
这个主意不错的
这个主要是代码风格的问题
建议小编发起讨论:hdl设计时怎样可以节约资源
我觉得是否应该先熟悉一下后端的版图设计方面?
只有你知道了你的代码在实际电路中是怎么用的,才能写好一个好的代码
就好象一个与非门和一个与门,后者就要占用多一些的资源,多了一个反相器
所以,我觉得做IC 就应该前端和后端都要有所了解才能写好代码
个人观点,请指正!
Good ,是不错的话题
在节约资源方面,我觉得电路构架上的优化远比在代码上的优化更加有效。
能够复用就复用,前面做的一个电路通过RAM复用使RAM使用量变成原来的1/3
乘法器分时复用使得原来的下从4个乘法器下降到1个乘法器
这些都带来了可观的资源节约。
降低功耗的好办法就是缩小面积,缩小面积的好办法就是从算法,架构上找突破口
我觉得代码风格也可以节省很大的资源,如在xilinx FPGA中写个移位寄存器,有复位和没有复位,综合出来的结果就完全不一样,实现的方式不一样
架构优化才是王道
当然代码风格也很重要
我举双手赞同!外加一句:还要看是ASIC还是FPGA,FPGA还要看具体型号!了解结构,你才懂得用什么构架,哪种代码风格!
我举双手赞同!
外加一句,还需要知道你是针对ASIC还是FPGA,二者的风格差别很大。
若是FPGA,还需要了解下他的结构!
我觉得这个是伪命题。面积和速度互相转化而已。
个人认为,除了架构,算法和coding风格,再加上“工具”和“约束”吧,不同公司的工具对同一个code的结果不尽一致,同样,不同的约束(SDC)也会产生不同的结果。
本人觉得,哪一步都很重要,只是越靠前效果越明显,但是前面的优化是建立在对后续步骤熟悉的基础之上的
借鉴坛内人士的一句话:设计IC是一个金字塔式的工作,架构设计在最底层,优化的效果最明显;依次往上算法级、RTL级、门级和物理版图级,优化的效果越来越小。这句话让人受益匪浅啊!
硬件资源复用不必然导致功耗下降,增加面积也有可能降低功耗。减少面积最直接的影响就是减少静态功耗,更需要关注的是减小动态功耗的方法——说白了就是减少电容充放电次数。
具体的代码风格,FPGA里面,举个例子,状态用1-hot(即n状态用n位)比状态编码(即n个状态用logn位)要好些。ASIC里面,多个少输入的门要比一个大的多输入的门好;翻转频率高的信号靠近输入比较好;clock gating;power gating……都是减少功耗的办法。
好吧,,有点跑题。
同感啊,前端的要熟悉后端,后端的要熟悉前端。综合时感觉有xx写的代码确实无法目睹
个人觉得:要写占用资源最少的代码,还得对综合进行深入的研究才行,了解工具是怎样进行优化的。
kaka5357应该算是个总结吧,不错不错,继续讨论,学习了
应用硬件思维,熟悉具体的FPGA的结构。
架构最重要 。
好的算法 也不错 。
不错,受用了!
那什么样的代码风格才是好的呢?
恰恰相反,在ic中与非门比与门少了一个反向器;
感觉这个问题是在是太宽泛了。和总体的设计有关、和算法有关、和选择的器件有关,和代码风格有关,各个方面的原因都会有影响。
好主题,其实很多东西,优化架构吧!
你没认真看吗,,人家说的不就是这样吗?与非门比与门少一个反相器