同步逻辑与异步逻辑,同步电路与异步电路?
时钟间有固定因果关系(来源于同个时钟源)时同步逻辑,若没有则是一步逻辑;
同步电路通过时钟脉冲使其子系统同步运作(寄存器,由时钟沿的控制);异步电路不能使用时钟脉冲做同步,通常运用握手等进行同步;
什么事同步复位,什么是异步复位?
同步复位:仅在有效的时钟沿时对触发器复位,该复位信号经过组合逻辑馈送到触发器的D输入端;
always@(posedge clk)
if(!rst_n)
else
异步复位:无论时钟沿是否到来,只要复位信号有效就对系统进行复位;
always@(posedge clk or negedge rst_n)
if(!rst_n)
else
阻塞赋值与非阻塞赋值的区别?
阻塞赋值(组合逻辑):赋值是实时的,计算完马上赋值给左边,然后再执行下一句,串行执行
//一个寄存器 输出即使b也是c
always @(posedge clk) begin b = a; c = b; end
非阻塞赋值(时序逻辑):赋值不会立刻生效,上一句和下一句非阻塞赋值并行执行。
//移位寄存器
always @(posedge clk) begin b <= a; c <= b; end
静态、动态时序模拟的区别,优缺点?
时序路径:从一个寄存器的输出到另一个寄存器的输入。
静态时序分析(STA)通过穷举方式分析每条路径的延时,对每条路径tsu和th的时序余量分析;
确定芯片最高工作频率
检查时序约束是否满足
分析时钟质量
动态时序分析(后仿),通过模拟设计在期间实际工作时的功能和延时情况;耗时,比较慢
FPGA和ASIC区别?
FPGA现场可编程门阵列,为了通用;AISC为专门功能设计的集成电路。
验证方法学的发展,验证岗位要UVM,System C,VMM
芯片设计流程
从阅读设计规范/设计协议开始,确定模块划分,接口定义、编写RTL,将各个IP集成SOC、功能验证(确定验证计划、编写testbench和testcase、单独验证、集成验证)、RTL预综合与分析、逻辑综合(DC生成门级网表给到后端)、后仿,时序分析,DFT(可测试设计 design for test)、布局布线PD,版图确定
门控时钟单元结构,如何避免毛刺?门控时钟是为了节省功耗
使使能信号在时钟有效沿到无效沿之间保持恒定,不发生变化。详见硬件架构的艺术——时钟与复位
用verilog实现一个7进制技术其,复位值可配置(复位不一定到0,可以再0-6之间任意数值)
module counter_7(
output [2:0] out,
input clk, rst_n,
input [2:0] pre_rst_num
);
reg [2:0] cnt;
always @(posedge clk or negedge rst_n)
begin
if(!rst)
cnt <= pre_rst_num;
else if(cnt==3'b110)
cnt <= 0;
else
cnt <= cnt+1;
end
assign out = cnt;
endmodule
如何进行跨时钟域的设计?
不同时钟域信号间通信需要同步处理,防止亚稳态的传输
单bit信号:两级同步器
多比特信号:fifo,双口ram,握手信号
异步fifo为什么用格雷码?
读写时钟不同频
读写地址需要同步,存在读写地址跨时钟域的,由于路径延时不一致,可能在输入的两个数据中间进行采样
格雷码相邻地址仅变化一bit,避免毛刺,多比特传输则可能出现re...问题
如果要做低功耗设计,有哪些方法?
系统层面,使用多时钟域,多电压域划分,系统架构优化(降低数据存储层次)
设计层面:降低电源电压,门控时钟clock gating,多power域设计(不同模块对电压的要求不同,可以根据需求做分割),优化时钟树,逻辑优化,减少无谓的翻转。
TPU和GPU之间的有什么区别,为什么GPU的功耗高,TPU有什么架构,工作原理