VHDL硬件描述语言与数字逻辑电路设计.pptx
会计学1VHDL硬件描述语言与数字硬件描述语言与数字(shz)逻辑电逻辑电路设计路设计 第一页,共43页。数字系统设计历来存在两个数字系统设计历来存在两个分支,即系统硬件设计和系统软分支,即系统硬件设计和系统软件设计。同样,设计人员也因工件设计。同样,设计人员也因工作性质不同,可分成硬件设计人作性质不同,可分成硬件设计人员和软件设计人员。他们各自从员和软件设计人员。他们各自从事自己的工作,很少涉足对方的事自己的工作,很少涉足对方的领域,特别是软件设计人员更是领域,特别是软件设计人员更是如此。但是,随着计算机技术的如此。但是,随着计算机技术的发展和硬件描述语言发展和硬件描述语言(Hardware Description Language,HDL)的的出现,这种界线已经被打破。数出现,这种界线已经被打破。数字系统的硬件构成及其行为完全字系统的硬件构成及其行为完全可以用可以用HDL语言来描述和仿真。语言来描述和仿真。这样,软件设计人员也同样可以这样,软件设计人员也同样可以借助借助HDL语言设计出符合要求的语言设计出符合要求的硬件系统。不仅如此,利用硬件系统。不仅如此,利用HDL语言来设计系统硬件与利用传统语言来设计系统硬件与利用传统方法设计系统硬件相比,还具有方法设计系统硬件相比,还具有许多突出的优点许多突出的优点(yudin)。它。它是硬件设计领域的一次变革,对是硬件设计领域的一次变革,对系统的硬件设计将产生巨大的影系统的硬件设计将产生巨大的影响。本章将详细介绍这种硬件设响。本章将详细介绍这种硬件设计方法的变化。计方法的变化。第1页/共43页第二页,共43页。n n图1-1 六进制计数器的状态(zhungti)转移图第2页/共43页第三页,共43页。在计算机辅助电子系统设计在计算机辅助电子系统设计出现以前,人们一直采用传统的出现以前,人们一直采用传统的硬件电路设计方法来设计系统的硬件电路设计方法来设计系统的硬件。这种硬件设计方法具体有硬件。这种硬件设计方法具体有以下以下(yxi)几个主要特征。几个主要特征。1.1 传统的系统硬件设计传统的系统硬件设计(shj)方法方法第3页/共43页第四页,共43页。(1)(1)采用自下至上采用自下至上(Bottom(Bottom Up)Up)的设计方法。的设计方法。自下至上的硬件电路设计方自下至上的硬件电路设计方法的主要步骤是:根据系统对硬法的主要步骤是:根据系统对硬件的要求,详细编制技术规格书,件的要求,详细编制技术规格书,并画出系统控制流图;然后根据并画出系统控制流图;然后根据技术规格书和系统控制流图,对技术规格书和系统控制流图,对系统的功能进行细化,合理地划系统的功能进行细化,合理地划分功能模块,并画出系统的功能分功能模块,并画出系统的功能框图;接着进行各功能模块的细框图;接着进行各功能模块的细化和电路设计;各功能模块的电化和电路设计;各功能模块的电路设计、调试完成路设计、调试完成(wn chng)(wn chng)后,将各功能模块的硬件电路连后,将各功能模块的硬件电路连接起来再进行系统的调试;最后接起来再进行系统的调试;最后完成完成(wn chng)(wn chng)整个系统的硬整个系统的硬件设计。件设计。自下至上的设计方法充分体自下至上的设计方法充分体现在各功能模块的电路设计中。现在各功能模块的电路设计中。下面以一个六进制计数器设计为下面以一个六进制计数器设计为例进行说明。例进行说明。第4页/共43页第五页,共43页。要设计一个六进制计数器,要设计一个六进制计数器,其方案是多种多样的,但是摆在其方案是多种多样的,但是摆在设计者面前的一个首要问题是如设计者面前的一个首要问题是如何选择现有的逻辑元器件构成六何选择现有的逻辑元器件构成六进制计数器。设计六进制计数器进制计数器。设计六进制计数器首先从选择逻辑元器件开始。首先从选择逻辑元器件开始。第一步,选择逻辑元器件。第一步,选择逻辑元器件。由数字电路的基本知识可知,可由数字电路的基本知识可知,可以用与非门、或非门、以用与非门、或非门、D触发器、触发器、JK触发器等基本逻辑元器件来构触发器等基本逻辑元器件来构成一个计数器。设计者根据成一个计数器。设计者根据(gnj)电路尽可能简单、价格电路尽可能简单、价格合理、购买和使用方便等原则及合理、购买和使用方便等原则及各自的习惯来选择构成六进制计各自的习惯来选择构成六进制计数器的元器件。本例中选择数器的元器件。本例中选择JK触触发器和发器和D触发器作为构成六进制触发器作为构成六进制计数器的主要元器件。计数器的主要元器件。第5页/共43页第六页,共43页。第二步,进行电路设计。假第二步,进行电路设计。假设六进制计数器采用约翰逊计数设六进制计数器采用约翰逊计数器。器。3个触发器连接应该产生个触发器连接应该产生8种种状态,现在只使用状态,现在只使用6个状态,将个状态,将其中其中(qzhng)的的010和和101两种状两种状态禁止。这样六进制计数器的状态禁止。这样六进制计数器的状态转移图如图态转移图如图1-1所示。所示。从这个状态转移图可以看到,从这个状态转移图可以看到,在计数过程中计数器的在计数过程中计数器的3个触发个触发器的状态是这样转移的:首先器的状态是这样转移的:首先3个触发器的状态均为个触发器的状态均为0,即,即Q2Q1Q0=000,以后每来一个计,以后每来一个计数脉冲,其状态变化情况为数脉冲,其状态变化情况为000001011111110100000001。在知道六进制计数器的状态在知道六进制计数器的状态变化规律以后,就可以列出每个变化规律以后,就可以列出每个触发器的前一个状态和后一个状触发器的前一个状态和后一个状态变化的状态表,如表态变化的状态表,如表1-1所示。所示。第6页/共43页第七页,共43页。n n表表1-1 触发器的状态触发器的状态(zhungti)变变化表化表第7页/共43页第八页,共43页。从表从表1-1中可以发现,中可以发现,Q2当前当前状态状态(zhungti)的输出是的输出是Q1前前一状态一状态(zhungti)的输出,而的输出,而Q1当前状态当前状态(zhungti)的输出的输出就是就是Q0前一状态前一状态(zhungti)的的输出。这样,如输出。这样,如Q2和和Q1采用采用D触触发器,则只要将发器,则只要将Q0输出端与输出端与D1触发器的触发器的D输入端相连接,将输入端相连接,将D1触发器的输出触发器的输出(Q1)端与端与D2触发器触发器的的D输入端相连接即可。输入端相连接即可。Q0输出输出关系复杂一些,因此必须选用关系复杂一些,因此必须选用JK触发器,并且利用触发器,并且利用Q1、Q2输出输出作为约束条件,经组合逻辑电路作为约束条件,经组合逻辑电路作为作为D0的的J和和K输入。输入。Q2、Q1输输出和出和D0的的J、K输入关系如表输入关系如表1-2所示。所示。第8页/共43页第九页,共43页。n n表表1-2 Q2、Q1输出输出(shch)和和D0的的J、K输入关系表输入关系表第9页/共43页第十页,共43页。从表从表1-2中很容易写出以中很容易写出以Q2、Q1为输入,以为输入,以J、K为输出的两个为输出的两个真值表。该真值表实际上就是或真值表。该真值表实际上就是或非门的真值表和与门的真值表。非门的真值表和与门的真值表。将将Q2、Q1分别连到或非门的输分别连到或非门的输入端,将或非门的输出连到入端,将或非门的输出连到Q0的的J输入端,再将输入端,再将Q2、Q1分别连接分别连接到与门的输入端,将与门的输出到与门的输入端,将与门的输出端与端与D0的的K输入端相连,这样,输入端相连,这样,一个六进制计数器的硬件电路一个六进制计数器的硬件电路(dinl)设计就完成了,如图设计就完成了,如图1-2所示。当然,触发器的时钟端应所示。当然,触发器的时钟端应和计数脉冲端相连接,系统复位和计数脉冲端相连接,系统复位信号应和触发器的置信号应和触发器的置“0”端相端相连接,这样就可以保证实际电路连接,这样就可以保证实际电路(dinl)的正常工作。的正常工作。第10页/共43页第十一页,共43页。n n图1-2 六进制约翰逊计数器原理图第11页/共43页第十二页,共43页。与六进制计数器模块设计一与六进制计数器模块设计一样,系统的其它模块也按此方法样,系统的其它模块也按此方法进行设计。在所有硬件模块设计进行设计。在所有硬件模块设计完成以后,再将各模块连接起来,完成以后,再将各模块连接起来,进行调试。如有问题,则进行局进行调试。如有问题,则进行局部修改,直至整个系统调试完毕部修改,直至整个系统调试完毕为止为止(wizh)。由上述设计过程可以看到,由上述设计过程可以看到,系统硬件的设计是从选择具体元系统硬件的设计是从选择具体元器件开始的,并用这些元器件进器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独行逻辑电路设计,完成系统各独立功能模块的设计,然后将各功立功能模块的设计,然后将各功能模块连接起来,完成整个系统能模块连接起来,完成整个系统的硬件设计。上述过程从最底层的硬件设计。上述过程从最底层开始设计,直至最高层设计完毕,开始设计,直至最高层设计完毕,故将这种设计方法称为自下至上故将这种设计方法称为自下至上的设计方法。的设计方法。第12页/共43页第十三页,共43页。(2)采用通用的逻辑元器件。采用通用的逻辑元器件。在传统的硬件电路在传统的硬件电路(dinl)设计中,设计者总是根据系统的设计中,设计者总是根据系统的具体需要,选择市场上能买到的具体需要,选择市场上能买到的逻辑元器件来构成所要求的逻辑逻辑元器件来构成所要求的逻辑电路电路(dinl),从而完成系统的,从而完成系统的硬件设计。尽管随着微处理器的硬件设计。尽管随着微处理器的出现,在由微处理器及其相应硬出现,在由微处理器及其相应硬件构成的系统中,许多系统的硬件构成的系统中,许多系统的硬件功能可以用软件功能来实现,件功能可以用软件功能来实现,从而在较大程度上简化了系统硬从而在较大程度上简化了系统硬件电路件电路(dinl)的设计,但是这的设计,但是这种选择通用的元器件来构成系统种选择通用的元器件来构成系统硬件电路硬件电路(dinl)的方法并未改的方法并未改变。变。第13页/共43页第十四页,共43页。(3)在系统硬件设计的后期在系统硬件设计的后期进行仿真和调试。进行仿真和调试。在传统的系统硬件设计方法在传统的系统硬件设计方法中,仿真和调试通常只有在后期中,仿真和调试通常只有在后期完成系统硬件设计以后才能进行,完成系统硬件设计以后才能进行,因为进行仿真和调试的仪器一般因为进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示为系统仿真器、逻辑分析仪和示波器等,它们只有在硬件系统已波器等,它们只有在硬件系统已经构成后才能使用。这样,系统经构成后才能使用。这样,系统设计时存在设计时存在(cnzi)的问题只能的问题只能在后期才会较容易地被发现,即在后期才会较容易地被发现,即传统的硬件设计方法对系统设计传统的硬件设计方法对系统设计人员提出了较高的要求,一旦考人员提出了较高的要求,一旦考虑不周,系统设计存在虑不周,系统设计存在(cnzi)较大缺陷,那么就有可能要重新较大缺陷,那么就有可能要重新设计系统,使得设计周期大大延设计系统,使得设计周期大大延长。长。第14页/共43页第十五页,共43页。(4)主要设计文件是电原理图。主要设计文件是电原理图。在用传统的硬件设计方法对在用传统的硬件设计方法对系统进行设计并调试完毕后,所系统进行设计并调试完毕后,所形成的硬件设计文件主要是由若形成的硬件设计文件主要是由若干张电原理图构成的文件。在电干张电原理图构成的文件。在电原理图中详细标注了各逻辑元器原理图中详细标注了各逻辑元器件的名称和相互间的信号件的名称和相互间的信号(xnho)连接关系。该文件是用连接关系。该文件是用户使用和维护系统的依据。对于户使用和维护系统的依据。对于小系统,这种电原理图只要几十小系统,这种电原理图只要几十张至几百张即可。但是,如果系张至几百张即可。但是,如果系统比较大,硬件比较复杂,那么统比较大,硬件比较复杂,那么这种电原理图可能有几千张、几这种电原理图可能有几千张、几万张甚至几十万张。如此多的电万张甚至几十万张。如此多的电原理图给归档、阅读、修改和使原理图给归档、阅读、修改和使用都带来了极大的不便。用都带来了极大的不便。第15页/共43页第十六页,共43页。传统的硬件电路设计方法已传统的硬件电路设计方法已经沿用了几十年,是目前广大电经沿用了几十年,是目前广大电子工程师所熟悉和掌握的一种方子工程师所熟悉和掌握的一种方法。但是,随着计算机技术、大法。但是,随着计算机技术、大规模集成电路技术的发展,这种规模集成电路技术的发展,这种传统的设计方法已大大落后于当传统的设计方法已大大落后于当今技术的发展。一种崭新今技术的发展。一种崭新(zhnxn)的、采用硬件描述语的、采用硬件描述语言的硬件电路设计方法已经兴起,言的硬件电路设计方法已经兴起,它的出现给硬件电路设计带来了它的出现给硬件电路设计带来了一次重大的变革。一次重大的变革。第16页/共43页第十七页,共43页。一般来说,在硬件电路设计一般来说,在硬件电路设计中采用计算机辅助设计技术中采用计算机辅助设计技术(CAD)到到20世纪世纪80年代才得到了普年代才得到了普及及(pj)和应用。一开始,人们和应用。一开始,人们仅仅利用计算机软件来实现印刷仅仅利用计算机软件来实现印刷板的布线,以后才慢慢实现了插板的布线,以后才慢慢实现了插件板级规模的电子电路设计和仿件板级规模的电子电路设计和仿真。在我国所使用的工具中,最真。在我国所使用的工具中,最有代表性的设计工具是有代表性的设计工具是Tango和和早期的早期的ORCAD。它们的出现使。它们的出现使得电子电路设计和印刷板布线工得电子电路设计和印刷板布线工艺实现了自动化。但是,就设计艺实现了自动化。但是,就设计方法而言,其仍采用自下至上的方法而言,其仍采用自下至上的设计方法,利用已有的逻辑元器设计方法,利用已有的逻辑元器件来构成硬件电路。件来构成硬件电路。1.2 利用利用(lyng)硬件描述语言的硬件电路设计方法硬件描述语言的硬件电路设计方法第17页/共43页第十八页,共43页。随着大规模专用集成电路随着大规模专用集成电路(ASIC)的开发和研制,为了提高的开发和研制,为了提高开发的效率,增加已有开发成果开发的效率,增加已有开发成果的可继承性以及缩短开发时间,的可继承性以及缩短开发时间,各各ASIC研制和生产厂家相继开发研制和生产厂家相继开发了用于各自目的的硬件描述语言。了用于各自目的的硬件描述语言。其中最有代表性的是美国国防部其中最有代表性的是美国国防部开发的开发的VHDL语言语言(VHSIC Hardware Description Language)、Verilog公司开发的公司开发的Verilog-HDL以及日本电子以及日本电子(dinz)工业振兴工业振兴协会开发的协会开发的UDL/I语言。语言。所谓硬件描述语言,就是可所谓硬件描述语言,就是可以描述硬件电路的功能、信号连以描述硬件电路的功能、信号连接关系及定时关系的语言。它比接关系及定时关系的语言。它比电原理图能更有效地表示硬件电电原理图能更有效地表示硬件电路的特性。例如,一个二选一选路的特性。例如,一个二选一选择器的电原理图如图择器的电原理图如图1-3(a)所示,所示,用用VHDL语言描述的二选一选择语言描述的二选一选择器如图器如图1-3(b)所示。所示。第18页/共43页第十九页,共43页。n n图1-3 二选一选择器的电原理图与VHDL语言(yyn)描述(a)二选一选择器的电原理图;(b)二选一选择器的VHDL语言(yyn)描述第19页/共43页第二十页,共43页。利用硬件描述语言编程来表利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和示逻辑器件及系统硬件的功能和行为,是该设计方法的一个重要行为,是该设计方法的一个重要特征。特征。利用利用HDL语言设计系统硬件语言设计系统硬件的方法,归纳起来具有以下几个的方法,归纳起来具有以下几个特点特点(tdin)。(1)采用自上至下采用自上至下(Top Down)的设计方法。的设计方法。所谓自上至下的设计方法,所谓自上至下的设计方法,就是从系统的总体要求出发,自就是从系统的总体要求出发,自上至下地逐步将设计内容细化,上至下地逐步将设计内容细化,最后完成系统硬件的整体设计。最后完成系统硬件的整体设计。在利用在利用HDL的硬件设计方法中,的硬件设计方法中,设计者将系统硬件设计自上至下设计者将系统硬件设计自上至下分成三个层次进行。分成三个层次进行。第20页/共43页第二十一页,共43页。第一层次是行为描述。所谓第一层次是行为描述。所谓行为描述,实质上就是对整个行为描述,实质上就是对整个(zhngg)系统数学模型的描述。系统数学模型的描述。一般来说,对系统进行行为描述一般来说,对系统进行行为描述的目的是试图在系统设计的初始的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在真来发现设计中存在的问题。在行为描述阶段并不真正考虑其实行为描述阶段并不真正考虑其实际的操作和算法用什么方法来实际的操作和算法用什么方法来实现,考虑更多的是系统的结构及现,考虑更多的是系统的结构及其工作过程是否能达到系统设计其工作过程是否能达到系统设计规格书的要求。下面仍以六进制规格书的要求。下面仍以六进制计数器为例,说明如何用计数器为例,说明如何用VHDL语言以行为方式来描述它的工作语言以行为方式来描述它的工作特性。特性。第21页/共43页第二十二页,共43页。【例【例1-1】用用VHDL语言以语言以行为方式描述行为方式描述(mio sh)六进制六进制计数器的工作特性。计数器的工作特性。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter ISPORT(clk:IN STD_LOGIC;rs:IN STD_LOGIC;count_out:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY counter;ARCHITECTURE behav OF counter IS第22页/共43页第二十三页,共43页。SIGNAL next_count:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINcount_proc:PROCESS(rs,clk)IS BEGIN IF rs=0 THEN next_count next_count next_count next_count next_count next_count next_count next_count=XXX;END CASE;END IF;count_out=next_count AFTER 10ns;END PROCESS count_proc;END ARCHITECTURE behav;第24页/共43页第二十五页,共43页。从例从例1-1中可以看出,该段中可以看出,该段VHDL语言程序勾画出了六进制语言程序勾画出了六进制计数器的输入、输出引脚和内部计数器的输入、输出引脚和内部计数过程的计数状态变化时序及计数过程的计数状态变化时序及关系。这实际上是计数器工作模关系。这实际上是计数器工作模型的描述。当该程序仿真通过以型的描述。当该程序仿真通过以后,说明六进制计数器模型是正后,说明六进制计数器模型是正确的。在此基础上再改写该程序,确的。在此基础上再改写该程序,使其语句表达式易于用逻辑使其语句表达式易于用逻辑(lu j)元件来实现,这是第二层次所元件来实现,这是第二层次所要做的工作。要做的工作。第25页/共43页第二十六页,共43页。第二层次是第二层次是RTL方式描述。方式描述。这一层次称为这一层次称为(chn wi)寄存器寄存器传输描述传输描述(又称数据流描述又称数据流描述)。如。如前所述,用行为方式描述的系统前所述,用行为方式描述的系统结构的程序其抽象程度高,是很结构的程序其抽象程度高,是很难直接映射到具体的逻辑元件结难直接映射到具体的逻辑元件结构用硬件来实现的。要想得到硬构用硬件来实现的。要想得到硬件的具体实现,必须将行为方式件的具体实现,必须将行为方式描述的描述的VHDL语言程序改写为语言程序改写为RTL方式描述的方式描述的VHDL语言程序。语言程序。也就是说,系统采用也就是说,系统采用RTL方式描方式描述,才能导出系统的逻辑表达式,述,才能导出系统的逻辑表达式,才能进行逻辑综合。当然,这里才能进行逻辑综合。当然,这里所说的可以进行逻辑综合是有条所说的可以进行逻辑综合是有条件的,它是针对某一特定的逻辑件的,它是针对某一特定的逻辑综合工具而言的。综合工具而言的。第26页/共43页第二十七页,共43页。与例与例1-1行为方式行为方式(fngsh)描述等价的六进制计数器的描述等价的六进制计数器的RTL描述。描述。LIBRARY IEEE;USE IEEE.STD_LDGIC_1164.ALL;USE WORK.NEW.ALL;ENTITY counter ISPORT(clk,rs:IN STD_LOGIC;q1,q2,q3:OUT STD_LOGIC);END ENTITY counter;ARCHITECTURE rtl OF counter ISCOMPONENT dff IS第27页/共43页第二十八页,共43页。PORT(d,rs,clk:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT dff;COMPONENT djk ISPORT(j,k,rs,clk:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT djk;COMPONENT and2 ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT and2;第28页/共43页第二十九页,共43页。COMPONENT nor2 ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT nor2;SIGNAL jin,kin,q1_out,q2_out,q3_out:STD_LOGIC;BEGINu1:nor2 PORT MAP(q3_out,q2_out,jin);u2:and2 PORT MAP(q3_out,q2,out,kin);u3:djk第29页/共43页第三十页,共43页。PORT MAP(jin,kin,rs,clk,q1_out);u4:dff PORT MAP(q1_out,rs,clk,q2_out);u5:dff PORT MAP(q2_out,rs,clk,q3_out);q1=q1_out;q2=q2_out;q3=q3_out;END ARCHITECTURE rtl;第30页/共43页第三十一页,共43页。在该例中,在该例中,JK触发器、触发器、D触触发器、与门和或非门都已在库发器、与门和或非门都已在库WORK.NEW.ALL中定义了,这中定义了,这里里(zhl)可以直接引用。该例可以直接引用。该例中的构造体直接描述了它们之间中的构造体直接描述了它们之间的连接关系。与例的连接关系。与例1-1相比,例相比,例1-2更趋于实际电路的描述。更趋于实际电路的描述。第31页/共43页第三十二页,共43页。n n图1-4 自上至下设计系统硬件(yn jin)的过程第32页/共43页第三十三页,共43页。在把行为方式描述的程序改在把行为方式描述的程序改写为写为RTL方式描述的程序时,编方式描述的程序时,编程人员必须深入了解逻辑综合工程人员必须深入了解逻辑综合工具的详细说明和具体规定,这样具的详细说明和具体规定,这样才能编写出合格的才能编写出合格的RTL方式描述方式描述的程序。的程序。在完成编写在完成编写RTL方式的描述方式的描述程序以后,再用仿真工具对程序以后,再用仿真工具对RTL方式描述的程序进行仿真。如果方式描述的程序进行仿真。如果通过这一步通过这一步(y b)仿真,那么就仿真,那么就可以利用逻辑综合工具进行综合可以利用逻辑综合工具进行综合了。了。第三层次是逻辑综合。逻辑第三层次是逻辑综合。逻辑综合是利用逻辑综合工具将综合是利用逻辑综合工具将RTL方式描述的程序转换成用基本逻方式描述的程序转换成用基本逻辑元件表示的文件辑元件表示的文件(门级网络表门级网络表)。此时,如果需要,可以将逻辑综此时,如果需要,可以将逻辑综合结果以逻辑原理图的方式输出。合结果以逻辑原理图的方式输出。第33页/共43页第三十四页,共43页。也就是说,逻辑综合的结果相当也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电原系统要求画出了系统的逻辑电原理图。此后对逻辑综合结果在门理图。此后对逻辑综合结果在门电路级上再进行仿真,并检查定电路级上再进行仿真,并检查定时关系。如果一切都正常时关系。如果一切都正常(zhngchng),那么系统的硬件,那么系统的硬件设计就基本结束。如果在三个层设计就基本结束。如果在三个层次的某个层次上发现有问题,则次的某个层次上发现有问题,则都应返回上一层,寻找和修改相都应返回上一层,寻找和修改相应的错误,然后向下继续未完的应的错误,然后向下继续未完的工作。工作。第34页/共43页第三十五页,共43页。由逻辑综合工具产生门级网由逻辑综合工具产生门级网络表后,在最终完成硬件设计时,络表后,在最终完成硬件设计时,还可以有两种选择:第一种是采还可以有两种选择:第一种是采用由自动布线程序将网络表转换用由自动布线程序将网络表转换成相应的成相应的ASIC芯片芯片(xn pin)的的制造工艺,做出制造工艺,做出ASIC芯片芯片(xn pin);第二种是将网络表转换成;第二种是将网络表转换成FPGA(现场可编程门阵列现场可编程门阵列)或或CPLD的编程码点,然后写入对的编程码点,然后写入对应芯片应芯片(xn pin),完成硬件电,完成硬件电路设计。路设计。在用在用HDL语言设计系统硬件语言设计系统硬件时,无论是设计一个局部电路,时,无论是设计一个局部电路,还是设计由多块插件板组成的复还是设计由多块插件板组成的复杂系统,上述自上至下的杂系统,上述自上至下的3个层个层次的设计步骤是必不可少的。利次的设计步骤是必不可少的。利用自上至下设计系统硬件的过程用自上至下设计系统硬件的过程如图如图1-4所示。所示。第35页/共43页第三十六页,共43页。由自上至下的设计过程可知,由自上至下的设计过程可知,从总体行为设计开始到最终逻辑从总体行为设计开始到最终逻辑综合、形成网络表为止,每一步综合、形成网络表为止,每一步(y b)都要进行仿真检查,这样都要进行仿真检查,这样有利于尽早发现系统设计中存在有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统的问题,从而可以大大缩短系统硬件的设计周期。这是用硬件的设计周期。这是用HDL语语言设计系统硬件的最突出的优点言设计系统硬件的最突出的优点之一。之一。第36页/共43页第三十七页,共43页。(2)系统中可大量采用系统中可大量采用ASIC芯片。芯片。由于目前众多由于目前众多(zhngdu)制制造造ASIC芯片的厂家的工具软件都芯片的厂家的工具软件都可支持可支持HDL语言的编程,因此,语言的编程,因此,硬件设计人员在设计硬件电路时,硬件设计人员在设计硬件电路时,不受只能使用通用元器件的限制,不受只能使用通用元器件的限制,而可以根据硬件电路设计需要,而可以根据硬件电路设计需要,设计自用的设计自用的ASIC芯片或可编程逻芯片或可编程逻辑器件。这样最终会使系统电路辑器件。这样最终会使系统电路设计更趋合理,体积也可大为缩设计更趋合理,体积也可大为缩小。小。第37页/共43页第三十八页,共43页。(3)采用系统早期仿真。采用系统早期仿真。从自上至下的设计过程可以从自上至下的设计过程可以看到,在系统设计过程中要进行看到,在系统设计过程中要进行三级仿真,即行为层仿真、三级仿真,即行为层仿真、RTL层仿真和门级层仿真,也就是要层仿真和门级层仿真,也就是要进行系统数学模型的仿真、系统进行系统数学模型的仿真、系统数据流的仿真和系统门电路电原数据流的仿真和系统门电路电原理的仿真。这三级仿真贯穿系统理的仿真。这三级仿真贯穿系统硬件设计的全过程,从而可以在硬件设计的全过程,从而可以在系统设计早期发现系统设计早期发现(fxin)设计设计中存在的问题。与自下至上设计中存在的问题。与自下至上设计的后期仿真相比,可大大缩短系的后期仿真相比,可大大缩短系统的设计周期,节约大量的人力统的设计周期,节约大量的人力和物力。和物力。第38页/共43页第三十九页,共43页。(4)降低了硬件电路的设计降低了硬件电路的设计难度。难度。在采用传统的硬件电路设计在采用传统的硬件电路设计方法时,往往要求设计者在设计方法时,往往要求设计者在设计电路前写出该电路的逻辑表达式电路前写出该电路的逻辑表达式或真值表或真值表(或时序电路的状态表或时序电路的状态表)。这一工作是相当困难和繁杂的,这一工作是相当困难和繁杂的,特别是在系统比较复杂时更是如特别是在系统比较复杂时更是如此。例如,在设计六进制计数器此。例如,在设计六进制计数器时,必须编写输入和输出的真值时,必须编写输入和输出的真值表与状态表。根据表中的关系,表与状态表。根据表中的关系,写出逻辑表达式,并用相应写出逻辑表达式,并用相应(xingyng)的逻辑元件来实现。的逻辑元件来实现。第39页/共43页第四十页,共43页。用用HDL语言设计硬件电路,语言设计硬件电路,使设计者不必编写逻辑表达式或使设计者不必编写逻辑表达式或真值表。如图真值表。如图1-1和例和例1-1所示,只所示,只要知道要知道(zh do)六进制计数器的六进制计数器的6个计数状态就行了,而无需写个计数状态就行了,而无需写出相关电路的逻辑表达式。这使出相关电路的逻辑表达式。这使硬件电路的设计难度大幅度下降,硬件电路的设计难度大幅度下降,从而也缩短了硬件电路的设计周从而也缩短了硬件电路的设计周期。据有关资料估计,仅此一项期。据有关资料估计,仅此一项就可使设计周期缩短大约就可使设计周期缩短大约1/31/2。第40页/共43页第四十一页,共43页。(5)主要设计文件是用主要设计文件是用HDL语言编写的源程序。语言编写的源程序。在传统的硬件电路设计中,在传统的硬件电路设计中,最后形成的主要文件是电原理图,最后形成的主要文件是电原理图,而采用而采用HDL语言设计系统硬件电语言设计系统硬件电路时,主要的设计文件是用路时,主要的设计文件是用HDL语言编写的源程序。如果需要,语言编写的源程序。如果需要,也可以转换成电原理图形式输出。也可以转换成电原理图形式输出。用用HDL语言的源程序作为归档文语言的源程序作为归档文件有很多好处。其一是资料量小,件有很多好处。其一是资料量小,便于保存。其二是可继承性好。便于保存。其二是可继承性好。当设计其它硬件电路时,可以使当设计其它硬件电路时,可以使用文件中的某些库、进程和过程用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序比阅其三是阅读方便。阅读程序比阅读电原理图要更容易一些读电原理图要更容易一些(yxi),阅读者很容易在程序,阅读者很容易在程序中看出某一硬件电路的工作原理中看出某一硬件电路的工作原理和逻辑关系,而阅读电原理图推和逻辑关系,而阅读电原理图推知其工作原理却需要较多的硬件知其工作原理却需要较多的硬件知识和经验,而且看起来也不那知识和经验,而且看起来也不那么一目了然。么一目了然。第41页/共43页第四十二页,共43页。当前使用最广泛的是当前使用最广泛的是VHDL语言和语言和Verilog-HDL语言,它们语言,它们都已标准化和通用化。都已标准化和通用化。VHDL语语言常用于可编程芯片的设计,而言常用于可编程芯片的设计,而Verilog-HDL语言多用于语言多用于ASIC芯芯片的设计。目前,大多数片的设计。目前,大多数EDA工工具几乎在不同程度上都支持这两具几乎在不同程度上都支持这两种语言。这给种语言。这给HDL语言进一步推语言进一步推广和应用创造广和应用创造(chungzo)了良了良好的环境。好的环境。第42页/共43页第四十三页,共43页。