微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何提高实现的设计的频率

如何提高实现的设计的频率

时间:10-02 整理:3721RD 点击:
设计一个总线的Codec,如何使得Codec的工作频率很高呢?我实现的大概只有150MHz,有的设计的可以达到340MHz。如何才能够设计出时延小,工作频率高的Codec?
优化时序是一方面,如何进行时序优化?设计则更为关键了,如何提高设计的工作频率?求指点,求赐教。
不知道那位大侠能够提供一些资料或者指点都行。

最有效的方法是提工艺。

高速数字电路设计是门学问...
看书吧...看国外的


不从工艺的角度考虑,如何从逻辑设计方面来提高设计高速率来着?请高手指点一下。

确定下你的瓶颈是路径延迟还是周期数太多,然后根据这个结果来决定如何修改

路径延时还是挺大的,我看,

采用流水线设计...

PIPELINE, RETIMING ... PARALLEL, CHECK CRITICAL PATH, OPTIMIZE ARCHITECTURE, OPTIMIZE ALGORITHM



    good!


  PIPELINE, RETIMING ... PARALLEL, CHECK CRITICAL PATH, OPTIMIZE ARCHITECTURE, OPTIMIZE ALGORITHM
有什么参考文档或者资料么?尤其是RETIMING 、 CHECK CRITICAL PATH, OPTIMIZE ARCHITECTURE, OPTIMIZE ALGORITHM这些方面的资料,能给推荐一些书籍啥的不?谢谢


其实最主要的就是先要设计好你想要达到的频率,然后在编写verilog。一个always里面如果已经很长了就要加DFF了,写verilog的时候要对你写出的路径多长有明确的意识,只要每条路径都比较均衡就可以了。
还有就是最好对每个standard cell在你所用的工艺下的延迟大致了解。
结构上的教程也比较多,http://www.socvista.com/bbs/forumdisplay.php?fid=76&page=2
这是其中一个。


"其实最主要的就是先要设计好你想要达到的频率,然后在编写verilog"
这句话的意思不太明白,
DFF什么意思来着,不懂
谢谢您给发的链接,谢谢,东西很多哈,很好很强大。慢慢学习,摸索摸索


就是说你电路的最大频率应该是你设计之前就规划好的,这样才能知道怎么写verilog。比如这样一段代码:
always @(posedge clk)
begin
   cout <= a+b+c+d+e;
end
这样综合的结果是4级加法器的时间,如果你设计的频率只允许一条路径中容纳2个加法器,那就要写成别的方式,比如

always @(posedge clk)
begin
c1 <= a+b;
c2 <= c1+c;
c3 <= c2 + d;
cout <= c3 + e;
end
这样就是分4个clock算出来,可是每个clock都会出来一组新的数值,这样就满足要求了。
或者换种方法写成
always @(posedge clk)
begin
   c1 <= (a+b)+(c+d);//第一个path2级加法器
   cout <= c1 + e;//第二个path 1级加法器
end

关键路径是你系统频率的瓶颈



    谢谢你的耐心解说,得多编程,多联系才行。能不能给推荐几本不错的书哈


这个我知道一点儿,不知道有什么好的方法来缩短关键路径,设计结构么?有没有可以推荐的书来着,中文英文的都可以


呃。等你要是找到了也告诉我一声~

大家都有很多信元,我真是穷呀

采用流水线或者并行处理



   设计结构?那是软件的吧。你所说的总线codec到底是什么我不清楚,是挂在总线上的音视频codec吗?那最高频率就是由你的总线最高频率和codec能运行的最高频率决定了。



    我说的codec指的是,编码解码器,就是按照总线的规定将数据转化成总线标准的数据格式发送输出去,或者将接收到的数据转化成一般的数据格式。数据发送的最大频率取决于设计实现的最高频率



    您这么说,看来这方面的书应该是很少了哈



   我想看这方面的书,您能给推荐几本不?

发一个相关书籍的链接http://www.signalintegrity.com/Pubs/index.htm

要想提高工作频率,在写代码的时候就要考虑到你写的每一个局部会被翻译成什么电路,先通过工具找到critical path, 找到相应的代码,减少其寄存器间的组合逻辑。想优化代码,最好从头学学一些最基本的硬件computer algorithm, 比如怎么样用逻辑门实现加减乘除等逻辑运算,学过后,会让你对你写的代码有全新的认识。你会发现,光一个最简单的ripple carry的32位的全加器的组合逻辑延迟就已经很大了,对应到你的代码里可能只是一个加号。如果对数据的延迟要求不高的话,并行1.组合逻辑,2.加pipeline或活用状态机控制整个流程是从算法角度的主要优化方法,剩下的就只用提高工艺,或用指定的优化工艺库了。

流水线能增加吞吐量,采用硬件复制技术能减少延时


应该也不少,只是我没查过。

面积换速度啦!


谢谢您的指点,“写的每一个局部会被翻译成什么电路”,还有就是那些东西会被综合成寄存器,这些我都很想弄清楚,很想找到一些资料啥的,很遗憾,一直没有找到。不知道您能给推荐一些资料书籍不?谢谢啦。还有您说的一些基本硬件算法啥的,我也很想找一些资料,但也没找到啥东西来着。给推荐一些资料呗,谢谢O(∩_∩)O

高速数字电路设计~mark

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top