局部变量声明不能太随意
在使用Verilog和SystemVerilog进行编程时,经常需要过程语句中临时使用一些变量,但往往按照声明后使用的方式进行仿真的时候仿真器会报错,那这是为什么呢?本文将示例说明过程性语句中的变量应该进行声明。
【示例】
【仿真结果】
示例中,pkt和spkt的声明并没有处于begin...end块的最开始位置,而是出现在了$display之间,即执行了一些代码之后才对pkt和spkt进行声明。在Verilog和SystemVerilog中对过程块中对变量进行声明,声明操作必须位于过程块的最开始位置,如下例:
【示例】
这个示例中,将两个变量的声明放置在了begin...end块的最开始位置,编译正确通过。当然除了这种方式外,也可以在过程块中嵌套过程块,然后将局部变量的声明放置在嵌套的begin...end块的最开始位置,如下例:
【示例】
通过上边几个示例,过程块中局部变量的的声明都要置于过程块最开始位置。