1、什么是竞争和冒险?
在组合逻辑中,门电路输入信号由于经过路径不同,到达该门的时间不同,叫做竞争
由于竞争而在输出时可能产生尖峰毛刺或脉冲叫做冒险(静态冒险和动态冒险)
1->0->1(静态1冒险) ; 0->1->0(静态0冒险)
(当输入毛刺由单个输入信号发生变化而造成时)可以通过引入冗余与项来消除静态冒险
动态冒险(输出在到达期望值之前发生了二次或多次变化)可通过消除所有的静态冒险来避免动态冒险
2、同步复位与异步复位优缺点?
同步复位:复位信号只有在时钟有效沿到来时才能复位触发器状态
- 优点:确保电路是同步的;同步复位能综合为更小的触发器;复位只发生在时钟沿,可以过滤掉复位信号的毛刺。
- 缺点:使用同步复位容易把复位逻辑综合到触发器外部。
异步复位:只要复位信号有效,立即复位触发器状态
- 优点:大多数目标器件库的DFF都有异步复位端口,因此采用异步复位可以节省资源
- 缺点:
1)在复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态。
2)复位信号容易受到毛刺的影响。
为了解决异步复位释放造成的亚稳态:异步复位,同步释放
reg reg1;
reg reg2;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
reg1<=0;
reg2<=0;
end
else
begin
reg1<=1
reg2<=reg1;
end
end
复位信号的(recovery time恢复时间)(removal time 去除时间)
recovery time恢复时间:
撤销复位时,恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证时钟能有效恢复到非复位状态,此段时间为recovery time。类似于同步时钟的setup time。
removal time 去除时间:
复位时,在时钟有效沿来临之后复位信号还需要保持的时间为去除时间removal time(去除时间)。类似同步时钟hold time
3、阻塞赋值与非阻塞赋值的区别?
- 对于阻塞语句,赋值实时的,计算完右边马上赋值给左边,然后执行下一句,串行执行
- 对于非阻塞语句,赋值不会立即生效,上一句和下一句非阻塞赋值语句并行执行
4、静态,动态时序模拟的区别
静态时序分析(STA)通过穷举方式分析每条路径的延时
- 确定芯片最高工作频率
- 检查时序约束是否满足
- 分析时钟质量
动态时序分析(仿真)通过给定输入信号,模拟设计在器件实际工作时的功能和延时。
5、FPGA和ASIC有什么区别?
FPGA(Field Programmable Gate Array)作为ASIC领域半定制电路形式出现
ASIC(application specific integrated circuit)是一种为专门目的而设计的集成电路
6、会画CMOS的门电路
7、门控时钟单元结构是这样的?如何避免产生毛刺?
解决方案:(将gate信号改为低电平跳变->增加一个clk为低时使能的latch即可)
8、如何进行跨时钟域设计?
不同时钟域信号间通信需要同步处理,防止亚稳态的传播
- 单比特信号:两级同步器(电平、边沿检测、脉冲)
- 多比特信号:fifo、双口ram、握手信号
9、找零状态机
10、如果要做一个低功耗设计?
- 降低电源电压
- 门控时钟clock gating
- 多power域设计
- 优化时钟树
- 逻辑优化,减少不必要的翻转