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

FPGA 语法描述风格对综合电路可靠性影响!

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    * B/ _5 |# H5 p( v* }
    FPGA 语法描述风格对综合电路可靠性影响!
    / L; R7 P  I- G% z  t# w
    1 `7 Y! x0 t! T4 N* F( s$ ]
    FPGA 入门容易, 精通难! 难的原因在在于,FPGA 的语法是描述语言(描述电路的语言), 用语言描述的电路越接近电路本身的特性,则综合后电路则越可靠!越简单的原始语言产生电路越符合电路实际特性!
    " Y4 ]! r' H- j- o; e  探讨下面几种表达方法产生的电路可靠性
    - A+ m+ u9 @6 }2 `+ L1 r 1.if 语句的表达方式其一
    3 [4 r$ c% x0 b3 l2 ?  K    &1   if rst='1' then
    6 H# u8 W8 ^9 s, f( i1 `' E- L* b       elsif  clk'event and clk='1'  then# U7 L2 r' J; r
              sum<='1';
    % t- l5 |) r: F7 y6 c         if (c='1') then  E5 P% C; z  ^; v. h
                sum<=b;1 ^3 Z7 }+ G4 O' u" W
             end if;+ c9 P; I, j! ?6 B/ \
            end if;
    ! m; l! W8 a7 i! B& v. A上面这种表示方法意思: 在时钟上升沿,如果c='1', 则a 输出b ,否则a输出'1';
    % o1 \: F! \, ^7 }. M经过Quartus @ II 综合后的电路如下:
    ( y3 @; z. r% @0 X: q4 S0 e- M
    , [" ]- s' f& ^* @" }6 M- h上图中,我们可以看到,定义了但没使用的输入脚SEL,D,A都被接到地了. 占用端口,但都内部强制到地.IF 条件语句综合成一个选择器,连接到D触发器的输入端, 上面的电路完整表达语法想要的意思.
    & L& @3 ^8 m6 ?( z- I) r对上面的语句进行修改如下,看看电路会发生改变吗?
    & u, i+ T# c+ S &2   if rst='1' then        elsif  clk'event and clk='1'  then
    2 {/ {0 k8 r0 k9 H0 e2 M. M/ Q# p         if (c='1') then
    2 b  A" `4 {4 i6 E( Q            sum<=b;
    5 R* L! U2 K! d+ e; v         else
    9 c3 v4 u1 l8 v& V            sum<='1';
    6 N8 [  [, S( `9 b( o& \7 w9 V4 U         end if;
    - ^# }5 {& x9 S8 b" }3 d        end if;
    + z1 K7 T  H, B* y) c综合后电路如下:# ]  e; [/ U9 J5 k
        ) H3 B6 _+ @$ i8 v. e5 }
    可以比较, 上面两个电路完全一样. 但是&1电路描述比较晦涩难懂,需要综合器正确理解设计者本来意图,才能生成正确的电路;&2电路结构简单,清晰明了!
    ! m$ U3 k+ u1 {. P% e          所以推荐用第二种电路描述方式!
    ! \( M9 ~8 `* Q- b1 `- w0 w! s4 [( I2.  if 语句表达方式其二  : ]+ B9 E& C1 O; F, Y1 j  q' s0 [
      &1   if rst='1' then        elsif  clk'event and clk='1'  then
    ! |! \4 l  R) I         if (c='1') then2 A6 y/ F0 F$ z& R: F
                sum<=b;& d3 G! o, D: @9 k  t1 m$ X
             end if;
    ! e3 \6 [# H& y) [0 B        end if;
    2 y! j0 T" M0 }- k$ O' W- W上面语句设计者本意是: c='1', 输入b 赋值给sum;
    ( y" Y, \+ p8 c: [; A7 Y经过Quartus @ II 综合后的电路如下:
    7 p; O" z$ Y) n 9 I2 b6 u2 G: x, D  c9 {
    上面的电路综合后,把C条件作为D触发器ENA 使用, 电路结果简单,电路符合设计者意图!
    9 V# b' @5 N8 d) d如果我们上面语法修改一下,也符合设计者意图,但我们看看其电路能否有改变?- g' O; c% j! O' @
    &2   if rst='1' then        elsif  clk'event and clk='1'  then9 n. p! b* E  a" D3 v% H, l
             if (c='1') then
    5 h/ r8 }* d  w  A7 [            sum<=b;
    ! i* x6 a2 n; J         else
    ; V# _0 x% u7 j2 p            sum<=sum;; p9 c$ C  F" d" b
             end if;
      g; g8 ]# T; K3 f; }        end if;" j9 E; ?5 V6 h" U* F
    8 v/ z# O* ]: x" Z- K! P# e6 G
    9 e) R( R9 I, @3 \
    需要说明的,sum 需要描述为buffer 输出类型
    3 w. R( v, @9 l8 I0 |2 B8 v/ {- G9 J其综合后电路如下:8 T8 b. k0 K" h3 q% Q, d
    0 c1 J+ E5 ]: L9 x: i
    综合后电路结构并没有发生改变, 但是后者电路不描述不符合电路本身特性,D触发器电路输入不能接输出, 否则容易造成干扰,上面电路实际产生并没有这种情况,这只是由于综合器理解了设计者意图,才能综合成楼上电路的结果!
    ! O7 R4 g8 @% w# |! m5 I/ I9 {( A& N: H
    $ d- b, s7 [! @& V& h1 O
    $ {3 c7 G* P9 g* H  V" b9 I: q8 v+ p

    该用户从未签到

    2#
    发表于 2019-5-30 18:04 | 只看该作者
    发帖是心得 回帖是美德
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-16 08:03 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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