工控网首页
>

应用设计

>

基于CPLD和ABEL语言的数字系统设计

基于CPLD和ABEL语言的数字系统设计

2004/1/18 10:57:00
摘 要:介绍了以LATTICE公司ispLSI1016E-100LJ44 CPLD 芯片为核心,以ABEL设计语言为手段,以isp DesignExpert system EDA软件为平台的现代数字系统设计方法和特点,并通过一个实例具体介绍了其自顶向下的设计、调试、及仿真的过程. 关键词:状态机;CPLD ;ABEL语言;VHDL语言;数字系统设计技术EDA;ISP;自顶向下;isp DesignExpert system; 一、引言   数字系统是由状态机和数字电路部件组成,在状态机的控制下处理数字信息的传输、存储和运算的电子系统。数字系统的设计关键在于控制核心状态机的设计。传统的数字系统设计是采用真值表、卡诺图、逻辑表达式、状态图、状态表等描述逻辑问题的方法设计的,这种设计方法对输入、输出变量的个数非常敏感,适用于小规模数字系统设计。现代随着半导体技术及电子技术的飞速发展,大规模、超大规模可编程逻辑器件和ISP技术的出现,使大规模集成的数字系统设计成为可能。现代数字系统的设计是在硬件描述语言和逻辑综合软件支持下,采用可编程器件进行的专用集成电路(ASIC)设计,可将各种规模较大、功能复杂的逻辑及时序电路用一片高密度、高性能的芯片实现,大大缩短设计周期,提高了系统的集成度和可靠性,使设计更加灵活,性能价格比也大大提高。这种基于在系统编程技术及其CPLD芯片的自顶向下分层次、模块化设计方法,已成为研制及开发数字系统最理想的选择,是现代数字系统设计方法的一个趋势,体现了硬件电路软件设计的思路,代表了EDA 的发展方向,标志着电子设计领域进入了一个崭新的发展阶段。 二、CPLD器件及其开发工具   随着微电子技术的发展,许多具有特定功能的专用集成电路ASIC应用日益广泛,在ASIC复杂程度越来越高的同时,ASIC产品要求的开发周期越来越短,CPLD器件及其语言、EDA开发工具的出现大大加快了ASIC开发的步伐。   CPLD即复杂的可编程逻辑器件,是能够将大量逻辑功能集成于一个芯片中,无论在集成度、功耗、速度还是逻辑设计的灵活性上,均能满足现代数字系统的大容量、高速度、多功能、低成本、开发工具简单易学和现场可编程的要求。目前CPLD芯片大多具有JTAG接口,满足JATA边界扫描测试规范,可以实现ISP技术。 CPLD开发设计的成功与否很大程度上取决于EDA开发软件。各大CPLD公司在生产芯片的同时,也提供了各自功能强大的EDA软件开发平台。这些软件为用户提供了一种与器件结构无关的设计环境,使设计者能够方便地进行设计输入、设计处理和器件编程。其中以Altera公司的MAX+PLUS2软件和LATTICE公司的isp DesignExpert system软件最为著名。本文针对LATTIC公司的产品isp DesignExpert system开发系统进行阐述。   美国LATTICE公司的isp DesignExpert system开发系统支持图形、ABEL、VHDL和Verilog HDL硬件描述语言输入所设计的数字系统。它是一个完全集成化的系统,其设计输入、设计处理、校验、仿真等功能都集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。该软件可以在window95/98,Window2000等多个操作系统上运行,开发系统由编辑器、编译器、分析器、仿真器、信息处理器等构成,具有良好的开放界面,可与其它工业标准的设计输入、综合与校验工具相连接,该系统的核心是编译器,它支持LATTICE公司的ispLSI 1K、2K、3K、4K、MACH4,MATCH5 等系列芯片。该软件支持自顶向下的设计方法,可以将数字系统中的各个部分电路按照功能分成顶层和底层模块,然后以模块为单位进行设计和仿真。该软件系统还具有非常好的逻辑综合器将硬件描述语言描述的数字系统综合成电路,并且支持仿真和时间分析。 三、硬件描述语言   EDA的关键技术之一就是用行为抽象化方法来描述数字系统的硬件电路,及硬件描述语言(HDL)的描述方式。所以采用硬件描述语言及相关的编辑、综合和仿真等技术是当今EDA发展的重要特征之一。在硬件描述语言发展的历程中除应用广泛的VHDL,AHDL、ABEL等语言外,还有很多语言是各公司的专有产品。硬件描述语言主要用语描述数字系统的结构、行为、功能和接口,尤其其强大的行为描述能力和语言结构,只需直接面对对象进行系统级的逻辑行为描述,从而避开了具体的器件结构来进行系统设计。也正是由于硬件描述语言这种与硬件电路和器件系列相关性不大,以及其简洁明确的语言结构和便于修改的特性,使的硬件描述语言在电子设计和EDA领域具有更好的适用性和更宽广的适用面。ABEL (Advanced Boolean expression language)语言就是美国LATTICE公司针对本公司产品推出的专用硬件描述语言。该语言提供了方程、真值表和状态图三种方法输入数字电路和数字系统;提供了仿真功能用于检查所设计电路的功能;提供了编译和综合功能用于优化设计和编译成熔丝文件。其核心ABEL编译器可生成各种报告文件及供下载用的熔丝图文件(JEDEC)。本文就是基于LATTICE公司的ABEL语言进行数字系统设计。 四、基于CPLD的数字系统设计流程
  如图一所示。首先要了解数字系统的设计要求,明确将要实现什么功能;第二,进行设计输入。该过程包括底层电路的输入和顶层电路的输入,将顶层电路拆分成不同功能的底层模块。可以采用原理图输入、ABEL语言、VHDL语言等硬件描述语言输入。 第三,程序检查没有错误后,就可以进行编译仿真。由于具有自顶向下的方法,所以仿真可以以模块为单位进行仿真。此时应该明确,设计电路所需要的信号怎样才为正常。 第四,在编译仿真通过后就可以下载程序。通过下载电缆将仿真确认编译好的*.JED文件下载到目标文件中。 第五,在线校验。就是对下载到目标芯片的系统进行校验。 第六,形成产品。基于CPLD器件及硬件描述语言的数字系统形成产品后,由于大部分受控电路模块已经经过验证,所以随时可以根据现场要求对控制电路进行在线修改,从而给设计带来了极大的便利。 五、基于ABEL语言的数字系统设计实例   下面以一个LATTICE公司的ispLSI1016E-100LJ44 CPLD 芯片为核心,以ABEL为设计手段设计的四路交通灯控制系统的ASIC为例,进一步说明现代数字系统自顶向下的设计方法。 1、顶层电路设计及实现 数字系统是由状态机和数字电路部件即控制器和受控电路组成,如图二所示顶层电路框图:
在这里我利用LATTICE公司的isp DesignExpert system EDA软件为设计平台,采用原理图图形输入进行顶层设计并对输入、输出进行配置。具体原理图略。 2、低层电路设计及实现 2.1控制器即状态机的设计 数字系统的设计关键在于状态机的设计。根据交通控制系统的功能得到系统状态表,以此我们可以利用LATTICE公司的isp DesignExpert system EDA软件中的ABEL语言编辑器写出状态机描述的ABEL程序。
程序清单如下: MODULE KZQ !n1,!n2,!n3,!d1,!d2,!d3,t,zz pin istype com; clk,td,x pin; db7..db0 pin istype com; q3,q2,q1 pin istype reg; qq=[q3,q2,q1]; a0=[0,0,0]; a1=[0,0,1]; a2=[0,1,0]; a3=[0,1,1]; a4=[1,0,0]; a5=[1,0,1]; a6=[1,1,0]; a7=[1,1,1]; data=[db7..db0]; equations qq.clk=clk; state_diagram qq state a0: n1=1;n2=0;n3=0; d1=0;d2=1;d3=0; data=16; zz=1; t=0; goto a1; state a1: n1=0;n2=0;n3=1; d1=1;d2=0;d3=0; t=1; if td&x then a2; else a1; state a2: n1=0;n2=0;n3=1; d1=1;d2=0;d3=0; data=5; zz=1; t=0; goto a3; state a3: n1=0;n2=1;n3=0; d1=1;d2=0;d3=0; t=1; if (td==1) then a4; else a3; state a4: n1=0;n2=1;n3=0; d1=1;d2=0;d3=0; data=12; zz=1; t=0; goto a5; state a5: n1=1;n2=0;n3=0; d1=0;d2=0;d3=1; t=1; if (td==1)#(!x==1) then a6; else a5; state a6: n1=1;n2=0;n3=0; d1=0;d2=0;d3=1; data=3; zz=1; t=1; goto a7; state a7: n1=1;n2=0;n3=0; d1=0;d2=1;d3=0; t=1; if td then a0; else a7; end   利用LATTICE公司的isp DesignExpert system EDA软件的波形编译器对该文件的模拟仿真结果如下:
2.2受控电路的设计 受控电路有可预置数的减法计数器,七段显示译码电路等。其中可预置数的减法计数器模块的ABEL描述程序如下: MODULE JSQ db7..db0,zz,t,clk pin; q7..q0 pin istypereg; td pin istypecom; data=[db7..db0]; qq=[q7..q0]; equations qq.clk=clk; when zz then qq.ap=data; else when (t)&(qq!=^b00000000) then qq:=qq-1; else when qq==^b00000000 then qq:=qq; when qq==^b00000000 then td=1; else td=0; end 该模块仿真略。 3、程序下载 在编译、仿真通过后,我们只需要通过LATTICE公司的下载电缆对芯片进行下载,通过上电硬件功能测试后,一个具有交通灯控制功能的ASIC芯片诞生了。在该芯片外部加上驱动电路,指示灯,数码管等就组成了交通灯控制系统。而且系统控制功能及时间极
投诉建议

提交

查看更多评论