systemverilog 信号声明和仿真的关系

1.先看下图,先#10,后声明struct


编译器会报错,只说语法错误。


2.把信号声明放到前面两行,#10下移。


编译通过。

原因:

信号声明和信号定义,可以理解为“0”时刻,被编译器解析。但是第一个和#10有冲突,所以报错。修改后先声明,后延时,遂通过。

属于编译原理知识,那么C语言的变量声明不是这样,有一种impromptu的感觉。并不是严格要求定义在最前面,why?据说老的编译器也会报错,后来改了。。。。


3.同样下面的片段也是有问题的,因为在display之后又有新的信号声明。原因:display已经开始仿真,但是要求在仿真之前compiler吃掉所有的signal declaration,在后面又有当然error撒!!!



4.但是最严格的定义应该是下面这样,声明在initial 外面


这样想delay就delay咯!!!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值