• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

0和1的故事-2

    继续写一点数字电路方面的帖子,以后个人的方向主要还是在数字电路方面.
全部回复(44)
正序查看
倒序查看
2018-04-24 16:27

    搞电源开发也有8年多了,有些厌倦,电源方面的知识点看了很多,懂一点电源,但是纵观电子技术领域,仅仅懂一点电源技术其实是远远不够的.于是有了搞数字电路的念头.

    之前也断断续续的写了一些代码,但总感觉是浮在表面上的功夫,对于数字电路的理解很肤浅,仅仅停留在各种逻辑门的层次.这段时间想了很多,感觉目前的自己更想学一点数字电路,更想把各类数字功能电路以及CPU的底层工作原理弄通,弄精.可能这又得花上八九年的时间了,那又如何呢?

    活着不就是不断地折腾吗,是不是.

0
回复
2018-04-24 16:34
@hello-no1
  搞电源开发也有8年多了,有些厌倦,电源方面的知识点看了很多,懂一点电源,但是纵观电子技术领域,仅仅懂一点电源技术其实是远远不够的.于是有了搞数字电路的念头.    之前也断断续续的写了一些代码,但总感觉是浮在表面上的功夫,对于数字电路的理解很肤浅,仅仅停留在各种逻辑门的层次.这段时间想了很多,感觉目前的自己更想学一点数字电路,更想把各类数字功能电路以及CPU的底层工作原理弄通,弄精.可能这又得花上八九年的时间了,那又如何呢?  活着不就是不断地折腾吗,是不是.

    市面上铺天盖地的是各类功能芯片,做单片机开发的工程师应该更有体会.需要什么功能,只需要增加相应的集成芯片就行了,至于说芯片的工作原理,也就仅仅局限在技术手册层面的理解吧.

    都知道数字电路其实就只有两个状态,开和关.但是几乎所有的数字系统都是由开和关组成的,这就是数字电路的力量,也是它深深吸引我的地方.

    我想把数字电路的学习研究当作自己的业余爱好,慢慢地学,慢慢地练,一点一点的积累自己的技术,不急躁,不浮躁,打呆仗,打硬仗,这样走下去总会有一点收获吧.

    和诸位有此志向的朋友们共勉.

0
回复
2018-04-25 12:42
@hello-no1
  市面上铺天盖地的是各类功能芯片,做单片机开发的工程师应该更有体会.需要什么功能,只需要增加相应的集成芯片就行了,至于说芯片的工作原理,也就仅仅局限在技术手册层面的理解吧.  都知道数字电路其实就只有两个状态,开和关.但是几乎所有的数字系统都是由开和关组成的,这就是数字电路的力量,也是它深深吸引我的地方.  我想把数字电路的学习研究当作自己的业余爱好,慢慢地学,慢慢地练,一点一点的积累自己的技术,不急躁,不浮躁,打呆仗,打硬仗,这样走下去总会有一点收获吧.  和诸位有此志向的朋友们共勉.

    先将准备写的知识点罗列出来吧,这一帖想接着<<【我是工程师第四季】0和1的故事>>继续写.先期准备先写一点通过三极管实现各类门电路,接着准备通过各类逻辑门电路组建常规的功能电路,诸如计数器,加法器,锁存器,触发器,存储器,译码器,移位寄存器,存储器等数字电路,最终目的是想通过各类逻辑电路搭建出一个简易的CPU出来.

    工程量非常大,权当自己的业余爱好,这样没有压力,应该可以长久的坚持下来.

0
回复
2018-04-27 12:50
@hello-no1
  先将准备写的知识点罗列出来吧,这一帖想接着继续写.先期准备先写一点通过三极管实现各类门电路,接着准备通过各类逻辑门电路组建常规的功能电路,诸如计数器,加法器,锁存器,触发器,存储器,译码器,移位寄存器,存储器等数字电路,最终目的是想通过各类逻辑电路搭建出一个简易的CPU出来.  工程量非常大,权当自己的业余爱好,这样没有压力,应该可以长久的坚持下来.

    逻辑门电路搭建CPU,目前主流的方法是通过FPGA实现,需要掌握VERLOG语言,直接用逻辑门电路制作CPU周期长,费时费力。不过我还是想先用逻辑门电路搭出来,这样对于底层的原理会理解的更加透彻深刻。

    先从最基本的逻辑门电路的实现开始吧,有兴趣的朋友可以一起学习。越来越觉得把电子技术当作爱好比当作谋生的手段能够走的更远,走的更长。

0
回复
2018-04-27 16:50
@hello-no1
  逻辑门电路搭建CPU,目前主流的方法是通过FPGA实现,需要掌握VERLOG语言,直接用逻辑门电路制作CPU周期长,费时费力。不过我还是想先用逻辑门电路搭出来,这样对于底层的原理会理解的更加透彻深刻。  先从最基本的逻辑门电路的实现开始吧,有兴趣的朋友可以一起学习。越来越觉得把电子技术当作爱好比当作谋生的手段能够走的更远,走的更长。

    三极管组成的与门电路,和之前的二极管以及继电器组成的与门电路类似,只是实现的手段不同而已,其实原理大同小异。





0
回复
2018-04-27 16:53
@hello-no1
    三极管组成的与门电路,和之前的二极管以及继电器组成的与门电路类似,只是实现的手段不同而已,其实原理大同小异。[图片][图片]

    三极管组成的或门电路,如下图所示:


0
回复
2018-04-27 16:55
@hello-no1
  三极管组成的或门电路,如下图所示:[图片][图片]

    三极管非门电路以及时序图如下所示:



0
回复
2018-04-27 17:03
@hello-no1
  三极管非门电路以及时序图如下所示:[图片][图片]

    欢迎大家一起讨论学习数字电路的知识点,以前我认识的工程师给我灌输的观点是模拟电路难学,数字电路简单。其实真实的情况并不是如此,数字电路个人认为非常的繁琐,和模拟电路比较,有过之而无不及。简简单单的两个状态开和关或者说零和一就可以几乎囊括了电子世界的大半个江山,这简单吗,很显然不简单。说数字电路简单的朋友,其实大多数人对于数字电路的理解仅仅是门外汉都算不上的层次。

    广大的电源工程师其实很多人都不懂数字电路,至于底层驱动的编程,CPU结构的理解,RSIC架构和CSIC架构的区别,不同指令集的理解等等,其实几乎都不懂,很多人连涉及的层次都达不到,仅仅是根据自己的理解就大言不惭的告诉新手们,数字电路简单。个人觉得这是对广大新手能力的扼杀,同时也是对刚入门的新人的极大的不负责任。

0
回复
2018-04-27 17:11
@hello-no1
    欢迎大家一起讨论学习数字电路的知识点,以前我认识的工程师给我灌输的观点是模拟电路难学,数字电路简单。其实真实的情况并不是如此,数字电路个人认为非常的繁琐,和模拟电路比较,有过之而无不及。简简单单的两个状态开和关或者说零和一就可以几乎囊括了电子世界的大半个江山,这简单吗,很显然不简单。说数字电路简单的朋友,其实大多数人对于数字电路的理解仅仅是门外汉都算不上的层次。  广大的电源工程师其实很多人都不懂数字电路,至于底层驱动的编程,CPU结构的理解,RSIC架构和CSIC架构的区别,不同指令集的理解等等,其实几乎都不懂,很多人连涉及的层次都达不到,仅仅是根据自己的理解就大言不惭的告诉新手们,数字电路简单。个人觉得这是对广大新手能力的扼杀,同时也是对刚入门的新人的极大的不负责任。

    接下来准备写点用逻辑门组成的时序逻辑和组合逻辑电路,常规的各类触发器等等。慢慢写,学习鸿哥好榜样,用一辈子的时间去学习,去写帖子,写高质量的帖子,帮助更多的迷茫的新人们,同时也希望诸多老鸟们能一起加入进来共同讨论学习,谢谢。

    曾经的我很迷茫,也理解新手们刚步入这个行业的痛楚,希望通过自己的努力能够将电子技术写的通俗大众一点,帮助更多的后来者扫清入门阶段的障碍。限于自己的水平,我自己遇到很多问题,也是边写边学边练。我想只要勤奋,总能在电子技术有所收获吧。

    努力,和有志于电子技术行业的朋友们共勉

0
回复
fzhlpp
LV.7
11
2018-04-29 10:11
@hello-no1
  接下来准备写点用逻辑门组成的时序逻辑和组合逻辑电路,常规的各类触发器等等。慢慢写,学习鸿哥好榜样,用一辈子的时间去学习,去写帖子,写高质量的帖子,帮助更多的迷茫的新人们,同时也希望诸多老鸟们能一起加入进来共同讨论学习,谢谢。  曾经的我很迷茫,也理解新手们刚步入这个行业的痛楚,希望通过自己的努力能够将电子技术写的通俗大众一点,帮助更多的后来者扫清入门阶段的障碍。限于自己的水平,我自己遇到很多问题,也是边写边学边练。我想只要勤奋,总能在电子技术有所收获吧。    努力,和有志于电子技术行业的朋友们共勉。
自带板凳坐下来慢慢听讲,据说懂的越多的人觉得自己不懂的事物也越来越多,唉!人呐,真是在自寻“”烦恼“”,可是也真又乐在其中。最近的中兴事件就是因为CPU的事情,芯片都依赖国外,谁之过。我也好奇芯片的最基础是咋样的,且听楼主细细道来....
0
回复
2018-05-02 12:35
@fzhlpp
自带板凳坐下来慢慢听讲,据说懂的越多的人觉得自己不懂的事物也越来越多,唉!人呐,真是在自寻“”烦恼“”,可是也真又乐在其中。最近的中兴事件就是因为CPU的事情,芯片都依赖国外,谁之过。我也好奇芯片的最基础是咋样的,且听楼主细细道来....
    谢谢你,你的回帖给了我很大的动力,谢谢。吾身有涯愿无涯。
0
回复
2018-05-02 12:43

    继续更新。之前讲解了通过三极管,二极管等器件构建门电路。接下来开始正式讲讲数字电路。

    数字电路的基础部件是门电路,而常规的门电路不过三种而已,与或非。考虑到器件的制造工艺以及批量化生产等诸多问题,真正应用较多的门电路是与非门以及或非门。通过与非门或者是或非门便可以组合出数字电路中的任意功能模块电路(时钟电路除外),很奇妙,也很好玩。所谓大道至简,应该便是此理。

0
回复
2018-05-02 12:56
@hello-no1
  继续更新。之前讲解了通过三极管,二极管等器件构建门电路。接下来开始正式讲讲数字电路。  数字电路的基础部件是门电路,而常规的门电路不过三种而已,与或非。考虑到器件的制造工艺以及批量化生产等诸多问题,真正应用较多的门电路是与非门以及或非门。通过与非门或者是或非门便可以组合出数字电路中的任意功能模块电路(时钟电路除外),很奇妙,也很好玩。所谓大道至简,应该便是此理。

    首先将与门电路进行了仿真测试,通过设定输入时序逻辑来控制输出端的状态,输入和输出的状态关系表明与门电路一项重要的应用功能,那就是使能功能,同时也表明了与门电路另一项功能,位与逻辑功能。

0
回复
2018-05-02 13:00
@hello-no1
  首先将与门电路进行了仿真测试,通过设定输入时序逻辑来控制输出端的状态,输入和输出的状态关系表明与门电路一项重要的应用功能,那就是使能功能,同时也表明了与门电路另一项功能,位与逻辑功能。[图片][图片]

    接下来是或门逻辑电路,输入端的逻辑电平也进行了设置,从而控制输出端的逻辑状态。或门应用较广的功能为位或功能,实现寄存器的按位或变化。


0
回复
2018-05-03 13:02
@hello-no1
  接下来是或门逻辑电路,输入端的逻辑电平也进行了设置,从而控制输出端的逻辑状态。或门应用较广的功能为位或功能,实现寄存器的按位或变化。[图片][图片]

    继续更新。

    最近一直在出差中,帖子的更新只能抽空进行了。今天主要讲的电路是非门电路。非门电路从逻辑控制的角度看就是输入和输出反相而已,实际工程应用中,非门电路作用非常大。通过非门电路可以实现自激振荡电路(方波时钟信号),和与门以及或门组成与非门及或非门,用作缓冲器,使能控制端等等。


0
回复
2018-05-04 20:30
@hello-no1
  继续更新。    最近一直在出差中,帖子的更新只能抽空进行了。今天主要讲的电路是非门电路。非门电路从逻辑控制的角度看就是输入和输出反相而已,实际工程应用中,非门电路作用非常大。通过非门电路可以实现自激振荡电路(方波时钟信号),和与门以及或门组成与非门及或非门,用作缓冲器,使能控制端等等。[图片][图片]

    针对与,或,非门再进行一些补充吧。

    先说与门,之前帖子中提到与门有一项比较重要的作用就是作为使能端口的应用。其实原理很简单,最直观的方法是观察与门的真值表便可一目了然。

    与门相当于乘法运算,有零即为零,全一才初一。作为双输入与门,如果其中一个门作为使能端,一直处于低电平状态,另一个输入端口不管是何种状态,输出固定为零。当使能端口置一,另一输入端口则可以将数据输送至输出端口。


0
回复
2018-05-04 20:46
@hello-no1
  针对与,或,非门再进行一些补充吧。  先说与门,之前帖子中提到与门有一项比较重要的作用就是作为使能端口的应用。其实原理很简单,最直观的方法是观察与门的真值表便可一目了然。  与门相当于乘法运算,有零即为零,全一才初一。作为双输入与门,如果其中一个门作为使能端,一直处于低电平状态,另一个输入端口不管是何种状态,输出固定为零。当使能端口置一,另一输入端口则可以将数据输送至输出端口。[图片][图片]

    上述与门使能电路,其使能端口为低电平使能,如果需要高电平使能如何处理呢,很简单,前级加入一个非门电路即可解决这一问题。



0
回复
2018-05-04 22:01
@hello-no1
  上述与门使能电路,其使能端口为低电平使能,如果需要高电平使能如何处理呢,很简单,前级加入一个非门电路即可解决这一问题。[图片][图片]
    明天抽时间内给大家讲讲三态门的原理。
0
回复
2018-05-05 19:30
@hello-no1
  明天抽时间内给大家讲讲三态门的原理。

    继续更新。今天讲讲译码器的原理。

    译码器,顾名思义就是翻译编码的作用,说的专业点,就是可以将n位输入码转换为2^n的输出码,说的通俗点就是能够用较少的信号位表示较多的信号码。为什么这样做呢,集成芯片中,我们知道可谓寸土寸金,通过译码器可以节省很多的信号走线,极大的节约了芯片内的空间,是不是很有意思?

    先给大家来个简单一点的译码器,一二译码器。也就是说通过一个电信号可以表示两个信号,原理很简单,其实就是个非门而已。


0
回复
2018-05-05 19:43
@hello-no1
  继续更新。今天讲讲译码器的原理。  译码器,顾名思义就是翻译编码的作用,说的专业点,就是可以将n位输入码转换为2^n的输出码,说的通俗点就是能够用较少的信号位表示较多的信号码。为什么这样做呢,集成芯片中,我们知道可谓寸土寸金,通过译码器可以节省很多的信号走线,极大的节约了芯片内的空间,是不是很有意思?  先给大家来个简单一点的译码器,一二译码器。也就是说通过一个电信号可以表示两个信号,原理很简单,其实就是个非门而已。[图片][图片]

    接下来升级一下,来个相对复杂一点的译码器,二四译码器。由该电路的名称即可知道该译码器可以将两个位信号表示为四种不同的状态信号。



0
回复
2018-05-05 19:47
@hello-no1
  接下来升级一下,来个相对复杂一点的译码器,二四译码器。由该电路的名称即可知道该译码器可以将两个位信号表示为四种不同的状态信号。[图片][图片]

    通过上述我个人的理解描述以及电路时序图,译码器的原理应该说是比较明朗了,本质思想就是想通过较少的电路信号表示相对较多的电信号,降低信号线的条数,达到节省电路面积的作用,就这么简单。

    接下来考虑将使能电路和译码器电路结合起来。只有带使能端口的译码器以及其他的功能数字电路才算是真正完整的数字电路。

0
回复
2018-05-06 12:09

    继续更新。

    讲讲带使能端口的二四译码器吧。结合我之前帖子中提到的,通常使用与门作为使能端口,这次也不例外。原理其实很简单,就是在二四译码器的后级再加一级与门端口即可。当使能端口为1低电平时,译码器的输出不动作,当使能端口为高电平时,正常输出。但是这样的后级电路其实并不算完美,如果后级加上三态门电路就完美了。使能端口为高电平时,译码器正常输出,当使能端口为低电平时,译码器输出端为高阻态,也就是断开状态。



0
回复
2018-05-06 12:25
@hello-no1
    继续更新。  讲讲带使能端口的二四译码器吧。结合我之前帖子中提到的,通常使用与门作为使能端口,这次也不例外。原理其实很简单,就是在二四译码器的后级再加一级与门端口即可。当使能端口为1低电平时,译码器的输出不动作,当使能端口为高电平时,正常输出。但是这样的后级电路其实并不算完美,如果后级加上三态门电路就完美了。使能端口为高电平时,译码器正常输出,当使能端口为低电平时,译码器输出端为高阻态,也就是断开状态。[图片]

    如果想让使能端口低电平有效则需要在使能端口再接入一级非门电路即可,是不是觉得很简单呢?变来变去,其实还是与门,非门,的不同组合而已,是不是呢,各位看官。



0
回复
2018-05-07 11:53
@hello-no1
  如果想让使能端口低电平有效则需要在使能端口再接入一级非门电路即可,是不是觉得很简单呢?变来变去,其实还是与门,非门,的不同组合而已,是不是呢,各位看官。[图片]

    继续更新,上一帖讲解了译码器,接着就得讲讲编码器了。

    编码器的原理相当于是译码器的逆过程,也就是将2^n的位码转换为n位的输出码。在信息的传输过程中,经常涉及到编码的过程。虽然原理很简单,但是真正应用都得时候,这是一门非常大的学问。比如在编码的过程中实现加密,信息传输过程中为防止掉包现象,需要加入校验位等等操作,那是相当的繁琐。

   我在这里仅仅讲一点基本的编码器的逻辑实现方式,方便大家理解CPU的编码原理,先给大家来个简单的编码器,四二编码器:


    

0
回复
2018-05-07 11:56
@hello-no1
  继续更新,上一帖讲解了译码器,接着就得讲讲编码器了。  编码器的原理相当于是译码器的逆过程,也就是将2^n的位码转换为n位的输出码。在信息的传输过程中,经常涉及到编码的过程。虽然原理很简单,但是真正应用都得时候,这是一门非常大的学问。比如在编码的过程中实现加密,信息传输过程中为防止掉包现象,需要加入校验位等等操作,那是相当的繁琐。  我在这里仅仅讲一点基本的编码器的逻辑实现方式,方便大家理解CPU的编码原理,先给大家来个简单的编码器,四二编码器:[图片]   

    接下来讲讲八三编码器,顾名思义就是将八位输入码转换为3位输出码。八三编码器,我这里采用了两种逻辑电路实现方式,一种是或非门,另一种是非门和与非门组合实现。

    下图所示为或非门实现的八三编码器:



0
回复
2018-05-07 11:57
@hello-no1
  接下来讲讲八三编码器,顾名思义就是将八位输入码转换为3位输出码。八三编码器,我这里采用了两种逻辑电路实现方式,一种是或非门,另一种是非门和与非门组合实现。    下图所示为或非门实现的八三编码器:[图片]

    采用非门以及与非门实现的八三编码器,如下图所示:



1
回复
fzhlpp
LV.7
28
2018-05-07 15:56
@hello-no1
  采用非门以及与非门实现的八三编码器,如下图所示:[图片]
我也总在想CPU内部到底是啥样的,时钟和CPU是怎么运作的。真正核心应该是不是时钟啊,时钟不工作一切都玩完。设计处理器是不是第一步就从时钟启动开始,然后根据这个节奏设计其他逻辑和运算.....脑洞大开.......
0
回复
2018-05-08 07:57
@fzhlpp
我也总在想CPU内部到底是啥样的,时钟和CPU是怎么运作的。真正核心应该是不是时钟啊,时钟不工作一切都玩完。设计处理器是不是第一步就从时钟启动开始,然后根据这个节奏设计其他逻辑和运算.....脑洞大开.......[图片]
    CPU由五大机构组成  输入,输出,控制,存储,运算。其中控制部分最重要,控制的核心就是时序逻辑,也就是你说的时钟的问题。
0
回复
2018-05-08 11:41

    继续更新。

    今天讲讲特殊的编码器,带优先权的编码器。看到优先权三个字是不是浮想联翩。对的,就是那个意思,该类编码器中输入端口有优先级顺序,优先级高的端口不需要考虑其他端口的参数,它说了算。我是老大我怕谁。下面以简单的四二编码器为例,不多解释,直接上电路图:

    其中D3的优先级别最高,其余优先级依次递减,输出端OUT_0和OUT_1为输出端口,当输出端口有高电平输出时,有效位端口输出1,表示该编码器输出位有效。



0
回复
2018-05-10 12:39
@hello-no1
  继续更新。    今天讲讲特殊的编码器,带优先权的编码器。看到优先权三个字是不是浮想联翩。对的,就是那个意思,该类编码器中输入端口有优先级顺序,优先级高的端口不需要考虑其他端口的参数,它说了算。我是老大我怕谁。下面以简单的四二编码器为例,不多解释,直接上电路图:[图片]    其中D3的优先级别最高,其余优先级依次递减,输出端OUT_0和OUT_1为输出端口,当输出端口有高电平输出时,有效位端口输出1,表示该编码器输出位有效。

    今天抽时间讲讲多路复用器的工作原理吧。在CPU中,有三大总线,分别是数据总线,控制总线,地址总线。由于CPU内部的控制部件很多,涉及到的数据的传输也非常复杂,为了节省资源,不可能每个功能模块都配相应的传输线路,怎么解决这个问题呢。两种思路,第一就是通过三态门将不同的工作模块与总线相连。哪个模块需要传输数据时,就相应的将这一模块通过三态门连接到传输总线上。第二种方法就是多路复用技术,通过控制多路复用器的连接端口,在不同的时刻允许对应的端口与传输总线连接,实现数据的传输。

    三态门和多路复用器的区别是,三态门的传输方式可以实现数据的输入和输出,也即是双向传输,而多路复用器一般只可以用于单向的数据输出。



0
回复