1、可编程逻辑器件应用,主讲人:刘文怡,第五讲 VHDL程序的基本结构,VHDL语言设计的基本单元及其构成 结构体的子结构描述 包集合、库及配置要求: 掌握硬件描述语言的基本框架结构; 了解硬件描述语言的库、程序包和配置;,前节内容回顾,EDA,CPLD,FPGA,HDL,VHDL VHDL,VERILOG,AHDL FPGA芯片公司 Altera, Xilinx, Microsemi (Actel), lattice FPGA,CPLD,单片机,DSP,ARM,如果把这个电路做成一个元件,别人使用的时候,只需知道两件事: 一是封装!二是功能!,漂亮的程序(回顾),Fengzhuang_kaish
2、iport ( IN1:in ;IN2:in ;IN3:in ;IN4:in ;OUT4:out ) Fengzhuang_jieshuGongneng_kaishisignal T1,T2;OUT4 = T1 or T2;T2 = IN3 and IN4;T1 = IN1 and IN2; Gongneng_jieshu,1、为了用起来像个函数的样子,不妨加个port关键词,把输入输出引脚象参数一样排列起来。 2、很好地表达了4个输入引脚,1个输出引脚。 3、提供给别人调用。,1、内部功能实现的细节 2、T1、T2似乎有点奇怪,哪来的? 3、那我们也规定先定义,后使用!,Library IE
3、EE;Use IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(d0,d1,sel:in bit;q:out bit); END mux;,Architecture dataflow of mux issignal tmp1,tmp2,tmp3:bit; Begintmp1=d0 and sel;tmp2=d1 and (not sel);tmp3=tmp1 or tmp2;q=tmp3; End dataflow;,VHDL语言如何做的?,一个完整的VHDL语言程序通常包含5个部分:库 (Library) 包集合 (Package)实体 (Entity)结构
4、体 (Architecture)配置 (Configuration),必备部分,VHDL程序的基本构成,实体: 描述所设计系统的外部接口信号,是可见的; 结构体:描述系统内部的结构和行为,是不可见的; 配置: 选取所需单元组成系统设 计的不同版本; 包集合:存放各种设计模块都能共享的数据类型、 常数、子程序和函数等; 库: 存放已经编译的实体、结构体、包集合和 配置。,VHDL程序的基本单元解释,实体声明,实体声明语法:ENTITY 实体名 IS类属参数说明;端口说明;END 实体名;举例: ENTITY mux ISPORT(d0,d1,sel:IN BIT;q:OUT BIT );END mux;,实体的声明,实体名必须与文件名相同,否则编译时会出错。 实体用于定义电路的输入输出引脚,但并不描述电路的具体结构和实现的功能。 大小写不敏感。,实体声明注意事项,实体的类属参数说明(了解),类属参数说明是实体说明中的可选项,必须放在端口说明之前,用于指定参数, 如端口大小、总线宽度、时间等; 其一般书写格式为: GENERIC ( 常数名:数据类型 :设定值 ,); 举例:GENERIC(m:TIME:=1 ns);这个参数说明是指在VHDL程序中,结构体内的参数m的值为1ns。,