找回密码
 注册
关于网站域名变更的通知
查看: 1673|回复: 18
打印 上一主题 下一主题

FPGA笔试题及答案总结

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-3-7 08:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    FPGA笔试题及答案总结
    * m; h% v; ?% U/ u
    游客,如果您要查看本帖隐藏内容请回复

    , u+ X3 C- \* P% U' `* `9 j

    该用户从未签到

    推荐
    发表于 2019-9-7 22:54 | 只看该作者
    1、简述触发器和锁存器之间的差别?
    2 }; i! R: M/ K7 _锁存器对电平信号敏感,在输入脉冲的电平作用下改变状态。0 c0 a) j* I" F! G! x* r2 }
    本帖隐藏的内容
    / n6 N* ]; J) h: @7 p9 k; V1 r. ~1 D# D
    D触发器对时钟边沿敏感,检测到上升沿或下降沿触发瞬间改变状态。
    # w' t/ b0 S3 m2 [0 Z7 l3 ~
    , z4 Y1 S3 a- N4 a% S2、什么是Clock Jitter和Clock Skew,这两者有什么区别?
    . ~. K* D: O  ~* O( U+ D, \0 _# Y% f" c" Z/ [" S2 ?$ O" J( t5 E1 T. p+ V/ y# k. U/ _, y1 i
    & J: ~2 b/ Q% K* e
    / L6 u& ?8 n; g* Y5 t/ i时钟抖动(Clock Jitter):指芯片的某一个给定点上时钟周期发生暂时性变化,使得时钟周期在不同的周期上可能加长或缩短。+ u  F0 |" ~8 q( h

    3 w% Y9 y* H  @  z% T: \6 A8 r, C
    , |0 d' Z( f9 g  z& n; o如下图:2 a( a( O6 K, g# O
    ( t' G9 x5 ~+ v1 p& f
    ( f/ Q  b) Q  L6 _$ x  S$ n# N7 w0 w: I& }+ i% r* S
      6 Q' q4 m; r% z

    % Y6 Q. z+ R3 l* e: Q2 H, X( F! P6 p
    时钟偏移(Clock Skew):是由于布线长度及负载不同引起的,导致同一个时钟信号到达相邻两个时序单元的时间不一致。
    0 ]7 M. M. g: p# f3 g, A% z$ r- ]5 Y: e; W* ^% n! ]' {  e0 u  p5 @
    7 E; i1 E" ~, e
    如下图:
    / {( Z5 k" {* Q
    / K1 P/ _" C' J3 L, ~  P+ c
    8 a+ p' a' S6 X" s  n5 ?/ y0 o$ E  
    ) A/ r  o& o( L6 A3 R
    2 k; B, Y$ e2 v/ T' E) J# m& z( \: d
    区别:Jitter是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。Skew是由不同布线长度导致的不同路径的时钟上升沿到来的延时不同。! a' k+ C1 e5 a" n- `4 f  J+ i. G/ q: B( O
    9 T- U1 s2 h9 b5 x+ X8 {7 l' _) S/ `' d) D2 b

    . g6 `3 ]! J0 _$ @时钟抖动和时钟偏斜的差别5 P3 e1 D& X! l& U1 [; H0 A, n1 i+ x# y# A# v, N" u
    . V* B; f6 ~8 f% u
    4 e) z( E) B% q* o+ Q) M0 P; t$ F/ }9 ^' P7 F; N: a) r5 }
    , [, Z) B- ]8 `- n& j. u& @0 P3、什么是亚稳态,产生的原因,如何消除?
    $ U/ ]& z& A/ b3 G4 d+ Q/ \9 T+ F# v) }2 V5 {$ {0 R
    $ D$ y$ h9 Q# n' t* W- U% n: z4 T* v8 x+ u/ P/ [2 W5 J5 t! q' k9 T
    这个问题的详细介绍在博文:亚稳态专题& `/ w% F- ?1 `
    " ?, X! p5 T- A6 q
    2 p1 J& H" {. z& G/ Z) q' P6 j! G4 d$ l4 X( l
    篇幅过大,给出简洁解释:
    ! B4 U; Z/ u& o- I) [# t) g: A& z0 V3 j' l+ w& y6 ^/ Z, c7 H) w& u6 s( i8 K

    8 R. f) V% \- A7 t; X* g8 L: |: k4 f0 V如果触发器的输入电压采样时间过短,即时序不够,则触发器需要花很长时间来实现输出逻辑达到标准电平,也就是说,电路处于中间态的时间变长,使得电路“反应”迟钝,这就是“亚稳态”。(例如输入信号在时钟有效沿的建立时间和保持时间之间改变了,导致不满足触发器的建立时间或保持时间,导致输出有一段时间的不稳定态,就是亚稳态。)  i5 S# q9 |9 ]# t8 y

    # p3 L! x4 a3 q+ G
    8 |6 j. X% J7 \# D8 }  N3 [" x; \5 c: Z6 n9 b" E) i/ o6 n% \# C2 o
    消除:两级或多级寄存器同步。理论上亚稳态不能完全消除,只能降低,一般采用两级触发器同步就可以大大降低亚稳态发生的概率,再加多级触发器改善不大。2 z' ]- v  t+ `. W
    ) |9 a/ T5 ]$ r! }. T4 ]  |' O) j3 j$ e: P+ o1 ]
    , @3 z5 H1 w* k0 H+ ^6 \1 {: x4 i/ }5 m' Q
      
    ; G* Q) ~% O6 D: ?: c* C; _
    9 o- [  S' X! y. E! Q/ Q
    9 B" m# r) U2 e! u  c0 F但注意双触发器作为同步器只能用在单比特数据的传递中。原因很简单,因为同步器输出只能保证是一个稳态不能不能保证是一个确定的值。故多比特数据使用同步器还是会出现乱码的情况。对于多比特数据的操作一般使用异步FiFO。 . x4 H" e+ S7 M0 R0 d6 y
      C* S" {% _1 O+ \4 Y* Q, N2 d8 e5 u& E' l
    * X2 m2 {+ A* [; y& f. J6 K% {+ Q4 X# s0 Q/ R- z! `
    1 T& L" r2 q8 r7 _7 c参考代码:
    ' A' U3 E6 V# M+ f( j7 K3 d- {7 M6 a, l- i  K- H8 {# D0 Z5 ?) T9 X1 p7 _. ]$ {; i% Q
    0 R( i; W$ i( p" m% @' ^" m; o3 u. a( K6 c
    ----------------------------------------------4 z6 x3 }! B0 L3 I
    ! l! j& r( t/ H1 K( r4 e0 H: u( i% K# x/ a6 ~9 S8 y. Z9 a) Q+ S5 Q* Y" y  E0 O

    + j8 j* R; z2 @, [9 |% Y/ m+ Q7 X8 {reg data_mid;
    " Z5 b' C! F1 k4 s* K9 t! W; g! i, r% j6 u1 P# \) d% R( n
    + w4 V7 E$ E1 q* d  x& g7 M) T& C, a1 h+ E; a0 G

    ) D7 Z" \% w9 K3 d& M9 T' J  Z* w1 R! x, @+ U* H0 J$ e
    8 T5 x0 Q4 I. b# b* X! D6 j: L9 N3 l: d$ v% n: j5 R- d) I% m* D; m/ t. ]! d* g$ \( `
    reg data_out;, ~8 B" I: }* E% W1 y4 O9 P0 e
    8 u+ |# q/ n1 {% x& {( O+ ^
    # C3 W1 w5 z8 J( }0 w) x9 @; ], w3 D6 m: y2 t
    - y2 G- ^- Z. X9 B* e2 v8 r5 ?- f8 \; o# U8 Y1 R2 o5 [, |; \) f3 c7 B9 E1 N: K2 _) |% S9 p' H3 f6 K
    & r! J1 Z. c  w4 s) Y% Y4 P9 B) i0 b( {
    , u- q; V% {8 D6 H5 \/ d6 u$ X
    " f) y  F+ E1 _  S7 V4 n1 Walways @(posedge clk or negedge rst_n)begin+ Q2 z, W- \8 Y9 X0 i7 d' v5 z: s9 h- F1 b) R
    : ~& B0 e2 l8 M7 a; Q. p, n& c$ v% W* }. R
    1 G$ x; e5 S, {$ v
    & O. c+ X; b7 @) r! e
    ! L9 G+ c! D& w0 A. @0 B5 E! z3 I7 P

    * H" \! l' ?8 }! z; n; V" b    if(!rst_n)begin/ ]) m3 f3 Z. {6 D3 y# g2 B  f$ ?
    ( j. m' t  g, h( B& i, ~) [4 R% Y9 t) h1 b- Y5 d* J+ V) R9 p
    5 E1 ?3 Q0 g2 k" ?  K+ ~* x, \! K# v0 R& v

    - b) M+ X0 e6 X- F" X% n" f
    $ J7 r2 b/ q. g7 F+ H$ H* V# }$ l. s2 Q, s9 j, \; O1 [, f  |
            data_mid <= 1'b0;& a9 X- D) Y7 S( c. v3 T) b5 B: B+ M' N, s6 E$ A: B+ R1 j5 u

    6 L- p! u8 P) p! B6 f% a$ {6 [- h: p% f4 H8 q" P% K% c. P) H

    7 p1 K6 C' Y4 n, D/ Y. c  e7 y5 m. o( D6 J0 j7 _
    , Q. w  I& J: V  J( ^- ~- J8 s% \; j4 R# L/ m/ R, h

    6 ^8 N1 X$ y; X: n        data_out <= 1'b0;
    7 ?  s( ]7 d& j" ?1 g; D
    ) I. B$ @) I1 T7 k* C4 e% q( P% b1 b
    6 |# ?8 e* x! h% j* W, _: `# y8 R# O0 w( o& b5 s; u
    : x$ G- i8 G& n6 o9 l* o8 ~) I
    ! w% u$ u$ k- _! y2 W5 r
        end1 S8 ]- d/ |1 K" g, Y! {0 O4 D2 o' o9 @2 ?9 u7 t$ G, G
    : @# x8 T8 b- @8 P. b. B
      b$ Q1 r5 c  h/ E0 N. D3 T) h6 o8 r% c0 |1 @1 F8 w6 x% B* J
    / h- P/ O. a9 H5 A* P( x4 \) [
    - ~6 N: s9 T$ [0 D7 N+ o4 G7 D7 W+ z5 a, f; f5 A& V2 Q& l! j
    " }: h0 |; G% x9 r$ \) I/ l. I$ ^( C" b# \" z9 {, G
        else begin+ C! X3 U0 I* i. e
    % o: Q- v' h, z6 Q4 `4 E, y+ ]3 g2 k# g  R7 ~

    7 C9 V6 [( Q0 K7 O& Y7 Y, G' _6 c3 Z, E" j* ?. {$ r
    - B1 l7 n' r- o, h7 e. M
    & n& G- t# U( J0 o; A& k+ }: W( D+ z9 p' d4 S8 h3 k
            data_mid <= data_in;8 l' C2 P9 B; |# j0 y
    " d  I% }3 m6 L- n) }' r: `' \4 X+ r" s- O$ y' Y2 J

    * s: Z; |; J8 {: W; c3 f+ O" ~* K" v0 k+ j& r) c

    / k2 d" P5 ~1 U+ b
    : `9 H& y+ {$ \  U1 H* L- v        data_out <= data_mid;+ ?9 s' b* }2 W$ P# ^' x+ T& z. S2 l8 ?2 W( a+ p
    ; K3 c8 ^6 W9 Q* R" i' Z" y
    $ @2 b: _+ r  {/ `
    4 M$ P( `" d1 t% o9 L2 B7 S6 p8 }) b& C- U/ O
    $ F. u( a) {/ K1 v" t  v9 w+ i6 s% k2 n9 l7 W
    % p3 P( ^' Y8 U( M0 |2 C' ]3 x
        end: t! w. W1 E; J- _
      S3 t3 A$ I) c/ ^' w. W
    , n; E' Z$ j5 [$ Q. |/ u' C/ V
    , V. |' r+ X1 d: Y# [( C& Z0 `! q' G  h* R& J. C4 y3 i4 ]
    & s8 Y. C7 X3 e2 V8 h) T. V6 E" ^: Y# e6 }  F* L
    7 y/ {2 V$ Q7 n) o
    % ]! r5 T5 u: R7 i5 L0 q% Dend2 `) x: n. ?: d7 P9 Y
    ! k. I' z$ }2 k0 T9 |. ]& Y! L. @7 j' f$ r' n7 b4 C/ \" T0 i& n
    9 D1 K- h6 ]5 m% x# O0 w0 T0 {
    % a: s1 O$ W) ~. W7 Y
    8 O% x! v- @$ d3 `( A----------------------------------------------0 h: y' B: }* S. I2 M/ I1 W- v) i/ n: E  l- r
    4 x& U, C* e6 L/ [/ T! v& _# E+ z: y5 V5 A/ I
    4、同步与异步?
    / v  J+ s" x! J8 y& E0 R8 x& j, h3 Y+ |3 [

    $ y/ X  m7 |4 {* g5 ]3 n; f同步复位和异步复位的区别, n( e3 h) I( N" v4 K! R' N. N8 e, f/ Z) {  C9 P/ q9 x' a7 k
    . S, ]* s: k) n0 S: E
    ( u% _+ k. |+ H' M) o
    1 V9 k# a2 J, i$ v( _同步复位是复位信号随时钟边沿触发有效。异步复位是复位信号有效和时钟无关。! u# S0 f) r% `# z) R; H4 H

    $ u: y* z" t7 R4 e0 h4 R1 b7 ~- R0 N! s# ?+ L$ |3 t5 c2 a3 }1 x/ ^3 O1 r7 `% J" X& Z! S. Q
    如异步复位:* p6 R* X' v- S, F7 n* D
    ; f% a" V8 |& |6 t8 l1 k
    + B/ t1 A  p: h* `7 J9 X" h4 @* _- W& M
    * H4 @  H5 ?  n6 [+ V! B  
    . |' E7 e+ {+ B, n6 V
    * a" ?: _$ V6 C3 R9 V* t" [; I6 m7 x" t3 e1 _8 O
    同步复位:* z- M8 I7 z5 ~5 B9 t! j% _/ f2 X! A" e# U- l
    5 M: B2 ]0 y8 D# T1 w7 D! Y; h
    ( x# F7 M+ i: t
    + A( `# e0 o3 K) [  8 {  N, [- m1 n$ Z5 }0 I2 J9 G+ f

    - ?+ B5 T; }) J- W  e0 {2 Z6 R( J: J
    同步逻辑和异步逻辑的区别2 ^! k* P5 F4 u) D3 o
    , u1 G, k" H/ F" r/ `4 R1 d6 U& s/ j1 J1 `, A, ?! i" _% X

    # ]7 _8 U! L* D同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系
    : G4 _. I5 n+ x' v/ k/ r8 a2 `" X$ a: q) D
    : e' J4 k6 m* s) ]$ J1 Y
    / X- b6 y- X2 a$ d同步电路和异步电路区别
    ( W4 ~: d% Q- }; v- l2 k/ q; T2 i2 S- H  U$ D3 \7 c$ _4 n, y2 p
    * H3 G( G! c& O" T; _( `  O4 T# a$ W( h5 Y2 u% U
    同步电路有统一的时钟源,经过PLL分频后的时钟驱动的模块,因为是一个统一的时钟源驱动,所以还是同步电路。异步电路没有统一的时钟源。5 n% U" D1 |9 @3 m# e2 H2 E

    " Y4 |1 U8 i# I
    : b9 s# Y* p- n# ^3 E$ d5、谈谈对Retiming技术的理解, R7 R  v: }3 e% Q: O% z# F3 V
    0 O9 b+ S) P3 r4 p9 |4 ^# s4 M" U0 x9 e6 y, ^

    . n. h) p& n1 L- l0 r! vRetiming就是重新调整时序,例如电路中遇到复杂的组合逻辑,延迟过大,电路时序不满足,这个时候采用流水线技术,在组合逻辑中插入寄存器加流水线,进行操作,面积换速度思想。
  • TA的每日心情
    开心
    2022-4-1 15:23
  • 签到天数: 2 天

    [LV.1]初来乍到

    推荐
    发表于 2020-2-28 08:55 | 只看该作者
    参考一下看看 嘎嘎

    该用户从未签到

    推荐
    发表于 2019-9-7 22:51 | 只看该作者
    学而时习之
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-29 08:31 , Processed in 0.156250 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表