嵌入式 > 技术百科 > 详情

电子设计自动化中的硬件描述语言

发布时间:2023-04-21 发布时间:
|


摘要:通过一个设计例子介绍了VHDL语言的应用,说明了实现电子电路的电子设计自动化(EDA)过程。

关键词:VHDL;设计程序;实例


1 引言

VHDL是超高速集成电路硬件描述语言。1993 年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本(简称93版)。现在,VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

VHDL具有极强的描述能力,能支持系统行为级、寄存器传输级和门级三个不同层次的设计,这样设计师在Top_Down设计的全过程中均可方便地使用同一种语言。VHDL设计并不十分关心一个具体逻辑是靠何种方式实现的,设计人员不需通过门级原理图描述电路,而是针对目标进行功能描述,把开发者的精力集中到逻辑所实现的功能上,将设计人员的工作重心提高到了系统功能的实现与调试上,只需花较少的精力用于物理实现。由于摆脱了电路细节的束缚,设计人员可以专心于设计方案和构思,使得设计工作省时省力,加快了设计周期。

硬件描述语言(VHDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结合和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入500至1000个门,而利用VHDL语言只需要书写一行 “A=B+C”即可。而且VHDL语言可读性强,易于修改和发现错误。

2 VHDL的主要特点

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。强大的行为描述能力避开了具体的器件结构,是在逻辑行为上描述和设计大规模电子系统的重要保证。VHDL的宽范围描述能力使它成为高层次设计的核心,从而决定了它成为系统设计领域最佳的硬件描述语言,并可进行系统的早期仿真以保证设计的正确性。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。

(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

(6)用VHDL语言编写的源程序便于文档管理,用源代码描述来进行复杂控制逻辑的设计,既灵活方便,又便于设计结果的交流、保存和重用。

(7)VHDL的设计不依赖于特定的器件,方便了工艺的转换。

(8)VHDL是一个标准语言,为众多的EDA 厂商支持,因此移植性好。

3 VHDL的应用实例

本例子介绍的通信方式是PC机通过串行口的 RXD和TXD直接与单片机89C2051通信,然后单片机再与目标器件FPGA通信,这是一种实用的通信方式。设计的程序含与单片机通信的逻辑设计文件,其中应用了与单片机P1端口通信的双向端口 DINOUT 的 INOUT 模式,然后设计了 单片机的通信文件 FSEND.ASM 和 PC 机的通信文件FTEST.C及FTEST.EXE。本设计的功能是将FPGA在实验板上测得的频率 (频率范围1Hz~50MHz)通过单片机89C2051送入PC机,并在屏幕上显示;同时将完成PC机、单片机和FPGA的双向通信的功能。

文件名:FREQTEST.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FREQTEST IS

PORT (CLK, FSIN, P37 : IN STD_LOGIC;

DINOUT : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);

DATAOUT : PROCESS(SEL)

BEGIN

CASE SEL IS

WHEN ''000'' => DINOUT <= DOUT(7 DOWNTO 0); K1 <='0' ; K2 <='0'; K3 <='0';

WHEN ''001'' => DINOUT <= DOUT(17 DOWNTO 8); K1 <='0'; K2 <='0'; K3 <='0';

WHEN ''010'' => DINOUT <= DOUT(23 DOWNTO 16); K1 <='0'; K2 <='0'; K3 <='0';

WHEN ''011'' => DINOUT <= DOUT(31 DOWNTO 24); K1 <='0'; K2 <='0'; K3 <='0';

WHEN ''100'' => DAT <= DINOUT; K1 <='1' ;

WHEN ''101'' => DAT <= DINOUT; K2 <='1' ;

WHEN ''110'' => DAT <= DINOUT; K3 <='1' ;

WHEN ; K3 <='0' ;

END CASE;

END PROCESS;

CLOCK1 <=K1 AND P37 ; CLOCK2 <=K2 AND P37 ; CLOCK3 <=K3 AND P37;

KK1: PROCESS(CLOCK1)

BEGIN

IF CLOCK1' EVENT AND CLOCK1 ='1' THEN

DATA(3 DOWNTO 0)<=DAT(7 DOWNTO 4);

END IF;

END PROCESS;

KK2: PROCESS(CLOCK2)

BEGIN

IF CLOCK2' EVENT AND CLOCK2 = '1' THEN

DATA(7 DOWNTO 4)<=DAT(7 DOWNTO 4);

END IF;

END PROCESS;

KK3: PROCESS(CLOCK3)

BEGIN

IF CLOCK3' EVENT AND CLOCK3 = '1' THEN

DATA(11 DOWNTO 8)<= DAT(7 DOWNTO 4);

END IF;

END PROCESS;

DATAOUT <= DATA ;

END struc;

运用EDA开发系统GW48-CK 进行电路调试:①电路结构选N0.5;②引脚锁定为: P37→25;SEL(0..2)→23,22,21;DINOUT(0..7)→39,47, 48,49,50,51,52,53;③设目录sendfre 中的FREQTEST为工程文件,向目标芯片下载; ④按模式选择键至“5”;⑤在纯DOS下执行sendfre 目录内mcucom目录中的通信文件ftest.exe,再按动实验板的“系统复位键”数秒后, PC机屏幕上将显示FPGA所测得的频率值;⑥用PC机键盘输入几位数字,按回车键,屏幕上将显示最新测得的频率,同时实验板的数码管将显示PC机键盘输入的数字。

4 小结

EDA是以计算机的硬件和软件为基本工作平台集数据库、图形学、图论与拓扑逻辑、计算数学、优化理论等多学科最新成果研制的计算机辅助设计通用软件包。EDA技术是电子技术发展的趋势。利用EDA工具不仅可以代替设计者完成电子系统设计中的大部分工作而且对提高我国电子产品设计制造水平、提高产品质量、增强产品竞争力都有十分重要的意义。

本文摘自《半导体技术》


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
光纤通道的实时数字图像存储