Combinatorial Logic
实现真值表
![](combinatorial_logic_block_icon.png)
库:
Simulink /
Logic and Bit Operations
描述
Combinatorial Logic 模块实现一个标准真值表,用于建模可编程逻辑数组 (PLA)、逻辑电路、决策表和其他布尔表达式。您可以将此模块与 Memory 模块一起使用,以实现有限状态机或触发器。
示例
双输入 AND 逻辑
此示例构建一个双输入 AND 函数,当两个输入元素都为 1 时返回 1,否则返回 0。要实现此函数,请将真值表参数值指定为 [0; 0; 0; 1]。为 Combinatorial Logic 模块提供输入和输出的模型部分可能如下所示:
下表显示生成每个输出的输入组合。标记为 Input
的输入信号对应于表中标注为 Input 1 的列。同样,输入信号 Input 2
对应于同名的列。这些值的组合确定作为模块输出传递的表的 Output 列的行。例如,如果输入向量为 [1 0],则输入引用第三行:
(2^1*1 + 1) 输出值为 0。
电路逻辑
此示例电路有三个输入:要求和的两个位(a 与 b)和一个进位输入位 (c)。它有两个输出:进位输出位 (c') 和求和位 (s)。
下表显示此电路的真值表和每种输入值组合的对应输出。
要使用 Combinatorial Logic 模块实现此加法器,您需要输入由列 c' 和 s 构成的 8×2 矩阵作为真值表参数。您还可以使用 Combinatorial Logic 模块实现时序电路(即带状态的电路),方法是对该模块的状态包含一个额外输入,并将该模块的输出馈送到此状态输入中。
端口
输入
Port_1 — 输入信号
向量
输入信号,指定为向量。Combinatorial Logic 模块接受的信号类型取决于您是否选择了“布尔逻辑信号”选项(请参阅Implement logic signals as Boolean data (vs. double))。如果启用了此选项,则模块接受 Boolean
或 double
类型的实信号。
数据类型: double
| Boolean
输出
Port_2 — 输出信号
标量 | 向量
输出信号,如果真值表中包含 double
类型的非布尔值,则类型为 double
;否则类型为 Boolean
。如果输入为 Boolean
且真值表包含非布尔值,则输出的类型与输入相同,除非模块输出 double
。
数据类型: double
| Boolean
参数
真值表 — 输出矩阵
矩阵
您指定一个矩阵,将所有可能的模块输出定义为真值表参数。此矩阵的每一行包含一个不同输入元素组合的输出。您必须为每个输入组合指定输出。列数等于模块输出数。
真值表参数可以具有任何数据类型的布尔值(0 或 1),包括定点数据类型。如果表中包含非布尔值,表的数据类型必须是 double
。
输入数与行数之间的关系为:
number of rows = 2(number of inputs)
Simulink® 通过计算来自输入向量元素的行索引,返回矩阵的一行。Simulink 通过生成一个二进制数字(具有零值的输入向量元素为 0,具有非零值的元素为 1),然后将结果加上 1 来计算索引。对于输入向量,m
元素的 u
为:
row index = 1 + u(m)*2
0 + u(m-1)*2
1 + ... + u(1)*2
m-1
编程用法
模块参数:TruthTable |
类型:字符向量 |
值:矩阵 |
默认值:'[0 0;0 1;0 1;1 0;0 1;1 0;1 0;1 1]' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
版本历史记录
在 R2006a 之前推出
另请参阅
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)