《数字电子技术》之第四章 组合逻辑电路(待续)
之前在讲解第三章的时候,让一位美女学生按照书中内容编写verilog代码,模块写好了,但是无法进行仿真!
文件内容如图所示!
这是程序的解释!
定义时间单位: `timescale 1ns/1ns 表示时间单位为1ns,时间精度为1ns。#10 表示延时10个单位的时间,时间单位为1ns时,该语句表示延时10ns输入信号初始化:用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);assign o = i; // 连接i到o,这里的o会接收到由i决定的电平值。再来个测试吧,模块中调用模块该如何完成,一步一步走向复杂!
后续还要学习数据流行为建模!
此时,老师也是经过了两个小时的学习!同学们更需要长时间的看书学习哦。接着看美女学生的讲解视频。经历了失败和成功,肯定会有成就感的!
本章一定要多做习题以强化理解!是在课堂上还是在课后,我都会通过做大量的题目来大家巩固学过的知识。现在不会做不要紧,还可以通过查资料、看书来完成题目的解答。这样的学习过程自然会让你觉得烦,但肯定好过此门课程挂科的滋味。2024年,我给机器人专业的学生上此门课程,我就担心有几位同学会挂科。但我已经努力了。我曾经两次请他们回到课堂上,也希望他们能够在课堂上好好的把以前的知识给补起来,但效果差强人意。不知他们何时能醒悟?也许是无尽的等待,也许是突然的悔悟。做题的时候按照步骤来就可以了!很多同学不能通过真值表来完成逻辑功能的评述,早期都是这样的,等题目做多了,自然就把很多电路的功能记记在脑子里了。唯有通过布置了大量的课堂作业和课后作业用来消化分析过程!欣慰的是效果还算满意,至少练到了都会做题。当然培养大学生不可能只为了让他们会做题,更多的是能够进行实际的电路分析和设计,这条实践之路走起来很艰难。到目前也就三个学生愿意跟着我进行 verilog 编程来进行相关功能的验证。用Verilog写个程序仿真一下吧!为何一直强调仿真呢?看看下面的岗位要求!实用型工科教学不是喊口号,是需要将未来的工作需求在教学中有所体现!做不到完全匹配,但至少能给学生打下基础!
例4.2.2 试设计一个码转换电路,将4位格雷码转换为自然二进制码。可以采用任何逻辑门电路来实现。设输入变量为G3、G2、G1、G0为格雷码,输出变量B3、B2、B1、B0为自然二进制码。在课堂上让同学们进行了大量的练习,也将卡诺图的变量扩展成了五个!不断的练习才能保证熟练的掌握,这样考试中才能正确解题!2024年带的学生基础不是特别好,需要用这种模式来保证他们通过考试的合格率。竞争:当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象。冒险:两个输入端的信号取值的变化方向是相反时,如门电路输出端的逻辑表达式简化成两个互补信号相与或者相或,由竞争而可能产生输出干扰脉冲的现象。许多常用的组合逻辑电路被制成了中规模集成电路(MSI),广泛应用于数字电路和数字系统的设计中。1. 这些典型集成电路本身就是一种完美的逻辑设计作品,考虑周到,功能齐全,值得我们在组合逻辑电路设计时学习和借鉴。①. 要能够通过阅读MSI器件的功能表,掌握器件的逻辑功能;之前我们是不是已经做过进制转换的运算!有了编码器,人算就可以用机器运算代替了!如果有了更多替代,是不是就不需要人了啊?人工智能有这个趋势!普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。实际应用中,经常有两个或更多输入编码信号同时有效,必须根据轻重缓急,规定好这些外设允许操作的先后次序,即优先级别。优先编码器:识别多个编码请求信号的优先级别,并进行相应编码的逻辑部件称为优先编码器。允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先级最高的一个进行编码。修订记录
20240210 完成初稿;
20240409 修订内容;