VHDL语言快速入门必读

合集下载

VHDL入门教程

VHDL入门教程

VHDL入门教程VHDL(Very High-speed Integrated Circuit HardwareDescription Language)是一种用于设计数字电路的硬件描述语言。

它是IEEE 1076标准中规定的一种语言,广泛应用于数字电路的设计、仿真和综合等领域。

本文将为大家介绍VHDL的基础知识和入门教程。

一、VHDL的基本概念1. 实体(Entity):VHDL代码的最高层次,用于定义模块的输入、输出和内部信号。

2. 架构(Architecture):定义了实体中的各个信号和组合逻辑的行为。

3. 信号(Signal):表示数据在电路中的传输和操作。

4. 进程(Process):定义了组合逻辑的行为,用于描述信号之间的关系。

5. 实体声明(Entity Declaration):用于描述模块的名称、输入、输出和内部信号。

6. 架构声明(Architecture Declaration):用于描述模块的内部逻辑。

二、VHDL的基本语法1.实体声明语法:```entity entity_name isport ( port_list );end entity_name;```其中,entity_name是实体的名称,port_list是实体的输入、输出和内部信号。

2.架构声明语法:```architecture architecture_name of entity_name issignal signal_list;beginprocess (sensitivity_list)begin--逻辑行为描述end process;end architecture_name;```其中,architecture_name是架构的名称,entity_name是实体的名称,signal_list是架构的内部信号,sensitivity_list是触发事件的信号列表。

三、VHDL的基本例子下面以一个简单的4位加法器为例介绍VHDL的编写和仿真流程。

第一部分VHDL语言基础知识

第一部分VHDL语言基础知识

第1部分VHDL语言基础知识第1章概述1.1 电子器件的发展和现状电子技术的发展总是同电子器件的发展密切相关的,由于电子器件的不断更新换代,电子技术得到了飞速发展,当今信息技术被广泛应用在国民经济的方方面面。

多媒体技术的普及、高速宽带网络的建设、数字电视的出现以及与我们日常生活息息相关的各种家用电器,都离不开微处理器、存储器和一些采用行业标准的专用芯片。

这些电子器件的发展经历了从电子管、晶体管、小规模集成电路、中规模集成电路到大规模集成电路和超大规模集成电路几个阶段,其发展趋势是体积越来越小,集成度越来越高。

随着半导体技术的迅速发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担,系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好在自己的实验室里就能设计并制造出适用的ASIC芯片,并且能够得到实际的应用。

使用ASIC完成电子系统的设计,其优点是集成度高、保密性强、可大幅度地减少印刷电路板的面积和接插件、电路性能好并能降低装配和调试费用、更适合较大规模批量生产、降低生产成本。

例如,现在微机中使用的显卡、网卡、数字电视等都是专用的ASIC芯片。

采用ASIC设计的不足之处是一次性的投资大,设计周期一般比较长,不便于以后修改设计,因而近几年在ASIC领域出现了一种半定制电路,即现场可编程逻辑器件FPLD。

目前使用较多的可编程逻辑器是现场可编程门阵列FPGA(field programmable gate array)和复杂可编程逻辑器件CPLD(complex programmable gate array)。

早期使用的可编程器件有PROM、EPROM、E2PROM、PAL、GAL等,这些芯片的容量一般比较小,只能完成简单的数字逻辑功能,这些器件基本上是使用专用的编程器进行装载。

CPLD和FPGA的芯片是在早期使用的PAL和GAL基础上发展起来的,相比早期的可编程器件,现场可编程逻辑器件FPLD的容量大,器件的容量远远大于PAL和GAL,更适合做时序和组合逻辑电路的设计,不但集成度高,而且逐渐向低功耗发展,芯片的使用电压有+5V、+3.3V和+2.5 V几种,有的芯片外部是+5V而内部的工作电压则是+3.3V或+2.5V。

第1章VHDL语言基础

第1章VHDL语言基础
(Bit)、位矢量型(Bit-vector)和整数型(Integer)等。 ➢ 在实用中,端口描述中的数据类型主要有两类:位(BIT)和
位矢量(BIT_VECTOR)。若端口定义为BIT,则其信号值 是一个1位的二进制数,取值只能是0或1;若端口定义为 BIT_VECTOR,则其信号值是一组二进制数。
➢ 在电路中,如果实体代表一个器件符号,则结构体描述了 这个符号的内部行为。当把这个符号例化成一个实际的器 件安装到电路上时,则需用配置语句为这个例化的器件指 定一个结构体(即指定一种实现方案),或由编译器自动选一 个结构体。
1. 结构体的一般语句格式 ARCHITECTURE 结构体名 OF 实体名 IS [说明语句;] BEGIN [功能描述语句;] END [ARCHITECTURE] [结构体名];
1.1 VHDL程序基本结构
一、VHDL程序设计约定 ➢ 语句结构描述中方括号“[ ]”内的内容为可选内容。 ➢ 对于VHDL的编译器和综合器来说,程序文字的大小写是不
加区分的。 ➢ 程序中的注释使用双横线“- -”。 ➢ 源程序命名与实体同名(MAX+plus Ⅱ要求)。
二、VHDL程序设计引例( 74LS00的设计 )
③ 信号赋值语句将设计实体内的处理结果向定义的信号或界面 端口进行赋值。
④ 子程序调用语句用于调用一个已设计好的子程序。
⑤ 元件例化语句对其他的设计实体作元件调用说明,并将此元 件的端口与其他的元件、信号或高层次实体的界面端口进行 连接。
A
A NAND2
Y
Y
B
B
(a)
A1
A NAND2
U1 Y
Y1
B1
B
A2
A NAND2

VHDL入门易懂教程

VHDL入门易懂教程
5
VHDL语言特点 四、VHDL语言特点
1、VHDL具有强大的语言结构,系统硬件描述能 力强、设计效率高;具有较高的抽象描述能力。 如:一个可置数的16位计数器的电原理图:
6
用VHDL描述的可置数16位计数器:
7
2、VHDL语言可读性强,易于修改和发现错误。 3、VHDL具有丰富的仿真语句和库函数,可对 VHDL源代码进行早期功能仿真,有利于大 系统的设计与验证。 4、VHDL设计与硬件电路关系不大。 5、VHDL设计不依赖于器件,与工艺无关 。 6、移植性好。 7、VHDL体系符合TOP-DOWN和CE(并行工程)设计 思想。 8、VHDL设计效率高,产品上市时间快,成本低。 9、易于ASIC实现。
3
三、VHDL的作用 VHDL的作用
1、VHDL打破软、硬件的界限 传统的数字系统设计分为: 硬件设计(硬件设计人员) 软件设计(软件设计人员) VHDL是电子系统设计者和 EDA工具之 间的界面。 EDA工具及 HDL的流行,使电子系统向集 成化、大规模和高速度等方向发展。 美国硅谷约有80%的 ASIC和 FPGA/CPLD 已采用 HDL进行设计。
配置(Configuration)
16
实体(说明) 一、实体(说明)
实体(说明): 定义系统的输入输出端口 语法:
ENTITY <entity_name> IS Generic Declarations Port Declarations END <entity_name>; (1076-1987 version) END ENTITY <entity_name> ; ( 1076-1993 version)
80年代初由美国国防部在实施超高速集成电 路(VHSIC)项目时开发的。 1987年由 IEEE 协会批准为 IEEE 工业标准, 称为 IEEE1076-1987。 各EDA公司相继推出支持VHDL的设计环境。 1993年被更新为 93 标准,即IEEE1076-1993。 进一步提高抽象描述层次,扩展系统描述能力。

VHDL入门

VHDL入门

元件声明
y1 : OUT BIT);
END COMPONENT;
1
COMPONENT or_2

PORT( i3, i4 : IN BIT;

y2 : OUT BIT); END COMPONENT;

COMPONENT xor_2

PORT( a, b : IN BIT;
c : OUT BIT);
END adder;
2、结构体
ARCHITECTURE <结构体名> OF <实体名> IS
[结构体说明部分]; BEGIN <并行处理语句>; END结构体名;
•ARCHITECTURE a OF adder IS •BEGIN •s<=a XOR b XOR cin; •co<=((a XOR b) AND cin) OR (a AND b); •END a;


s ,co : OUT BIT);

图二 实体说明的描述
u2
cin
=1
s
u1
u3 tmp
END adder; ARCHITECTURE a OF adder IS BEGIN
a
&2
b
=1 tmp
1 u4
u5

&
≥1
co
s<=a XOR b XOR cin;
构 体
图三 1位全加器的逻辑图
co<=((a XOR b) AND cin) OR (a AND b);
中,通过调用库 中的元件或已设 计好的模块来对 当前的设计进行
u5:or_2 PORT MAP (tmp2,tmp3,co); 描述。

VHDL经典教程(精简快速入门版)

VHDL经典教程(精简快速入门版)

3 VHDL语言VHDL: VHSIC Hardware Description Language.3.1 VHDL语言基础3.2 VHDL基本结构3.3 VHDL语句3.4 状态机在VHDL中的实现3.5 常用电路VHDL程序3.6 VHDL仿真3.7 VHDL综合HDL----Hardware Description Language一种用于描述数字电路的功能或行为的语言。

目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。

优点:HDL设计的电路能获得非常抽象级的描述。

如基于RTL(Register Transfer Level)描述的IC,可用于不同的工艺。

HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。

HDL设计的电路类似于计算机编程。

常用的HDL语言:VHDL 、Verilog HDLØVHDL 是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC 计划提出的描述语言;ØIEEE 从1986年开始致力于VHDL 标准化工作,融合了其它ASIC 芯片制造商开发的硬件描述语言的优点,于93年形成了标准版本(IEEE.std_1164)。

Ø1995年,我国国家技术监督局推荐VHDL 做为电子设计自动化硬件描述语言的国家标准。

VHDL 概述:VHDLVHSIC Hardwarter Description Language Very High speed integrated circuit VHSICVHDL优点:Ø覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言;ØVHDL语言具有良好的可读性,既可以被计算机接受,也容易被人们所理解;ØVHDL语言可以与工艺无关编程;ØVHDL语言已做为一种IEEE的工业标准,便于使用、交流和推广。

VHDL语言的不足之处:设计的最终实现取决于针对目标器件的编程器,工具的不同会导致综合质量不一样。

VHDL语言教程

VHDL语言教程

VHDL语言教程VHDL是一种硬件描述语言,用于描述数字电路和系统,并进行硬件的设计和仿真。

它被广泛应用于数字电路设计、嵌入式系统开发和可编程逻辑控制器等领域。

本教程将介绍VHDL语言的基本概念和语法,帮助您了解和学习这门强大的硬件描述语言。

一、VHDL概述VHDL是Very High Speed Integrated Circuit Hardware Description Language的缩写,意为高速集成电路硬件描述语言。

它是一种硬件描述语言,用于描述数字电路和系统。

与传统的电路设计方法相比,使用VHDL可以更加方便、高效地进行电路设计和测试。

1.VHDL的起源和发展VHDL最早由美国国防部为了解决数字电路设计复杂、效率低下的问题而研发。

后来,VHDL成为了一种IEEE标准(IEEE1076)并被广泛应用于数字电路设计和仿真。

2.VHDL的优点VHDL具有以下几个优点:-高级抽象:VHDL提供了一种高级描述电路的方法,使得设计者能够更加方便地表达复杂的电路结构和行为。

-可重用性:VHDL支持模块化设计,使得设计者可以将电路的不同部分进行抽象和封装,提高了电路的可重用性。

-高效仿真:VHDL可以进行高效的电路仿真和测试,有助于验证电路设计的正确性和可靠性。

-灵活性:VHDL可以应用于各种不同类型和规模的电路设计,从小规模的数字逻辑电路到大规模的系统级设计。

二、VHDL语法和基本概念1.VHDL的结构VHDL程序由程序单元(unit)组成,程序单元是VHDL描述的最小单元。

程序单元包括实体(entity)、结构(architecture)、过程(process)和包(package)等。

2. 实体(entity)实体是VHDL描述电路模块的一个部分,包括输入输出端口、信号声明和实体标识符等。

3. 结构(architecture)结构描述了实体的具体电路结构和行为,包括组件声明、信号赋值和行为描述等。

VHDL 入门

VHDL 入门

第 6 章 VHDL 入门
结构体由结构体名称、信号定义语句、结构和功能描述语 句构成,一般有如下两种格式。
格式1: ARCHITECTURE 结构体名 OF 实体名 IS
说明语句 BEGIN
结构描述语句 END ARCHITECTURE [结构体名]; 格式2: ARCHITECTURE 结构体名 OF 实体名 IS
第 6 章 VHD为 “datawidth”的二输入与门实体定义。
[例6.3] ENTITY bus_and IS GENERIC (datawidth:INTEGER:=8);
PORT ( bus_a:IN BIT_VECTOR(datawidth-1 DOWNTO 0); bus_b:IN BIT_VECTOR(datawidth-1 DOWNTO 0); bus_c:OUT BIT_VECTOR(datawidth-1 DOWNTO 0)
或者 ENTITY [实体名] IS [GENERIC(类属参数说明)]; [PORT(端口说明)]; END [实体名];
第 6 章 VHDL 入门
以上所示的格式中,前者为IEEE VHDL’93标准,后者为 IEEE VHDL’87标准,建议采用IEEE VHDL’93标准的实体定 义格式。
实体定义中“ENTITY”、“IS”、“GENERIC”、“PORT” 和“END ENTITY”是定义实体的关键词,实体定义从 “ENTITY [实体名] IS”开始,至“END ENTITY [实体名];” 结束。“;”符号表示一句语句的结束,是不可缺少和省略的, 否则在编译时会报错,导致编译失败。VHDL对字母不区分大 小写,即“ENTITY”与“entity”是完全一样的。例6.2是一个简 单实体定义的例子。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一·1.数据类型BIT与STD_LOGIC有什么区别。

BIT类型的取值只能是0或1,没有不定状态X,也没有高阻态。

STD_LOGIC类型可以有9种不同的值,包括U-初始值,X-不定,0-0,1-1,Z-高阻态,W-弱信号不定,L-弱信号0,H弱信号1.‘—’不可能情况。

2.信号和变量的异同。

信号是全局量,只要在结构体中已经定义,就可以在结构体中的所有地方使用,信号的赋值符号是”<=”,信号带入时可以附加延时,信号实际带入过程和带入语句的处理时分开进行的。

变量是局部量,只能在进程,子程序内部定义和使用,变量的赋值符号是“:=”,变量的赋值是立即执行的,不能附加延时。

3.VHDL语言的基本顺序语句和并行语句有哪些?双性语句:信号带入语句顺序语句:WHAT语句,断言语句,变量赋值语句,IF语句,CASE语句,LOOP语句,NEXT语句,EXIT语句,过程调用语句,NULL语句。

并行语句:进程(PROCESS)语句,条件带入语句,选择信号带入语句,并发过程调用语句,块语句。

4.用VHDL语言进行硬件设计的流程是什么?1.分析实际的需求2确定芯片的功能3.用VHDL 语言描述改元件4.编译,如果有错误修改后再编译直至编译通过。

5.仿真,如果仿真不符合设计要求,修改程序直至仿真通过。

6.测试7.综合,8.下载到实际的芯片上。

5.基本的硬件描述语言的种类有哪些?美国国防部开发的VHDL。

Verilog公司开发的Verilog-HDL.日本电子工业振兴协会开发的UDL/I语言。

6.VHDL语言中包含的库的种类有哪些?库:是经编译后的数据的集合,它存放包集合定义,实体定义,构造体定义,和配置定义。

库的种类:1.IEEE库,2.STD库,3.面向ASIC 的库,4.WORK库,5.用户定义库7.IEEE库中所包含的基本类型转换函数有1.包含程序所用的库LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;2.实体声明ENTITY fp ISPORT();END ENTITY fp;3.结构体,具体功能的实现ARCHITECTURE a OF fp ISBEGINEND ARCHITECTURE a;9.VHDL的程序子结构有哪些?进程(PROCESS)顺序语句,块(BLOCK)并行语句,过程(PROCEDURE)顺序语句,函数(顺序语句)。

10.简述when-else和if-else的区别?If-else是顺序语句所以只能在进程内部使用,可以没有else语句,可以进行嵌套。

有自身值带入的描述,能组成锁存电路。

When-else是并行语句,在结构体内使用,必须要有else语句,不能进行嵌套,没有自身值带入的描述,不能组成锁存电路。

11.什么是ASIC,ASIC的特点是什么?ASIC是Application Specific Integrated Circuit 的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。

ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。

12.逻辑电平有哪些?逻辑电平:有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS等。

·其中TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列(5V TTL和5V CMOS)、3.3V 系列,2.5V系列和1.8V系列。

·5V TTL和5V CMOS逻辑电平是通用的逻辑电平。

13.TTL电平和CMOS电平可以互联吗?数字电路中TTL电平是个电压范围,规定输出高电平>2.4V,输出低电平<0.4V。

在室温下,一般输出高电平是3.5V,输出低电平是0.2V。

CMOS电平在不同的电路中是0v-5v或者0v-12v。

所以可以用CMOS电平驱动TTL电平器件,但是TTL 电平驱动CMOS电平器件时须加上拉电阻。

二·用VHDL语言描述给定电路,或写出给定电路的功能或输出。

三.程序改错。

四.注释程序。

五.程序同功能语句替换。

六.元件例化连接器件。

程序例子:IF语句:(1)IF(sel=’0’)THENy<=’1’;END IF;(2)IF (sel=’0’)THENy<=’0’;ELSEy<=’1’;END IF;(3)IF(sel=”00”)THENy<=”01”;ELSIF(sel=”01”)THENy<=”10”……ELSEy<=”11;END IF;CASE语句:CASE sel ISWHEN “00”=>y<=”00”;WHEN “01”=>y<=”10”;WHEN “11”=>y<=”11”;END CASE;FOR语句:FOR i IN 0 TO 7 LOOPtmp:=tmpXORa(i);END LOOP; WHILE语句:WHILE(i<8)LOOPtmp:=tmpXORa(i);i:=i+1;END LOOP;WHEN-ELSE语句(类似if-else):q<=i0 WHEN sel=”00” ELSEi1WHEN sel=”01” ELSEi2WHEN sel=”10” ELSEi3 WHEN sel=”11” ELSE‘X’;WITH-SELECT语句:(类似CASE语句)WITH sel SELECTq<=i0 WHEN “00” ,i1 WHEN “01” ,i2 WHEN “10” ,i3 WHEN “11” ,‘X’WHEN OTHERS ;分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk: IN STD_LOGIC;fp1024,fp512,fp64,fp4,fp1: OUT STD_LOGIC); END ENTITY fp;ARCHITECTURE a OF fp ISSIGNAL buf:STD_LOGIC_VECTOR(9 DOWNTO 0); BEGINfp1<=buf(9);fp4<=buf(7);fp64<=buf(3);fp512<=buf(0);fp1024<=clk;PROCESS(clk) ISBEGINIF(clk'EVENT AND clk='1') THENIF(buf="1111111111") THEN LIBRARY IEEE;报时电路USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bs ISPORT(min,sin: IN STD_LOGIC_VECTOR(7 DOWNTO 0); clk,bs512,bs1024: IN STD_LOGIC;bsout: OUT STD_LOGIC);END ENTITY bs;ARCHITECTURE a OF bs ISBEGINPROCESS(clk) ISBEGINIF(clk'EVENT AND clk='1') THENIF(min="01011001") THENCASE sin ISWHEN "01010000"=>bsout<=bs512;WHEN "01010010"=>bsout<=bs512;WHEN "01010100"=>bsout<=bs512;WHEN "01010110"=>bsout<=bs512;WHEN "01011000"=>bsout<=bs512;WHEN "01011001"=>bsout<=bs1024;WHEN OTHERS=>bsout<='0';END CASE;END IF;END IF;END PROCESS; END ARCHITECTURE a;buf<="0000000000";ELSEbuf<=buf+'1';END IF;END IF;END PROCESS;END ARCHITECTURE a;元件例化LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count60 ISPORT(clkin,en,res: IN STD_LOGIC;bs0,bs1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cyout: OUT STD_LOGIC);END ENTITY count60;ARCHITECTURE count OF count60 ISCOMPONENT count10 ISPORT(clk,enable,reset: IN STD_LOGIC;b0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cy: OUT STD_LOGIC);END COMPONENT;SIGNAL count4:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL clk1,cy1:STD_LOGIC;BEGINbs1<=count4;cyout<=cy1;u0:count10 PORTMAP(clk=>clkin,cy=>clk1,reset=>res,enable=>en,b0=>bs0) ;PROCESS(clk1,res,en) ISBEGINIF(res='0') THENcount4<="0000";ELSIF (clk1'EVENT AND clk1='1') THENIF(en)='1' THENIF(count4="0110") THENcount4<="0000";cy1<='1';ELSEcount4<=count4+'1';cy1<='0';END IF;END IF;END IF;END PROCESS;END ARCHITECTURE count;。

相关文档
最新文档