后端面试时序分析_第1页
后端面试时序分析_第2页
后端面试时序分析_第3页
后端面试时序分析_第4页
后端面试时序分析_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一场海思的面试经历精彩导读回想去年,我参加过的一场面试。当时,我投递的职位是海思数字IC电路设计岗位。不知道为什么,这个岗位投递的人超多。竞争极其残酷。在面试过程中,问了很多问题,先问基础数字电路设计题,再根据简历中的项目问问题。其中一个问题,是关于多周期时钟,在这里我做下详细的记录和解释。Section1: 多周期基础题,不会的基本ABOUT面试官首先问多周期是什么意思?让我给他做个详细解释。于是我给他balabala讲了下面的知识点,当然现场没那么详细,这里我详细给大家做下解释。一个多时钟周期的经典例子就是来自DC workshop中的乘法器,图1中时钟CLK的周期为10ns,根据设计规格

2、加法器的延迟约为6个时钟周期。图1根据需求,需要加入的setuptime check设计约束如下:Create_clockperiod 10 get_ports CLKSet_multicycle_pathsetup 6 to get_pins C_reg*/D图2加了上面的约束后,DC/PT 将仅仅在第6个上升沿,即第60ns做建立时间的分析,这时,加法器的最大延迟为:Setup time check 时序如图2,那么,DC怎么做保持时间分析呢?其实DC默认是在setup time check的前一个周期,即第50ns做保持时间分析,这时要求加法器的最小延迟:其实,这种要求明显是不合理的,也

3、会增加电路的复杂度。Hold time check 点如图3中绿色箭头所标注位置图3为了正确表述电路的功能,我们需要对保持时间做调整,应在0ns时刻做保持时间的检查。正确的约束如下:Set_multicycle_path setup 6 to get_pins C_reg*/DSet_multicycle_path hold 5 to get_pins C_reg*/D图4保持时间分析提早了5个周期。相应的电路中的加法器允许的延迟也变成为:相应的电路可以修改成图5的结构进行实现。图5Section 2: 多周期进阶,体现水平的时候到了ABOUT 面试官觉得我回答的可以,于是

4、深入继续问,如果上面的电路2个寄存器的CLK不是同频,但是,是同步,又应该怎么考虑?如图6的电路。就是launch CLK和capture CLK 是不一样的CLK,且满足下式:图6当时,我就不假思索的写下了下面的SDC,但是答案却是错误的。(根据他的耐心引导,最终还是没搞定)set_multicycle_path-setup 3 -from clk1 -to clk2set_multicycle_path -hold 2 -from clk1 -to clk2解释面试官的题目之前,我们先看一下set_multicycle_path这个SDC命令的其他选项的意思set_multicycle_p

5、ath                          -setup | -hold             -start | -end      

6、       -from from_list             -to to_list             -through through_list-Setup和-hold用于说明多周期路径是用在建立时间检查还是用在保持时间检查。-Start和-end用于说

7、明多周期路径依赖于start clock还是依赖于end clock。注意-start和-end。 在设置multicycle_path的过程中,一定要注意是start clock 是多周期,还是end clock 多周期。这关系到时序分析的正确性。默认情况下set_multicycle_path对建立时间的分析是设置end clock为多周期,对保持时间分析师设置start clock为多周期。也就是说,上面的SDC等价于那么根据这个SDC,DC的建立时间和保持时间check点就变成下面图7所示。可以看到保持时间检查是start clk的多周期就是CLK1。建立时间检查是end c

8、lk的多周期就是clk2。但是,保持时间检查明显错了。图7为了获取正确的检查点,更正SDC,获得建立时间和保持时间检查点变成图8所示:set_multicycle_path -setup 3 -from clk1 -toclk2 -endset_multicycle_path -hold 2 -from clk1 -to clk2end图8我相信将来大家可能还会碰到图9的面试题,区别在于CLK1是慢时钟,CLK2是快时钟。且满足下式:图9如果SDC写出下面的形式,建立时间和保持时间检查点会奇葩的变成图10所示。set_multicycle_path -setup 3 -from clk1 -t

9、o clk2set_multicycle_path -hold 2 -from clk1 -to clk2图10为了获得正确的timing检查点,修正SDC如下,timing check点变成图11所示:set_multicycle_path -setup 3 -from clk1 -to clk2 -startset_multicycle_path -hold 2 -from clk1 -to clk2图11总结ABOUT面试官问问题,总是由浅入深,慢慢引导我们。并根据回答情况就可以判断我们学习掌握的是否够深入。从而录取优秀的学生。另外面试官也会考察一个学生知识掌握的广度。最后,对于简历中写

10、的内容务必都要掌握好,不会的东西,不要往简历里塞。最后预祝大家10月份找工作马到成功。终于完成了,可以喝咖啡了!IC设计工程师的需求量逐年增加,薪水待遇也是水涨船高,刚入行的初级IC设计工程师都可以拿到非常高的年薪。 而作为应届毕业生,每年的校招,笔试面试是固有的环节,也是最后能顺利拿到offer的必经之路。 要想顺利拿到名企的高薪offer,还需要在笔试和面试的环节好好练级打怪。 现在我们请来了一流IC设计公司的资深工程师,为你精讲IC设计的经典笔试面试题,让你在后面的打怪路上有如神助。有了大神级的队友,你还怕找不到好工作? 课程内容: 1. 讲解各大IC设计公司笔试题,包括华为、展讯、AM

11、D等 2. 其他各种笔试经验交流.SystemVerilog是数字IC验证最常用的语言,是UVM验证方法学的基础。学好systemverilog语言,打好基础,是一名IC验证工程师的必备技能。本课程深入讲解SV基础语法。配套上机实验,给学生提供VNC服务器进行上机练习,让学生真正掌握SV在实际工程中的应用。Weixin:couragefengyun序号 课程内容 课程时长1u 工具使用(vnc, linux,gvim,vcs)u 讲解数字 IC 设计流程u Verilog 基础实例u 配套上机实例15 课时2SystemVerilog:u 讲解验证基础和理论知识u 验证层次和验证计划u Sys

12、temVerilog 验证平台u SystemVerilog 验证特性u EDA 环境以及软件u 配套上机实例10 课时3SystemVerilog:u 待测设计(DUT)的设计规格介绍u SystemVerilog Interface 和 Programu SystemVerilog 数据类型u 配套上机实例10 课时4SystemVerilog:u SystemVerilog 过程语句和子程序u SystemVerilog 面向对象编程基础u SystemVerilog 随机化u 配套上机实例10 课时5SystemVerilog:u SystemVerilog 线程及内部通信机制u Sy

13、stemVerilog 类的封装、继承和随机u 配套上机实例10 课时6SystemVerilog:u 搭建基于 SystemVerilog 的验证平台u SystemVerilog 功能覆盖率u SystemVerilog Assertion10 课时u 配套上机实例7UVM 基本模块:u 讲解 UVM 验证平台及结构u Interface/ transactionu Env/agentu Driver/monitoru Scoreboard/reference modelu 配套上机实例10 课时8UVM 基本模块:u Sequencer/sequenceu Port, UVM 各模块间通

14、信机制u base_test/test caseu 配套上机实例10 课时9UVM 进阶:u Component/objectu Config 机制u TLM 通信机制u Phase 机制u Objection 机制u 配套上机实例10 课时10UVM 进阶:u Factory 机制u Sequence 机制u Virtual sequence 使用u Sequence 的进阶使用u Sequence libraryu 配套上机实例10 课时11UVM 进阶:u 寄存器模型 reg_modelu 前门后门访问机制u 复杂寄存器模型用法u Callback 机制u 配套上机实例10 课时12Pe

15、rl 脚本:u 语法实例精讲u 配套上机实例u 项目所需 perl 脚本精讲5 课时13IP 项目实践:SRAM 控制器u 讲解 design spec 和 RTL 代码u 讲解如何搭建 UVM 验证平台u 自动生成平台脚本讲解及使用(perl)u 搭建完整 UVM 验证平台u 创建 test cases 进行仿真验证u 指导学生完成整个项目10 课时14IP 项目实践:-SD HOSTu 讲解 design spec 和 RTL 代码u 验证计划文档u 搭建完整 UVM 验证平台u 完成功能覆盖率,assertionu 仿真脚本,regression 脚本编写u 集成寄存器验证 RAL,完成

16、寄存器验证u 创建 test cases 进行仿真验证u 随机测试,回归测试,覆盖率分析u 完成验证报告文档编写u 指导学生完成整个项目40 课时15IP 项目实践:SDMemu 讲解 SD 协议u 讲解 design spec 文档u 讲解复杂协议构造及验证平台搭建方法u 搭建完整 UVM 验证平台u 完成 test plan 和 verification specu 完成 test matrix,创建 test casesu 使用 VCS 完成仿真 debug10 课时16系统级验证u 系统级验证方法介绍10 课时u 系统级验证计划编写u 系统级验证平台搭建u 系统级 test cases 编写u 仿真及 debug17Gate-sim 仿真u Gate-sim 仿真介绍u Gate-sim 验证平台搭建及 SDF 文件导入方法u Test cases 仿真及常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论