1.3进制,码(8421),化简规则、卡诺图化简、性质,触发器(转换与设计、应用),电路图,电路设计

news2024/11/15 18:25:19

十进制与原码、反码、补码之间的转换

正数的原码、反码、补码相同,符号位为0

负数的原码为、符号位+1,+二进制数

反码,符号位不变、其它取反,

补码为:反码最低有效位+1 

运算

卡诺图化简

奇偶校验码

检查1的个数,如果是奇数个,就在头部填充0,是偶数个就填充1

总之就是奇偶校验码就要检验其中的1的个数是奇数还是偶数,并维持不变,奇数校验码就要保持奇数个,偶数就要保持偶数个

8421码

8421码就是用4位二进制表示1位10进制,相当于16进制,但不是16进制,因为高于10的部分都会直接废掉不用

触发器

触发器基本的是要建立次态与现态之间的关系,就是Qn+1与Qn之间的关系 

触发器转换  

JK到RS 

展开S,再利用特征约束,RS=0,即完成化简 

JK到D

 改到D,就是说,外部输入的信号就只有一个D输入端口,然后这个输入的信号通过内部的改造,即实现内部的JK,实现其功能,用D信号接到JK触发器的接口上,来实现

JK到T 

就是说外部只有一个T信号,然后方程是当前现态的一个反转,为1则反转,不为1则保持,就是T异或上现在的信号,那就是T信号直接输入到JK信号上

外部输入的是一个T信号,然后经过内部处理,拆分出JK信号,然后用JK触发器实现 

D到JK

由D触发器组成的其它触发器,思路都无比简单,就是让外部信号组合,组合成特征方程的样子,然后作为D信号传给D触发器即可,

就是说外部有两个接口,一个是J一个是K,分别用来实现控制对应现态量的正和反,内部就是一个D触发器,

基于D触发器的特征,D信号是什么,下个次态就是什么,所以D转换为什么触发器,都是直接让那个触发器的特征方程直接做为D信号即可

D到T

D的方程就是在下个周期设置为D,T的方程就是反转一下

所以D转换为T就是直接把现态的反接到D信号上即可

T到D

就是说外部是D触发器的接口,内部就是T触发器实现的

D触发器的方程中,与现态一点关系都没有,就是完成的D信号,就是说,外部输入一个这样的D信号,下个次态就是这个信号,由T触发器实现,就是说,在输入这样的D信号后,通过内部的一些处理,将其转换为内部T触发器可用的T信号,然后实现,就是用T触发器实现D

触发器设计

设计模五计数器

就是状态之间的转换,现态到次态,轮回变化

 

这个卡诺图画的,是三个次态分量和分别的现态分量之间的关系,先得到三个式子,就是说次态分量和现态分量之间的关系,这个式子描述的是一个次态分量与三个现态分量的关系

然后接下来是选触发器

注意的是每个触发器只能确定一个状态分量,即有几个次态要确定,就要几个触发器

然后触发器方程,描绘的是次态分量与对应的现态分量之间的关系

D触发器不涉及对应的现态分量,之间全部输入即可

而其它的触发器,都要涉及到要确定的次态分量相对应的现态分量

所谓触发器的相互转换,实际上就是状态方程之间的变化 

触发器特征方程,不需要考虑要确定的自己的状态分量,只需要考虑方程对应位置所需要输入的输入信号即可

思路就是先用卡诺图求出来一个次态分量与三个现态分量之间的关系,观察有没有对应的现态分量,如果没有就考虑D,有的话依据特征选触发器,有两个,一正一反的,就考虑T触发器,只有一个(正或反的),就考虑JK触发器

触发器的作用就是确定一个次态的状态分量 

分析电路 

可以发现,JK触发器可以实现某个次态分量转变,转变项包含一个或两个对应的现态量,

J和K各自负责一个相应的现态分量的正反,J确定Q现态反,K确定Q现态正

就是用JK都能实现,如果不含对应的现态量的话,可以直接考虑D触发器

如果要逆着,去设计一个模三可逆加减计数器,先确定状态量,然后确定有几个状态分量,然后从逻辑上确定各个状态之间的转换关系,画出状态表,真值表,依据卡诺图确定各状态分量的次态与输入以及所有状态分量现态的关系,然后用触发器,最后画电路图即可

两个规则(反演与对偶) 

反演规则

就是把常量1变为0,加变成乘,原变量取反 

对偶规则

和反演唯一不一样的地方就是变量不用取反,其它都要变一下;反演是加一杠,对偶是加一撇 

有顺序问题,即先变常量,再变运算符,再变变量

反演就是在对偶的基础上,再把所有变量取一个反即可

任意两最小项之积为0,全体最小项之和为1

任意两最大项之和为1,全体最大项之积为0 

逻辑相邻就是说相邻的两个最大项/最小项,不一样的只有一个变量

卡诺图既有逻辑相邻也有几何相邻

最小项是使式子为1的取值,最大项是使式子为0的取值 

 

与或式 

  1. 两种标准式间的关系
  • 最大项与最小项互为反函数
  • 如果不在最小项中出现的编码,一定出现在最大项的编号中。

再由或与式画卡诺图时,是去标0,即哪些变量的取值可以使这个式子变为0

由与或画卡诺图时,去标1,即哪些变量的取值可以使这个式子变为1 

这是一个或与式,去标可以使这个式子为0的取值, 

图中标的0是由原式子产生的,即使这个式子整体为0的变量取值 

然后由这个式子产出的卡诺图去找出最简式子,要画最大项,那么就是1的地方对应取反,因为目的是要让式子为0,而且找的是0

要求最小项,那么就是找1,然后1的地方就是1 

三变量表决器(组合逻辑设计电路)

 

没有涉及触发器,就是组合逻辑电路,输入就是模拟的所需要的情景信号输入,然后就是画真值表,依据各种输入的情况,确定输出的情况,然后画卡诺图,最后找出表达式, 

阻塞赋值与非阻塞赋值画图 

'timescale 1ns/1ns

module ex(input wire x1,

output reg f,g);

always@(posedge clk)begin

end

endmodule

因为赋值需要时钟沿来触发,所以用了D锁存器

这里体现出阻塞,是阻塞赋值,正是因为刚才上面提到,要想确定G,就必须要先确定F,所以G的确定在F之后,即F先确定,然后G再确定,所以是阻塞

 

而如果用非阻塞,就不用等到此时的F确定,用的是上一阶段的F,这样的话G的确定就会快那么一截,即不需要等到F的确定,所以为非阻塞赋值 

在阻塞赋值中,如果将FG的确定顺序颠倒,那就是要先确定G再确定F,那此时确定G所用的F,就不是现在阶段的F,而是上一阶段的F,即触发器存储的F,所以会生成和用非阻塞赋值一样的电路

 

而颠倒非阻塞赋值中的语句,不会产生任何影响

阻塞赋值的一个生成电路图 

 

如果改为非阻塞赋值 

就是说第一个语句对F产生的影响,会在下个周期才会产生影响,而第二个语句同样会对F造成影响,所以最后对F保留的是最后一条语句对F产生的影响,就对F造成了覆盖

即,如果用非阻塞的话,最后 只会保留最后一条更改的语句

 

后一个或门,是说最后要输出F,保存F,就是让自己再或上自己,一部分输出,一部分来或自己 

移位寄存器 

L是一个选择信号,这个寄存器叠了好几层,就是说是一个寄存器堆,确定了好几位的信号 

'timescale 1ns/1ns

modeule ff(input wire clk,

                input wire d,

                input wire rst,

                output reg q);

always@(posedge clk,negedge rst)begin

        if(!rst)

                q<=0;

        else

                q<=d;

end

endmodule

 

always里串行,always之间并行 

 

在并行当中,都是对前一时刻的Q进行取反 

卡诺图的冷门性质

卡诺图的特点:在几何位置上相邻的最小项小方格在逻辑上也必定是相邻的,即相邻两项中有一个变量是互补的 。

逻辑相邻:指有且仅有一项与给出的最小项不同。两个最小项,只有一个变量的形式不同,其余的都相同。

注意是同一个变量的不同形式,即正和反

256个8位的存储器 reg[7:0]ram[0:255] 

reg [WIDTH-1:0] RAM_MEM [0:DEPTH-1];

注意前面的是数据位宽,后面的是存储器数量,前面是大的在前,后面的是大的在后面

‘timescale 1ns/1ns 前面的表示时间尺度,后面的表示时间精度,规定时间精度不能大于时间尺度e

组合逻辑因为时延不同会出现竞争和冒险 

verliog程序四大部分为,模块声明,端口定义,信号类型声明,功能描述

前面这个非阻塞,会生成两个触发器,一前一后,前面的确定B,后面的确定C,B的D信号是A,C的D信号是B

后面的就一个触发器,D信号是A,然后出来两个输出信号,一个C一个B

第一题注意或与式标的是0,圈0,然后目的是要使式子为0,要找使式子为0的变量取值,1对应的是最后表达式里的非,0对应的是正

第二题,一共四个状态,初始,1,11,111,然后用两个状态分量 

 

第一题,四位计数器,就是4位的cnt,

'timescale 1ns/1ns

module dclk(input wire clk,input wire load,input wire en,input wire rst,output reg q);

reg[3:0]cnt;

always@(posedge clk,negedge rst)begin

        if(!rst)

                cnt<=4'b0000;

        else begin

                if(en)

                        cnt<=cnt+1'b1;

                else

                        cnt<=cnt;

        end

end 

always@(posedge clk,negedge rst)begin

        if(!rst)

                q<=0;

        else begin

                if(cnt==4'b1111)

                        q<=1;

                else

                        q<=0;

        end

end

endmodule

第二题,D锁存器

'timescale 1ns/1ns

module d(input clk,input rst,input d,output reg q);

always@(posedge clk,negedge rst)begin

        if(!rst)

                q<=0;

        else

                q<=d;

end

endmodule

第三题,具有同步清零的移位寄存器

'timescale 1ns/1ns

module yiwei(input clk,input rst,input d,output q);

reg[3:0]ram;

always@(posedge clk)begin

        if(!rst)

                ram<=4'b0000;

        else

                ram<={ram[2:0],d};

                q<=ram[3];

end

endmodule

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

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

相关文章

C语言编译器(C语言编程软件)完全攻略(第二十四部分:Turbo C 2.0使用教程(使用Turbo C 2.0编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 二十四、Turbo C 2.0使用教程&#xff08;使用Turbo C 2.0编写C语言程序&#xff09; 首先&#xff0c;我们给出一段完整的C语言代码&#xff1a; #include <stdio.h> int main() { puts("hello&#xff0c;world!"…

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩mask: true,

【mars3d】new mars3d.layer.GeoJsonLayer({实现多孔面遮罩 官网测试示例&#xff1a; 1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 测试代码&#xff1a; export function showDraw(isFlyTo) { removeLayer() const geoJsonLayer new mars3d.layer.GeoJsonLaye…

【Spring实战】22 Spring Actuator 入门

文章目录 1. 定义2. 功能3. 依赖4. 配置5. 常用的应用场景1&#xff09;环境监控2&#xff09;运维管理3&#xff09;性能优化 结论 Spring Actuator 是 Spring 框架的一个模块&#xff0c;为开发人员提供了一套强大的监控和管理功能。本文将深入探讨 Spring Actuator 的定义、…

【AI视野·今日NLP 自然语言处理论文速览 第六十八期】Tue, 2 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 2 Jan 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers A Computational Framework for Behavioral Assessment of LLM Therapists Authors Yu Ying Chiu, Ashish Shar…

使用python对二叉树的所有路径求解

对于二叉树这类结构问题&#xff0c;可能会遇到的问题中有需要求给定的一颗二叉树&#xff0c;这颗二叉树的根节点到叶子节点的所有路径的问题&#xff0c;这也是深度优先搜索算法的一个较为常见的应用。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添…

Python|使用Missingno库可视化缺失值(NaN)

在真实世界数据集的情况下&#xff0c;数据集中的某些值丢失是非常常见的。我们将这些缺失值表示为NaN&#xff08;非数字&#xff09;值。但是要构建一个好的机器学习模型&#xff0c;我们的数据集应该是完整的。这就是为什么我们使用一些插补技术来用一些可能的值替换NaN值。…

Springboot和Spring有什么区别

SpringBoot和Spring的关系 不是&#xff1a;从马车到汽车那种交通出行的颠覆&#xff0c;从燃油车到纯电动车那种能源利用的变革&#xff0c;从人工驾驶到AI智能那种驾驶方式的升级。总之&#xff0c;不是产品的升级换代&#xff0c;不是谁要替换谁。而是&#xff1a;汽车从手…

将Django项目从本地上传至宝塔服务器(踩坑记录)

文章目录 写在前面配置本地文件配置宝塔面板解决遇到问题展示运行结果热门文章 自我介绍 ⭐2022年度CSDN 社区之星 Top6 ⭐2023年度CSDN 博客之星 Top16 ⭐2023年度CSDN 城市之星 Top2&#xff08;苏州&#xff09; ⭐CSDN Python领域 优质创作者 ⭐CSDN 内容合伙人 推荐热门…

C++初级(三)

我们这里还是在C基础上进行对C基础语法的补充学习&#xff01; 一.C数组 C数组大体和C相同&#xff0c;但是C数组还是有一定的区别的。 我们先看看C和C数组共同的易错点知识&#xff1a; 1.数组只能一次初始化。 2.如果对数组只进行一部分初始化&#xff0c;那么其他未初始…

数字人克隆系统开发公司?

广州硅基技术开发限公司是一家位于中国广东省广州市的科技公司。该公司专注于人工智能&#xff08;AI&#xff09;领域的研发和创新。广州硅基以技术创新和解决方案为核心&#xff0c;致力于为客户提供高质量的人工智能产品和服务。 广州硅基技术的主要业务包括但不限于&#x…

用于查询性能预测的计划结构深度神经网络模型--大数据计算基础大作业

用于查询性能预测的计划结构深度神经网络模型 论文阅读和复现 24.【X1.1】 在关系数据库查询优化领域&#xff0c;对查询时间的估计准确性直接决定了查询优化结果&#xff0c;进而影响到数据库整体的查询效率。但由于数据库自身的复杂性&#xff0c;查询时间受到数据分布、数据…

游戏Lua调用01.lua的编译及测试

一、lua库下载与编译 进入lua官网 Lua: version history 找到lua5.1 选择lua5.1是因为大部分游戏使用的都是lua5.1的库&#xff0c;也可以选择高版本&#xff0c;影响不大 下载完了后使用vs建立一个静态库或者动态库的工程 这里以动态库为例子&#xff0c;静态库也是一样的…

Babylonjs 6.0文档 Deep Dive - 摄像机介绍(一)

摄像机 在Babylon.js的众多的可用摄像机中&#xff0c;最常用的两种可能是用于“第一人称”运动的通用相机、轨道相机ArcRotateCamera&#xff0c;以及用于现代虚拟现实体验的WebXRCamera。 为了允许用户输入&#xff0c;摄像机必须被附加在canvas中 camera.attachControl(c…

使用Docker-ompose快速构建Nacos服务

在微服务架构中&#xff0c;服务的注册与发现扮演着至关重要的角色。Nacos&#xff08;Naming and Configuration Service&#xff09;是阿里巴巴开源的服务注册与发现组件&#xff0c;致力于支持动态配置管理和服务发现。最近&#xff0c;一位朋友表达了对搭建一套Nacos开发环…

HCIP-端口隔离、arp代理、聚合vlan、QinQ

目录 一&#xff0c;端口隔离&#xff08;同vlan间同交换机下的端口隔离技术&#xff09; 端口隔离原理&#xff1a; 双向隔离配置 4&#xff0c;端口隔离特殊使用&#xff1a;单向隔离 6&#xff0c;ARP代理 6.1 路由式代理 6.2 VLAN内ARP代理 6.3 VLAN间ARP代理 6.3…

安防监控EasyCVR视频融合/汇聚平台大华热成像摄像机智能告警上报配置步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

CloudCanal x Redis 数据同步指令集丰富与细节优化

简述 CloudCanal 前一段时间支持了 Redis 到 Redis 数据迁移同步能力&#xff0c;并支持其双向同步&#xff0c;但是支持的指令种类有限。 随着用户使用&#xff0c;指令支持不全面成为一个比较大的问题&#xff0c;所以最近的版本&#xff0c;我们对此能力&#xff0c;结合用…

nuxt 不解析HTML结构bug

报错信息 [Vue warn]: Failed to resolve directive: top [nitro] [unhandledRejection] TypeError: Cannot read properties of undefined (reading ‘getSSRProps’) 原因是Vue3在迁移到nuxt3的时候有一个自定义指令没有搬过来&#xff0c;但是组件是直接搬过来了&#xff…

在vue3中使用Cesium保姆篇

1.首先新建一个vue项目 Vue.js - 渐进式 JavaScript 框架 | Vue.js 可以直接到管网中查看命令通过npm来创建一个vue3的项目 然后通过命令下载1.99的版本的cesium和plugin npm i cesium1.99 vite-plugin-cesium 下载完了以后 2.引入cesium 首先找到vue的vite.config.js …

macosx编译qgroundcontrol源码(Qt6.7)

1.克隆源码: clone --recursive http://github.com/mavlink/qgroundcontrol.git 克隆成功 3.编译 编译环境要求: 编译方法: 使用QtCreator编译 使用命令行编译 打开QGroundControl.pro并编译IOS版本 旧版本使用Qt 5.15.2 run qmake 新版本使用Qt 6.6或者更高 IOS工程输出要…