1 数字ic设计流程
逻辑综合是将RTL电路转换成基于具体工艺库的门级网表。
要进行系统级设计,
就要进行前端设计Synopsys 的VCS--对RTL做功能仿真,
Cadence--逻辑综合,RTL代码转化成门级电路,Design Compiler生成网表文件。
--STA静态时序分析,套用一些时序模型来针对电路分析有没有时序为例--
从功能上对综合后的网表进行验证。
RTL设计 --- 功能仿真 --- 逻辑综合 --- STA时序分析 --- 形式验证(从功能上对综合后的网表进行验证)
2 FPGA开发流程
RTL设计 --- 功能仿真(对所设计电路进行逻辑功能验证)--- 逻辑综合(将RTL综合成门级网表) --- 布局布线(将综合后的网表配置到具体的FPGA芯片上)--- 时序仿真和验证(将布局布线的延时信息标注到网表上 检测有无时序违例) --- 板级仿真与验证
3 时钟偏斜,时钟抖动以及对setup 和hold的影响。
时钟偏斜(偏移)是因为布线长度和负载不同,导致同一时钟上升沿到不同触发器的时间不同。这一时间差,即为时钟偏移。时钟偏斜可能导致时序违例。 如果时钟倾斜变小,可能导致建立时间不满足,即建立时间违例。
时钟偏斜: 由于布线长度和负载不同,导致同一时钟上升沿到不同触发器的时间不同。
Tskew过大,可能导致保持时间不满足,导致保持时间违例。
时钟抖动是指同一时钟,相邻周期间时间不一致的现象。这一误差来源于时钟自身,与噪声、干扰以及电源变化有关。可以认为时钟抖动是时钟信号本身在传输过程中的一些偶然和不定的变化之总和。
时钟抖动: 同一时钟,相邻周期时间不一致的现象。
时钟抖动可能导致时钟上升沿比期望值来的更早或者更晚。更早导致建立时间不满足,更晚导致保持时间不满足。
4 毛刺问题
竞争冒险 ----产生毛刺
消除毛刺:
1 利用冗余项 --- 代数法和卡诺图法
2 采样法 ---- 由于冒险多发生在电平跳变的时刻,即在输出信号的建立时间内产生毛刺,而在输出信号的保持时间内对其进行采样,就可以消除毛刺信号的影响。
采样方法: 锁存法: 利用D触发器输入端D对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号。由于时钟的上升沿时刻,输出端Q=D,当输入的信号有毛刺时,只要不发生在时钟的上升沿时刻,输出就不会有毛刺。
3 吸收法-----滤波电容
4 硬件描述语言 ----避免毛刺产生 ---- 规范的HDL代码编写。
避免在综合时候引入锁存器。
在设计时,用格雷码计数器代替普通的二进制计数器,因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。
5 为什么触发器需要满足建立时间和保持时间---什么是亚稳态
由于数据传输到达触发器时会延时,那么需要在时钟有效沿来之前把数据准备好,以便采样到正确的数据;
数据被采样完毕后,到下一个触发器时还会延时,保持时间是为了在时钟有效沿到达之后,后一级的触发器也能正确采样。
如果不满足建立时间和保持时间就会进入亚稳态。
建立时间 保证触发器正确采样到数据,保持时间保证 下一级触发器正确采样到数据。
如果不能满足建立时间和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0 1 之间变化,这需要一个恢复时间才可以稳定,但稳定后的值并不一定是你的输入值。
6 为什么两级触发器可以防止亚稳态传播
使用两级触发器来使异步电路同步化的电路其实叫做“一步同位器”,他只能用来对一位异步信号进行同步。
两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,
那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来, 而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。
同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。
7 查找表的原理与结构
查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有 4位地址线的16x1的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
8 ram资源
块ram,分布式ram 块ram和分布式ram,bram是fpga中定制的ram资源,dram就是用逻辑单元拼出来的。
block ram 和分布式ram。 DRAM是逻辑单元拼出来的。
Block ram由一定数量固定大小的存储块构成的,使用BLOCK RAM资源不占用额外的逻辑资源,并且速度快。
分布式RAM的特点是可以实现BRAM不能实现的异步访问。不过使用分布式RAM实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少。
9 某一SRAM芯片,其容量为16K*8位,则其数据线和地址线的条数分别为
地址线14根,数据线8根
16k = 2^14 ------地址线需要14根。
数据线需要8根 ---- 8位