truth_table真值表的作用  

真值表(Truth_Table) 主要用于描述和分析逻辑系统的输入输出关系,尤其在数字电路设计、逻辑建模和自动化验证中具有重要作用。其核心意义在于通过系统化的方式,将复杂逻辑条件映射到具体输出结果,从而辅助设计、验证和优化逻辑系统。

1. 将多输入变量的逻辑组合与输出结果对应,通过编程自动检查设计是否符合预期逻辑行为。

2. 遍历所有输入组合,验证系统输出是否符合真值表。

3. 通过图表直观显示逻辑关系,快速定位逻辑错误。

    truth_table真值表的创建  

打开GanzlabStateblock模块进入状态机功能,在状态机功能的右下角可以看到菜单栏选项,点击展开:

可以发现真值表的创建图标,同样也可以使用快捷键(a+b),在root画布下添加真值表。

在创建真值表后,会弹出一个命名选项,根据自己的需要命名,后续可使用快捷键(e+n)随时修改。

在命名完成后,此时会弹出真值表的表格编辑页面,可以根据自己的需要对真值表进行编辑,后续可以使用快捷键(e+f)随时修改

注意:真值表的大小不可更改,并且只可以在Root界面进行添加,其他页面不可以添加


再次创建真值表时,在其命名时选择之前创建过的名称,选中双击或点击ok,复制的真值表与原真值表互不干扰,名字会根据当前model中的真值表名字自动在末尾加上序号,用户可以根据需要对真值表名字进行修改。

以下是复制后的产物,用户可以使用快捷键(e+n)根据需要修改真值表的命名:

    truth_table真值表页面介绍  


2.1 truth_table 表

truth table表分为两个部分, 既条件行动作行,最后一 行为动作行,其余为条件行

说明:

1.不可编辑列:条件行第一列的序号列是不可编辑的,序号列会根据用户的添加删除自动生成相应的行序号

2.描述列:用户可以在描述列输入自己想要输入的备注,支持中文输入

3.条件列:用户需要在条件列输入需要判断的条件,需要注意的是,用户在条件列使用的变量需要在data model中定义

4.动作列:动作列是从D1开始到Dn结束(n的数值取决于用户创建的列数),在动作列,用户可以输入对条件列的执行动作,既"T" (为真)、"F"(为假)、"-"(不判断)

5.不可编辑列:动作行的前三列是不可编辑的

6.窗口可以用于添加函数定义的内容;用户在添加新的action动作后,action的内容会实时显示在下方的action表中


2.2data model表

data model表中显示的用户在data model中定义过的变量,以便于用户在定义真值表的时候可以查看变量定义;data model表是不可编辑表,用户只可以查看,不可以修改;在data model表中包含变量的name、port type、以及initial value

在状态机中使用p键,打开数据储存功能,切换到Data models中创建想要使用的变量和接口名后,便可以在truth_table中的data model表上找到相应的信息:


2.3 action表

action表用于显示用户在当前真值表中添加过的action,主要包含三列内容:

1.delete列:用户可以通过勾选删除当前action,用户勾选后,按OK关闭当前页面时会执行删除动作。

2.name列:用户可以查看当前真值表中添加过的action的name,也可以对name进行修改,修改规则与data model中的修改规则相同。

3.function列:用户可以直接看到action对应的function definition,也可以双击进行修改。

    truth_table真值表的编辑  

3.1编辑真值表

(1)右键:用户可以在真值表的图形化界面中单击选中,然后右键可以调出当前真值表的页面进行编辑

(2)e + f:用户可以在真值表的图形化界面中单击选中,然后键盘输入e进入edit状态,再键入f调出真值 表的页面进行编辑

(3)调用编辑:用户通过真值表被state、transition调用时显示 的名字,通过右键编辑或e+f:用户可以在真值表的图形化界面中单击选中,然后键盘输入e进入edit状态,再键入f调出真值表的页面进 行编辑

(4)project setting页面:用户可以通过键入"p"进入project setting页面,选择Truth tables页面,选中想要 编辑的真值表的名字,右键调出菜单栏“编辑函数定义”,在选中菜单栏后左键点击确认,调出真值表编辑页面

(5)action添加:用户可以在给state添加entry、exit、during以及给transition添加action时,右键调出菜单栏“编辑函数定义”,选中菜单后左键确认,调出真值表编辑页面

3.2编辑真值表名字

e + n:用户可以在真值表的图形化界面中单击选中,然后键盘输入e进入edit状态,再键入n调出名字编辑页面对真值表的名字进行修改,真值表的名字会在用户输入的名字后自动添加“_truthtable”,以便用户区分。

    truth_table真值表的调用  


真值表可以被state和transition调用

4.1,state调用

用户可以在state中通过添加entry、exit、during动作时选择真值表的名字进行调用

4.2,transition调用

用户可以在transition中通过添加action动作时选择真值表的名字进行调用

    truth_table真值表的删除  



5.1,region中删除:

用户可以选中truthtable的图形化界面在region中删除当前的truthtable,在region中删除只是删除了一个图形化的界面,如果想要彻底删除truthtable,可以在project setting中删除


5.2,project setting页面中删除

用户可以在project setting页面中点击Truth tables页面,勾选第一列的delete,点击OK,删除model中的truthtable,在project setting中删除会同时删除region中的图形化界面、state和transition中对truthtable的调用以及model中的truthtable

    truth_table真值表案例介绍  



现有一模型FRWinArbtritor_test,创建truth_table:

打开后,可以根据右侧的data model表来编写判断条件和输出内容,创建出如下需要的条件以及action函数:


功能解释:

根据满足不同的判断条件,来执行对应的函数

如下图所示:

根据外部所给的信号判断,若第二行第四行条件不成立(F),第三行条件成立(T),则会执行所对应的最后一行(图中为第九行)PASS_UP的函数,其函数可在下方action表中找到。

同理,第二行和第三行的条件不成立(F),而第四行条件成立(T),则会执行所对应最后一行的PASS_DOWN函数。

编写完所有的内容后,点击OK关闭Truth_table。

在想要的位置调用Truth_table逻辑

创建entry,during或exit后,双击对应的truth_table,右键点击能够打开truth_table,如下图所示:


也可以在状态转移线上添加action功能调用truth_table功能函数:

双击对应的truth_table,右键点击能够打开truth_table,如下图所示: