静态时序电路分析——硬件加速课程笔记

静态时序电路分析——硬件加速课程笔记

可综合语句四大法宝

一般来说,Verilog可以被用于综合描述的语句:always、if-else、case、assign;(四大法宝)
通常来说不可综合的关键字用来写仿真
if-else:映射为多路选择器,输出结果由输入选择条件决定。例如
在这里插入图片描述
由于加法器所用的晶体管数量较多,因此减少一个加法器就可以减少硬件面积。
单if语句:
在这里插入图片描述
多if语句:
在这里插入图片描述
case 语句:
在这里插入图片描述
Latch
在这里插入图片描述
latch由电平触发,非同步控制,在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。
latch容易产生毛刺,DFF则不易产生毛刺。
latch容易将静态时序分析变得极为复杂。
一般的设计规则是:在绝大多数设计中避免产生latch。latch最大的危害在于不能过滤毛刺。这对于下一级电路时极其危险的。所以只要能用D触发器的地方,就不用latch。
容易引入latch的途径:使用不完备的条件判断语句。比如缺少else或者default。
在这里插入图片描述
在这里插入图片描述
一般来说,共享导致性能下降。
在这里插入图片描述
尽可能使用always块,而不用assign,assign仅用于信号连接,而且少用:?形式,难以阅读,且多层嵌套后难以被综合器解释。

可综合风格

完整的always敏感信号列表:
所有的组合逻辑或锁存的always结构必须有敏感信号列表,这个敏感信号列表必须包含所有的输入信号。
不允许Wait声明和#delay声明:
wait声明语句,不论是清楚还是含糊,都不能用于可综合设计。从RTL级转换到gate级的综合工具一般都不支持Wait声明和#delay声明。在不需要进行综合的行为模块中,如测试模块、表示行为的虚拟期间模块中可以使用。
在时序电路中必须使用<=;在组合逻辑电路必须使用=;

模块划分。

**分开异步逻辑和同步逻辑,**避免综合时的问题,简化约束和编码难度。
分开控制逻辑和存储器:建议控制逻辑和存储器逻辑分成独立的模块,便于高层的存储器模块的使用和便于重新描述为不同的存储器类型。

在RTL书写中如何考虑延迟、面积等

将数据到来的比较晚的支路放在最后一个mux,如
在这里插入图片描述
变成
在这里插入图片描述
电路图由
在这里插入图片描述
变成
在这里插入图片描述

在RTL编码中考虑面积

减少设计面积:成本功耗降低
+、-、×、÷、条件语句中的比较运算等要注意,可能会产生较大的组合逻辑。
首先看能否用更简单的运算来代替
在这里插入图片描述
如果必须使用复杂的运算符,则应考虑是否可以资源共享。尽管电路逻辑综合工具也会在综合的过程中采用资源共享的方法进行优化,但是综合器的资源是有限的,因此,在编写RTL的时候,应该尽量考虑共享,而不是把这项工作完全留给综合工具

在RTL编码中考虑功耗

在这里插入图片描述
主要措施:
1 门控时钟
2 增加使能信号,使得部分电路只有在需要工作时才工作;
3 对芯片各个模块进行控制,在需要工作时才工作;
4 除了有用信号和时钟的翻转会消耗功耗,组合逻辑产生的毛刺也会消耗大量功耗,但是,毛刺在设计中无法避免,因此,只有尽量减少毛刺在电路中的传播,才可以减少功耗。即,在设计中,尽量把产生毛刺的电路放在传播路径的最后。另外可以使用一些减少毛刺的技术。
在这里插入图片描述
热点是指设计的功能需要在一个面积内占用大量的布线资源。

面积与速度的互换

面积的衡量:FPGA可以用所消耗的触发器和查找表数量来衡量
ASIC可以用设计的系统门衡量。
速度是指设计在芯片上稳定运行时所能够达到的最高频率,这个频率由设计的时序状况决定。
科学的设计目标是:面积和速度的平衡思想
如果设计的时序余量较大,运行的频率较高:代表设计的健壮性更强,整个系统的质量更有保障。
如果设计所消耗的面积更小:代表在单位芯片上实现的功能模块更多,需要的芯片数量更少,整个系统的成本也随之大幅度消减。

一个设计如果时序余量较大,所能跑的频率远远高于设计要求:能通过功能模块复用减少整个设计所消耗的芯片面积;用速度的优势换取面积的节约。
一个设计的时序要求很高,普通方法达不到设计频率:可以通过将数据流串并转换;可以并行赋值多个操作模块;可以对整个设计采取“乒乓操作”和“串并转换”的思想进行处理。

乒乓操作

在这里插入图片描述
在第一个缓冲周期,将输入的数据流缓存到数据缓冲模块1,在第二个缓冲周期,通过输入数据选择单元的切换,将输入的数据流缓存到数据缓冲模块2。同时将数据缓冲模块1缓存的数据通过输出数据流选择单元的选择送到数据流运算处理模块。在第三个缓冲周期,通过输入数据选择单元的再次切换将输入的数据流缓存到数据缓冲模块1,同时将数据缓冲模块2缓存的第二个周期的数据通过输入数据选择单元切换送到数据流运算处理模块。
在这里插入图片描述
乒乓操作的第二个优点是可以节约缓冲区空间,比如在WCDMA基带应用中,1个帧是由15个时隙组成的,有时需要将1整帧的数据延时一个时隙后处理,比较直 接的办法是将这帧数据缓存起来,然后延时1个时隙进行处理。这时缓冲区的长度是1整帧数据长,假设数据速率是3.84Mbps,1帧长10ms,则此时需 要缓冲区长度是38400位。如果采用乒乓操作,只需定义两个能缓冲1个时隙数据的RAM(单口RAM即可)。当向一块RAM写数据的时候,从另一块RAM读数据,然后送到处理单元处理,此时每块RAM的容量仅需2560(=38400/15)位即可,2块RAM加起来也只有5120位的容量。

流水线运算

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值