《数字IC设计入门》(1)

多为本人的读后总结,基于我自己已学知识的补充。各人各有各人的理解。

目录

第一章:IC设计行业概述

第二章:基于Verilog的数字IC设计方法

2.1 数字器件与Verilog语法的关系

2.2 可综合的Verilog设计语法

2.7 Verilog中的for循环

2.18 Verilog中的宏定义

2.22 流水线设计方法

2.24 时钟和复位信号的起源(2023.10.31)

2.26 无毛刺的时钟切换电路(懂60%)

2.27 组合环

2.28 RTL的前向设计法和后向设计法(2023.11.01)

2.30 原理图和时序图

2.31 在时序逻辑和组合逻辑之间选择

2.32 signed声明的妙用(懂50%)

2.35 在RTL中插入DFT的方法(2023.11.02)

2.36 需要进行元器件例化的几种情况

2.37 对于大的扇入和扇出的处理

2.38 低功耗设计方法(2023.11.03)

2.41 数字电路的布局布线流程简介


第一章:IC设计行业概述

1.DFT检查的对象是生产差错造成的芯片损坏,它不能检查设计问题,设计问题应该由验证工序来检查。版图完成后,需要对整个设计的时序、功耗进行评估,即SignOff步骤,对应的工具一般是Prime Time(PT),其中,时序分析在DC中也可以做,但在分析方法、细节考虑全面度和分析速度等方面存在差异,一般在综合时使用DC检查,而在SignOff时用PT检查。

2.数字IC设计与FPGA开发的区别:

        从硬件结构分析:数字芯片中的元器件都是真实元器件,而FPGA中的电路多是由LUT实现的。

3.在学习重点方面,IC设计初期的学习重点是设计方法论和小型功能模块的设计,例如简单计数器、同步/异步FIFO、各种SoC总线协议。跨时钟异步处理等,而验证工程师初期的重点学习内容是验证流程,熟悉验证平台结构,记忆并熟练运用System Verilog及UVM验证语法等。


第二章:基于Verilog的数字IC设计方法

2.1 数字器件与Verilog语法的关系

        Foundry提供的元器件中存在10种简单元器件:与门、或门、非门、异或门、加法器、乘法器、选择器、比较器、移位器和触发器,前九个都是组合逻辑,最后一个是时序逻辑。

2.2 可综合的Verilog设计语法

        能变成电路的Verilog表达叫作可综合,在设计电路时,只能使用可综合的语法表达,而在仿真时,由于只在计算机上运行,不流片,可使用不可综合的高级语法,以增加语言表达的灵活度和复杂度。

        凡是组合逻辑都用阻塞赋值,凡是时序逻辑都用非阻塞赋值。

2.7 Verilog中的for循环

        在Verilog中,for有两种用法,一种是一次复制多个逻辑的for循环,还有一个是用在一个always块中的,只复制该块中的逻辑,超出块的范围就不复制。前者使用generate块,整个要复制的逻辑都包含在由generate和endgenerate限定的范围内;后者即是在一个always块中,用普通的Integer完成重复。

2.18 Verilog中的宏定义

        `define——`include——`ifdef等

2.22 流水线设计方法

        多级流水的方法可以提高主频,由于寄存器与寄存器之间的组合逻辑较短,因而可以支持时钟频率数GHz而又不出现建立时间违例的问题。

2.24 时钟和复位信号的起源(2023.10.31)

        一般的数字芯片,驱动时钟有3个来源,第一个是电阻和电容组成的振荡器(RC Oscillator,RCO),第二个是晶体或晶振,第三个是锁相环(Phase Locked Loop,PLL)。RCO只靠电路就能提供时钟,成本低,但精度较差,一般用作启动时钟,即芯片启动后尚未进入正式工作状态时,进行准备工作,如运行Boot命令、配置一些寄存器、切换到其他工作时钟等。

        双沿触发的难度在于最好的占空比为50%,而这个难度比高于保持频率稳定性的难度。需要双时钟沿的设计主要是时钟的切换电路以及DDR存储芯片,前者的目的是消除时钟毛刺,后者的目的是在保持时钟速率不变的前提下提高数据速率,代价是它必须用差分时钟来保证占空比的稳定。

        复位信号大多来源于数字电路的电源VDD,之所以用低电平复位,就是因为上电过程中复位信号先为0,等超过阈值才是1,上电过程中一直复位拉住电路,直到电源电压达到一定幅度后才释放,恢复电路的自由。

2.26 无毛刺的时钟切换电路(懂60%)

        多个时钟切换时出现毛刺并且进入寄存器中,则会导致寄存器内部出现时序问题,使寄存器输出亚稳态。该节介绍了四种解决时钟切换出现的毛刺问题,并提供了代码和讲解视频,非常清晰明了,见P88--P101。

2.27 组合环

        用组合逻辑产生的信号又作为输入反馈到原来的组合逻辑中,称为组合环,也称为逻辑互锁,设计时应该避免。对于组合环的处理方法一般是在该环的任意处插入一个寄存器,为避免多个模块之间形成组合环,一般要求模块的输入或者输出使用触发器打一拍。

2.28 RTL的前向设计法和后向设计法(2023.11.01)

        前向设计法是指由输入逐渐推出输出结果,后向设计法是指从输出向输入一步一步推导。

2.30 原理图和时序图

        作者建议初学者在获得一个开发任务时,与其花时间画原理图或框图,还不如将需要实现的功能详细罗列在文档中,列得越详细,说明对该任务的理解越深刻,最终出大问题的可能性越小。

2.31 在时序逻辑和组合逻辑之间选择

        不推荐使用每产生一个信号都都用时序逻辑的做法,这会导致信号的输出延时变大,但是时序逻辑可以保证信号不会立马消失,保持一定的稳定性,如果仅仅给输入打拍,则模块内部产生的组合逻辑毛刺会随着输出泄露到模块以外,因此,推荐输出打拍,这样输出将不会有毛刺且不会造成延时过大。

2.32 signed声明的妙用(懂50%)

        在综合或者仿真时,需要声明让工具支持System Verilog:

        analyze - format sverilog[待编译文件列表] 综合时声明支持System Verilog;

        vcs - sverilog[待编译文件列表] 仿真时声明支持System Verilog;

用法总结如下:

    1. 无论是否使用signed声明,在实际设计中都会有处理带符号数据的需求,一是自动在高位上填补符号位(负数,高位全补1),另一点是有符号数可以直接比较大小,无须用符号与绝对值联合判断;
    2. 运算算式中,除了加减乘除以外的其他组合逻辑,需要将它们与加减乘除分开,改写为两个运算式;
    3. 在对signed数进行大小比较时,需要遵循两边同为signed的要求,若有一个数不是signed数,需要将其强制转换为signed,一个非signed的信号a转换为有符号信号的语法是signed'({1'b0,a}),若比较的对象是-a(a为正数),则需要使用signed'(-{1'b0,a});
    4. 有符号数向右移位,需要用>>>才能自动在高位补符号,左移时
    5. 对于有符号的信号需要扩展位宽时,带signed声明可以自动扩展,减少手工描述;

2.35 在RTL中插入DFT的方法(2023.11.02)

        DFT测试过程的时钟并不快,典型的频率是20MHz。测试使用的设备是自动测试机台(Automatic Test Equipment,ATE),它可以产生测试需要的芯片激励信号,并测量各个输出引脚的值;输入的激励称为测试向量,是由一种专门的自动测试向量产生软件(Automatic Test Pattern Generation,ATPG)产生的。

        若一个芯片的数字引脚有m个,减去必要的scan_se、scan_clk和scan_rstn,剩余数字引脚除以2,并向下取整,可以得到测试向量的最大并行度n:n = [ (m-3) / 2 ] 。

2.36 需要进行元器件例化的几种情况

        在有些情况下,设计者需要舍弃10中抽象元器件思维,直接例化使用实际元器件,包含以下几种情况:

    • 时序链路太长,时序无法收敛;
    • 时钟信号线的要求,为了满足不同应用场景的需求,芯片的时钟信号结构往往比较复杂,包括以下元器件和结构:多选一的MUX、时钟门控、Buffer和与或非门等元器件、复位线等的要求。

2.37 对于大的扇入和扇出的处理

        大扇入是指一个信号被很多信号共同驱动;大扇出是指一个信号用于驱动很多信号。大的扇入和扇出会造成PR布线拥塞(Congestion),即在这个局部,信号线太过密集,找不到空余的面积来排列这些线,术语称为没有布线资源,后端此时会向前端反应,一般用两种方法解决该问题,一是将原来的扇入扇出分组处理,另一种方法是使用直接例化元器件的方法,人工优化电路结构。

2.38 低功耗设计方法(2023.11.03)

        芯片设计和生产过程中,可以从多个层次、多个角度实现低功耗。第一层是通过RTL实现,目标是降低动态功耗,即希望电路尽量少动;第二层的操作是在电源域上做的,即当某些模块不用时,连同电源一起切断;第三层操作是从芯片制造的掩膜版层次结构上考虑的,由系统规划师决定,需要解决选用何种工艺、该工艺需要用多少层金属等问题;第四层是最高级的省电操作,是在制造工艺上的优化。

2.41 数字电路的布局布线流程简介

        可概括为五步,第一步是对芯片产品的整体规划,即对芯片面积、形状、封装的确定,以及对流片工艺、Foundry和金属层数的选择;第二步是FloorPlan,即对数字和模拟电路形状和面积的规划;第三步是布局(Place),即将综合得到的元器件按照一定规则分散到FloorPlan话定的范围当中;第四步是时钟树综合(Clock Tree Synthesis,CTS),这是PR的关键性步骤;第五步是精细布线,也称绕线,即用金属线将所有元器件连接起来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值