[工学]VHDL.docVIP

  • 7
  • 0
  • 约4.29万字
  • 约 49页
  • 2018-02-13 发布于浙江
  • 举报
[工学]VHDL

第四章 VHDL简明教程 §4.1 VHDL基本结构与语法 ·VHDL是VHSIC Hardware Description Language的缩写 VHSIC—Very High Speed Integrated Circuit(1982年) 由美国国防部(DOD)制定,以作为各合同商之间提交复杂电路设计文档的一种标准方案 1987年被采纳为IEEE 1076标准 1993年被更新为IEEE 1164标准 HDL 的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比,机器码好比晶体管/MOS管;汇编语言好比网表;则HDL语言就如同高级语言,VHDL在语法和风格上类似与现代高级编程语言,如C语言。但要注意,VHDL毕竟描述的是硬件,它包含许多硬件特有的结构。 现在VHDL被广泛用于: 电路设计的文档记录 设计描述的逻辑综合 电路仿真 采用VHDL及自顶向下方法在大型数字系统设计中被广泛采用。在设计中你可采用较抽象的语言(行为/算法)来描述系统结构,然后细化成各模块,最后可借助编译器将VHDL描述综合为门级。 本教程仅对用于CPLD/FPGA设计描述的VHDL语言作一简单说明。其设计过程一般如下: 1. 代码编写; 2. 由综合器(如Synplify,Synopsys等)综合成门级网表; 3. 前仿真/功能仿真; 4. 布局/布线至某一类CPLD/FPGA中; 5. 后仿真/时序仿真。 4.1.1 VHDL的组成 一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个或全部: 程序包(Package); 实体(Entity); 结构体(Architecture). 其各自作用如下图所示: 一个完整的VHDL设计必须包含一个实体和一个与之对应的结构体。一个实体可对应多个结构体,以说明采用不同方法来描述电路。 以下以具有异步清零、进位输入/输出的四位计数器为例,讲解VHDL的基本构件:以下为此计数器的VHDL代码:(黑体为关键字) library ieee; --库,程序包调用 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY cntm16 IS --实体 PORT ( ci : IN std_logic; nreset : IN std_logic; clk : IN std_logic; co : out std_logic; qcnt : buffer std_logic_vector(3 downto 0) --此处无;号 ); END cntm16; ARCHITECTURE behave OF cntm16 IS --结构体 BEGIN co=1 when (qcnt=1111 and ci=1) else 0; PROCESS (clk,nreset) --进程(敏感表) BEGIN IF(nreset=0) THEN qcnt=0000; ELSIF (clkEVENT AND clk = 1) THEN if(ci=1) then qcnt=qcnt+1; end if; END IF; --end if _reset END PROCESS; END behave; *注:基本的标识符由字母、数字以及下划线组成,且具有如下特征: 第一个字符必须为字母; 最后一个字符不能是下划线; 不允许连续2个下划线。 最长32个字符,不区分大小写;不能和VHDL的保留字相同。 各完整语句均以“;”结尾,以“--” 开始的语句为注释语句,不参与编译。 下面将分别对程序包,实体,结构体做细致说明。 4.1.2 实体(Entity) VHDL表达的所有设计均与实体有关,实体是设计中最基本的模块。设计的最顶层是顶层实体。如果设计分层次,那么在顶级实体中将包含较低级别的实体。 实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称为端口模式,同时,实体中还定义他们的数据类型。 实体的格式如下: entityentity_name实体名is port port list for your design,列出设计的输入/输出

文档评论(0)

1亿VIP精品文档

相关文档