下面,笔者即以基于Xilinx的CPLD器件XC95108-7PC
2EDA技术在一个简单的数字系统设计中的具体应用
2.1设计要求
本系统要求设计一个四位扭环形计数器,时钟上升沿触发,可进行复位(即清零)和时钟使能控制,其结果要求通过四个一字排列的发光二极管显示出来(构成一种简单的循环彩灯图案),同时其输出读数(十六进制)亦要求通过数码管进行显示。
2.2设计分析
根据设计要求,本系统可以通过四个带时钟使能和异步清零端的上升沿触发的D触发器来完成计数部分,且时钟同步,若四位输出的初始值为“0000”,则经过8个时钟脉冲激励的输出依次为:“0001”(1)、“0011”(3)、“0111”(7)、“1111”(F)、“1110”(E)、“1100”(C)、“1000”(8)、“0000”(0)。这些时刻的输出,一方面将送至发光二极管进行显示;另一方面将送至数码管的七个管腿,并通过七段共阴BCD码显示译码器显示该读数。总的逻辑框图如图1所示。
2.3具体实现
经过总体分析即“顶层”设计之后,就可以利用EDA工具和ISP技术“向下”进行具体的模块设计了。
EDA工具的重要特征之一是支持多种输入方式,如原理图输入方式、状态机输入方式、HDL高级语言输入方式等等。Foundation2.1软件平台对以上三种输入方式都能很好地支持。此部分的设计即以原理图输入方式为例来实现。四位扭环形计数器原理图如图2所示。
实质上是设计一个4~7线的BCD码显示译码器。此部分拟用IEEE通用硬件描述语言VHDL来设计,完成编译和综合后即生成相应的宏模块,设计代码如下:
libraryIEEE;
useIEEE.std_logic_1164.all;
entityHEX2LEDis
port(
HEX:inSTD_LOGIC_VECTOR(3downto0);
LED:outSTD_LOGIC_VECTOR(6downto0)
);
endHEX2LED;
architectureHEX2LED_archofHEX2LEDis
begin
withHEXSELect
LED<=“
“
“
“
“
“
“
“
“
“
“
“
“
“
“
“
endHEX2LED_arch;
发光管的显示只需将Q0~Q3的输出引线直接与四个并行排列的发光二极管管脚一一相连即可。
至此,各部分设计工作基本完成,我们只需将各个部分按连线规则严格进行连接,定义好相应的I/O管脚和信号线后,即可进行逻辑实现与综合了。
EDA提供了良好的逻辑综合与优化功能,它能够将设计人员设计的逻辑级电路图自动地转换为门级电路,并生成相应的网表文件、时序分析文件和各种报表,若设计没有错误,最终可生成可以编程下载的JED文件。
通常,在正式下载前,设计人员还要对设计的电路进行一些校验工作,这些工作即可通过EDA的功能仿真和时序仿真工具来完成。本系统在设定了CLK、CE和CLR信号的情况下,输出QO~Q3的功能仿真图和时序仿真图分别如图3和图4所示。由图4可以看出,此设计的各信号的延迟在2ns左右,基本符合设计指标要求。
当设计人员确定设计工作已基本成功时,即可通过编程电缆下载数据流来进行硬件验证。验证合格后,总体设计工作即圆满完成。
通过此例的设计流程讲述可知,EDA技术及其工具在数字电路系统(包括模拟电路系统)中正发挥着越来越重要的作用,其应用的深度和广度正在向更深层次延伸。
目前,现代集成电路技术的发展使以现场可编程门阵列为代表的大容量可编程逻辑器件的等效门数迅速提高,其规模直逼标准门阵列,达到了系统集成的水平。特别是进入二十世纪90年代后,随着CPLD、FPGA等现场可编程逻辑器件的逐渐兴起,VHDL、Verilog等通用性好、移植性强的硬件描述语言的普及,ASIC技术的不断完善,EDA技术在现代数字系统和微电子技术应用中起着越来越重要的作用。从通常意义上来说,现代电子系统的设计已经再也离不开EDA技术的帮助了。