锁存器

ADC0809设计要点

不打扰是莪最后的温柔 提交于 2019-12-22 06:32:41
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1) ADC0809的内部逻辑结构 由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2). ADC0809引脚结构 ADC0809各脚功能如下: D7-D0:8位数字量输出引脚。 IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。 GND:地。 REF(+):参考电压正端。 REF(-):参考电压负端。 START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换) . EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路

oracle运行机制

不问归期 提交于 2019-12-20 18:18:51
我们从一个用户请求开始讲,ORACLE的完整的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址),那么这个请求都会通过DNS服务器或HOST文件的服务名解析然后传送到ORACLE监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用户请求,下面我们分专用服务器和共享服务器分别采用这两种方式时的情况来讲: 专用服务器模式下: 一种方式是监听进程接收到用户进程请求后,产生一个新的专用服务器进程,并且将对用户进程的所有控制信息传给此服务器进程,也就是说新建的服务器进程继承了监听进程的信息,然后服务器进程给用户进程发一个RESEND包,通知用户进程可以开始给它发信息了,用户进程给这个新建的服务器进程发一个CONNECT包,服务器进程再以ACCEPT包回应用户进程,致此,用户进程正式与服务器进程确定连接。我们把这种连接叫做HAND-OFF连接,也叫转换连接。 另一种方式是监听进程接收到用户进程的请求后产生一个新的专用服务器进程,这个服务器进程选用一个TCP/IP端口来控制与用户进程的交互,然后将此信息回传给监听进程,监听进程再将此信息传给用户进程,用户进程使用这个端口给服务器进程发送一个CONNECT包,服务器进程再给用户进程发送一个ACCEPT包,致此,用户进程可以正式向服务器进程发送信息了

数字SOC设计之低功耗设计入门(五)——RTL级低功耗设计(续)

≯℡__Kan透↙ 提交于 2019-12-20 17:33:03
二、RTL级低功耗设计(续)    前面一篇博文我记录了操作数隔离等低功耗设计,这里就主要介绍一下使用门控时钟进行低功耗设计。   (4)门控时钟   门控时钟在我的第一篇博客中有简单的描述,这里就进行比较详细的描述吧。我们主要学习门控时钟电路是什么、什么使用门控时钟、综合库里的门控时钟、如何使用门控时钟、对门控时钟的一些处理、手动插入门控时钟。我们重点介绍如何 使用门控时钟和门控时钟的处理 。 ①门控时钟概述   门控时钟有两种方案:一种直接针对寄存器的时钟进行门控,一种对模块级别的时钟进行门控。相比之下,直接对寄存器的时钟进行门控更为灵活。因为在很多时候,我们不能保证刚好将不需要门控的寄存器与需要门控的寄存器分配在不同的模块。因此我们主要介 绍寄存器级的门控时钟 。 ============================================================================= 下图是门控时钟的一个简单电路图:                上述电路图中,将 控制信号(EN) 直接与 时钟信号(CLK) 进行 与 操作,以完成门控。门控后的时钟信号GCLK送到寄存器阵列中。这样,当EN为0时,该时钟被关掉。相应的波形如下所示:          可以看出,如果EN信号不加控制,会导致门控时钟信号出现毛刺。时钟上的信号出现毛刺是非常危险的

接口技术第六章——输入输出接口及数据传输控制方式总结

老子叫甜甜 提交于 2019-12-06 04:14:53
正在学习接口技术和计算机组成原理,中间有一些重叠的部分就放在一起了,至于DMA,中断之类的会放在后面讲解 6.1 接口综述 硬件接口通常称为I/O接口,把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。I/O接口是CPU同外界进行信息交换的中转站 使用接口的原因 速度不匹配 外设外慢 时序不匹配 各个外部设备都有自己的定时控制电路,以自己的速度进行传输,同CPU的时序不匹配 信息格式不匹配,不同的外设存储和处理信息的格式不同 信息类型不匹配,有些是数字电路,有些是模拟电路 CPU与外设之间所传送的数据类型 数据信息 包括模拟量,数字量,开关量,可以输入也可以输出 状态信息 这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息,供CPU参考分析 控制信息 这是CPU送给I/O设备的控制命令,使相应的外部设备完成特定的操作 在8086/8088中,这三种信息的输入输出基本一致,可以分发不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入输出的数据中设置特征位 接口的功能(背) 执行CPU命令 CPU将对外设的控制命令发到接口电路的命令寄存器中,以便控制外设按要求进行工作 返回外设状态 通过外设寄存器(状态口)完成,包括正常工作状态和故障状态 数据缓冲的功能 (平滑作用)接口电路中的数据寄存器(数据口)对CPU与外设设备之间的数据进行中转

关于VerilogHDL生成的锁存器

匿名 (未验证) 提交于 2019-12-03 00:18:01
总是会遇到有写文档中提到,不要生成锁存器。问题是 锁存器(Latch)是一种对 脉冲 电平敏感的 存储单元 电路 ,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把 信号 暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。 。综合工具会将Latch优化掉,造成前、后仿真结果不一致。 module datadistributor(datain,sel,enable,a,b,c,d); input datain; input [ 1 : 0 ] sel; input enable; output a; output c; output d; output b; reg a,b,c,d; always @(datain or enable or sel) begin if (enable== 1 ' b1) begin case (sel) 2 ' b00:a<=datain; 2 ' b01:b<=datain; 2 ' b10:c<=datain; 2 ' b11:d<=datain; default :a<= datain; endcase end else begin a <= 1 ' bz; b<= 1 ' bz; c<= 1 ' bz; d<= 1 '

多线程笔记一 --- CountDownLatch

时光毁灭记忆、已成空白 提交于 2019-12-01 20:37:32
一、代码使用样例 通过CountDownLatch实现:"主线程"等待"5个子线程"全部都完成"指定的工作(休眠1000ms)"之后,再继续运行。 import java.util.concurrent.CountDownLatch; public class CountDownLatchTest { private static CountDownLatch latch = new CountDownLatch(5); public static void main(String[] args) { System.out.println("Main Thread start...."); System.out.println(); for (int i = 0; i < 5; i++) { new InnerThread().start(); } try { latch.await(); System.out.println(); System.out.println("Main Thread latch.getCount = " + latch.getCount()); } catch (InterruptedException e) { System.out.println("Exception happened in latch await: " + e); }

latch free 等待事件说明

非 Y 不嫁゛ 提交于 2019-11-28 08:06:57
当进程想要获取锁存器而此时该锁存器正被其他进程持有时产生Latch Free(锁存器空闲)等 待事件,类似于排队,Oracle使用锁存器来保护数据结构。一次只能在一个进程在获得锁存器后 修改或检查数据结构。其他需要访问该数据结构的进程必须等到它们获得锁存器后。不同于排队 的是,请求锁存器的进程不需要在队列中等待。如果获取锁存器失败,则进程仅仅等待一小段时 间就可以再次请求锁存器。这一小段等待时间成为“自旋”(spin)。如果在一次或多次自旋重复 (spin iterations)之后还没获取锁存器,进程就休眠一小段时间,然后再次尝试获取锁存器, 接下来休眠更长一段时间,直到获得锁存器。 最常见的锁存器有:cache buffer chains(高速缓存缓冲区链)、library cache(高速缓存) 和shared pool(共享池)。 1、等待参数 latch free的等待参数描述如下: ◎ P1 进程等待的锁存器地址。 ◎ P2 锁存器号,同v$latchname.latch# 要查找等待锁存器的名称,可以是哟功能如下SQL语句: SELECT * FROM v$latchname WHERE latch# = & 2_Value; ◎ P3 尝试的次数;显示进程试图获取锁存器的次数计数器。 2、等待时间 该时间的等待时间呈指数级增长。他不包含进程为锁存器自旋(spin)

Oracle等待事件之Latch Free

血红的双手。 提交于 2019-11-28 08:06:36
1、产生原因 表示某个锁存器上发生了竞争。首先应该确保已经提供了足够多的Latch 数,如果仍然发生这种等待事件,那么应该进一步确定是那种锁存器上发生了竞争(在v$session_wait 上的P2 字段表示了锁存器的标号),然后再判断是什么引起了这种锁存器竞争。大多数锁存器竞争都不是简单的由锁存器引起的,而是与锁存器相关的组件引起的,所以需要找到具体导致竞争的根本。例如,如果发生了library cache latch 竞争,那么通常都表示着库高速缓存的配置不合理,或者SQL 语句书写不合理,带来了大量的硬解析。 2、确定出现问题原因 SELECT latch#, name, gets, misses, sleeps FROM v$latch WHERE sleeps > 0; 3、解决办法 Share Pool Latch:在OLTP 应用中应该更多地使用绑定变量以减少该latch 的等待。 Library Cache Latch:同样需要通过优化SQL 语句,使用绑定变量减少该latch 的等待。 来源: http://www.cnblogs.com/wcwen1990/p/6660404.html

LED显示行业之知识大全3

元气小坏坏 提交于 2019-11-27 14:58:21
最全的 LED 显示屏知识大全 你好,我叫毛华望, LED工程师。微信15889765314 。 六.显示板芯片简介 认识显示板元件工作原理也是对于组装和维修的基础 驱动芯片主要是74HC595 74HC245/244 74HC138 4953。 74HC245 的作用:信号功率放大 单元板/模组是由多块串接在一起的,而控制信号是比较弱的,在信号传递过程中需要将它的功率进行放大 第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。 第2~9脚“A”信号输入输出端,A1=B1、、、、、、A8=B8,A1与B1是一组,如果DIR=“1”G=“0”则A1输入B1输出,其它类同。如果DIR=“0”G=“0”则B1输入A1输出,其它类同。 第11~18脚“B”信号输入输出端,功能与“A”端一样,不再描述。 第19脚G,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。 第10脚GND,电源地。 第20脚VCC,电源正极。 74HC138 的作用:八位二进制译码器 74HC138的作用是用来选择显示行,一个74HC138可以选择8行中的一行,所以单元板/模块上有2块74HC138,这样就可以在16行中选择1行显示 第8脚GND,电源地。