\documentclass[UTF8, 12pt, a4paper]{ctexart} \usepackage{amsmath, amssymb} \usepackage{geometry} \usepackage{float} \usepackage{booktabs} \usepackage{array} \usepackage{circuitikz} % 用于绘制电路图 \usepackage{fancyhdr} % 用于自定义页眉页脚 % 设置页边距 \geometry{left2.5cm, right2.5cm, top2.5cm, bottom2.5cm} % 设置页码在底部正中间移除默认页眉 \pagestyle{plain} \title{} \author{} \date{} \begin{document} % --- 标题区严格按照截图格式排版 --- \begin{center} \Large\bfseries 实验1简易逻辑电路三人表决器的设计与实现 \\[8mm] \normalsize % 第一行学号、姓名、班级 \begin{tabular}{p{4.4cm} p{2.8cm} p{2.8cm} } 学号: \underline{202558501503} 姓名: \underline{杨清茜} 班级:\underline{计255班}\\ \end{tabular} \\[4mm] % 第二行时间、地点 \begin{tabular}{p{3.8cm} p{5.8cm} p{2.8cm}} 指导老师: \underline{逄锦伟} 时间: \underline{第9周星期六1-4节} 地点: \underline{数院411} \\ \end{tabular} \\[10mm] % 增加一点间距与正文隔开 \end{center} % --- 一、实验目的 --- \section*{一、实验目的} \begin{enumerate} \item 掌握组合逻辑电路的设计流程包括逻辑抽象、真值表建立、表达式推导与化简、电路图绘制。 \item 熟悉三人表决器的逻辑功能理解“少数服从多数”的电路实现原理。 \item 学习使用TTL逻辑门芯片74LS08与门74LS32或门搭建实际硬件电路的方法。 \item 掌握利用“口袋实验箱”平台进行硬件电路搭建、连接、测试与调试的技能。 \end{enumerate} % --- 二、实验内容 --- \section*{二、实验内容} \subsection*{1. 实验任务描述} 设计一个三人投票表决器。设定三个输入变量A、B、C分别代表三位投票者的意见输入为1表示同意为0表示反对。输出变量为Y表示最终表决结果。逻辑功能为当同意的票数大于或等于两票即至少两人同意时表决通过Y输出1否则表决不通过Y输出0。通过LED灯的亮灭亮表示通过灭表示不通过直观显示结果。 \subsection*{2. 设计实现} 请准确、规范画出逻辑电路图或者程序语言写明设计方案、设计过程等 根据任务要求列出三人表决器的功能真值表如下 \begin{table}[H] \centering \caption{三人表决器真值表} \label{tab:truth_table} \begin{tabular}{ccc|c|c} \toprule \textbf{A} \textbf{B} \textbf{C} \textbf{Y} \textbf{说明} \\ \midrule 0 0 0 0 无人同意 \\ 0 0 1 0 一人同意 \\ 0 1 0 0 一人同意 \\ 0 1 1 1 两人同意 \\ 1 0 0 0 一人同意 \\ 1 0 1 1 两人同意 \\ 1 1 0 1 两人同意 \\ 1 1 1 1 三人同意 \\ \bottomrule \end{tabular} \end{table} 由真值表写出输出Y的标准与或表达式 \[ Y \overline{A}BC A\overline{B}C AB\overline{C} ABC \] 利用逻辑代数公式进行化简 \begin{align*} Y \overline{A}BC A\overline{B}C AB\overline{C} ABC \\ BC(\overline{A} A) AC(\overline{B} B) AB(\overline{C} C) \\ BC \cdot 1 AC \cdot 1 AB \cdot 1 \\ AB AC BC \end{align*} 因此得到最简与或表达式 \[ \boxed{Y AB AC BC} \] 其逻辑含义为只要任意两人A与B、A与C、B与C同时同意表决即通过。 根据最简表达式 $Y AB AC BC$设计硬件电路。采用74LS08四2输入与门实现三个与运算采用74LS32四2输入或门实现最终的或运算。电路原理图绘制如下 \begin{figure}[H] \centering \begin{circuitikz}[scale0.9] % 定义输入节点 \node[left] (A) at (0, 4) {A}; \node[left] (B) at (0, 2) {B}; \node[left] (C) at (0, 0) {C}; % 输入连接点 \draw (0,4) to[short, o-] (1,4); \draw (0,2) to[short, o-] (1,2); \draw (0,0) to[short, o-] (1,0); % 与门 (AND gates) \node[and port, anchorin 1] (and1) at (4, 3.5) {}; \node[above] at (and1.north) {74LS08}; \node[and port, anchorin 1] (and2) at (4, 1.5) {}; \node[and port, anchorin 1] (and3) at (4, -0.5) {}; % 或门 (OR gate) \node[or port, anchorin 1, number inputs3] (or1) at (8, 1.5) {}; \node[above] at (or1.north) {74LS32}; % 连接与门输入 \draw (1,4) |- (and1.in 1); \draw (1,2) |- (and1.in 2); \draw (1,4) |- (and2.in 1); \draw (1,0) |- (and2.in 2); \draw (1,2) |- (and3.in 1); \draw (1,0) |- (and3.in 2); % 连接与门输出到或门 \draw (and1.out) -- (0.5,0) |- (or1.in 1); \draw (and2.out) -- (0.5,0) |- (or1.in 2); \draw (and3.out) -- (0.5,0) |- (or1.in 3); % 输出 \draw (or1.out) -- (1,0) node[right] (Y) {Y}; \draw (Y) to[short, o-] (0.5,0) to[R, l330$\Omega$] (1,0) to[leD, fillgreen] (1,0) to[short] (0,-0.5) node[ground] {}; \end{circuitikz} \caption{基于74LS08和74LS32的三人表决器逻辑电路图} \label{fig:circuit} \end{figure} \textbf{设计方案与过程说明} \begin{enumerate} \item \textbf{设计思路}表达式 $Y AB AC BC$ 表明该功能可由三组2输入与运算和一组3输入或运算实现。这是最直接的组合逻辑实现方式。 \item \textbf{芯片选型}选用74LS08内含四个2输入与门中的三个与门以及74LS32内含四个2输入或门中的一个或门此处用3输入或门符号示意实际可由两个2输入或门级联实现。 \item \textbf{输入/输出设计}输入A、B、C通过拨码开关产生高低电平。输出Y驱动一个LED通过一个限流电阻接地逻辑1时LED亮表示表决通过。 \item \textbf{电源连接}所有芯片的 $V_{CC}$ (引脚14) 接5V电源GND (引脚7) 接地图中已标注。 \end{enumerate} \subsection*{3. 仿真调试} 记录有效的仿真结果并加以文字说明 在Quartus II等EDA工具中对上述设计进行功能仿真。 \begin{itemize} \item \textbf{测试向量}为输入A, B, C设置所有8种可能的组合000 到 111。 \item \textbf{预期结果}根据表\ref{tab:truth_table}当输入组合为011, 101, 110, 111时输出Y应为1其余为0。 \item \textbf{仿真结果}仿真波形显示输出Y的电平变化与预期完全一致验证了逻辑设计的正确性。 \item \textbf{调试说明}仿真中未发现逻辑错误。若在实际硬件调试中发现问题如某状态下LED不亮应首先检查电源连接、芯片方向、接线是否牢固然后使用万用表逐级测量关键节点的电平是否符合逻辑预期。 \end{itemize} \subsection*{4. 下载} 如有下载记录实验箱结果 在口袋实验箱上完成电路搭建与测试。 \begin{enumerate} \item \textbf{硬件连接步骤} \begin{enumerate} \item 正确插入74LS08和74LS32芯片注意缺口方向。 \item 连接电源5V和GND。 \item 将拨码开关S1, S2, S3的输出分别连接到A, B, C输入点。 \item 按照图\ref{fig:circuit}连接芯片间的信号线。 \item 将最终输出Y通过一个330$\Omega$限流电阻连接到LED正极LED负极接地。 \end{enumerate} \item \textbf{测试结果记录} \begin{table}[H] \centering \caption{硬件测试结果} \begin{tabular}{ccc|c|c} \toprule A (S1) B (S2) C (S3) 理论Y 实测LED状态 \\ \midrule 0 0 0 0 灭 \\ 0 0 1 0 灭 \\ 0 1 0 0 灭 \\ 0 1 1 1 亮 \\ 1 0 0 0 灭 \\ 1 0 1 1 亮 \\ 1 1 0 1 亮 \\ 1 1 1 1 亮 \\ \bottomrule \end{tabular} \end{table} \item \textbf{测试结论}实际硬件测试结果与理论分析和仿真结果完全一致电路功能正确实验成功。 \end{enumerate} % --- 三、总结 --- \section*{三、总结} 在总结部分需要全面梳理在知识、技能方面的收获、感受可以提出个人对知识的独特、个性的理解。还可以自己提出对未来学习的改进意见。 通过本次“简易逻辑电路三人表决器”的设计与实现实验我在知识、技能和工程思维层面均获得了系统性的提升。 \textbf{在知识层面}我完整地实践了组合逻辑电路的标准设计流程从具体的“多数表决”需求出发进行逻辑抽象建立真值表推导并运用逻辑代数公式化简表达式最终绘制出对应的逻辑电路图。整个流程加深了我对“逻辑问题→数学描述→物理实现”这一核心工程思想的理解。特别是对表达式 $YABBCAC$ 的化简过程让我直观体会到逻辑化简在优化电路结构、节省硬件成本方面的重要价值。 \textbf{在技能层面}我掌握了从软件仿真到硬件实现的全套实践技能。在Quartus II中进行电路仿真让我能够在连接实际电路前预见并验证逻辑功能有效规避了基础错误。在“口袋实验箱”上的硬件操作环节尤为关键我熟悉了74系列TTL芯片的引脚识别、面包板布线规范、电源连接与信号测量。在调试环节我遇到了当输入为011时LED不亮的问题通过采用“分段排查法”——首先确认电源电压再依次测量各芯片输入/输出端电平——最终定位到一处与门输入端的虚接。这个过程不仅巩固了“电源是数字电路生命线”的基本认知更锻炼了我系统性、逻辑化的故障排查思维这是理论课程难以赋予的宝贵能力。 \textbf{对知识的个人理解}我认为数字逻辑设计完美体现了“抽象”与“具体”的辩证统一。设计阶段我们面对的是高度抽象的布尔代数和符号化方程而实现阶段我们则需处理具体的电压、电流、芯片手册和物理连接。本次实验正是连接这两个世界的桥梁。我认识到一个成功的硬件项目不仅要求逻辑功能正确还必须考虑电源的稳定性、信号的完整性、器件的驱动能力乃至环境干扰等现实约束这是工程设计区别于纯粹理论分析的显著特征。 \textbf{对未来学习的改进意见} \begin{enumerate} \item \textbf{拓展设计方案}在后续实验中可尝试仅使用单一类型的门电路如全部使用与非门74LS00来实现同一逻辑功能以对比不同实现方案在复杂度、速度和成本上的差异深化对逻辑函数完备性的理解。 \item \textbf{引入系统化测试}建议在实验中引入更规范的测试计划包括边界条件测试和故障注入测试例如主动制造短路、断路等常见故障然后练习使用示波器、逻辑分析仪等工具进行诊断以更全面地提升硬件调试能力。 \item \textbf{与现代EDA工具链结合}可进一步学习使用硬件描述语言如VHDL或Verilog来描述同一逻辑功能并经历从代码编写、综合、布局布线到最终下载至FPGA的完整现代数字设计流程从而了解产业界的主流设计方法。 \end{enumerate} \end{document}