胡说八道(24.6.12)——数字电子技术以及Modelsim

        上回书说到数电中的最常用的表达式——逻辑表达式(由布尔代数组成)以及常用的两种图表——真值表(真值表表示的是所有的输入可能的线性组合以及输出)和卡诺图(卡诺图则是一种化简工具,排除冗余项,合并可合并项)。

        今天,先来看看昨天说的基本逻辑电路功能图的Modelsim的Verilog仿真,代码较为丑陋,请多包涵。

        首先是主要的程序文件sign.v。

module sign(
    input wire a,b,                //输入
    output wire p0,p1,p2,p3,p4        //输出
);

    assign p0 = b&a;            //与门
    assign p1 = a|b;            //或门
    assign p2 = ~a;                //非门
    assign p3 = a^b;            //异或门
    assign p4 = ~(a^b);            //同或门
endmodule

        其次是测试文件sign_tb.v。

`timescale 1ns/1ns
module sign_tb;
wire p0,p1,p2,p3,p4;
reg a,b;

sign U(.p0(p0),.p1(p1),.p2(p2),.p3(p3),.p4(p4),.a(a),.b(b));

initial // initializes the register variable to a definite value of one 

begin 
    #20 a=0;b=0;  
    #20 a=0;b=1;
    #20 a=1;b=0;
    #20 a=1;b=1;
    #20 $stop;
end
endmodule

        这是Verilog文件在Modelsim中运行的两个必要的文件,看看仿真图,大家可以对比真值表记忆理解。

         此外,大家除了使用这软件编程的程序呢,也可以通过Multisim来模拟硬件的仿真。在Mutisim里面只需要点击放置其他数字,找到TTL,就能够看见各种门电路,当然还有一些能够起到门电路功能的芯片,也包含在里面,大家可以去探索。后续也会出一点Modelsim以及Multisim的一些仿真实例。

        好了,完成昨天遗留的部分,咱们继续记笔记,本次咱们看的是组合逻辑电路的分析与设计。组合逻辑电路是数字电路的一种类型。组合逻辑电路在任何时刻的输出仅仅取决于当时的输入信号,而与电路原来的状态无关,这里就要注意了,因为在后面的时序电路中,它的输出是次态和现态有关。组合逻辑电路呢,它里面最重要的部分就是门电路,把这些门组合起来,就能够构成组合逻辑电路了。

        接着,就是它的两个考点,一个是组合逻辑电路的分析,步骤如下:1、确定逻辑电路的输入和输出:根据题目,明确有哪些输入变量以及对应的输出变量。2、写出逻辑表达式:根据电路中逻辑门的连接关系,从输入到输出逐步推导,写出每个输出变量与输入变量之间的逻辑表达式。3、化简逻辑表达式:使用逻辑代数的定律和公式,对表达式进行化简,以得到最简形式。4、列出真值表:将输入变量的所有可能取值组合逐一列出,并计算出对应的输出值。5、分析逻辑功能:根据真值表,总结和描述电路的逻辑功能,即说明在不同输入组合下输出的情况。另外一个则是组合逻辑电路的设计,步骤如下:1、明确设计要求:根据题目,确定电路的输入和输出变量,以及它们之间需要实现的逻辑关系。例如,设计一个判断两个一位二进制数是否相等的电路。2、列出真值表:根据设计要求,列出输入变量的所有可能组合以及对应的输出值。3、写出逻辑表达式:根据真值表,通过逻辑函数的化简方法(如卡诺图、公式法等)写出最简的逻辑表达式。4、画出逻辑电路图:根据化简后的逻辑表达式,使用逻辑门电路画出相应的逻辑电路图。但是,这里它有时候会恶心你,非得用与非门,或者是或非门去画电路图,这就要去转换式子了。我也是无语了。有那么多的门不用,非得选唯一的一种门电路。个人看法:不要为了用一个考点,而去出题目,多一点创新不好吗?

        最后,来看组合逻辑电路的应用——半加器和全加器,半加器是一种实现两个一位二进制数相加的组合逻辑电路。它能产生本位和(Sum)以及向高位的进位(Carry),但不考虑低位来的进位。半加器由一个异或门和一个与门构成。异或门用于产生本位和,与门用于产生向高位的进位。全加器是能够计算三个一位二进制数相加的组合逻辑电路。它不仅考虑两个加数,还考虑来自低位的进位,并产生本位和以及向高位的进位。全加器通常由两个半加器和一个或门构成。其中一个半加器用于计算两个加数的和,另一个半加器用于计算这个和与低位进位的和,或门用于产生向高位的进位。

        今天,就讲到这里,大家想想怎么去仿真。明天再告诉大家。

        欲知后事如何,且听下回分解。OVO.......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DP:01背包问题

一、背包问题的概述 背包问题是⼀种组合优化的NP完全问题。 本质上是为了找出“带有限制条件的组合最优解” 1、根据物品的个数,分为如下几类: • 01背包问题:每个物品只有⼀个(重点掌握)• 完全背包问题&#xff1…

ffmpeg封装和解封装介绍-(10)综合完成视频重编码为h265,解封装解码编码再封装

主函数逐句解析: 由于代码太多我们只解析主函数,(其他封装函数见前面文章,同时用到了解码编码封装代码)。 初始化和参数处理 int main(int argc, char* argv[]) {/// 输入参数处理string useage "124_test_x…

【计算机网络】已解决:“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错

文章目录 一、问题分析背景二、可能出错的原因三、错误代码示例四、正确解决方法与示例五、注意事项 已解决“‘ping’ 不是内部或外部命令,也不是可运行的程序或批处理文件”报错 一、问题分析背景 在Windows操作系统中,ping 命令是一个常用的网络诊断…

线程池ThreadPoolExecutor使用指南

线程池ThreadPoolExecutor使用指南 🧐使用线程池的好处是什么? 统一管理,减少资源获取创建的开销,提高利用率。 🔧线程池的参数 ​ThreadPoolExecutor​ 3 个最重要的参数: ​corePoolSize​ : 任务队列…

docker login 报错: http: server gave HTTP response to HTTPS client

环境: 自建 Harbor、Docker 1. 问题分析 # 命令,这里用的是 IP,可以为域名 docker login -u test 172.16.51.182:31120 # 输入密码 Password:# 报错如下: Error response from daemon: Get "https://172.16.51.182:31120/…

HIVE及SparkSQL优化经验

简介 针对高耗跑批时间长的作业,在公司近3个月做过一个优化专项;优化成效:综合cpu、内存、跑批耗时减少均在65%以上; cpu和内存消耗指的是:vcoreseconds和memoryseconds 这里简单说下优化的一些思路,至于…

[Algorithm][贪心][增减字符串匹配][分发饼干][最优除法][跳跃游戏Ⅱ][跳跃游戏]详细讲解

目录 1.增减字符串匹配1.题目链接2.算法原理详解3.代码实现 2.分发饼干1.题目链接2.算法原理详解3.代码实现 3.最优除法1.题目链接2.算法原理详解3.代码实现 4.跳跃游戏 II1.题目链接2.算法原理详解3.代码实现 5.跳跃游戏1.题目链接2.算法原理详解3.代码实现 1.增减字符串匹配 …

图神经网络pytorch_geometric库之MessagePassing类

MessagePassing是图神经网络Python库pytorch_geometric(PyG)库里非常重要的一个基类,它可以用来创建消息传递图神经网络,pytorch_geometric里很多类比如图卷积层GCNConv和图注意力层GATConv都基于此类实现,我们也可以基于它来自定义图神经网络…

期末复习6--链表头插法(逆序)尾插法(顺序)---输出链表

头插法 #include <stdio.h> #include <stdlib.h>struct Node //定义结构体 {char data; //数据域struct Node * next; //指针域 };/* 请在这里填写答案 */void PrintList (struct Node * head) {struct Node * s;if(head NULL){printf("None&qu…

mybatisplus 笔记

int isDelete userRoleMapper.delete(new LambdaQueryWrapper<UserRole>().in(UserRole::getUserId, roleUserDTO.getUserId()).in(UserRole::getRoleId, roleUserDTO.getRoleId()));LambdaQueryWrapper<UserRole>: LambdaQueryWrapper 是 MyBatis Plus 提供的一个…

Apipost模拟HTTP客户端

模拟HTTP客户端的软件有很多&#xff0c;其中比较著名的就有API-FOX、POSTMAN。 相信很多小伙伴都使用POSTMAN。这篇博客主要介绍Apipost的原因是&#xff0c;Apipost无需下载&#xff0c;具有网页版。 APIFOX的站内下载&#xff1a; Api-Fox&#xff0c;类似于PostMan的软件…

时间复杂度和空间复杂度的深入解析

在算法和数据结构的学习中&#xff0c;时间复杂度和空间复杂度是两个至关重要的概念。它们分别用于衡量算法在执行过程中所需的计算资源&#xff08;时间&#xff09;和存储资源&#xff08;空间&#xff09;。以下&#xff0c;我们将从技术难点、面试官关注点、回答吸引力以及…

JavaFX 节点

JavaFX Node类javafx.scene.Node是添加到JavaFX 场景图的所有组件 的基类&#xff08;超类&#xff09; 。JavaFX Node 类是抽象的&#xff0c;因此你只需将 Node 类的子类添加到场景图中。场景图中的所有 JavaFX Node 实例共享一组由 JavaFX Node 类定义的公共属性。本 JavaFX…

毕节前端工程师前景怎么样:深入剖析与全面展望

毕节前端工程师前景怎么样&#xff1a;深入剖析与全面展望 在数字化浪潮的推动下&#xff0c;前端工程师作为连接技术与用户的桥梁&#xff0c;其职业前景备受关注。毕节地区的前端工程师同样面临着机遇与挑战并存的局面。那么&#xff0c;毕节前端工程师的前景究竟如何呢&…

【Ruby爬虫01】某吃瓜网站图片数据采集

介绍 由于最近在学习Ruby&#xff0c;写一个爬虫锻炼一下。涉及xml解析、多线程、xpath语法等基础知识。 实现代码 使用说明 使用前请先安装如下gem gem install nokogiri http openssl# nokogiri&#xff1a;一个解析xml和html的库&#xff0c;支持css、xpath语法 # htt…

一文了解Redis

一.什么是Redis 与MySQL一样&#xff0c;Redis也是客户端服务器结构的程序&#xff0c;是基于内存的键值对存储系统&#xff0c;属于NoSQL的一种。与很多键值对数据库不同的是&#xff0c;Redis 中的值可以是由 string&#xff08;字符串&#xff09;、hash&#xff08;哈希&a…

高速缓存是怎么让CPU找到地址内容的?

这个场景在性能优化下&#xff0c;应该很少会用到。但是还是总结一下。 Input: CPU给的一个地址&#xff0c;例如 0xffads1233423 Out: 这个地址上的值。 WORKFLOW CPU 问高速缓存&#xff0c;高速缓存会拿这个地址的中间几个位置&#xff0c;组成一个key高速缓存拿着这个ke…

数学中的虚数单位 i 和电学中的虚数单位 j

什么是虚数&#xff1f; 虚数是扩展实数概念的一类数&#xff0c;能够解决某些在实数范围内无法解决的问题。虚数的基本单位是 (i)&#xff0c;定义为&#xff1a; i − 1 i \sqrt{-1} i−1 ​ 这意味着 (i) 的平方是 -1&#xff1a; i 2 − 1 i^2 -1 i2−1 为什么需要虚…

【算法专题--链表】删除排序链表中的重复元素II -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐ 双指针 -- 采用 哨兵位头节点 &#x1f95d; 什么是哨兵位头节点&#xff1f; &#x1f34d; 解题思路 &#x1f34d; 案例图解 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素II元素这道题&#xff0c…

【JKI SMO】框架讲解(二)

JKI State Machine 讲解 将JKI State Machine 模板拖曳到程序框图中&#xff0c; 如下图&#xff0c; 此模板会默认放置一个OK按钮在前面板中&#xff0c;用于提示用户如何增加一个简单的用户事件去使用此框架。 “Event Structure”&#xff0c;Idle&#xff1a;此分支可以设…