[导读]近年来,随着集成电路技术的发展,用传统的方法进行芯片或系统设计已不能满足要求,迫切需要提高设计效率。在这样的技术背景下,能大大降低设计难度的VHDL设计方法正越来越广泛地被采用。但是VHDL设计是行为
近年来,随着集成电路技术的发展,用传统的方法进行芯片或系统设计已不能满足要求,迫切需要提高设计效率。在这样的技术背景下,能大大降低设计难度的VHDL设计方法正越来越广泛地被采用。但是VHDL设计是行为级的设计?所带来的问题是设计者的设计思考与电路结构相脱节。设计者主要是根据VHDL的语法规则?对系统目标的逻辑行为进行描述?然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统时延的仿真。实际设计过程中,由于每个工程师对语言规则、对电路行为的理解程度不同,每个人的编程风格不同,往往同样的系统功能,描述的方式是不一样的,综合出来的电路结构更是大相径庭。因此,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的差别,甚至某些臃肿的电路还会产生难以预料的问题。从这个问题出发,我们就很有必要深入讨论在VHDL设计中如何简化电路结构,优化电路设计的问题。1 描述方法对电路结构的影响用VHDL进行设计,其最终综合出的电路的复杂程度除取决于设计要求实现的功能的难度外,还受设计工程师对电路的描述方法和对设计的规划水平的影响。最常见的使电路复杂化的原因之一是设计中存在许多本不必要的类似LATCH的结构。而且由于这些结构通常都由大量的触发器组成,不仅使电路更复杂,工作速度降低,而且由于时序配合的原因而导致不可预料的结果。例如对于同一译码电路有不同VHDL描述:1: IF INDEX=″00000″ THENSTEPSIZE<=″0000111″?ELSIF INDEX=″00001″ THENSTEPSIZE<=″0001000″?LSIF INDEX=″00010″ THENSTEPSIZE<=″0001001″?……ELSESTEPSIZE<=″0000000″?END IF;2:STEPSIZE<=″0000111″ WHEN INDEX=″00000″ ELSE″0001000″ WHEN INDEX=″00001″ELSE″0001001″WHEN INDEX=″00010″ ELSE……以上两段程序描述了同一个译码电路。第二段程序由于WHEN .....ELSE的语句不能生成锁存器的结构且ELSE后一定要有结果,所以不会有问题,而第一个程序如果不加ELSE STEPSIZE〈=“0000000”这句,则会生成一个含有7位寄存器的结构,虽然都能实现相同的译码功能。但是电路复杂度会大增。而由于每个工程师的写作习惯不同,有的喜欢用IF....ELSE的语句,有的喜欢用WHEN.....ELSE的方式,而用IF.....ELSE时,如稍不注意,在描述不需要寄存器的电路时没加ELSE,则会引起电路不必要的开销。所以在VHDL设计中要慎用IF ...ELSE这类能描述自身值代入的语句。2 设计规划的优劣直接影响电路结构另一主要引起电路复杂化的原因是对设计规划的不合理。虽然VHDL语言能从行为描述生成电路,但一个完整的设计一般来说都不可能由直接描述设计的目标功能来实现的。总要把设计分成若干部分,每一部分再分别描述其行为。这就涉及到如何划分功能模块的问题,要求对设计了解的较深入,才能使划分更有效,才能降低电路的复杂程度。例如我们设计一个时钟源为1kHz,每32秒发出一组信号(共八组)的简单的控制器来说。下面有两种实现方法:(1)用15位的记数器实现把输入1KHz的时钟分频为1/32Hz,然后用这个作为时钟驱动一个3位的记数器,这个记数器的八个状态分别通过一个3-8译码器发出所要求的信号。(2)直接用18位的记数器把输入的1KHz时钟进行分频,再利用记数器的八个相距32秒的状态来推动一个12-8译码器来实现。对于如此的设计要求,VHDL程序分别如下所示:1. 第一种设计方法的VHDL源程序process(clk?cclk?count2)beginif(clk='1' and clk'event)thencount2<=count2 + 1?if(count2=″000000000000000″)thencclk<='1'?elsecclk<='0'?end if?end if?end process?process(cclk?count3?ctemp)beginif(cclk='1' and cclk'event)thencount3<=count3 + 1?if(count3=″000″)thenctemp<=″00000001″?elsif(count3=″001″)thenctemp<=″00000010″?elsif(count3=″010″)thenctemp<=″00000100″?elsif(count3=″011″)thenctemp<=″00001000″?elsif(count3=″100″)thenctemp<=″00010000″?elsif(count3=″101″)thenctemp<=″00100000″?elsif(count3=″110″)thenctemp<=″01000000″?elsif(count3=″111″)thenctemp<=″10000000″?elsectemp<=″00000000″?end if?end if?end process?2. 第二种设计方法的VHDL源程序process(clk?ctemp?count)beginif(clk='1' and clk'event)thencount<=count + 1?if(count=″00000000000000000″)thenctemp<=″00000001″?elsif(count=″001000000000000000″)thenctemp<=″00000010″?elsif(count=″010000000000000000″)thenctemp<=″00000100″?elsif(count=″011000000000000000″)thenctemp<=″00001000″?elsif(count=″100000000000000000″)thenctemp<=″00010000″?elsif(count=″101000000000000000″)thenctemp<=″00100000″?elsif(count=″110000000000000000″)thenctemp<=″01000000″?elsif(count=″111000000000000000″)thenctemp<=″10000000″?end if?end if?end process?对于第一种的程序可以综合出的电路如图1所示。该电路用一个15位的加法器和寄存器组成一个15位的记数器。在记数器记完一周回到“000000000000000”时,通过后面的15输入的与非门和一位的触发器就可以实现同步的进行215次分频,同步输出32Hz的时钟CCLK。CCLK再驱动一8位的移位寄存器,便可实现每32秒输出一信号。而用第二种的程序设计综合出的电路如图2所示。图2所示的电路用一个18位的加法器和寄存器组成一个18位的记数器。后接了8个18输入的逻辑门和8输入的或门。输入的1KHz时钟经过记数器被分频,其中有八个相隔32Hz的记数状态,逻辑门就负责把这八状态译码成所需的八组信号。译码后的数据通过选择器输出到8位的触发器,以实现同步输出。还有个锁存器,是用来保持输出信号不变,在八个状态中的从一个状态变到下一个之前,保持前一个的数值。选择器当逻辑门输出新的数据时让其输出数据通过,在新数据到来之前输出锁存器的数据。以上两种方法都能实现相同的逻辑功能,但图2所示的方法由于运用了较少位数的记数器,所用的逻辑门也较简单,而且还少用了多路选择器和锁存器资源,所以综合出来的电路较简单,以XILINXSpartan S05 -3 芯片为例。第一种方法占用芯片CLB的12%,其中FMAPS为9%,最高工作速度为82MHz。而第二种方法占用了15%的CLB,FMAPS占用15%,最高工作速度只有69.9MHz。在这一个简单的设计之中就能省20%的电路,提高12.1MHz的工作速度,由此可见科学的划分设计对降低电路复杂程度的重要意义。3 逻辑设计对电路结构的影响还有一个使电路复杂化的原因是逻辑电路的输入项太多以致需占用过多的面积。我们从图3和图4两个相同功能的逻辑电路和他们对应的VHDL描述来分析。比较两图可知,图3是二级逻辑门,每个输入信号与不只一个逻辑门相连,图4是三级的逻辑门,每个输入信号只与一逻辑门相连。由于级数少,延时也较少,因此图3的速度要比图4快。然而,由于图3的输入项要比图4大的多(10:5),因此,占用的面积必然也比图3大。图4是图3通过提取公因数(例中是B和C)得来的,这是把附加的中间项加到结构描述中去的一种过程,它使输入到输出中的逻辑级数增加,牺牲速度换来电路占用面积的减少。对于对延时要求不高的情况下采用这种方法分解逻辑电路以达到减少电路复杂度的目的。通过以上简单、初步的探讨,我们可以知道,用VHDL进行集成电路的设计,牵涉到对VHDL语言的使用方法和对设计的理解程度。本文讨论了以下几个简化和优化电路设计的3个值得注意的方面:(1)在用VHDL进行设计中要注意避免不必要的寄存器描述。(2)在编写程序前要先对整个设计进行较深入的了解?科学的划分设计,多设想几种方案?再进行比较?用多个较少位数的单元取代较多位数的单元。(3)在延时要求不高的情况下,可提取逻辑电路公因子?把它分解成含有中间变量的多级电路。
来源:零八我的爱
0次
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
本文介绍一款小尺寸、功能强大、低噪声的单芯片同步升压转换器。文章重点介绍了该集成电路的多个特性。这些特性能够增强电路性能,并支持定制,以满足各种应用的要求。
关键字:
升压转换器
集成电路
电路
在电子电路设计领域,放大器是极为关键的元件,用于增强电信号的幅度,以满足各类电子设备的需求。内置增益设置电阻的放大器和分立差动放大器是两种常见类型,它们在电路结构、性能表现、成本以及设计灵活性等方面存在诸多不同。深入了解...
关键字:
放大器
电信号
电路
在电子设备的保护领域,双向 TVS 管(瞬态电压抑制二极管)发挥着至关重要的作用,能有效抵御瞬态过电压对电路的损害。双向 TVS 管根据内部结构的不同,可分为共阴和共阳两种类型,它们在诸多方面存在显著差异。深入了解这些区...
关键字:
瞬态电压抑制二极管
双向
电路
在电子电路的世界里,电感是一种不可或缺的元件,它如同一个 “电惯性” 的守护者,默默影响着电路中电流的变化。电感量与流过电感的电流之间存在着复杂而精妙的关系,深入理解这种关系,对于掌握电路原理、设计电子设备以及解决实际电...
关键字:
电流
电感量
电路
电气设计领域常用的图纸包括电气原理图、电器元件布置图、电气安装接线图以及二次电路图。
关键字:
电路
原理图
一直以来,可控硅都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来可控硅的相关介绍,详细内容请看下文。
关键字:
可控硅
万用表
电路
在电子电路的世界里,电阻是最基础且不可或缺的元件之一,它如同电路中的 “交通指挥员”,通过阻碍电流的流动,实现对电压、电流的精准调控,保障各类电子设备的正常运行。然而,在实际应用中,电阻会因各种因素出现损坏,进而影响整个...
关键字:
电阻
电路
电流
在电子电路的广袤世界里,电感线圈作为一种基础且关键的电子元件,默默发挥着不可或缺的作用。从日常使用的手机、电脑,到复杂精密的工业控制设备、通信基站,电感线圈无处不在。它能够储存和释放电磁能量,实现滤波、振荡、变压等多种功...
关键字:
电感线圈
电子元件
电路
为增进大家对集成电路的认识,本文将对集成电路的分类以及集成电路的替换方法予以介绍。
关键字:
电路
指数
集成电路
为增进大家对集成电路的认识,本文将对集成电路的核心器件以及检测集成电路好坏的方法予以介绍。
关键字:
电路
指数
集成电路
在电子电路领域,电感和电容作为两种基础且重要的元件,广泛应用于各类电路之中。从简单的滤波电路到复杂的通信系统,它们的身影无处不在。然而,对于电感和电容究竟属于线性元件还是非线性元件,以及如何准确判断这一属性,许多人存在疑...
关键字:
电感
电容
电路
在电子电路的纷繁世界里,电阻 - 电容(RC)低通滤波器以其简洁而高效的结构,成为信号处理与电路优化的得力助手。它如同电子世界的 “滤网”,按照特定规则筛选和处理信号,在众多领域发挥着不可或缺的作用。
关键字:
低通滤波器
信号处理
电路
在电子电路设计中,接地(GND)是构建稳定可靠电路系统的关键环节。合理的接地设计能够减少电磁干扰、稳定电路电位,确保电子设备正常运行。然而,有时出于特定的电路功能需求或解决电磁兼容性(EMC)问题,会在电路 GND 中串...
关键字:
接地
电磁兼容
电路
开关电源在现代电子设备中扮演着至关重要的角色,其体积小、效率高、稳定性好的特点使其广泛应用于各个领域。然而,在实际应用中,开关电源可能会因各种原因发生故障,导致设备停机。为了提高系统的可靠性和稳定性,设计一种能够实现自动...
关键字:
开关电源
电路
在下述的内容中,小编将会对反馈电路的相关消息予以报道,如果反馈电路是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。
关键字:
电路
反馈电路
一直以来,差分放大电路都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来差分放大电路的相关介绍,详细内容请看下文。
关键字:
电路
放大电路
差分放大电路
在电子电路中,电容是一种极为常见且重要的电子元件,广泛应用于滤波、耦合、储能等电路环节。然而,当电容受到过高电压、过大电流或其他异常因素影响时,可能会发生击穿现象。电容击穿后究竟是开路还是短路,这一问题不仅关乎电子电路的...
关键字:
电容
电子元件
电路
PCB板,全称为印刷电路板(Printed Circuit Board),是一种用于组装电子元件的基板。它通常由一层或多层绝缘材料制成,上面印制有铜线轨迹,这些轨迹将电路中的各个部分连接起来,形成一个完整的电路系统。这些...
关键字:
PCB
电路
在电子电路中,变压器降压后整流是常见的电源处理方式。电解电容在其中起着关键作用,其值的选择直接影响到电源的稳定性、纹波大小以及电路的性能。合理选择电解电容值对于确保电路正常运行至关重要。
关键字:
变压器
电解电容
电路
在电力电子和电源设计领域,变压器次级两端串联RC(电阻-电容)电路是一种常见的设计实践。这种配置在多种应用中发挥着关键作用,以下是RC串联在变压器次级两端的主要作用:
关键字:
电力电子
RC串联
电路