1:低功耗设计 降低翻转率
(1)输入保持,降低输入的翻转率,并且由于输入没变,此时输出也不变,整体降低了翻转率;
(2)采用Gray码或One-Hot码作为状态机编码,Gray格雷码,One-Hot独热码,相比普通二进制编码来说,在状态跳转时的整体翻转率更低
(3)glitch是路径传输中的毛刺,有电平的翻转,造成额外功耗,减少glitch可以降低电路翻转率
glitch要尽可能的放在后面,移位放在前面,会在成后面有多余的电平翻转
2:SV的constraint约束
SV的问题,在constraint约束里,dist有:=和:/两种,
(1):= x,表示都取x;
(2):/ x,表示总共就x,大家一起均分;
src = 0是权重是30,等于1的权重是90,等于2的权重是90,等于3的权重是90,
总全中是srs=0,1,2,3,的权重和,30+90+90+90=300 所以总权重的300,
那么src = 0的概率是30/300 = 0.1
3:Cache
Cache独立,通常是SRAM构成,对程序员透明,解决CPU和主存直接速度不匹配的问题。
4:new
new 创建动态数组之前要先new一下,重点在动态
5:STA
STA:静态时序分析,只分析同步电路
6:one-hot code、binary code,前者相对于后者的优势主要体现在——速度快
独热码使用的寄存器更多,但是只有1位是1,译码简单,速度更快;跳转时翻转的bit位少,是能节省一些动态功耗,但是本身用的资源也多,综合下来不清楚功耗是更高还是更低。
7:对于相同位数输入的变量比较器,大于和小于的面积是一样的
8:latch只出现在组合逻辑
latch只出现在组合逻辑,时序逻辑中,即使缺少else,也是综合成寄存器不会综合成latch
9:
10:触发器的最高工作频率
Tsu数据相对时钟的建立时间,Thd数据相对时钟的保持时间,Tcq输出相对时钟的延迟
11:verilog运算符的优先级从高到低
{}拼接
!~非
*/%乘除取余
加减
<< >> 移位运算
>= <= > < 比较运算
== === !==
&
^
|
&&
||
?:
12:prel脚本
last 语句用于退出循环语句块;exit退出程序
13:类
class B extends A//extends是继承,B是A的子类,A是B的父类
$cast(b,a)//前面是父类,后面是子类,安全,返回值是0
14:同步时钟
同一个PLL产生的,频率相同,相位关系确定的时钟是同步时钟
15:影响CMOS电路动态功耗的因素
工艺(Process)、电压(Voltage)、温度(Temperature),翻转率、漏电流
16:芯片的工作条件
主要是指工艺(Process)、电压(Voltage)、温度(Temperature)
17:逻辑函数可以有的表达式
真值表,卡诺图,逻辑表达式,逻辑图(而不是组合图)
18:FPGA和ASIC芯片设计区别
19:xilinx复位
Xilinx 复位准则:
(1)尽量少使用复位,特别是少用全局复位,能不用复位就不用,一定要用复位的推荐局部复位;
(2)如果必须要复位,在同步和异步复位上,则尽量使用同步复位,一定要用异步复位的地方,采用“异步复位、同步释放”;异步复位、同步释放,避免了释放带来的亚稳态
(3)复位电平选择高电平复位;
(这里说明,由于 Altera 和 Xilinx 器件内部结构的不同,Altera 的 FPGA 推荐低电平复位)
Get Smart About Reset: Think Local, Not Global 考虑局部复位,而不是全局复位;全局复位并不是时序关键路径
全局复位的异步释放:
考虑复位真的重要吗?
好消息是,在99.99%的情况下,全局复位的异步释放对系统没什么影响,所以大多数电路都能正常工作,流水线场景中,复位释放的时间并不重要;独热码状态机场景中复位释放的时间非常重要;没有反馈的电路实际上根本不需要复位。
20:异步复位同步释放——同步后的复位当作同步复位还是异步复位
Xilinx 平台中是将异步复位同步释放得到的复位信号当成同步复位使用,Xilinx推荐高电平复位;
Altera还是把这个同步后的复位当作异步复位来用的,且推荐低电平复位。
异步复位,同步释放的好处
经过异步复位同步释放处理后,相比于纯粹的异步复位,降低了异步复位信号释放导致亚稳态的可能性;相比同步复位,能够识别到同步复位中检测不到的复位信号;综合两者的优势,异步复位同步释放。
21:资源优化策略
主要讲的是通过适当的调整代码的顺序、改变代码等方式来降低资源消耗
Xilinx 7系列的FPGA,该类型的FPGA已经使用6输入查找表LUT6;即6输入查找表