truth_table真值表的作用
真值表(Truth_Table) 主要用于描述和分析逻辑系统的输入输出关系,尤其在数字电路设计、逻辑建模和自动化验证中具有重要作用。其核心意义在于通过系统化的方式,将复杂逻辑条件映射到具体输出结果,从而辅助设计、验证和优化逻辑系统。
1. 将多输入变量的逻辑组合与输出结果对应,通过编程自动检查设计是否符合预期逻辑行为。
2. 遍历所有输入组合,验证系统输出是否符合真值表。
3. 通过图表直观显示逻辑关系,快速定位逻辑错误。
truth_table真值表的创建
打开Ganzlab的Stateblock模块进入状态机功能,在状态机功能的右下角可以看到菜单栏选项,点击展开:
可以发现真值表的创建图标,同样也可以使用快捷键(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,如下图所示: