组合逻辑电路设计
数字电路设计分为几个等级,分别为architecture level,架构级别,或者说是算法级别;behavioral level,行为级;register transformlevel, RTL级,transistor level,传输管级别;RTL级别是最合适的设计级别,因为它定义了最基本的逻辑,相应的nand,nor,and,xor,xnor等都是这个级别的。而行为级就有稍微高级一点,主要是表现在语法上有一些行为级上的用法,可以来表现具体的活动;而架构级别就更高了,相应的SOC设计基本上就是在这一个级别进行设计的。传输管级别就很低了,相应的表述延迟的那个单位,#(a1,a2,a3;b1,b2,b3;c1,c2,c3)这种形式就可以算作这个级别的,分别表示0到1,1到0,到高阻态Z的转换,而相应的分号前的三个,一般都是分别表示best corner,typical corner和worst corner情况下的延迟;这里的corner指的是PVT,相应的MOS管设计的环境状况,分别是process,工艺制程,voltage,电压和temperature,温度。
相应的电路设计分别分为组合逻辑设计和时序逻辑设计,组合逻辑设计主要是靠逻辑转换,通过各种nand,nor,xor,xnor,and,or等逻辑推出来的,相应的逻辑简化一般是采用卡诺图的方式来实现的,卡诺图的话自己百度或者查资料都可以看到,很简单。但是组合逻辑电路设计要避免一个现象,那就是combinational loop,比如说三个反相器串联在一起,最后的那个反相器的输出连接到第一个反相器的输入端,那么就会出现逻辑相冲的情况,比如说第一个反相器输入为0,经过三个反相器变成了1,结果又被接回到第一个的输入,那么0和1就会打架,出现抖动,模拟电路中会利用这种现象来制作PLL(phase locked logic)中的一部分,用来产生波形;两个反相器串联在一起就变成了buffer,增加了推力,提高了电路可靠性,主要是利用了反相器的反函数特性,让0更接近0电位,让1更接近1电位。
组合逻辑电路设计要注意正向逻辑反向逻辑等的推导,一般反向逻辑的延时要小,功耗面积什么的都会小一点,所以更好一点。组合逻辑只要理清思路,画好卡诺图,搞清楚原理,基本上很难错。纠错相对来说要简单一些。
之前介绍过模拟电路设计的两本书,分别是拉扎维和Sasen的,具体的网盘也分享了,这里分享数字电路入门的一本好书,如下:CMOS VLSI Design A Circuit and Systems Persp
链接: http://pan.baidu.com/s/1dFa8KIP 密码: u4sn