1. 同步电路(synchronous circuits)和异步电路(asynchronous circuits)的区别? 解析: 同步电路的时钟源是一个,包括通过PLL分频和倍频的时钟,都可以认为是同步时钟电路。 异步电路是的时钟源是不同,时钟的相位和时钟周期,没有关系。 同步电路即电路的状态运转随某个时钟而跳转,所有电路之间利用时钟沿来做同步。而异步电路之间的不受某个时钟沿控制,而是各个电路之间由各种握手信号来完成数据之间的交互与同步。 同步电路相比于异步电路好分析,时序约束简单,同时能够容忍一定的毛刺。但是由于时钟一直处于跳变状态,寄存器的功耗较大。 异步电路相对于同步电路其分析与时序约束更加复杂,但是具有低电源功耗,无时钟偏斜等问题。 异步电路容易产生亚稳态问题,需要在设计是进行特殊的设计处理。比如两级同步,异步FIFO,格雷码等。 思考:可以从多个角度来解答这个问题:1. 基本概念,2电路特性,3.设计方法,4.时序分析
2. 画出下面RTL code 的逻辑电路图?
解析:
生成latch
思考题:以上代码会生成锁存器。这在典型的电路设计中,是要避免的。
3. 建立时间和保持时间的概念?不考虑时钟偏移(clock skew)和时钟抖动(clock jitter),下图setup timing和hold timing应满足的关系? 解析:
建立时间:对于寄存器,数据必须提前于时钟沿带来之前多长时间到来并稳定,才能保证数据的采集不出问题。 保持时间:对于寄存器数据必须在时钟沿之后再继续保持多长时间,才能使得数据的采集不会出问题。 Tcycle-Tpd-Tcq-Tsetup+Tcd>0 Tpd+Tcq-Tcd-Thold>0
4. 解释下面代码: typedef volatile unsigned long *RP; #define do(reg,data) *(RP)(reg) = data
解析:C语言的基本语法
5. 根据代码逻辑画出输出波形。
解析:
这题比较简单,主要考察拼接和异或。
6. 用D触发器做个二分频电路,画出电路逻辑图? 解析:
7. 画出可以检测10010串的状态图,并verilog实现。 解析:
8. fork/join的几种形式 解析:考察SystemVerilog验证语法 fork-join fork-join_none fork-join_any 例如:
join:子线程statement1和statement2并行执行,只有当两个都结束了,线程statement3才开始执行。 join_any:子线程statement1和statement2并行执行,两个只要有一个结束了,线程statement3就开始执行。 join_none :线程statement3执行,所有的子线程进入排队等待,等到父线程遇到等待或者执行完成之时,子线程才statement1和statement2才允许执行。
9. 定义一个随机数,约束其范围大于4小于100,并建仓。 解析:考察SystemVerilog验证语法
10. 数字ic设计流程 解析:
|
|
来自: 芯文苑eecourse > 《IC求职宝典》