数字电路

那些年我们学过的数模电...

作者:做但不能忘思考 ,来源:FPGA2嵌入式

0. 概述

做FPGA开发或者是嵌入式开发,数字图像处理是一个很大的领域,回顾下大学里学的模电,数电,单片机原理,数字图像处理,通信理论,MATLAB,目前比较前沿的Python等知识联系起来,能更好的指明人生规划的方向。

1. 模拟电路

都记得我们大学学习的一门课程,模拟电路吗?难,枯燥,又感觉没有鬼用。但其实它是模拟世界到数字世界的一道桥梁,模拟信号到数字信号01。我们现在想想,数字图像是怎么通过模拟转为数字的?

数字电路中的亚稳态产生原因和处理方法

最近在异步FIFO设计中,遇到了对跨时钟信号的同步处理,主要是为了降低亚稳态出现的概率。因此这篇文章主要讲一下亚稳态出现原因以及处理办法。

(一)亚稳态的出现原因

亚稳态主要是指触发器在某一段时间内不能达到一个确定的状态。一个触发器一旦进入亚稳态状态,则无法预测触发器的输出电平,也无法预测什么时候可以稳定在某个确定的电平上,此时触发器的输出端Q在较长时间内处于振荡状态,不等于输入端D。这段时间称作决断时间(resolution time)。经过resolution time之后,输出端Q将会稳定在某个电平上,但是这个稳定之后的电平与输入端D是没有关系的。

亚稳态出现的主要原因是因为触发器无法满足setup time或者hold time。亚稳态在在输出稳定下来之前有可能是毛刺、振荡、固定的某一电平值,因此会导致逻辑误判;并且在没有稳定下来之前,输出在0-1之间的值还会使得下一级电路进入亚稳态状态。逻辑误判可以通过一些设计技巧进行改善(grey编码),但是亚稳态的传输会扩大故障,难以处理。

只要系统中存在异步元件,则亚稳态是没有办法避免的,亚稳态通常发生在异步信号检测、跨时钟传输和复位电路当中。下面做一个详细的说明。

一文读懂数字电路的概念、特点及功能分类

数字电路的概念
用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。数字电路是由许多的逻辑门组成的复杂电路,与模拟电路相比,它主要进行数字信号的处理(即信号以0与1两个状态表示),因此抗干扰能力较强。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。一个数字系统一般由控制部件和运算部件组成,在时脉的驱动下,控制部件控制运算部件完成所要执行的动作。通过模拟数字转换器、数字模拟转换器,数字电路可以和模拟电路互相连接。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二进制数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。

数字电路的主要特点

1、 同时具有算术运算和逻辑运算功能

一、CMOS门电路
CMOS 门电路一般是由MOS管构成,由于MOS管的栅极和其它各极间有绝缘层相隔,在直流状态下,栅极无电流,所以静态时栅极不取电流,输入电平与外接电阻无关。由于MOS管在电路中是一压控元件,基于这一特点,输入端信号易受外界干扰,所以在使用CMOS门电路时输入端特别注意不能悬空。在使用时应采用以下方法:

1、与门和与非门电路:由于与门电路的逻辑功能是输入信号只要有低电平,输出信号就为低电平,只有全部为高电平时,输出端才为高电平。而与非门电路的逻辑功能是输入信号只要有低电平,输出信号就是高电平,只有当输入信号全部为高电平时,输出信号才是低电平。所以某输入端输入电平为高电平时,对电路的逻辑功能并无影响,即其它使用的输入端与输出端之间仍具有与或者与非逻辑功能。这样对于CMOS与门、与非门电路的多余输入端就应采用高电平,即可通过限流电阻(500Ω)接电源。

三态门在FPGA中的实现与仿真

三态门在数字电路上可以说是应用的非常广泛,特别是一些总线上的应用,因而,随着数字电路的发展,就避免不了用硬件描述语言在FPGA上来设计实现三态门。由于最近在玩摄像头,免不了的要写I2C协议,总线操作,就应用到了三态门,所以就在这好好总结一下三态门的设计实现及其仿真。

一.三态门在FPGA上的设计实现

首先我们要明白三态门的三态是指其输出有三种状态:高电平(逻辑1)、低电平(逻辑0)和高阻态(Hi-Z),且三态门都有个使能端EN来控制门电路的通断,其功能模型如图1-1所示:

看着图1-1,我们一眼就明白其功能的实现了,在FPGA上用硬件描述语言Verilog来描述就是这几句语句:
inout Y, //define three-state gate Y in your module
reg A; //intermediate driver registers
wire C; //Enable signal

深入浅出FPGA-4-数字电路设计基础

做FPGA研发,知道一点数字电路设计的基础知识是必要的,不然的话会逐渐变成一个会HDL语言的软件工程师,这是我们都不想发生的事情,尤其是对我这样的从软件行业转行过来的人。随着综合工具及自动布局布线工具的快速发展,日益完善与成熟,FPGA工程师跟电路打交道的机会越来越少,致使我们越来越不清楚实际电路的样子了,所以这一节就说一些数字电路的内容,回忆一下数字电路的本来摸样,门电路长什么样;触发器为什么叫‘触发’器;给你一个电路图,怎么得到状态转移图;给你一个实际问题,怎么得到具体电路图,等等这些我们曾经那么熟悉现在又那么模糊的事情。好了,我们开始吧。

建立时间和保持时间
建立时间(setuptime)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。数据稳定传输必须满足建立和保持时间的要求。

大唐电信FPGA/CPLD数字电路设计经验分享(4)

2.4 信号输出

当你需要将FPGA/CPLD内部的信号通过管脚输出给外部相关器件的时候,如果不影响功能最好是将这些信号通过用时钟锁存后输出。因为通常情况下一个板子是工作于一种或两种时钟模式下,与FPGA/CPLD相连接的芯片的工作时钟大多数情形下与FPGA的时钟同源,如果输出的信号经过时钟锁存可以起到如下的作用:

同步内容