Gnuplot及时绘制逻辑门输出

时间:2015-11-11 16:15:27

标签: gnuplot

我正在开展一个学校项目,这是一个逻辑门的模拟。我可以轻松实现并运行模拟,但我需要帮助显示输出。

现在,我将所有内容打印到控制台,如下所示:

sample frequency: 50
###############################################

        IN      NOT(1)  OUT
        IN1:0   IN1:3   IN1:5
        IN2:0   IN2:0   IN2:0
        OUT:3   OUT:5   OUT:0
0       1       -1      -1
50      1       -1      -1
100     1       0       0
150     0       0       0
200     1       1       1
250     1       0       0
300     1       0       0
350     1       0       0  (IN = 1, delay is 1 so we can see
400     0       0       0  the correct output of NOT element in line 400 <-> 350 + 1*50)
450     1       1       1
500     1       0       0
550     1       0       0
600     1       0       0
650     0       0       0
700     0       1       1
750     1       1       1
800     1       0       0
850     1       0       0
900     1       0       0
950     1       0       0
1000    1       0       0
左边是

,有模拟时间(步骤)。在每个步骤中,将打印出值并生成新的输入集。

其中有-1,这意味着未定义的输出。

第3行( IN NOT(1)OUT )表示有3个元素,1个输入,1个NOT门和一个输出。括号中的值表示元素的延迟,因此延迟值为 X 的元素将在X * sample_freq之后显示正确的输出(不包括0时间)。

平均值之后的行:

IN1 - 作为输入1

读取的节点的索引

IN2 - 作为输入2读取的节点的索引

OUT - 输出节点的索引

在这种情况下,IN将其输出提供给节点#3。 NOT元素从节点#3读取其输入,并将一些输出提供给节点#5。该系统的总输出是OUT元素,从#5读取。

以下是指定拓扑的文件:

3 (number of elems)
IN 0 0 3 (no inputs for input element obviously)
NOT 3 0 5 (reads from #3 and outputs to #5)
OUT 5 0 0 (reads from #5 and this is the end point of the system)

显然可以有更多的元素,IN和OUT,但为了简单起见,我们坚持这一点。

我希望看到的结果是:X轴告诉模拟时间(0 - 1000,步长是50),y轴告诉系统中每个元素的输出值,元素写出它们的输出在另一方面,请参阅this图片作为示例。

您能告诉我如何创建这种gnuplot脚本,将我的应用程序的输出转换为所需的绘图吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,我自己找到了一个解决方案,这里是:

首先,我必须稍微改变应用程序的输出,所以它看起来像这样:

 0   1   2   4
 49  1   2   4
 50  1   2   4
 99  1   2   4
 100 0   2   4
 149 0   2   4
 150 0   3   5
 199 0   3   5
 200 1   3   5
 249 1   3   5
 250 1   2   4
 299 1   2   4
 300 0   2   5
 349 0   2   5
 350 1   3   5
 399 1   3   5
 400 0   2   4
 449 0   2   4
 450 1   3   5
 499 1   3   5

额外的sim时间步长使边看起来几乎是正方形,我还将每列分开2(将0添加到第2列,将第2列添加到第3列,将第4列添加到第4列,依此类推)它是一个在彼此之上绘制的,并且绘制它的简单命令是:

plot 'out.txt' using 1:2 with lines, 'out.txt' using 1:3 with lines, 'out.txt' using 1:4 with lines

加上一些xtics,设置ytics和其他化妆品

现在我必须处理用元素名称命名行和瞧。