绪论 0.1数字系统设计的基本概念 目前,数字技术已渗透到科研、生产和人们日常生活的各个领域。从计算机到家用电 器,从手机到数字电话,以及绝大部分新研制的医用设备、军用设备等,无不尽可能地采 用了数字技术。 数字系统是对数字信息进行存储、传输、处理的电子系统。 通常把门电路、触发器等称为逻辑器件,将由逻辑器件构成,能执行某单一功能的 电路,如计数器、译码器、加法器等,称为逻辑功能部件,把由逻辑功能部件组成的能实 现复杂功能的数字电路称数字系统。复杂的数字系统可以分割成若干个子系统,例如计算 机就是一个内部结构相当复杂的数字系统。 不论数字系统的复杂程度如何,规模大小怎样,就其实质而言皆为逻辑问题,从组 成上说是由许多能够进行各种逻辑操作的功能部件组成的,这类功能部件,可以是SSI逻 辑部件,也可以是各种MSI、LSI逻辑部件,甚至可以是CPU芯片。由于各功能部件之 间的有机配合,协调工作,使数字电路成为统一的数字信息存储、传输、处理的电子电路 与数字系统相对应的是模拟系统,和模拟系统相比,数字系统具有工作稳定可靠 抗干扰能力强,便于大规模集成,易于实现小型化、模块化等优点。 数字系统一般由控制电路、多个受控电路、输入输出电路、时基电路等几部分构成, 如图0-1所示。 输入电路 控制电路 输出电路 受控电路 受控电路N 时基电路 图0-1数字系统框图 图中,输入电路将外部信号(开关信号、时钟信号等)引入数字系统,经控制电路 逻辑处理后,或控制受控电路,或经输出电路产生外部执行机构(发光二极管、数码管、 扬声器等)所需的信号。数字系统通常是一个时序电路,时基电路产生各种时钟信号,保 证整个系统在时钟作用下协调工作。 数字系统和功能部件之间的区别之一在于功能是否单一,一个存储器,尽管规模很 大,可以达到数兆甚至G字节,但因其功能单一,只能算是逻辑部件,而由几片MSI构 成的交通灯控制器却应称为系统 数字系统和功能部件之间的区别之二是是否包含控制电路,一个数字电路,无论其 规模大小,只有在具有控制电路的情况下才能称之为系统。控制电路根据外部输入信号、 各受控电路的反馈信号、控制电路的当前状态,决定系统的下一步动作。控制电路的逻辑 关系最为复杂,是数字系统设计中的关键 0.2数字系统设计方法简介 数字系统的设计的一般流程为 1.明确设计要求,确定系统的输入输出
绪论 0. 1 数字系统设计的基本概念 目前,数字技术已渗透到科研、生产和人们日常生活的各个领域。从计算机到家用电 器,从手机到数字电话,以及绝大部分新研制的医用设备、军用设备等,无不尽可能地采 用了数字技术。 数字系统是对数字信息进行存储、传输、处理的电子系统。 通常把门电路、触发器等称为逻辑器件,将由逻辑器件构成,能执行某单一功能的 电路,如计数器、译码器、加法器等,称为逻辑功能部件,把由逻辑功能部件组成的能实 现复杂功能的数字电路称数字系统。复杂的数字系统可以分割成若干个子系统,例如计算 机就是一个内部结构相当复杂的数字系统。 不论数字系统的复杂程度如何,规模大小怎样,就其实质而言皆为逻辑问题,从组 成上说是由许多能够进行各种逻辑操作的功能部件组成的,这类功能部件,可以是 SSI 逻 辑部件,也可以是各种 MSI、LSI 逻辑部件,甚至可以是 CPU 芯片。由于各功能部件之 间的有机配合,协调工作,使数字电路成为统一的数字信息存储、传输、处理的电子电路。 与数字系统相对应的是模拟系统,和模拟系统相比,数字系统具有工作稳定可靠, 抗干扰能力强,便于大规模集成,易于实现小型化、模块化等优点。 数字系统一般由控制电路、多个受控电路、输入/输出电路、时基电路等几部分构成, 如图 0-1 所示。 图 0-1 数字系统框图 图中,输入电路将外部信号(开关信号、时钟信号等)引入数字系统,经控制电路 逻辑处理后,或控制受控电路,或经输出电路产生外部执行机构(发光二极管、数码管、 扬声器等)所需的信号。数字系统通常是一个时序电路,时基电路产生各种时钟信号,保 证整个系统在时钟作用下协调工作。 数字系统和功能部件之间的区别之一在于功能是否单一,一个存储器,尽管规模很 大,可以达到数兆甚至 G 字节,但因其功能单一,只能算是逻辑部件,而由几片 MSI 构 成的交通灯控制器却应称为系统。 数字系统和功能部件之间的区别之二是是否包含控制电路,一个数字电路,无论其 规模大小,只有在具有控制电路的情况下才能称之为系统。控制电路根据外部输入信号、 各受控电路的反馈信号、控制电路的当前状态,决定系统的下一步动作。控制电路的逻辑 关系最为复杂,是数字系统设计中的关键。 0.2 数字系统设计方法简介 数字系统的设计的一般流程为 1.明确设计要求,确定系统的输入/输出 90
在具体设计之前,详细分析设计要求、确定系统输入瀚输出信号是必要的。例如,要设 计一个交通灯控制器,必须明确系统的输入信号有哪些(由传感器得到的车辆到来信号, 时钟信号),输出要求是什么(红、黄、绿交通灯正确显示和时间显示),只有在明确设计 要求的基础上,才能使系统设计有序地进行。 2.确定整体设计方案 对于一个具体的设计可能有多种不同的方案,确定方案时,应对不同方案的性能、成 本、可靠性等方面进行综合考虑,最终确定设计方案 3.自顶向下( top-down)的模块化设计方法 数字系统的设计通常有两种设计方法,一种是自底向上的设计方法,一种是自顶向下 的设计方法 自底向上( Bottom-叩p)的设计过程从最底层设计开始。设计系统硬件时,首先选择 具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再 把这些功能模块连接起来,总装成完整的硬件系统 这种设计过程在进行传统的手工电路设计时经常用到,优点是符合硬件设计工程师传 统的设计习惯;缺点是在进行底层设计时,缺乏对整个电子系统总体性能的把握,在整个 系统设计完成后,如果发现性能尚待改进,修改起来比较困难,因而设计周期长。 随着集成电路设计规模的不断扩大,复杂度的不断提高,传统的电路原理图输入法已 经无法满足设计的要求。EDA工具和HDL语言的产生使自顶向下( Top-Down)的设计方 法得以实现 自顶向下( Top-down)的设计方法是在顶层设计中,把整个系统看成是包含输入输出 端 口的单个模块,对系统级进行仿真、纠错,然后对顶层进行功能方框图和结构的划分,即 从整个系统的功能出发,按一定原则将系统分成若干子系统,再将每个子系统分成若干个 功能模块,再将每个模块分成若干小的模块...直至分成许多基本模块实现。这样将系统 模块划分为各个子功能模块,并对其进行行为描述,在行为级进行验证。 例如,交通灯控制器的设计,可以把整个系统分为主控电路、定时电路,译码驱动 显示等,而定时电路可以由计数器功能模块构成,译码驱动显示可由SSI构成组合逻辑电 路构成,这两部分都是设计者所熟悉的各种功能电路,设计起来并不困难,这样交通灯控 制器的设计的主要问题就是控制电路的设计了,而这是一个规模不大的时序电路,这样就 把一个复杂的数字系统的设计变成了一个较小规模的时序电路的设计,从而大大简化了设 计的难度,缩短了设计周期,由于设计调试都可以针对这些子模块进行,使修改设计也变 得非常方便。 模块分割的一般要求为 (1)各模块之间的逻辑关系明确 (2)各模块内部逻辑功能集中,且易于实现; (3)各模块之间的接口线尽量少。 模块化的设计最能体现设计者的思想,分割合适与否对系统设计的方便与否有着至关 重要的影响, 数字系统的设计 数字系统的设计可以在以下几个层次上进行 (1)选用通用集成电路芯片构成数字系统 (2)应用可编程逻辑器件实现数字系统; (3)设计专用集成电路(单片系统)
在具体设计之前,详细分析设计要求、确定系统输入/输出信号是必要的。例如,要设 计一个交通灯控制器,必须明确系统的输入信号有哪些(由传感器得到的车辆到来信号, 时钟信号),输出要求是什么(红、黄、绿交通灯正确显示和时间显示),只有在明确设计 要求的基础上,才能使系统设计有序地进行。 2.确定整体设计方案 对于一个具体的设计可能有多种不同的方案,确定方案时,应对不同方案的性能、成 本、可靠性等方面进行综合考虑,最终确定设计方案。 3.自顶向下(top-down)的模块化设计方法 数字系统的设计通常有两种设计方法,一种是自底向上的设计方法,一种是自顶向下 的设计方法。 自底向上(Bottom-up)的设计过程从最底层设计开始。设计系统硬件时,首先选择 具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再 把这些功能模块连接起来,总装成完整的硬件系统。 这种设计过程在进行传统的手工电路设计时经常用到,优点是符合硬件设计工程师传 统的设计习惯;缺点是在进行底层设计时,缺乏对整个电子系统总体性能的把握,在整个 系统设计完成后,如果发现性能尚待改进,修改起来比较困难,因而设计周期长。 随着集成电路设计规模的不断扩大,复杂度的不断提高,传统的电路原理图输入法已 经无法满足设计的要求。EDA 工具和 HDL 语言的产生使自顶向下(Top-Down)的设计方 法得以实现。 自顶向下(Top-down)的设计方法是在顶层设计中,把整个系统看成是包含输入输出 端 口的单个模块,对系统级进行仿真、纠错,然后对顶层进行功能方框图和结构的划分,即 从整个系统的功能出发,按一定原则将系统分成若干子系统,再将每个子系统分成若干个 功能模块,再将每个模块分成若干小的模块……直至分成许多基本模块实现。这样将系统 模块划分为各个子功能模块,并对其进行行为描述,在行为级进行验证。 例如,交通灯控制器的设计,可以把整个系统分为主控电路、定时电路,译码驱动 显示等,而定时电路可以由计数器功能模块构成,译码驱动显示可由 SSI 构成组合逻辑电 路构成,这两部分都是设计者所熟悉的各种功能电路,设计起来并不困难,这样交通灯控 制器的设计的主要问题就是控制电路的设计了,而这是一个规模不大的时序电路,这样就 把一个复杂的数字系统的设计变成了一个较小规模的时序电路的设计,从而大大简化了设 计的难度,缩短了设计周期,由于设计调试都可以针对这些子模块进行,使修改设计也变 得非常方便。 模块分割的一般要求为 (1) 各模块之间的逻辑关系明确; (2) 各模块内部逻辑功能集中,且易于实现; (3) 各模块之间的接口线尽量少。 模块化的设计最能体现设计者的思想,分割合适与否对系统设计的方便与否有着至关 重要的影响, 4.数字系统的设计 数字系统的设计可以在以下几个层次上进行: (1)选用通用集成电路芯片构成数字系统; (2)应用可编程逻辑器件实现数字系统; (3)设计专用集成电路(单片系统)。 91
用通用集成电路构成数字系统即采用SSI、MSI、LSI(如74系列芯片,计数器芯片、 存储器芯片等),根据系统的设计要求,构成所需数字系统。早期的数字系统的设计,都 是在这个层次上进行的,电子工程师设计电子系统的过程一般是:根据设计要求进行书面 设计——选择器件——电路搭建调试——一样机制作,这样完成的系统设计由于芯片之间的 众多连接造成系统可靠性不高,也使系统体积相对较大,集成度低。当数字系统大到一定 规模时,搭建调试会变得非常困难甚至不可行。 随着数字集成技术和电子设计自动化( Electronic Design Automation EDA)技术的迅速 发展,数字系统设计的理论和方法也在相应地变化和发展着。EDA技术是从计算机辅助 设计CAD、计算机辅助制造CAM、计算机辅助测试CAT和计算机辅助工程CAE等技术 发展而来的。它以计算机为工具,设计者只需对系统功能进行描述,就可在EDA工具的 帮助下完成系统设计 应用可编程逻辑器件( Programmable logic Device PLD)实现数字系统设计和单片系 统的设计,是目前利用EDA技术设计数字系统的潮流。这种设计方法以数字系统设计软 件为工具,将传统数字系统设计中的搭建调试用软件仿真取代,对计算机上建立的系统模 型,用测试码或测试序列测试验证后,将系统实现在PLD芯片或专用集成电路上,这样 最大程度地缩短了设计和开发时间,降低了成本,提高了系统的可靠性。 高速发展的可编程逻辑器件为EDA技术的不断进步奠定了坚实的物理基础。大规模 可编程逻辑器件不但具有微处理器和单片机的特点,而且随着微电子技术和半导体制造工 艺的进步,集成度不断提高,与微处理器、DSP、AD、DA、RAM和ROM等独立器件 之间的物理与功能界限正日趋模糊,嵌入式系统和片上系统(SOC)得以实现。以大规模 可编程集成电路为物质基础的EDA技术打破了软硬件之间的设计界限,使硬件系统软件 化。这已成为现代电子设计技术的发展趋势 0.3可编程逻辑器件简介 数字集成电路从它的产生到现在,经过了早期的电子管、晶体管、小中规模集成电路, 到大规模、超大规模集成电路( VLSIO,几万门以上)以及许多具有特定功能的专用集成电 路的发展过程。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半 导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路( Application Specific Integrated Circuit ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就 能设计出合适的ASC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器 件( Field Programmable Logic Device FPLD),其中应用最广泛的当属CPLD和FPGA CPLD是复杂可编程逻辑器件( Complex Programmable Logic Device)的简称,FPGA是 现场可编程门阵列( Field Programmable Gate Array)的简称,两者的功能基本相同, 只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或 CPLD/FPGA 可编程逻辑器件是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不 亚于70年代单片机的发明和使用。 可编程逻辑器件能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路, 都可以用可编程逻辑器件来实现。可编程逻辑器件如同一张白纸或是一堆积木,工程师可 以通过传统的原理图输入法,或是硬件描述语言自由地设计一个数字系统,通过软件仿真, 我们可以事先验证设计的正确性,还可以利用PLD的在线修改能力,随时修改设计。 使用可编程逻辑器件来开发数字电路,可以大大缩短设计时间,减少芯片面积,提高 系统的可靠性。可编程逻辑器件的这些优点使得可编程逻辑器件技术在90年代以后得到 飞速的发展,同时也大大推动了EDA软件和硬件描述语言( Hard Description Language HDL)的进步
用通用集成电路构成数字系统即采用 SSI、MSI、LSI(如 74 系列芯片,计数器芯片、 存储器芯片等),根据系统的设计要求,构成所需数字系统。早期的数字系统的设计,都 是在这个层次上进行的,电子工程师设计电子系统的过程一般是:根据设计要求进行书面 设计——选择器件——电路搭建调试——样机制作,这样完成的系统设计由于芯片之间的 众多连接造成系统可靠性不高,也使系统体积相对较大,集成度低。当数字系统大到一定 规模时,搭建调试会变得非常困难甚至不可行。 随着数字集成技术和电子设计自动化(Electronic Design Automation EDA)技术的迅速 发展,数字系统设计的理论和方法也在相应地变化和发展着。EDA 技术是从计算机辅助 设计 CAD、计算机辅助制造 CAM、计算机辅助测试 CAT 和计算机辅助工程 CAE 等技术 发展而来的。它以计算机为工具,设计者只需对系统功能进行描述,就可在 EDA 工具的 帮助下完成系统设计。 应用可编程逻辑器件(Programmable Logic Device PLD)实现数字系统设计和单片系 统的设计,是目前利用 EDA 技术设计数字系统的潮流。这种设计方法以数字系统设计软 件为工具,将传统数字系统设计中的搭建调试用软件仿真取代,对计算机上建立的系统模 型,用测试码或测试序列测试验证后,将系统实现在 PLD 芯片或专用集成电路上,这样 最大程度地缩短了设计和开发时间,降低了成本,提高了系统的可靠性。 高速发展的可编程逻辑器件为 EDA 技术的不断进步奠定了坚实的物理基础。大规模 可编程逻辑器件不但具有微处理器和单片机的特点,而且随着微电子技术和半导体制造工 艺的进步,集成度不断提高,与微处理器、DSP、A/D、D/A、RAM 和 ROM 等独立器件 之间的物理与功能界限正日趋模糊,嵌入式系统和片上系统(SOC)得以实现。以大规模 可编程集成电路为物质基础的 EDA 技术打破了软硬件之间的设计界限,使硬件系统软件 化。这已成为现代电子设计技术的发展趋势。 0.3 可编程逻辑器件简介 数字集成电路从它的产生到现在,经过了早期的电子管、晶体管、小中规模集成电路, 到大规模、超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电 路的发展过程。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半 导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(Application Specific Integrated Circuit ASIC)芯片,而且希望 ASIC 的设计周期尽可能短,最好是在实验室里就 能设计出合适的 ASIC 芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器 件(Field Programmable Logic Device FPLD),其中应用最广泛的当属 CPLD 和 FPGA。 CPLD 是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,FPGA 是 现场可编程门阵列(Field Programmable Gate Array)的简称,两者的功能基本相同, 只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或 CPLD/FPGA。 可编程逻辑器件是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不 亚于 70 年代单片机的发明和使用。 可编程逻辑器件能完成任何数字器件的功能,上至高性能 CPU,下至简单的 74 电路, 都可以用可编程逻辑器件来实现。可编程逻辑器件如同一张白纸或是一堆积木,工程师可 以通过传统的原理图输入法,或是硬件描述语言自由地设计一个数字系统,通过软件仿真, 我们可以事先验证设计的正确性,还可以利用 PLD 的在线修改能力,随时修改设计。 使用可编程逻辑器件来开发数字电路,可以大大缩短设计时间,减少芯片面积,提高 系统的可靠性。可编程逻辑器件的这些优点使得可编程逻辑器件技术在 90 年代以后得到 飞速的发展,同时也大大推动了 EDA 软件和硬件描述语言(Hard Description Language HDL)的进步。 92
早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器 ( EPROM)和电可擦除只读存贮器( EEPROM)三种,它们由全译码的与阵列和可编程的或阵 列组成,由于阵列规模大,速度低,主要用途是作存储器。 70年代中期,出现了一类结构上稍复杂的可编程芯片,称可编程逻辑阵列 ( Programmable logic array pla),它由可编程的与阵列和可编程的或阵列组成,虽然 其阵列规模大为减小,提高了芯片的利用率,但由于编程复杂,支持PLA的开发软件有 定难度,因而也没有得到广泛应用。 70年代末,美国MM公司( Monolithic memories inc,单片机存储器公司)率先推出 了可编程阵列逻辑器件( Programmable array logic PAL),PAL由可编程的与阵列和固定 的或阵列构成,采用熔丝编程方式,双极型工艺制造。PAL在器件的工作速度、输出结构 种类上较早期的可编程逻辑器件有了很大进步,但由于其输出方式的固定不能重新组态, 所以编程灵活性较差,又由于采用的是PROM工艺,只能一次性编程,使用者仍要承担 定风险。 80年代中期, Altera公司发明了通用阵列逻辑GAL( Generic Array Logic),它和PAL的 区别在于GAL的输出电路可以组态,而且它大多采用 UVCMOS或 E-CMOS工艺,实现了重 复编程,通常可擦写百次以上,甚至上千次。GAL由于其设计具有很强的灵活性,设计风 险为零,可以取代大部分SSI、MSI、和PAL器件,所以在20世纪80年代得到广泛使用 这些早期的可编程逻辑器件的一个共同特点是都属于低密度PLD,结构简单,设计灵 活,但规模小,难以实现复杂的逻辑功能。 其后,随着集成电路工艺水平的不断提高,PLD突破了传统的单一结构,向着高密度、 高速度、低功耗以及结构体系更灵活、适用范围更宽的方向发展,因而相继出现了各种不 同结构的高密度PLD。80年代中期, Altera公司推出了一种新型的可擦除、可编程逻辑器 件( Erasable Programmable Logic Device EPLD),它采用CMOs和 UVEPROM工艺制作, 集成度比PAL和GAL高得多,设计也更加灵活,但内部互联能力比较弱 985年 Xilinx公司首家推出了现场可编程门阵列器件( Field Programmable Gate Array FPGA),它是一种新型的高密度PLD,采用CMOS-SRAM工艺制作,其结构和阵列型PLD 不同,内部由许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活地相互连接,具有 密度高、编程速度快、设计灵活和可再配置设计能力等许多优点。FPGA出现后立即受到 世界范围内电子工程师的普遍欢迎,并得到迅速发展。 80年代末 Lattice公司提出在系统可编程( In System Programmable ISP)技术后,相继 出现了一系列具备在系统可编程能力的复杂可编程逻辑器件( Complex Programmable Logic Device CPLD),CPLD是在EPLD的基础上发展起来的,它采用 E-CMOS工艺制作 增加了内部联线,改进了内部结构体系,因而比EPLD性能更好,设计更加灵活,其发展 也非常迅速。 不同厂家对可编程逻辑器件的叫法也不尽相同。 Xilinx公司把基于查找表技术,SRAM 工艺,要外挂配置用的 EEPROM的可编程逻辑器件叫FPGA:把基于乘积项技术, Flash(类 似 EEPROM工艺)工艺的可编程逻辑器件叫CPLD。 Altera公司把自己的可编程逻辑器件产 品中的MX系列(乘积项技术, EEPROM工艺)、FLEX系列(查找表技术,SRAM工艺)都 叫作CPLD,而把也是SRAM工艺,基于查找表技术,要外挂配置用的FLEX系列的 EPROM,叫 做FF 90年代以后,高密度PLD在生产工艺、器件的编程和测试技术等方面都有了飞速发 展,CPLD的集成度一般可达数千甚至上万门。 Altera公司的EPM9560,其单密度达到12000 个可用门,包含多达50个宏单元,216个用户LO引脚,并能提供15nS的脚至脚延时, 16位计数的最高工作频率为1l8MHz。目前CPLD的集成度最多可达25万个等效门以上
早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器 (EPROM)和电可擦除只读存贮器(EEPROM)三种,它们由全译码的与阵列和可编程的或阵 列组成,由于阵列规模大,速度低,主要用途是作存储器。 70 年代中期,出现了一类结构上稍复杂的可编程芯片,称可编程逻辑阵列 (Programmable Logic array PLA),它由可编程的与阵列和可编程的或阵列组成,虽然 其阵列规模大为减小,提高了芯片的利用率,但由于编程复杂,支持 PLA 的开发软件有 一定难度,因而也没有得到广泛应用。 70 年代末,美国 MMI 公司(Monolithic Memories Inc,单片机存储器公司)率先推出 了可编程阵列逻辑器件(Programmable array Logic PAL),PAL 由可编程的与阵列和固定 的或阵列构成,采用熔丝编程方式,双极型工艺制造。PAL 在器件的工作速度、输出结构 种类上较早期的可编程逻辑器件有了很大进步,但由于其输出方式的固定不能重新组态, 所以编程灵活性较差,又由于采用的是 PROM 工艺,只能一次性编程,使用者仍要承担一 定风险。 80 年代中期,Altera公司发明了通用阵列逻辑GAL(Generic Array Logic),它和PAL的 区别在于GAL的输出电路可以组态,而且它大多采用UVCMOS或E2 CMOS工艺,实现了重 复编程,通常可擦写百次以上,甚至上千次。GAL由于其设计具有很强的灵活性,设计风 险为零,可以取代大部分SSI、MSI、和PAL器件,所以在 20 世纪 80 年代得到广泛使用。 这些早期的可编程逻辑器件的一个共同特点是都属于低密度 PLD,结构简单,设计灵 活,但规模小,难以实现复杂的逻辑功能。 其后,随着集成电路工艺水平的不断提高,PLD 突破了传统的单一结构,向着高密度、 高速度、低功耗以及结构体系更灵活、适用范围更宽的方向发展,因而相继出现了各种不 同结构的高密度 PLD。80 年代中期,Altera 公司推出了一种新型的可擦除、可编程逻辑器 件(Erasable Programmable Logic Device EPLD),它采用 CMOS 和 UVEPROM 工艺制作, 集成度比 PAL 和 GAL 高得多,设计也更加灵活,但内部互联能力比较弱。 1985 年 Xilinx 公司首家推出了现场可编程门阵列器件(Field Programmable Gate Array FPGA),它是一种新型的高密度 PLD,采用 CMOS-SRAM 工艺制作,其结构和阵列型 PLD 不同,内部由许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活地相互连接,具有 密度高、编程速度快、设计灵活和可再配置设计能力等许多优点。FPGA 出现后立即受到 世界范围内电子工程师的普遍欢迎,并得到迅速发展。 80 年代末Lattice公司提出在系统可编程(In System Programmable ISP)技术后,相继 出现了一系列具备在系统可编程能力的复杂可编程逻辑器件 (Complex Programmab1e Logic Device CPLD),CPLD是在EPLD的基础上发展起来的,它采用E2 CMOS工艺制作, 增加了内部联线,改进了内部结构体系,因而比EPLD性能更好,设计更加灵活,其发展 也非常迅速。 不同厂家对可编程逻辑器件的叫法也不尽相同。Xilinx 公司把基于查找表技术,SRAM 工艺,要外挂配置用的 EEPROM 的可编程逻辑器件叫 FPGA;把基于乘积项技术,Flash(类 似 EEPROM 工艺)工艺的可编程逻辑器件叫 CPLD。Altera 公司把自己的可编程逻辑器件产 品中的 MAX 系列(乘积项技术,EEPROM 工艺)、FLEX 系列(查找表技术,SRAM 工艺)都 叫作 CPLD,而把也是 SRAM 工艺,基于查找表技术,要外挂配置用的 FLEX 系列的 EPROM,叫 做 FPGA。 90 年代以后,高密度 PLD 在生产工艺、器件的编程和测试技术等方面都有了飞速发 展,CPLD的集成度一般可达数千甚至上万门。Altera公司的EPM9560,其单密度达到12000 个可用门,包含多达 50 个宏单元,216 个用户 I/O 引脚,并能提供 15nS 的脚至脚延时, 16 位计数的最高工作频率为 118MHz。目前 CPLD 的集成度最多可达 25 万个等效门以上, 93
最高工作速度已超过180MHz,FPGA的门延时已小于3nS。在系统可编程技术、边界扫 描技术的出现也使器件在编程技术和测试技术及系统可重构技术方面有了很快的发展。 0.4EDA软件种类及各自特点 计算机技术的进步推动了EDA技术的普及和发展,EDA工具层出不穷,目前在我国各 大专院校教学中具有的广泛影响的EDA软件有 PSpice、 OrCad、 Electrical Workbench、 Protel Pspice是美国 Microsim公司于20世纪80年代开发的电路模拟分析软件,可以进行 模拟分忻、模拟数字混合分析、参数优化等,该公司还开发了PCB、CPLD的设计软件。 该软件现已并入 OrCad。 OrCad是一个大型的电子线路EDA软件包, OrCad公司的产品包括原理图设计、PCB 设计、 PLD Tools等设计软件工具。 OrCad被 Cadence公司收购后,其产品功能更加强大 Electronic Workbench软件是加拿大 Interactive Image technologies公司于20世纪80 年代末、90年代初推出的专门用于电子线路仿真的“虚拟电子工作台”软件,可以将不 同类型的电路组合成混合电路进行仿真。它不仅可以完成电路的瞬态分析和稳态分析、时 域和领域分析、器件的线性和非线性分析、电路的噪声分析和失真分析等常规电路的分析 而且还提供了离散傅立叶分析、电路零极点分析、交直流灵敏度分析和电路容差分析等共 计14种电路分析方法,并具有故障模拟和数据储存等功能。其升级版本 Multisim2001除 具备上述功能外,还支持ⅤHDL和 Verilog HDl文本地输入。 Protel软件包是20世纪90年代初由澳大利亚 Protel Technology公司研制开发的电路 EDA软件,它在我国电子行业中知名度很高,普及程度较广。 Protel98是应用于 windows95 /98和 windows Ni下的EDA设计软件,它包括5大组件:原理图设计系统 Advanced Schematic98、印制电路扳设计系统 Advanced PCB98、可编程逻辑器件(PLD)设计系统 Advanced PlD98、电路仿真系统 Advanced SIM98以及自动布线系统 Advanced Route98。 它可以完成电路原理图的设计和绘制、电路仿真、印制电路板设计、可编程逻辑器件(PLD) 设计和自动布线等。在 Protel98的基础上, Protel经历了 Protel99、 Protel9gse、 Protel DXP 的发展过程,功能也愈来愈完善。 除此之外,专门用于开发FPGA和CPLD的EDA工具也很多,它们大致可以分为五 个模块 设计输入编辑器 2.仿真器; 3.HDL综合器 4.适配器(或部局布线器); 5.下载器。 设计输入编辑器可以接受不同的设计输入方式,如原理图输入方式、状态图输入方式、 波形图输入方式以及HDL文本输入方式。各PLD器件厂商一般都有自己的设计输入编辑 器,如 xilinx的 Foundation、 Altera的MAX+plus2等。 仿真器以基于HDL的仿真器应用广泛。数字系统的设计中,行为模型的表达、电子 系统的建模、逻辑电路的验证以及门级系统的测试,都离不开仿真器的模拟检测。按处理 的硬件描述语言,仿真器可分为ⅤHDL仿真器、 Verilog仿真器等,按仿真的电路描述级 别的不同,HDL仿真器可以独立或综合完成系统级仿真、行为级仿真、RTL级仿真和门 级时序仿真。 各EDA厂商都提供基于Ⅴ HDL/Verilog的仿真器,如 Mentor公司的 Modelsin, Cadence 公司的 Verilog-XL,NC- Verilog, Synopsys公司的ⅤCS,Adec公司的 Active-HDL等。 HDL综合器可以把 VHDL/Verilog hdl描述的系统转化成硬件电路,这样使硬件描述
最高工作速度已超过 180MHz,FPGA 的门延时已小于 3nS。在系统可编程技术、边界扫 描技术的出现也使器件在编程技术和测试技术及系统可重构技术方面有了很快的发展。 0.4 EDA 软件种类及各自特点 计算机技术的进步推动了 EDA 技术的普及和发展,EDA 工具层出不穷,目前在我国各 大专院校教学中具有的广泛影响的 EDA 软件有 PSpice、OrCad、Electrical Workbench、Protel 等。 Pspice 是美国 MicroSim 公司于 20 世纪 80 年代开发的电路模拟分析软件,可以进行 模拟分忻、模拟数字混合分析、参数优化等,该公司还开发了 PCB、CPLD 的设计软件。 该软件现已并入 OrCad。 OrCad 是一个大型的电子线路 EDA 软件包,OrCad 公司的产品包括原理图设计、PCB 设计、PLD Tools 等设计软件工具。OrCad 被 Cadence 公司收购后,其产品功能更加强大。 Electronic Workbench 软件是加拿大 Interactive Image Technologies 公司于 20 世纪 80 年代末、90 年代初推出的专门用于电子线路仿真的“虚拟电子工作台”软件,可以将不 同类型的电路组合成混合电路进行仿真。它不仅可以完成电路的瞬态分析和稳态分析、时 域和领域分析、器件的线性和非线性分析、电路的噪声分析和失真分析等常规电路的分析, 而且还提供了离散傅立叶分析、电路零极点分析、交直流灵敏度分析和电路容差分析等共 计 14 种电路分析方法,并具有故障模拟和数据储存等功能。其升级版本 Multisim 2001 除 具备上述功能外,还支持 VHDL 和 Verilog HDL 文本地输入。 Protel 软件包是 20 世纪 90 年代初由澳大利亚 Protel Technology 公司研制开发的电路 EDA 软件,它在我国电子行业中知名度很高,普及程度较广。Protel 98 是应用于 windows95 /98 和 windows NT 下的 EDA 设计软件,它包括 5 大组件:原理图设计系统 Advanced Schematic 98、印制电路扳设计系统 Advanced PCB 98、可编程逻辑器件(PLD)设计系统 Advanced PLD 98、电路仿真系统 Advanced SIM 98 以及自动布线系统 Advanced Route 98。 它可以完成电路原理图的设计和绘制、电路仿真、印制电路板设计、可编程逻辑器件(PLD) 设计和自动布线等。在 Protel 98 的基础上,Protel 经历了 Protel 99、Protel 99se、Protel DXP 的发展过程,功能也愈来愈完善。 除此之外,专门用于开发 FPGA 和 CPLD 的 EDA 工具也很多,它们大致可以分为五 个模块: 1.设计输入编辑器; 2.仿真器; 3.HDL 综合器; 4.适配器(或部局布线器); 5.下载器。 设计输入编辑器可以接受不同的设计输入方式,如原理图输入方式、状态图输入方式、 波形图输入方式以及 HDL 文本输入方式。各 PLD 器件厂商一般都有自己的设计输入编辑 器,如 xilinx 的 Foundation、Altera 的 MAX+plus2 等。 仿真器以基于 HDL 的仿真器应用广泛。数字系统的设计中,行为模型的表达、电子 系统的建模、逻辑电路的验证以及门级系统的测试,都离不开仿真器的模拟检测。按处理 的硬件描述语言,仿真器可分为 VHDL 仿真器、Verilog 仿真器等,按仿真的电路描述级 别的不同,HDL 仿真器可以独立或综合完成系统级仿真、行为级仿真、RTL 级仿真和门 级时序仿真。 各EDA厂商都提供基于VHDL/Verilog的仿真器,如Mentor公司的ModelSim,Cadence 公司的 Verilog-XL,NC-Verilog,Synopsys 公司的 VCS,Aldec 公司的 Active-HDL 等。 HDL 综合器可以把 VHDL/Verilog HDL 描述的系统转化成硬件电路,这样使硬件描述 94
语言不仅适用于电路逻辑的建模和仿真,还可以直接用于电路的设计。目前常用的 FPGA/CPLD设计的HDL综合器为 1. Synopsys公司的 FPGA Compiler、 FPGA Express 2. Synplicity公司的 Synplify Pro综合器; 3. Mentor子公司 Exemplar Logic的 Leonardo spectrum综合器; 综合器综合电路时,首先对Ⅴ IDL/Verilog进行分析处理,并将其转换成相应的电路 结构或模块,这是一个通用电路原理图的形成过程,与硬件无关。然后才对实际实现的目 标器件的结构进行优化,并使之满足各种约束条件,优化关键路径等。 综合器一般输出网表文件,如EDIF格式( Electronic Design Interchange Format),文 件后缀是cdf,或是直接用ⅤHDL/№erig语言表达的标准格式的网表文件,或是对应FPGA 器件厂商的网表文件,如 Xilinx的XNF网表文件。 适配器又称布局布线器,其任务是完成系统在器件上的布局布线。适配器输出的是厂 商自己定义的下载文件,用于下载到器件中以实现设计。布局布线通常由PLD厂商提供 的专门针对器件开发的软件完成,这些软件可以嵌在EDA开发环境中,也可以是专用的 适配器,例如Late公司的 ispEXPERT、 Altera公司的 MAX+plus2和 Quartus、 Xilinx公 司的 Foundation和ISE中都有各自的适配器。 下载器又称编程器,它把设计下载到对应的实际器件中,实现硬件设计,一般PLD 厂商都提供专门针对器件的下载或编程软件。 0.5硬件描述语言简介 数字系统的设计输入方式有多种,通常是由线信号和表示基本设计单元的符号连在 起组成线路图,符号取自器件库,符号通过信号(或网线)连接在一起,信号使符号互连, 这样设计的系统所形成的设计文件是若干张电路原理结构图,在图中详细标注了各逻辑单 元、器件的名称和相互间的信号连接关系。对于小的系统,这种原理电路图只要几十张至 几百张就可以了,但如果系统比较大,硬件比较复杂,这样的原理电路图可能要几千张 几万张甚至更多,这样就给设计归档、阅读、修改等都带来了不便。这一点在IC设计领 域表现得尤为突出,从而导致了采用硬件描述语言进行硬件电路设计方法的兴起。 硬件描述语言(HDL, Hardwhare Description Language)是用文本形式来描述数字电 路的内部结构和信号连接关系的一类语言,类似于一般的计算机高级语言的语言形式和结 构形式。设计者可以利用HDL描述设计的电路,然后利用EDA工具进行综合和仿真,最 后形成目标文件,再用ASC或PLD等器件实现 硬件描述语言的发展至今约有20多年的历史,并成功地应用于数字系统开发的各个 阶段:设计、综合、仿真和验证等,使设计过程达到高度自动化。硬件描述语言有多种类 型,最具代表性的、使用最广泛的是ⅤHDL( Very High Speed Intergated Circuit Hardware Description Language)语言和 Verilog Hdl语言 VHDL语言于八十年代初由美国国防部( The United States Department of Defense) 发起创建,当时制订了一个名为VHSC( Very High Speed Integrated Circuit)的计划,其 目的是为了能制定一个标准的文件格式和语法,要求各武器承包商遵循该标准描述其设计 的电路,以便于保存和重复使用电子电路设计。VHDL语言的全称为“超高速集成电路硬 件描述语言”( VHSIC Hardware Description Language),于1982年正式诞生,ⅤHDL吸取 了计算机高级语言语法严谨的优点,采用了模块化的设计方法,于1987年被国际电气电 子工程协会( nternational Electrical Electronic Engineering,EEE)收纳为标准;文件编 号为 IEEE standard10761993年,IEE对VHDL进行了修订,从更高的抽象层次和系 统描述能力上扩展了ⅤHDL的内容,公布了新版本的ⅤHDL,即IEEE标准的1076-1993 版本
语言不仅适用于电路逻辑的建模和仿真,还可以直接用于电路的设计。目前常用的 FPGA/CPLD 设计的 HDL 综合器为: 1.Synopsys 公司的 FPGA Compiler、FPGA Express; 2.Synplicity 公司的 Synplify Pro 综合器; 3.Mentor 子公司 Exemplar Logic 的 Leonardo Spectrum 综合器; 综合器综合电路时,首先对 VHDL/Verilog 进行分析处理,并将其转换成相应的电路 结构或模块,这是一个通用电路原理图的形成过程,与硬件无关。然后才对实际实现的目 标器件的结构进行优化,并使之满足各种约束条件,优化关键路径等。 综合器一般输出网表文件,如 EDIF 格式(Electronic Design Interchange Format),文 件后缀是.edf,或是直接用 VHDL/Verilog 语言表达的标准格式的网表文件,或是对应 FPGA 器件厂商的网表文件,如 Xilinx 的 XNF 网表文件。 适配器又称布局布线器,其任务是完成系统在器件上的布局布线。适配器输出的是厂 商自己定义的下载文件,用于下载到器件中以实现设计。布局布线通常由 PLD 厂商提供 的专门针对器件开发的软件完成,这些软件可以嵌在 EDA 开发环境中,也可以是专用的 适配器,例如 Lattice 公司的 ispEXPERT、Altera 公司的 MAX+plus2 和 Quartus、Xilinx 公 司的 Foundation 和 ISE 中都有各自的适配器。 下载器又称编程器,它把设计下载到对应的实际器件中,实现硬件设计,一般 PLD 厂商都提供专门针对器件的下载或编程软件。 0.5 硬件描述语言简介 数字系统的设计输入方式有多种,通常是由线信号和表示基本设计单元的符号连在一 起组成线路图,符号取自器件库,符号通过信号(或网线)连接在一起,信号使符号互连, 这样设计的系统所形成的设计文件是若干张电路原理结构图,在图中详细标注了各逻辑单 元、器件的名称和相互间的信号连接关系。对于小的系统,这种原理电路图只要几十张至 几百张就可以了,但如果系统比较大,硬件比较复杂,这样的原理电路图可能要几千张、 几万张甚至更多,这样就给设计归档、阅读、修改等都带来了不便。这一点在 IC 设计领 域表现得尤为突出,从而导致了采用硬件描述语言进行硬件电路设计方法的兴起。 硬件描述语言(HDL,Hardwhare Description Language)是用文本形式来描述数字电 路的内部结构和信号连接关系的一类语言,类似于一般的计算机高级语言的语言形式和结 构形式。设计者可以利用 HDL 描述设计的电路,然后利用 EDA 工具进行综合和仿真,最 后形成目标文件,再用 ASIC 或 PLD 等器件实现。 硬件描述语言的发展至今约有 20 多年的历史,并成功地应用于数字系统开发的各个 阶段:设计、综合、仿真和验证等,使设计过程达到高度自动化。硬件描述语言有多种类 型,最具代表性的、使用最广泛的是 VHDL(Very High Speed Intergated Circuit Hardware Description Language)语言和 Verilog HDL 语言。 VHDL 语言于八十年代初由美国国防部(The United States Department of Defense ) 发起创建,当时制订了一个名为 VHSIC(Very High Speed Integrated Circuit)的计划,其 目的是为了能制定一个标准的文件格式和语法,要求各武器承包商遵循该标准描述其设计 的电路,以便于保存和重复使用电子电路设计。VHDL 语言的全称为“超高速集成电路硬 件描述语言”(VHSIC Hardware Description Language),于 1982 年正式诞生,VHDL 吸取 了计算机高级语言语法严谨的优点,采用了模块化的设计方法,于 1987 年被国际电气电 子工程协会(International Electrical & Electronic Engineering , IEEE)收纳为标准;文件编 号为 IEEE standard 1076。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系 统描述能力上扩展了 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076-1993 版本。 95
Verilog hdl语言最初是于1983年由 Gateway Design Automation(GDA)公司的Phil Moorby为其模拟器产品开发的硬件描述语言,那时它只是一种专用语言,最初只设计了 一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年 Moorby 推出它的第三个商用仿真器 verilog-XL,获得了巨大的成功,由于他们的模拟、仿真器产 品的广泛使用, Verilog hDL作为一种便于实用的语言逐步为设计者所接受。1989年 CADENCE公司收购了GDA公司,使得 Verilog hdl成为该公司的专有技术。1990年 CADENCE公司公开发表了 Verilog HDL,并成立OV( Open Verilon Internationa)来促进 Verilog hdl的发展,致力于推广Ⅴ erilog hdl成为IE标准,这一努力最后获得成功 Verilog语言于1995年成为IEEE标准,称为 IEEE Std1364-1995 本书将在介绍数字系统的设计方法及基本步骤的基础上,介绍MAX+plus2的使用方 法,介绍硬件描述语言ⅤHDL和 Verilog HDL,并给出若干数字系统设计问题,期望通 过实例和练习,把数字系统设计的基本理论、基本方法和设计课题紧密结合,使读者在 MAX+plus.2的设计平台下,学会用原理电路图输入或硬件描述语言输入(ⅤHDL或 Verilog HDL)进行电路设计、编译( Compiler)、仿真( Simulator、底层编辑( Floorplan Editor) 及PLD器件编程校验( Programmer或 Configure),对功能测试向量( Waveform editor)、 逻辑综合与试配( Logic Synthesize)等涉及不多,以求提高读者利用MAX+plus2进行数 字系统设计的能力。 本书除第三章使用 Mentor公司的 Modelsim仿真器、 Synplicity公司的 Synplify综合 器进行仿真和综合外,其余章节的仿真结果都是用 Altera公司的MAX+plus2得到的。 第一章MAX+plus2使用练习 1.1MAX+plus2简介 MAX+plus2( Multiple array matrix and programmable logic user system)是一个完全集成 化、易学易用的可编程逻辑设计环境,它可以在多种平台上运行,其图形界面丰富,加上 完整的、可即时访问的在线文档,使设计人员可以轻松地掌握软件的使用, MAX+plus2开发系统有很多特点 1.界面开放 MAX+plus2是Aera公司的EDA软件,但它可以与其它工业标准的设计输入、综合 校验工具相连接,设计人员可以使用 Altera或标准EDA工具设计输入工具来建立逻辑设 计,用MAX+plus编译器( Compiler)对 Altera器件设计进行编译,并使用 Altera或其 它EDA校验工具进行器件或板级仿真。目前,MAX+plus支持与 Candence、 Exemplarlogic、 Metor Graphics、 Synopsys、 Synplicity、 Viewlogic等公司所提供的EDA工具接口。 2.与结构无关 MAX+plus2系统的核心 Compiler支持 Altera公司的FLEX10K、FLEX8000 FLEX6000、MAX9000、MAX7000、MAX5000和lasi可遍程逻辑器件系列,提供了与 结构无关的可编程逻辑环境。 MAX+plus的编译器还提供了强大的逻辑综合与优化功能 使用户可以容易地把设计集成到器件中 3.丰富的设计库 MAX+plus提供丰富的库单元供设计者调用,其中包括74系列的全部器件和其它多 种
Verilog HDL 语言最初是于 1983 年由 Gateway Design Automation(GDA)公司的 Phil Moorby 为其模拟器产品开发的硬件描述语言,那时它只是一种专用语言,最初只设计了 一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985 年 Moorby 推出它的第三个商用仿真器 Verilog-XL,获得了巨大的成功,由于他们的模拟、仿真器产 品的广泛使用,Verilog HDL 作为一种便于实用的语言逐步为设计者所接受。1989 年 CADENCE 公司收购了 GDA 公司,使得 Verilog HDL 成为该公司的专有技术。1990 年 CADENCE 公司公开发表了 Verilog HDL,并成立 OVI(Open Verilon International)来促进 Verilog HDL 的发展,致力于推广 Verilog HDL 成为 IEEE 标准,这一努力最后获得成功, Verilog 语言于 1995 年成为 IEEE 标准,称为 IEEE Std 1364-1995。 本书将在介绍数字系统的设计方法及基本步骤的基础上,介绍 MAX+plus2 的使用方 法,介绍硬件描述语言 VHDL 和 Verilog HDL,并给出若干数字系统设计问题,,期望通 过实例和练习,把数字系统设计的基本理论、基本方法和设计课题紧密结合,使读者在 MAX+plus2 的设计平台下,学会用原理电路图输入或硬件描述语言输入(VHDL 或 Verilog HDL)进行电路设计、编译(Compiler)、仿真((Simulator)、底层编辑(Floorplan Editor) 及 PLD 器件编程校验(Programmer 或 Configure),对功能测试向量(Waveform Editor)、 逻辑综合与试配(Logic Synthesize)等涉及不多,以求提高读者利用 MAX+plus2 进行数 字系统设计的能力。 本书除第三章使用 Mentor 公司的 Modelsim 仿真器、Synplicity 公司的 Synplify 综合 器进行仿真和综合外,其余章节的仿真结果都是用 Altera 公司的 MAX+plus2 得到的。 第一章 MAX+plus2 使用练习 1.1 MAX+plus2 简介 MAX+plus2(Multiple array matrix and programmable logic user system)是一个完全集成 化、易学易用的可编程逻辑设计环境,它可以在多种平台上运行,其图形界面丰富,加上 完整的、可即时访问的在线文档,使设计人员可以轻松地掌握软件的使用。 MAX+plus2 开发系统有很多特点: 1.界面开放 MAX+plus2 是 Altera 公司的 EDA 软件,但它可以与其它工业标准的设计输入、综合 与 校验工具相连接,设计人员可以使用 Altera 或标准 EDA 工具设计输入工具来建立逻辑设 计,用 MAX+plus2 编译器(Compiler)对 Altera 器件设计进行编译,并使用 Altera 或其 它 EDA 校验工具进行器件或板级仿真。目前,MAX+plus2 支持与 Candence、Exemplarlogic、 Metor Graphics、Synopsys、Synplicity、Viewlogic 等公司所提供的 EDA 工具接口。 2.与结构无关 MAX+plus2 系统的核心 Compiler 支持 Altera 公司的 FLEX10K、FLEX8000、 FLEX6000、MAX9000、MAX7000、MAX5000 和 Classic 可遍程逻辑器件系列,提供了与 结构无关的可编程逻辑环境。MAX+plus2 的编译器还提供了强大的逻辑综合与优化功能, 使用户可以容易地把设计集成到器件中。 3.丰富的设计库 MAX+plus2 提供丰富的库单元供设计者调用,其中包括 74 系列的全部器件和其它多 种 96
逻辑功能部件,调用库元件进行设计,可以大大减轻设计人员的工作量,缩短设计周期 4.模块化工具 设计人员可以从各种设计输入、处理和校验选项中进行选择,从而使MAX+plus2可 以 满足不同用户的需求,根据需要,还可以添加新功能。例如,在本教材中,侧重点在于用 MAX+plus进行各种设计输入(图形或HDL输入)、编译( Compiler)、仿真( Simulator) 底层编辑( Floorplan Editor)及PLD器件编程校验( Programmer或 Configure),并不过多 涉及功能测试向量( Waveform Editor)、逻辑综合与试配( Logic Synthesize)等 5.硬件描述语言 MAX+plus2软件支持各种HDL设计输入选项,包括VHDL、 Verilog hdl和 Altera 公 司的AHDL。 MAX+plus2软件的启始界面如图1-1-1所示。 ABRA MAR+plus Il 本章将 图1-1-1MAX+plus2界面 通过 些例子来说 明利用 MAX+plus2进行数字功能模块或数字系统设计的过程 1.2基于MAX+plus2的电路设计过程 在进入设计之前,需要先建立一个文件夹为用户存放设计文件用,即用户库。用户库 的名称用英文字母表示,例如E. maxplus2lgl 例1-2-1用原理图输入法设计一个3线8线译码器 步骤1、进入 Windows操作系统,打开MAX+plus2; 步骤2、启动 File\ Project Name菜单,输入设计文件的名称(原理图文件的扩展名为gdf 如图1-2-1所示; Project Name: L38. gdf Directory is: f: \program files \maxplus 2 \gl F 2 maxplus2 D
逻辑功能部件,调用库元件进行设计,可以大大减轻设计人员的工作量,缩短设计周期。 4.模块化工具 设计人员可以从各种设计输入、处理和校验选项中进行选择,从而使 MAX+plus2 可 以 满足不同用户的需求,根据需要,还可以添加新功能。例如,在本教材中,侧重点在于用 MAX+plus2 进行各种设计输入(图形或 HDL 输入)、编译(Compiler)、仿真(Simulator)、 底层编辑(Floorplan Editor)及 PLD 器件编程校验(Programmer 或 Configure),并不过多 涉及功能测试向量(Waveform Editor)、逻辑综合与试配(Logic Synthesize)等。 5.硬件描述语言 MAX+plus2 软件支持各种 HDL 设计输入选项,包括 VHDL、Verilog HDL 和 Altera 公 司的 AHDL。 MAX+plus2 软件的启始界面如图 1-1-1 所示。 本章将 通过一 些例子来说 明利用 MAX+plus2 进行数字功能模块或数字系统设计的过程。 图 1-1-1 MAX+plus2 界面 1.2 基于 MAX+plus2 的电路设计过程 在进入设计之前,需要先建立一个文件夹为用户存放设计文件用,即用户库。用户库 的名称用英文字母表示,例如 E:\maxplus2\lgl。 例 1-2-1 用原理图输入法设计一个 3 线-8 线译码器。 步骤 1、进入 Windows 操作系统,打开 MAX+plus2; 步骤 2、启动 File \ Project Name 菜单,输入设计文件的名称(原理图文件的扩展名为.gdf) 如图 1-2-1 所示; 97
步骤3、点击 Assign Device菜单,选择器件(例如EPFl0K10LC84-3),OK,如图1-2-2 所示; Device Top of Hierarchy: f: \. \maxplus 2 \gl \38. gdf Device Eamily: FLEX10K Cancel Devices EPF10K10LC84-4 Auto device AUTO Device Options EPF10K10LC84-4 EPF10K10LC84-3 EPF10K10L|844 Migration Device ow Only Fastest Speed Grades Edit Chips》 Maintain Current Synthesis Regardless of Device or Speed Grade Changes 图1-2-2选择器件 步骤4、启动Fl\New菜单,如图1-2-3所示,选择 Graphic Editor File,OK,打开原理 图编辑器。 File Type c Graphic Editor file A Symbol Editor file C Iext Editor file WAveform Editor fle . scf ancel 图1-2-3选择原理图编辑文件 步骤5、原理图设计输入 (1)元器件放置 在空白处双击鼠标左键,弹出器件选择界面如图1-2-4所示,图中 Symbol Libraries
步骤 3、点击 Assign \ Device 菜单,选择器件(例如 EPF10K10LC84-3),OK,如图 1-2-2 所示; 图 1-2-2 选择器件 步骤 4、启动 File \ New 菜单,如图 1-2-3 所示,选择 Graphic Editor File,OK,打开原理 图编辑器。 图 1-2-3 选择原理图编辑文件 步骤 5、原理图设计输入 (1) 元器件放置 在空白处双击鼠标左键,弹出器件选择界面如图 1-2-4 所示,图中 Symbol Libraries 98
中列出文件目录分别的是用户库、基本元器件库、宏功能库和可调参数库。选择其中任 库,如基本元器件库,则此库中所有元器件的符号名称列在 Symbol Files中,点击所需的 元件或在 Symbol Name中输入元件名,如and3(三输入与门)、not(非门)、 input(输入 端口)、 output(输出端口)等,OK即可。 若要安放相同的元件,只要按住Ctrl键,同时用鼠标拖动该元件。 Symbol Name: and3 用户库 Megawizard Plug-I 基本元器件 宏功能库 e:\maxplus2\\prim e: \maxplus 2\max2lib'm e: \maxplus2\max2hib\mega ipm 可调参数库 Directory is: e: \maxplus 2\gl Symbol File Directories: 彐w and4 户max2hb and6 band2 Cancel 图1-2-4器件选择界面 (2)在器件之间添加连线 把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标左键拖动,即 可画出连线。如图1-2-5。 PIN NAME 1 PIN_NAME PIN NAME 图1-25在器件之间添加连线
中列出文件目录分别的是用户库、基本元器件库、宏功能库和可调参数库。选择其中任一 库,如基本元器件库,则此库中所有元器件的符号名称列在 Symbol Files 中,点击所需的 元件或在 Symbol Name 中输入元件名,如 and3(三输入与门)、not(非门)、input(输入 端口)、output(输出端口)等,OK 即可。 若要安放相同的元件,只要按住 Ctrl 键,同时用鼠标拖动该元件。 用户库 基本元器件 宏功能库 可调参数库 图 1-2-4 器件选择界面 (2) 在器件之间添加连线 把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标左键拖动,即 可画出连线。如图 1-2-5。 图 1-2-5 在器件之间添加连线 99