在SystemVerilog中首先执行哪个程序块?

时间:2016-08-30 07:55:24

标签: system-verilog procedural

如果我在一个模块中同时拥有 alwas_comb always_ff ,哪一个先执行?

例如,我在书中看到过这段代码,但我对功能感到困惑。例如,如果 WE = 0 Qout 的值是多少?

<?xml version="1.0"?>
<!DOCTYPE mydialog SYSTEM "chrome://myaddon/locale/mydialog.dtd">

<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <setting type="string" pref="extensions.check.email" title="email" desc="please insert your email here" />
</vbox>

对此代码的真值表的任何帮助表示赞赏, 问候

1 个答案:

答案 0 :(得分:0)

您问题的具体答案是Qout只会跟踪mem[Address]的值。换句话说,在时钟的上升沿,如果WE为0,Qout将被写入存储器的值驱动。这是因为存储器的行为类似于一组触发器,而Qout输出的行为就好像它直接连接到一组触发器的Q输出。

执行两个always块的顺序是确定性的,因为Qout是使用阻塞分配=)驱动的,而内存写入使用非阻塞分配<=)。有关详细信息,请参阅答案here