---
title: Verilog强制激励语法
url: "https://www.fpgalearn.com/9616.html"
kind: article
id: 9616
excerpt: Verilog强制激励语法 1. 在一个过程块中，可以用两种不同的方式对信号变量或表达式进行连续赋值。 过程连…
published_at: 2025-07-22
author: 二牛学FPGA
tags: FPGA工程, fpga教程, Verilog, Verilog强制激励语法, 硬件描述语言
word_count: 912
source: "https://www.fpgalearn.com"
---

# Verilog强制激励语法

> 标签：FPGA工程、fpga教程、Verilog、Verilog强制激励语法、硬件描述语言
> Verilog强制激励语法 1. 在一个过程块中，可以用两种不同的方式对信号变量或表达式进行连续赋值。 过程连…

> Verilog强制激励语法 1. 在一个过程块中，可以用两种不同的方式对信号变量或表达式进行连续赋值。 过程连…

Verilog强制激励语法
1. 在一个过程块中，可以用两种不同的方式对信号变量或表达式进行连续赋值。
-  过程连续赋值往往是不可以综合的，通常用在测试模块中。
-  两种方式都有各自配套的命令来停止赋值过程。
-  两种不同方式均不允许赋值语句间的时间控制。
2. assign和deassign 适用于对寄存器类型的信号
例如：RTL级上的节点或测试模块中在多个地方被赋值的信号进行赋值。
initial  begin
#10  assign top.dut.fsml.state_reg = `init_state;
#20  deassign  top.dut.fsml.state_reg;
end
3. force 和 release 用于寄存器类型和网络连接类型（例如：门级扫描寄存器的输出）的强制赋值，强制改写其它地方的赋值。
initial begin
# 10 force top.dut.counter.scan_reg.q=0;
# 20 release top.dut.counter.scan_reg.q;
end
在以上两个例子中，在10到20这个时间段内，网络或寄存器类型的信号被强制赋值，而别处对该变量的赋值均无效。
注意：
1、force的赋值优先级高于assign。
2、如果先使用assign，再使用force对同一信号赋值，则信号的值为force所赋的值，当执行release后，则信号的值为assign所赋的值。
3、如果用force对同一个信号赋了几次值，再执行release，则所有赋的值均不再存在。
4、可以对信号的某（确定）位、某些（确定）位或拼接的信号，使用force和release赋值；但不能对信号的可变位使用force和release 来赋值。
5、不能对寄存器类型的信号某位或某些位使用 assign 和deassign 来赋值。
表示给低层传递参数（parameter）
可以给予低层模块的parameter新的值，覆盖掉定义模块的默认parameter
wb_master_model #(.dwidth(8), .awidth(3)) u_wb_master_model (
