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

verilog 里面 在always 下有两个 if 语句 就出现如下错误 高手请进

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
always @ (posedge CLK,negedge RST)  H3 ~0 Q" M: y& w8 U5 D- R* E
begin
8 O' r" @, O% z: M% d$ I' d; O7 gif(EN) // 提示在这里出现错误 Error: Can't elaborate top-level user hierarchy( Z3 r" C0 m5 b
if(!RST)
. u- d, y7 E# V9 gU <= 0;
! O! s1 q3 `0 v2 Z5 Y# R. q1 telse
- ^% }$ O2 U) i: @" i- a; ~if(CTRL)
# w9 @: e) I/ r3 l; X. {' j# J. f# k+ Sbegin5 |" a) t$ s8 x
U <= U + 1;
3 h: `$ t' ^# e/ tif(U == 15) c_b <= 1;
. z9 e% \- T( p0 W) L6 K- |4 v- Eelse c_b <= 0;+ b9 O- J) L5 g
end7 i& V* V! c7 b+ P
else- K# s1 n% H3 Y5 E: l. p* ]
begin9 \, l0 ~: a. d6 M4 C* U- |0 S
U <= U - 1;
( y0 B8 U7 n5 {if(U == 0) c_b <= 1;' L7 x" c; w9 j
else c_b <= 0;, O! k/ H. `8 J$ P
end$ C) j! E6 d9 \1 ?) a. x
end
6 _4 r% x* h1 Z; t1 j* G对于 数学的爱好者 和 wangxuede220 所说的,很抱歉,我都试过了,不管用啊!
1 a- C3 G/ E' w; r8 I' Xmicroshuke 能再具体详细解释一下吗?多谢了,为什么有这样情况出现,如果我想在EN在低电平时,其他按键就失效,应该怎么做?: Z+ Q2 u! y: t+ N) F  Q+ _1 _/ N
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-11-24 13:11 | 只看该作者
    verilog对边沿触发的逻辑有规定:' u# U5 r  O, H: |
    你写了negedge rst,就必须在always内的第一个if中写~rst的逻辑。就是你把if(en)写在rst下面就好了。
    1 h' s, A1 d& d% z$ l/ n4 L. w, ^0 S这样综合时推断的是一个异步复位的寄存器。" @  u- o# b, {" W; h* A' u
    -------------------------------$ T  H8 g2 y4 d
    为什么语法要这么规定我也不知道。@()里面的第一项是时钟定义,第二项和第三项(如果有的话)是异步复位和异步置位,必须写在第一个if, else if里面(如果有第三项的话)。

    该用户从未签到

    3#
    发表于 2022-11-24 13:17 | 只看该作者
    这个en应该是同步的,而你的rst信号是异步的,这样写不行。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-5 12:33 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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