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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    # F) Q! r6 x1 K, A( _
    FPGA 语法描述风格对综合电路可靠性影响!
    # X9 W: k3 T' C  v' O& D+ y

    $ Q( w% q. w, T7 kFPGA 入门容易, 精通难! 难的原因在在于,FPGA 的语法是描述语言(描述电路的语言), 用语言描述的电路越接近电路本身的特性,则综合后电路则越可靠!越简单的原始语言产生电路越符合电路实际特性!4 n: k. D! ~6 f+ ?' ~0 z; Y
      探讨下面几种表达方法产生的电路可靠性) I3 V! _  W# Y/ b" J1 o7 W3 C6 U
    1.if 语句的表达方式其一
    8 n7 N' w2 s8 B2 X- \    &1   if rst='1' then % j% ?: A! `8 V! i5 W# o; H/ u2 N
           elsif  clk'event and clk='1'  then
    6 f# k4 N; X" y7 f: h# `          sum<='1';2 }2 H# a* U- ?" q( D- N
             if (c='1') then
    % o% s: A0 D0 y9 P  ?            sum<=b;8 g% a7 Z/ V  W0 j/ ~
             end if;3 v) U+ n( h" b7 F9 p9 I
            end if;
    1 K+ s+ j: C' X1 X9 i! K' }- ^上面这种表示方法意思: 在时钟上升沿,如果c='1', 则a 输出b ,否则a输出'1';4 c2 B' l; L$ G" |% t
    经过Quartus @ II 综合后的电路如下:
    , `: b- W: }% ^
    ; f) |9 P  j7 l' f上图中,我们可以看到,定义了但没使用的输入脚SEL,D,A都被接到地了. 占用端口,但都内部强制到地.IF 条件语句综合成一个选择器,连接到D触发器的输入端, 上面的电路完整表达语法想要的意思.# g: ?0 p* R% O0 ?+ M8 u, s
    对上面的语句进行修改如下,看看电路会发生改变吗?
    6 l- K8 q4 h1 J0 W' o2 E &2   if rst='1' then        elsif  clk'event and clk='1'  then
    / l8 M, b" a  S; @) z         if (c='1') then
    $ h" p9 A! g; _: M* a5 ^- I! e            sum<=b;' }4 O( V5 o3 o7 e5 h
             else
    5 B5 Q' T) |7 k  B/ U1 \+ U) G            sum<='1';
    - ^( A) Y  D8 r4 `( |& M: S         end if;
    ( a, c$ m8 E" A3 l. |: P" f" @/ v        end if;
    ) C( y( w- I4 b综合后电路如下:
    4 u1 q& L8 M* n% G    / W5 v; L* H, J7 j. Y; W2 }0 K
    可以比较, 上面两个电路完全一样. 但是&1电路描述比较晦涩难懂,需要综合器正确理解设计者本来意图,才能生成正确的电路;&2电路结构简单,清晰明了!
    : ]8 O& j. b/ @& I$ Z* Y2 f0 Z          所以推荐用第二种电路描述方式!' D# s& a0 S/ l
    2.  if 语句表达方式其二  
    * a1 H$ p3 ], q6 Q& [  &1   if rst='1' then        elsif  clk'event and clk='1'  then
    / J- j9 r# R' {1 w         if (c='1') then; Z+ D% i/ E4 B+ [- ?2 O
                sum<=b;
    1 |6 o- X$ w( i# d  j. f         end if;
    / G/ I0 S) Q0 Q        end if;
    7 C; ^( e3 L! w8 l" V- p上面语句设计者本意是: c='1', 输入b 赋值给sum;( s/ ?; W: g& E0 z7 `1 G' |
    经过Quartus @ II 综合后的电路如下:5 H1 \0 b2 l+ J0 m$ o
    ' w7 Y1 j5 S/ Y5 D' }" R8 `% W
    上面的电路综合后,把C条件作为D触发器ENA 使用, 电路结果简单,电路符合设计者意图!# q1 C) K' L. V5 x: J
    如果我们上面语法修改一下,也符合设计者意图,但我们看看其电路能否有改变?6 {0 E; k/ @1 D
    &2   if rst='1' then        elsif  clk'event and clk='1'  then
    6 y2 E$ O0 M0 n5 P4 Y5 u, b         if (c='1') then2 V7 d1 ?3 u$ f& ^- k% X& o* {
                sum<=b;( V+ @/ l; q/ O% b8 }* x
             else
    , x# K/ i9 ~& E; O! Z1 Q+ {            sum<=sum;
    9 ^+ M4 M2 h0 ?         end if;  z% p, T# R7 I( S* e
            end if;# _  m4 A4 c# X

    3 Y6 _/ ?5 k1 H, v* X, C3 a
    ) o7 D; y1 V- ~5 u8 D: n需要说明的,sum 需要描述为buffer 输出类型
    1 l. B/ M" N3 M( A) K/ f! ^其综合后电路如下:
    6 J. }& T. V* D  H/ J) D4 r & G& K  l8 I$ Z$ f/ \& `
    综合后电路结构并没有发生改变, 但是后者电路不描述不符合电路本身特性,D触发器电路输入不能接输出, 否则容易造成干扰,上面电路实际产生并没有这种情况,这只是由于综合器理解了设计者意图,才能综合成楼上电路的结果!
    * g8 d( y3 B  N; b/ u9 O
    ' D" h  O: n' I+ @
    * M: o7 B) @, `% C+ t; D! }  Y2 C& J6 B3 {( i

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-11 17:18 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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