包含了头歌平台所有关卡代码以及实验报告,完成实验后利用文本编辑工具打开 example.circ 文件,将所有文字信息复制粘贴到 Educoder 平台代码区域,再点击评测按钮即可进行本关测试,平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装。
头歌实验
1.七段显示译码器
直接填入真值表即可

2.四位无符号数比较器
利用“分析组合逻辑电路”,填写输出函数表达式,直接生成电路。
1 2 3 4
| Great:X0 ~Y3 ~Y2 ~Y1 ~Y0 + X1 ~Y3 ~Y2 ~Y1 + X1 X0 ~Y3 ~Y2 ~Y0 + X2 ~Y3 ~Y2 + X2 X0 ~Y3 ~Y1 ~Y0 + X2 X1 ~Y3 ~Y1 + X2 X1 X0 ~Y3 ~Y0 + X3 ~Y3 + X3 X0 ~Y2 ~Y1 ~Y0 + X3 X1 ~Y2 ~Y1 + X3 X1 X0 ~Y2 ~Y0 + X3 X2 ~Y2 + X3 X2 X0 ~Y1 ~Y0 + X3 X2 X1 ~Y1 + X3 X2 X1 X0 ~Y0 Equal:~X3 ~X2 ~X1 ~X0 ~Y3 ~Y2 ~Y1 ~Y0 + ~X3 ~X2 ~X1 X0 ~Y3 ~Y2 ~Y1 Y0 + ~X3 ~X2 X1 ~X0 ~Y3 ~Y2 Y1 ~Y0 + ~X3 ~X2 X1 X0 ~Y3 ~Y2 Y1 Y0 + ~X3 X2 ~X1 ~X0 ~Y3 Y2 ~Y1 ~Y0 + ~X3 X2 ~X1 X0 ~Y3 Y2 ~Y1 Y0 + ~X3 X2 X1 ~X0 ~Y3 Y2 Y1 ~Y0 + ~X3 X2 X1 X0 ~Y3 Y2 Y1 Y0 + X3 ~X2 ~X1 ~X0 Y3 ~Y2 ~Y1 ~Y0 + X3 ~X2 ~X1 X0 Y3 ~Y2 ~Y1 Y0 + X3 ~X2 X1 ~X0 Y3 ~Y2 Y1 ~Y0 + X3 ~X2 X1 X0 Y3 ~Y2 Y1 Y0 + X3 X2 ~X1 ~X0 Y3 Y2 ~Y1 ~Y0 + X3 X2 ~X1 X0 Y3 Y2 ~Y1 Y0 + X3 X2 X1 ~X0 Y3 Y2 Y1 ~Y0 + X3 X2 X1 X0 Y3 Y2 Y1 Y0 Less:~X3 ~X2 ~X1 ~X0 Y0 + ~X3 ~X2 ~X1 Y1 + ~X3 ~X2 ~X0 Y1 Y0 + ~X3 ~X2 Y2 + ~X3 ~X1 ~X0 Y2 Y0 + ~X3 ~X1 Y2 Y1 + ~X3 ~X0 Y2 Y1 Y0 + ~X3 Y3 + ~X2 ~X1 ~X0 Y3 Y0 + ~X2 ~X1 Y3 Y1 + ~X2 ~X0 Y3 Y1 Y0 + ~X2 Y3 Y2 + ~X1 ~X0 Y3 Y2 Y0 + ~X1 Y3 Y2 Y1 + ~X0 Y3 Y2 Y1 Y0
|
3.八位无符号比较器
按照图片上进行连接即可

4.一位二路选择器
按照图片上进行连接即可

5.八位二路选择器

6.模十可逆计数器激励函数
先设计模十可逆计数器的状态图和状态表,得到D触发器的激励函数的真值表,利用“分析组合逻辑电路”,输入激励函数的表达式,直接生成电路。
1 2 3 4
| D3: ~y3 ~y2 ~y1 ~y0 Mode + ~y3 y2 y1 y0 ~Mode + y3 ~y2 ~y1 ~y0 ~Mode + y3 ~y2 ~y1 y0 Mode D2: ~y3 ~y2 y1 y0 ~Mode + ~y3 y2 ~y1 ~Mode + ~y3 y2 y0 Mode + ~y3 y2 y1 ~y0 + y3 ~y2 ~y1 ~y0 Mode D1: ~y3 ~y1 y0 ~Mode + ~y3 y1 ~y0 ~Mode + ~y3 y1 y0 Mode + ~y3 y2 ~y1 ~y0 Mode + y3 ~y2 ~y1 ~y0 Mode D0: ~y3 ~y0 + ~y2 ~y1 ~y0
|
7.模十可逆计数器输出函数
可直接输入表达式
1
| Cout:~S3 ~S2 ~S1 ~S0 Mode + S3 ~S2 ~S1 S0 ~Mode
|

8.模十可逆计数器(可异步置位)
按照图片进行连接即可

9.两位十进制可逆计数器

10.交通灯控制器激励函数
1 2 3
| D2= ~y2 Online + ~y1 Online + ~y0 Online + ~y1 ~y0 ~MR SR + ~y2 y1 y0 SR T2 + y2 ~y1 ~y0 + y2 ~y1 ~T4 + y2 ~y1 ~MR SR D1= ~y2 Online + ~y2 ~y0 H MR + ~y2 ~y1 y0 T1 + ~y1 y0 Online T4 + ~y2 y1 ~y0 + ~y2 y1 ~T2 + y1 ~y0 Online + y1 ~y0 H + ~y2 y1 H MR ~SR + y2 ~y1 y0 H MR T4 D0= ~y2 ~y1 ~H MR ~Online + ~y2 ~y1 y0 ~Online + ~y2 y0 ~Online ~T2 + ~y2 y0 ~H MR ~SR ~Online + ~y1 y0 ~H MR ~Online + ~y2 y1 ~y0 ~Online T1 + y2 ~y1 ~y0 T3 + y2 ~y1 y0 ~T4 + y2 y1 ~y0 ~H ~Online
|

11.交通灯控制器输出函数
1 2 3 4 5 6 7 8 9 10
| R1=y2 ~y1 + y2 y0 Y1=~y2 ~y1 ~y0 + y1 y0 G1=~y2 ~y1 y0 + y1 ~y0 R2=~y2 y0 + y1 Y2=~y2 ~y1 ~y0 + y2 y0 G2=y2 ~y1 ~y0 PASS0=~y2 ~y1 ~y0 PASS1=~y2 y0 + ~y2 y1 PASS2=y2 ~y1 PASS3=y2 y1
|
也可填写真值表

12.交通灯控制系统

实验报告部分内容
需要完整实验报告的可以评论区联系我or email to ljx121512@163.com
实验源码
看到这如果对你有帮助的话请对作者点个star再走吧:)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| 4.1实验总结 本次实验是一个涵盖了多个关键电路设计的综合性数字逻辑实验。通过设计、仿真、验证一系列电路模块,我深入掌握了数字电路系统的设计、仿真、调试以及电路模块的封装技术。在实验的第一部分,我着手设计了七路译码器和无符号比较器的设计,这个过程中,我详细了解了译码器的工作原理,它是如何将输入信号转换成具体的输出信号的,通过仔细分析输入与输出的关系,成功构建了一个能够准确根据输入选择对应输出线路的七路译码器。在设计无符号比较器的过程中,我首先设计了真值表,明确了每一位输入与输出之间的逻辑关系。随后,我利用逻辑门电路实现了这个比较器,它能够准确地比较两个无符号数的大小,并给出相应的输出结果。 在多路选择器的设计中,我学习了如何根据特定的选择信号,从多个输入信号中选择一个输出。通过仔细设计选择逻辑和输出逻辑,构建了一个稳定可靠的多路选择器,它能够根据不同的选择信号,准确地输出对应的输入信号。模十可逆计数器和二位模十可逆计数器的设计是本次实验的难点之一。首先分析了可逆计数器的工作原理,明确了正向和反向计数的切换逻辑以及计数达到特定值后的翻转逻辑。通过反复调试和优化,设计出了满足要求的可逆计数器,它们能够在正向和反向之间灵活切换,并在计数达到特定值后自动翻转。 在交通灯的设计部分,我分别进行了激励函数的设计和交通灯输出函数的设计。详细分析了交通灯的状态转换逻辑以后,我填写了真值表并根据真值表设计了相应的激励函数,这些函数能够准确地控制交通灯在不同状态之间的转换。接下来我根据交通灯的实际需求,设计了能够准确控制各个信号灯输出的函数。 最后,我将前面设计的各个模块整合在一起,构建了一个完整的交通灯控制系统。这个系统能够根据输入的控制信号,准确地控制交通灯的亮灭和状态转换,实现了对交通灯控制系统的正常运行。 总的来说,通过本次实验,我不仅掌握了数字电路设计的核心技能,还学会了如何将这些技能应用到实际的电路设计中。我相信这些经验将对我未来的学习和工作产生深远的影响。同时,我也深刻认识到电路设计和实现过程中需要注意的问题和细节的重要性,这将帮助我在日后的学习和工作中更好地规避风险、提高效率。 4.1.1遇到的问题及处理 1. 设计逻辑复杂性: 问题: 在设计交通灯激励函数时,逻辑复杂度较高,尤其是根据状态转移填写对应的真值表时,常常有考虑不全面的地方导致得到的激励函数表达式出现错误。 处理: 通过逐步调试和与同学的讨论,最终确立了每一个状态对应的转移情况,成功完成了真值表的填写。 2. 逻辑表达式错误: 问题: 在设计无符号比较器的过程中,发现逻辑表达式有误,导致输出结果不正确。 处理: 重新审视真值表,逐一校对逻辑表达式,确保每一个逻辑运算符和变量的正确性,最终得出正确的逻辑表达式。 3. 计数器无法自启动: 问题: 在设计十进制可逆计数器时,起初没有考虑到可能会遇到计数器无法自启动的问题。 处理: 在设计状态图时,特别注意将超过有效范围的状态,即超过1001的状态转移到初始状态(0000),并在激励函数设计时确保每个状态都有明确的下一状态。 4. 时钟信号同步问题: 问题: 在交通灯控制系统设计中,发现在不同模块之间不一致,导致输出结果错误。 处理: 统一时钟信号源,并在各模块之间同步时钟信号,确保时序逻辑一致性。 5.模块间信号不统一问题: 问题:在进行交通灯控制系统的设计时,出现了在不同模块之间状态不统一的情况。 处理:使用tunnel进行信号的传递。每完成一个小模块后进行仿真测试,确保每个模块独立正常工作,然后再进行模块组合,确保整体功能实现。 4.1.2设计方案存在的不足 1. 模块之间的接口设计不够完善:在模块组合时,接口设计不够通用,导致在信号传递过程中需要进行额外处理。后续设计中需要考虑模块化设计的接口标准化问题。 2. 仿真测试覆盖面不足:在进行仿真测试时,只覆盖了部分典型情况,未能全面覆盖所有边界条件。需要在后续设计中增加更多测试用例,确保设计的鲁棒性。 3. 电路优化不足:部分电路设计未进行充分优化,存在冗余逻辑和不必要的门电路。后续设计中可以通过逻辑优化和简化,减少电路的复杂度和面积。 4.2实验心得 在这次实验中,我深入学习了小型数字电路系统的设计、仿真和调试方法,以及电路模块的封装技术。实验涵盖了多个关键电路模块的设计,每一个模块都给我带来了不同的挑战和收获。 首先是七路译码器以及无符号比较器的设计。在这个过程中,我深刻理解了译码器的工作原理,它是如何将输入信号转换成具体的输出信号的。通过Logisim软件进行虚拟仿真,我逐步调整和优化了译码器的设计,确保其能够准确地根据输入选择对应的输出线路。这一过程不仅锻炼了我的逻辑思维能力,也加深了我对数字电路基础知识的理解。 接下来是多路选择器的设计。在这个环节中,我学会了如何根据特定的选择信号,从多个输入信号中选择一个输出。这要求我精确控制每一个逻辑门和信号线路,确保选择器能够在各种情况下都能正确工作。通过反复调试,我成功设计出了稳定可靠的多路选择器。 在模十可逆计数器和二位模十可逆计数器的设计中,这两个计数器需要在正向和反向计数之间灵活切换,而且要在达到特定的计数值后自动翻转。为了实现这一功能,我仔细分析了计数器的工作原理,并利用Logisim软件进行了大量的仿真测试。同时在利用一位模十可逆计数器进行二位模十可逆计数器的设计时,我对电路元件的串联以及并联后功能发生的变化有了更加深刻的认识,在设计时需要注意进位和借位问题,当个位正向计数到9或者反向计数到0时产生进位和借位,但十位的计数过程仅在个位有进位或者借位时才进行。最终,我成功设计出了满足要求的可逆计数器,这一过程中,我的电路设计能力和问题解决能力得到了显著提升。 交通灯的激励函数设计、输出函数设计以及控制系统的设计,是这次实验中最为复杂的部分。我需要综合考虑多个信号灯的状态转换和时序控制,确保交通灯能够按照预定的规则稳定运行。起初在设计交通灯的激励函数,也就是填写真值表的过程的,我对于状态的转移变化过程考虑的不够明确,导致经常出错误,在请教了老师和同学以后,我成功设计出来正确的真值表,得到了正确的激励函数表达式。在这个过程中,我不仅运用了之前学到的数字电路设计知识,还学会了如何将这些知识应用到实际场景中。我将任务拆分成不同的模块进行,将前面已经设计的电路元件利用起来,利用元件之间的相互作用,成功实现了各个功能,通过不断地调整和优化,我成功设计出了一个功能完善的交通灯控制系统。 总的来说,这次实验让我对数字电路设计有了更深入的理解和实践。通过完成七路译码器、无符号比较器、多路选择器、模十可逆计数器、二位模十可逆计数器以及交通灯控制系统的设计,我不仅提升了自己的电路设计能力,还学会了如何将理论知识应用到实际问题中。这些宝贵的经验将对我未来的学习和工作产生深远的影响。
|