ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

《数字电路》| 第 7 节 ‑ 逻辑函数的表示方法

《数字电路》| 第 7 节 ‑ 逻辑函数的表示方法 7.1 本节导论逻辑函数是数字逻辑设计的基础它描述了输入变量与输出变量之间的逻辑关系。在实际的数字系统设计和分析中我们需要使用不同的工具和方法来表示这些逻辑函数以便于理解、分析和实现。本节将系统介绍逻辑函数的六种常用表示工具逻辑表达式、真值表、卡诺图、逻辑电路图、波形图和硬件描述语言HDL。每种表示方式都有其独特的优势和适用场景掌握它们之间的相互转换是数字逻辑设计的基本技能。通过本节学习您将能够理解各种逻辑函数表示工具的特点和用途掌握不同表示方式之间的转换方法根据设计需求选择合适的表示工具为后续的逻辑化简和电路设计打下基础7.2 逻辑函数常用表示工具7.2.1 逻辑表达式逻辑表达式使用逻辑运算符与、或、非等和变量来表示逻辑函数。它是代数化的表示方法便于进行数学推导和化简。示例对于三变量多数表决电路当两个或以上输入为1时输出为1F A·B A·C B·C特点便于代数运算和化简适合计算机处理可以推导出最简形式但直观性较差不易理解函数行为7.2.2 真值表真值表以表格形式列出所有可能的输入组合及其对应的输出值是逻辑函数的完全描述。结构左侧列所有输入变量的可能取值按二进制顺序排列右侧列对应的输出函数值通常包含2ⁿ行n为输入变量数示例两输入与门的真值表ABF A·B000010100111特点完整、无歧义地描述逻辑函数直观显示所有输入输出关系便于验证逻辑正确性但规模随变量数指数增长2ⁿ行不适合直接用于电路实现电路逻辑功能使输出成立的所有输入组合的共同特点用语言总结起来就是电路的逻辑功能通常使用真值表进行总结7.2.3 卡诺图卡诺图Karnaugh Map是一种图形化的逻辑函数表示方法特别适用于手工化简逻辑表达式。结构将真值表重新排列成二维网格相邻格子仅有一个变量不同格雷码顺序通过圈选相邻的1或0进行化简示例三变量函数 F Σm(1,3,5,7) 的卡诺图特点直观显示逻辑相邻性便于手工化简适合 1 - 4个变量可以找到质蕴含项和必要质蕴含项但变量过多时图形复杂不易使用7.2.4 逻辑电路图逻辑电路图使用标准逻辑门符号和连接线表示逻辑函数的硬件实现。示例特点直接对应硬件实现直观显示信号流向和门级结构便于估算延迟和面积但修改和优化不如代数方法灵活7.2.5 波形图波形图是一种二维图表核心是在时域上以横轴X 轴表示时间、纵轴Y 轴表示信号幅度直观展示物理量如电压、电流随时间变化的轨迹横轴 (X 轴): 时间单位常用秒 (s)、毫秒 (ms)、微秒 (μs)决定观测的时间跨度。纵轴 (Y 轴): 幅度单位依信号类型而定如电压 V/mV决定信号的强弱范围。波形图时序图显示逻辑信号随时间变化的图形用于分析电路的动态行为。要素时间轴水平方向表示时间信号线垂直位置表示不同信号电平变化高电平1、低电平0、上升沿、下降沿时序关系建立时间、保持时间、传播延迟根据输入波形图绘制输出波形图的整体分析法先分析出所有输出为1或者为 0的输入组合其余输入组合输出全为 0 或者为 1的思路 绘制波形图哪种所有输出情况少选哪个分析示例特点直观显示时序关系和动态行为便于分析竞争冒险和时序违规适合仿真验证和调试但不适合表示复杂的组合逻辑函数7.2.6 HDL 硬件描述语言硬件描述语言HDL使用编程语言的形式描述数字电路的结构和行为是现代数字设计的主要工具。主要语言VHDLVHSIC Hardware Description LanguageVerilog HDLSystemVerilogVerilog的扩展示例moduletest(input clk,// 时钟信号input a,input b,output reg c// 时序逻辑c必须为reg类型);// 时序逻辑时钟上升沿把ab赋值给calways (posedge clk)begin cab;end endmodule特点支持层次化、模块化设计可仿真、可综合、可验证适合复杂系统设计需要专门的EDA工具支持7.3 各类表示方式的相互转换在实际设计中经常需要在不同表示方式之间转换。以下是常见的转换路径和方法7.3.1 真值表 ↔ 逻辑表达式真值表→表达式从真值表中提取最小项 输出为1的行每个组合写乘积项1→原变量0→反变量所有乘积项相加得与或式SOP形式最小项形式F(x1,x2,…,xn)∑m(i1,i2,…,ik)F(x_1,x_2,\dots,x_n)\sum m(i_1,i_2,\dots,i_k)F(x1​,x2​,…,xn​)∑m(i1​,i2​,…,ik​)表达式→真值表先分析出所有输出为1或者为 0的输入组合其余输入组合输出全为 0 或者为 1的思路 绘制真值表n 为变量数表达式有2n2ⁿ2n种输入组合也就是真值表有2n2ⁿ2n行数据输入组合按照从小到大的顺序排列以防漏掉输入组合7.3.2 逻辑表达式 ↔ 卡诺图表达式→卡诺图将表达式中每个乘积项对应的最小项在图中标1展开表达式为最小项之和最小项对应卡诺图格子填 1其余填 0。卡诺图→表达式圈选相邻的1得到最简与或式卡诺图中圈 1变量相与乘积项相或7.3.3 逻辑表达式 ↔ 逻辑电路图表达式→电路图根据运算符层次逐级实现先将表达式化简为最简与或式按运算优先级非→与→或拆分表达式用逻辑门符号替代运算符非→非门与→与门或→或门按信号流向连接门电路标注输入 / 输出电路图→表达式从输入到输出逐级写出逻辑关系从输入到输出逐门写局部表达式合并局部表达式得到总逻辑式可进一步化简为最简式。7.3.4 真值表 ↔ 卡诺图两者本质相同只是排列方式不同卡诺图是真值表的图形化重排格雷码顺序真值表→卡诺图按变量数选卡诺图规格2 变量 2×2、3 变量 2×4、4 变量 4×4a. 卡诺图的行、列标注需严格遵循格雷码顺序相邻编码仅一位不同。b. 输入变量的不能跳跃变量进行拆分【分组时必须按变量顺序连续分配不能跳过中间变量】将真值表中输出为1的每个输入组合看成最小项这些最小项对应的卡诺图方格填 1其余方格填 0 或者不填卡诺图→真值表将卡诺图中数值为 1 的方格的横纵坐标拼接起来组成的二进制数作为真值表中输出为 1 的输入组合卡诺图中其余方格的横纵坐标拼接起来组成的二进制数作为真值表中输出为 0 的输入组合a. 拼接原则行变量高位在前列变量低位在后7.3.5 HDL ↔ 其他表示HDL→其他通过仿真生成真值表/波形图通过综合得到电路图其他→HDL根据表达式、真值表或电路图编写HDL代码7.3.6 真值表 ↔ 波形图真值表→波形图按输入时序分段以跳变点为界每段根据真值表的输入和输出绘制输入输出的波形图【1 绘制高电平 、0 绘制低电平】波形图→真值表按输入跳变点分段记录各段输入 - 输出【高电平记为 1 低电平记为 0】汇总所有输入组合的输出值整理为真值表。先找出输出波形图中所有高电平 对应的 输入波形图 的电平只有这些电平对应的输入组合输出波形图才是 高电平输入波形图中其余电平对应的输入组合输出波形图中均为低电平 【高电平对应 1低电平对应 0 】7.3.7 逻辑表达式 ↔ 波形图表达式→波形图列真值表找出 Y1 的输入组合按输入时序分段匹配输出电平并绘图。波形图→表达式从波形提取真值表由真值表推导表达式再化简。7.3.8 不同场景工具选择策略逻辑化简优先用卡诺图变量少或代数法变量多大规模函数用计算机辅助化简工具如 Quartus。功能验证先用真值表验证逻辑正确性再用波形图做时序仿真。FPGA/CPLD 设计首选Verilog/VHDL结合仿真工具生成波形图必要时辅以逻辑电路图。教学与基础分析用真值表 逻辑表达式 卡诺图组合直观理解逻辑关系。7.4 本节小结本节系统介绍了逻辑函数的六种常用表示工具及其相互转换方法逻辑表达式代数化表示适合运算和化简真值表完整描述适合验证和测试卡诺图图形化表示适合手工化简逻辑电路图硬件实现表示适合物理设计波形图时序行为表示适合动态分析HDL现代设计语言适合复杂系统核心要点不同表示方式各有优劣应根据设计阶段和需求选择掌握转换方法是灵活运用这些工具的关键现代设计流程通常以HDL为中心其他工具辅助验证和优化实践建议从简单电路开始练习各种表示方式的手工转换使用EDA工具如Logisim、Multisim、ModelSim验证转换正确性对于复杂函数优先使用HDL描述再利用工具自动生成其他表示在实际项目中通常混合使用多种表示方式HDL用于设计波形图用于调试电路图用于文档通过本节学习您已经掌握了数字逻辑设计的基本表示工具。下一节将深入探讨逻辑函数的化简方法包括代数化简、卡诺图化简和计算机辅助化简技术。
返回列表