system verilog-过程语句

本文详细介绍了System Verilog中的过程语句,包括always语块(always_comb、always_latch、always_ff)、循环语句、task和function的使用,以及ref参数类型、时间单位和精度的规范。重点讲解了always_comb和always_ff在组合逻辑和时序逻辑建模的应用,强调了同步设计中避免使用latch,并提示在不同过程块中避免混合使用阻塞和非阻塞赋值。
摘要由CSDN通过智能技术生成

过程语句

always和initial的特点

  • always的主要是模拟硬件信号,需要对标硬件行为,只可以在module或者interface中使用;
  • initial主要是模拟只执行一次,然后与always语句都是无法延迟执行,不同的initial和always之间是没有顺序可言的,他不可综合。
  • 一般情况下信号的声明是先于过程语句,这里的语句相当于assign sig = 1’b0; 如果在其他地方还给驱动会导致出错,多驱动
  • 采用var的是一个变量,初始值的赋值,如果后面的进行更改会覆盖掉原来的值
  • always不能用于program,如果要在这里面进行使用,可以在里面采用repeat或者是forever;
  • 都是0时刻执行的,但是底层语言的原因导致执行先后顺序不一定一样;
module abc;执行
wire sig = 1'b0;//一般情况下
在使用vcs进行SystemVerilog仿真时,需要编写仿真语句来控制仿真过程。下面是几个常用的仿真语句: 1. `+define+DEFINE_NAME=VALUE`:定义一个宏,可以在仿真代码中使用。 2. `+incdir+PATH`:添加一个包含文件的目录。 3. `+libext+.v+.sv`:指定仿真库的文件类型。 4. `+define+SIMULATION`:定义一个仿真标志,可以在仿真代码中使用。 5. `+notimingchecks`:禁用时序检查。 6. `+access+r`:指定仿真库的读取权限。 7. `+define+DEBUG`:定义一个调试标志,可以在仿真代码中使用。 8. `+define+VERBOSITY=2`:定义一个详细程度标志,可以在仿真代码中使用。 9. `+define+TESTCASE="mytest"`:定义一个测试用例名称,可以在仿真代码中使用。 10. `+incdir+../rtl`:添加一个RTL代码的目录。 这些仿真语句可以通过在vcs命令行中添加,或者在一个vcs脚本中定义来使用。例如,以下是一个示例vcs脚本: ``` #!/bin/bash VCS=/path/to/vcs TOP=top_module $VCS \ +define+SIMULATION \ +notimingchecks \ +access+r \ +incdir+../rtl \ +incdir+../tb \ +libext+.v+.sv \ ../rtl/*.v \ ../tb/*.sv \ -o $TOP \ -debug_all \ -full64 \ -l compile.log \ -timescale=1ns/1ps \ -assert svaext \ -fsv \ -sverilog \ -CC \ -R \ +define+TESTCASE="mytest" \ +define+VERBOSITY=2 ``` 该脚本使用了几个仿真语句,包括定义了`SIMULATION`标志和禁用时序检查。它还指定了RTL和测试代码的目录,并使用了SystemVerilog文件。最后,它定义了一个测试用例的名称和详细程度标志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zer0hz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值