DIY编程器网
标题:
基于MAX+plusⅡ开发平台的EDA设计方法
[打印本页]
作者:
admin
时间:
2014-10-12 19:53
标题:
基于MAX+plusⅡ开发平台的EDA设计方法
MAX + plus Ⅱ是美国Altera 公司的一种EDA 软件,用于开发CPLD 和FPGA 进行数字系统的设计。用图形输入方式和文本输入方式设计了一模60计数器,介绍了数字系统设计的一般方法和过程,揭示了其在数字系统中的重要作用。
原文位置
原文位置
EDA ( Elect ronic Design Automation) 即电子设计自动化技术,是指以计算机为基本工作平台,把应用电子技术、计算机技术、智能化技术融合在一个电子CAD 通用软件包中,辅助进行三方面的电子设计工作,即集成电路设计、电子电路设计以及PCB设计。总之,
EDA
技术的基本特征是采用具有系统仿真和综合能力的高级语言描述。它一般采用自顶向下的模块化设计方法。但是由于所设计的数字系统的规模大小不一,且系统内部逻辑关系复杂,如何划分逻辑功能
模块
便成为设计数字系统的最重要的任务。
原文位置
原文位置
MAX+ plus Ⅱ简介
原文位置
原文位置
MAX + plus Ⅱ是一种与结构无关的全集成化设计环境,使设计者能对Altera 的各种
CPLD
系列方便地进行设计输入、快速处理和器件编程。MAX+ plus Ⅱ开发系统具有强大的处理能力和高度的灵活性。其主要优点:与结构无关、多平台、丰富的设计库、开放的界面、全集成化、支持多种硬件描述语言( HDL) 等。
原文位置
原文位置
设计流程
原文位置
原文位置
数字系统的设计采用自顶向下、由粗到细,逐步分解的设计方法,最顶层电路是指系统的整体要求,最下层是具体的
逻辑电路
的实现。自顶向下的设计方法将一个复杂的系统逐渐分解成若干功能
模块
,从而进行设计描述,并且应用
EDA
软件平台自动完成各功能
模块
的逻辑综合与优化,门级电路的布局,再下载到硬件中实现设计。
原文位置
原文位置
利用MAX + plus II进行电路设计的一般流程如图1 所示。
原文位置
原文位置
原文位置
原文位置
具体设计过程如下∶
原文位置
原文位置
1) 设计输入。 MAX + plus Ⅱ支持多种设计输入方式,如原理图输入、波形输入、文本输入和它们的混合输入。
原文位置
原文位置
2) 设计处理。 设计输入完后,用MAX + plus Ⅱ的编译器编译、查错、修改直到设计输入正确,同时将对输入文件进行逻辑简化、优化,最后生成一个编程文件。 这是设计的核心环节。
原文位置
原文位置
3) 设计检查。MAX + plus Ⅱ为设计者提供完善的检查方法设计仿真和定时分析。其目的是检验电路的逻辑功能是否正确,同时测试目标器件在最差情况下的时延。这一查错过程对于检验组合逻辑电路的竞争冒险和时序
逻辑电路
的时序、时延等至关重要。
原文位置
原文位置
4) 器件编程。 当电路设计、校验之后,MAX+plus Ⅱ的Programmer 将编译器所生成的编译文件下载到具体的
CPLD
器件中,即实现目标器件的物理编程 。
原文位置
原文位置
文本输入方式和图形输入方式设计一个模60 计数器
原文位置
原文位置
系统分析
原文位置
原文位置
模60 计数器是可由一个10 进制计数器和一个异步清零6 进制计数器组成的。 本设计采用10 进制计数器74160 组件和6 进制计数器组成。 数字系统分块后,需要选择正确描述系统逻辑功能的方式。 对于所选用的
CPLD
,需要用相应的设计开发软件。 如MAX + plus Ⅱ的设计描述方式有文本、波形、图形多种方式。 图形输入方式直观易懂。 当系统较大时,由于此方式连线多,使用十分不方便。 采用V HDL硬件描述语言的描述方式与结构无关,设计难度降低,软件修改方便而且大部分受控功能模块已经编译验证,系统设计时只要选择这些
模块
并按一定的逻辑功能组合即可 。
原文位置
原文位置
系统设计
原文位置
原文位置
本设计6 进制计数器采用文本输入方式设计,其代码如下:
原文位置
原文位置
L IBRARY ieee ;
原文位置
原文位置
USE ieee. std_logic_1164. all ;
原文位置
原文位置
USE ieee. std_logic_unsigned. all ;
原文位置
原文位置
ENTITY counter6 IS %定义
模块
IS
原文位置
原文位置
PORT (Load ,En Clrn , Clk : IN STD_LOGIC;
原文位置
原文位置
D : IN STD_LOGIC_VECTOR(2 downto 0) ;
原文位置
原文位置
%定义输入端口
原文位置
原文位置
Q :OU T STD_LOGIC_VECTOR(2 downto 0) ;
原文位置
原文位置
%定义输出端口
原文位置
原文位置
Co :OU T STD_LOGIC)
原文位置
原文位置
END counter6 ;
原文位置
原文位置
ARCHITECTURE a OF counter6 IS
原文位置
原文位置
BEGIN %定义过程
原文位置
原文位置
PROCESS(Clk)
原文位置
原文位置
variable tmp : std_logic_vector (2 downto 0) ;
原文位置
原文位置
%定义一个矢量
原文位置
原文位置
begin
原文位置
原文位置
IF Clrn =’0’THEN tmp : = "000" ;
原文位置
原文位置
else
原文位置
原文位置
IF( Clk’event AND Clk =’1’) THEN %过程声明
原文位置
原文位置
IF Load =’0’THEN tmp : = D ;
原文位置
原文位置
ELSIF En =’1’THEN
原文位置
原文位置
IF tmp = "101" THEN tmp : = "000" ;
原文位置
原文位置
ELSE tmp : = tmp + 1 ;
原文位置
原文位置
END IF ;
原文位置
原文位置
END IF ;
原文位置
原文位置
END IF ;
原文位置
原文位置
END IF ;
原文位置
原文位置
Q < = tmp ; Co < = (tmp (0) AND tmp (2) AND En) ;
原文位置
原文位置
END PROCESS ;
原文位置
原文位置
END a ;
原文位置
原文位置
保存并编译设计代码, 然后创建电路符号counter6 ,接着用图形输入方式编辑模60 计数器,在编辑的过程当中可以引用6 进制电路符号counter6。 设计的系统电路如图2 所示。
原文位置
原文位置
原文位置
原文位置
模60 计数器由十进制计数器74160 和以上设计的六进制计数器组成(见图3) ,当74160 计到9时,产生进位使6 进制电路能计数。
原文位置
原文位置
原文位置
原文位置
原文位置
原文位置
系统仿真
原文位置
原文位置
为了保证设计的正确性,系统设计之后还要进行仿真。本系统采用MAX7000S 系列
CPLD
芯片,应用MAX+plus Ⅱ对各种文件从底层到顶层逐个编译,再进行逻辑仿真。其仿真波形如图4 所示。仿真之后通过MAX + plus Ⅱ的Programmer下载到可编程芯片上便完成设计。利用MAX + plusⅡ编译、查错生成一个能实现模60 的计数器, 从图4 可见初值为58 ,使能端EN 和清除控制端CL RN为高电平。 经过两个时钟周期上升沿Qa 从8 变到0 ,Qb 从5 变到0 ,再开始新一轮的计数。
原文位置
原文位置
结束语
原文位置
原文位置
数字电路系统设计采用先进的
EDA
软件和硬件描述语言,借助于
CPLD
实现设计,体现了数字电路设计系统芯片化。芯片系统化的设计化思想使设计者根据自己的实际需要构造逻辑功能的数字集成电路变得简捷。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2