为什么这个陈述会引入记忆?

时间:2016-11-25 16:30:06

标签: system-verilog

我正在学习SystemVerilog,今天我的讲师警告我们不要意外地将记忆引入组合系统。他使用以下代码作为例子:

for d in */; do 
    i=1
    for f in "$d"/*.*; do 
        mv -- "$f" "$d${d%/}_${i}.${f##*.}"
        ((i++))
    done
done

但是,我不明白为什么会出现问题。据我所知,这只是一个简单的缓冲区。这段代码以什么方式将内存引入系统?

1 个答案:

答案 0 :(得分:3)

在模拟开始时,如果a == 0 y的值为'0。如果稍后a == 1'b1,则y将变为'1。您希望y稍后a == 0有什么价值?

这个问题的答案是它将保留以前的值:'1。这是 组合逻辑的行为,其定义的输出仅取决于输入的当前状态,在其先前的状态。为了实现您所描述的行为,合成器将需要一个 state 的组件, storage memory 。它将通过使用 latch 实现此目的。

相关问题