在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10602|回复: 17

[转贴] 一场海思的面试经历

[复制链接]
发表于 2017-6-15 22:47:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一场海思的面试经历原创 2017-06-15 芯司机 芯司机


                               
登录/注册后可看大图

精彩导读


回想去年,我参加过的一场面试。当时,我投递的职位是海思数字IC电路设计岗位。不知道为什么,这个岗位投递的人超多。竞争极其残酷。在面试过程中,问了很多问题,先问基础数字电路设计题,再根据简历中的项目问问题。其中一个问题,是关于多周期时钟,在这里我做下详细的记录和解释。


Section1: 多周期基础题,不会的基本…

ABOUT


面试官首先问多周期是什么意思?让我给他做个详细解释。于是我给他balabala讲了下面的知识点,当然现场没那么详细,这里我详细给大家做下解释。


一个多时钟周期的经典例子就是来自DC workshop中的乘法器,图1中时钟CLK的周期为10ns,根据设计规格加法器的延迟约为6个时钟周期。



                               
登录/注册后可看大图

图1


根据需求,需要加入的setuptime check设计约束如下:


Create_clock–period 10 [get_ports CLK]


Set_multicycle_path–setup 6 –to [get_pins C_reg

/D]


                               
登录/注册后可看大图

图2



加了上面的约束后,DC/PT 将仅仅在第6个上升沿,即第60ns做建立时间的分析,这时,加法器的最大延迟为:


                               
登录/注册后可看大图

Setup time check 时序如图2,那么,DC怎么做保持时间分析呢?其实DC默认是在setup time check的前一个周期,即第50ns做保持时间分析,这时要求加法器的最小延迟:



                               
登录/注册后可看大图


其实,这种要求明显是不合理的,也会增加电路的复杂度。


Hold time check 点如图3中绿色箭头所标注位置



                               
登录/注册后可看大图

图3



为了正确表述电路的功能,我们需要对保持时间做调整,应在0ns时刻做保持时间的检查。正确的约束如下:


Set_multicycle_path –setup 6 –to [get_pins C_reg

/D]

Set_multicycle_path –hold 5 –to [get_pins C_reg

/D]



                               
登录/注册后可看大图

图4


保持时间分析提早了5个周期。相应的电路中的加法器允许的延迟也变成为:



                               
登录/注册后可看大图


相应的电路可以修改成图5的结构进行实现。




                               
登录/注册后可看大图


图5


Section 2: 多周期进阶,体现水平的时候到了

ABOUT


面试官觉得我回答的可以,于是深入继续问,如果上面的电路2个寄存器的CLK不是同频,但是,是同步,又应该怎么考虑?如图6的电路。就是launch CLK和capture CLK 是不一样的CLK,且满足下式:



                               
登录/注册后可看大图


                               
登录/注册后可看大图

图6


当时,我就不假思索的写下了下面的SDC,但是答案却是错误的。(根据他的耐心引导,最终还是没搞定)


set_multicycle_path-setup 3 -from clk1 -to clk2


set_multicycle_path -hold 2 -from clk1 -to clk2

解释面试官的题目之前,我们先看一下set_multicycle_path这个SDC命令的其他选项的意思


set_multicycle_path            
             [-setup | -hold]
             [-start | -end]
             [-from from_list]
             [-to to_list]
             [-through through_list]


-Setup和-hold用于说明多周期路径是用在建立时间检查还是用在保持时间检查。


-Start和-end用于说明多周期路径依赖于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 clk的多周期就是clk2。但是,保持时间检查明显错了。



                               
登录/注册后可看大图

图7


为了获取正确的检查点,更正SDC,获得建立时间和保持时间检查点变成图8所示:


set_multicycle_path -setup 3 -from clk1 -toclk2 -end


set_multicycle_path -hold 2 -from clk1 -to clk2–end



                               
登录/注册后可看大图

图8


我相信将来大家可能还会碰到图9的面试题,区别在于CLK1是慢时钟,CLK2是快时钟。且满足下式:



                               
登录/注册后可看大图




                               
登录/注册后可看大图

图9



如果SDC写出下面的形式,建立时间和保持时间检查点会奇葩的变成图10所示。


set_multicycle_path -setup 3 -from clk1 -to clk2


set_multicycle_path -hold 2 -from clk1 -to clk2



                               
登录/注册后可看大图

图10



为了获得正确的timing检查点,修正SDC如下,timing check点变成图11所示:


set_multicycle_path -setup 3 -from clk1 -to clk2 -start


set_multicycle_path -hold 2 -from clk1 -to clk2



                               
登录/注册后可看大图

图11


总结

ABOUT



面试官问问题,总是由浅入深,慢慢引导我们。并根据回答情况就可以判断我们学习掌握的是否够深入。从而录取优秀的学生。另外面试官也会考察一个学生知识掌握的广度。最后,对于简历中写的内容务必都要掌握好,不会的东西,不要往简历里塞。最后预祝大家10月份找工作马到成功。



                               
登录/注册后可看大图

发表于 2017-7-12 22:30:15 | 显示全部楼层
写得不错。
发表于 2017-8-9 19:57:57 | 显示全部楼层
没有图片啊
发表于 2017-8-11 02:05:14 | 显示全部楼层
回复 1# wz_cdj


   thank you for sharing
发表于 2017-8-13 14:46:34 | 显示全部楼层
图片 全挂了 百度找到 原始链接了https://baijiahao.baidu.com/s?id=1570478645009534&wfr=spider&for=pc
发表于 2017-12-25 15:31:30 | 显示全部楼层
回复 5# macharith


    多谢了。
发表于 2018-1-2 16:01:18 | 显示全部楼层
不错  多谢
发表于 2018-4-9 12:53:38 | 显示全部楼层
good reference
发表于 2018-4-22 16:55:24 | 显示全部楼层
感謝分享~~~
发表于 2018-4-23 15:24:09 | 显示全部楼层
看看,thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 19:30 , Processed in 0.028886 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表