如何提高实现的设计的频率
优化时序是一方面,如何进行时序优化?设计则更为关键了,如何提高设计的工作频率?求指点,求赐教。
不知道那位大侠能够提供一些资料或者指点都行。
最有效的方法是提工艺。
高速数字电路设计是门学问...
看书吧...看国外的
不从工艺的角度考虑,如何从逻辑设计方面来提高设计高速率来着?请高手指点一下。
确定下你的瓶颈是路径延迟还是周期数太多,然后根据这个结果来决定如何修改
路径延时还是挺大的,我看,
采用流水线设计...
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
