您的位置 首页 资料

如何写代码削减逻辑单元的运用数量?

如何写代码减少逻辑单元的使用数量?-尽量不要使用

以下都是我在编程时发现的问题,总结一下,怕今后忘了,以我现在的水平不理解相似要害途径,组合数目什么深邃理论,这都是我从实践中学到的,比看书学的形象深入得多.渐渐来吧,我想我今后也会理解那些高档的东西了!

一….尽量不要运用大于小于这样的判别句子, 这样会明显添加运用的逻辑单元数量 .看一下陈述,资源运用不同很大.

例程:always@(posedge clk)
begin
count1=count1+1;
if(count1==10000000)
feng=1; //no_ring
else if(count1==90000000)
begin
feng=0; //ring
count1=0;
end
end //这么写会用107个逻辑单元

// 如果把这句话if(count1==10000000)改成大于小于,陈述中用了135个逻辑单元

二…..一定要想尽办法削减reg寄存器的长度

前次把[30:0]改到[50:0],陈述里逻辑单元从100多直升到2000多!!!太吓人了,至于为什么我就不知道了哈!

三….case句子里一定要加default if一定要加else

如果是组合逻辑的规划,不加default或else的话,不能确保一切的状况都有赋值,就会在内部构成一个锁存器,不再是一个朴实的组合逻辑了,电路功能就会下降.

例如:case({a,b})

2b11 e=b;

2b10 e=a;

endcase

//不加default,尽管只关怀a=1时的成果,可是a=0的时分,e就会保存本来的值,直到a变为1

//那么e要保存本来的值,就要在内部生成锁存器了.

四….尽量运用Case句子 而不是if–else句子

杂乱的if–else句子通常会生成优先级译码逻辑,这将会添加这些途径上的组合时延
用来发生杂乱逻辑的Case句子通常会生成不会有太多时延的并行逻辑

五…组合逻辑的always块中,要注意一切的输入悉数放入灵敏变量表里

比方:always@(a or b)

begin

out=(abc);

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/179575.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部