首页/文章/ 详情

《数字电子技术》之第四章 组合逻辑电路(待续)

5月前浏览3091

之前在讲解第三章的时候,让一位美女学生按照书中内容编写verilog代码,模块写好了,但是无法进行仿真!



什么题目?

文件内容如图所示!

这是程序的解释!


提示有语法错误!


修订后,正常!
测试文件代码简要说明!
定义时间单位: `timescale 1ns/1ns    表示时间单位为1ns,时间精度为1ns。
#10      表示延时10个单位的时间,时间单位为1ns时,该语句表示延时10ns
测试模块的命名:建议使用tb_<功能模块名>。

输入信号初始化:initial 语句进行初始化,该语句中的代码块只执行一次。

用always 语句实现信号在仿真过程中的电平变化。lways在仿真过程中将被多次执行,always后面最好只有一条语句。

建议好好看看老师推荐的书籍中的第八章!

此书已经共享多次!

然后再看这一章!

回到程序讲解!此时仿真时提示错误!
怎么办?上网寻找帮助吧!后来仔细看了模块文件,发现只有三个参数,将测试模块中不用的参数去除,仿真即可完成!

Testbench代码的本质是通过模拟输入信号的变化来观察输出信号是否符合设计要求!因此,Testbench的核心在于如何模拟输入信号,并把模拟的输入信号输入到功能模块中产生输出信号。可以通过随机数产生输入信号,也可以通过实例化模块把模拟输入信号传入功能模块中。
开关级建模是比门级建模更为低级抽象层次上的设计。在极少数情况下,设计者可能会选择使用晶体管作为设计的底层模块。随着电路设计复杂度及相关先进工具的出现,以开关为基础的数字设计慢慢步入黄昏。不管怎样,先把这方面的内容做个回顾!

注意:程序中vdd中使用小写字母不影响程序的运行!但是关键词不能写错!
在Verilog HDL中,supply0和supply1是用来指定地网络或者电源的关键词。这些关键词通常用于处理不同的电源域或者在一个模块内部存在多个电源/地引脚的情况。supply0关键词用于指定电源网络,该网络连接到逻辑电平0(即低电平)。supply1关键词用于指定电源网络,该网络连接到逻辑电平1(即高电平)。
以下是一个简单的例子,展示如何在模块中使用supply0和supply1。
module example(input wire i, output wire o);
supply0 vss;
supply1 vcc;
// 这里可以是不同的电源或地引脚
assign o = i; // 连接i到o,这里的o会接收到由i决定的电平值。
// 因为vcc和vss没有被连接到其他地方
endmodule
再来个测试吧,模块中调用模块该如何完成,一步一步走向复杂!

后续还要学习数据流行为建模!

此时,老师也是经过了两个小时的学习!同学们更需要长时间的看书学习哦。接着看美女学生的讲解视频。经历了失败和成功,肯定会有成就感的!

开始讲解第四章!
考试的重点!

本章一定要多做习题以强化理解!是在课堂上还是在课后,我都会通过做大量的题目来大家巩固学过的知识。现在不会做不要紧,还可以通过查资料、看书来完成题目的解答。这样的学习过程自然会让你觉得烦,但肯定好过此门课程挂科的滋味。2024年,我给机器人专业的学生上此门课程,我就担心有几位同学会挂科。但我已经努力了。我曾经两次请他们回到课堂上,也希望他们能够在课堂上好好的把以前的知识给补起来,但效果差强人意。不知他们何时能醒悟?也许是无尽的等待,也许是突然的悔悟。
学习是要自己主动才行!
主动学习也必能学好!
理论用于解决实际问题!


步骤请记清楚!
做题的时候按照步骤来就可以了!很多同学不能通过真值表来完成逻辑功能的评述,早期都是这样的,等题目做多了,自然就把很多电路的功能记记在脑子里了。唯有通过布置了大量的课堂作业和课后作业用来消化分析过程!欣慰的是效果还算满意,至少练到了都会做题。当然培养大学生不可能只为了让他们会做题,更多的是能够进行实际的电路分析和设计,这条实践之路走起来很艰难。到目前也就三个学生愿意跟着我进行 verilog 编程来进行相关功能的验证。

如要实现四个变量的偶校验,电路又应做何改变?
用Verilog写个程序仿真一下吧!为何一直强调仿真呢?看看下面的岗位要求!实用型工科教学不是喊口号,是需要将未来的工作需求在教学中有所体现!做不到完全匹配,但至少能给学生打下基础!

学好一门知识肯定需要长时间的累积过程!


波形图是逻辑分析的辅助工具!
很好用!

再来个测试!
学会了分析,更要学会设计!
研发工作侧重设计!
设计步骤要牢记!
没能熟练设计电路之前,不推荐简化写法!反正混淆!
开始做题训练!
例4.2.2  试设计一个码转换电路,将4位格雷码转换为自然二进制码。可以采用任何逻辑门电路来实现。
那就开始解题吧!
解:(1) 明确逻辑功能,列出真值表
设输入变量为G3、G2、G1、G0为格雷码,输出变量B3、B2、B1、B0为自然二进制码。
列出逻辑电路真值表。

在课堂上让同学们进行了大量的练习,也将卡诺图的变量扩展成了五个!不断的练习才能保证熟练的掌握,这样考试中才能正确解题!2024年带的学生基础不是特别好,需要用这种模式来保证他们通过考试的合格率。


时延导致的竞争冒险!


基本概念!
竞争:当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象。
冒险:两个输入端的信号取值的变化方向是相反时,如门电路输出端的逻辑表达式简化成两个互补信号相与或者相或,由竞争而可能产生输出干扰脉冲的现象。


许多常用的组合逻辑电路被制成了中规模集成电路(MSI),广泛应用于数字电路和数字系统的设计中。
1. 这些典型集成电路本身就是一种完美的逻辑设计作品,考虑周到,功能齐全,值得我们在组合逻辑电路设计时学习和借鉴。
①. 具有各种使能、控制输入,提供各种信息输出;
②. 具有扩展、级联的功能;
③. 通用性强。
2. 学习典型组合逻辑集成电路的重点是应用。
①. 要能够通过阅读MSI器件的功能表,掌握器件的逻辑功能;
②. 能根据器件的功能正确应用。


之前我们是不是已经做过进制转换的运算!有了编码器,人算就可以用机器运算代替了!如果有了更多替代,是不是就不需要人了啊?人工智能有这个趋势!


1、编码器的定义与工作原理——编码器分类
编码器的分类:普通编码器和优先编码器。
普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。
优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。


(2) 优先编码器 
实际应用中,经常有两个或更多输入编码信号同时有效,必须根据轻重缓急,规定好这些外设允许操作的先后次序,即优先级别。
优先编码器:识别多个编码请求信号的优先级别,并进行相应编码的逻辑部件称为优先编码器。
允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先级最高的一个进行编码。


有编码过程,就有译码过程!


回顾和总结!

未完,待续!

修订记录

20240210 完成初稿;

20240409 修订内容;



来源:通信工程师专辑
电源电路通用电子理论机器人控制人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-12
最近编辑:5月前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2577文章 320课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈