文档介绍:组合电路和时序电路的VHDL基本设计方法分析
摘要:本文通过对二选一多路选择器的、D触发器、一位二进制全加器的设计过程分析,介绍了组合电路和时序电路的VHDL基本设计方法。
关键字:组合电路、时序电路、VHDL设计方法
Abstract :
Key words :
0引言
由于用硬件描述语言对电子线路进行表达和设计是EDA建模和实现技术中最基本好最重要的方法,其他许多方法都是建立在这一基础之上的,因此VHDL的学习对于掌握EDA技术是十分重要的。
多路选择器是典型的组合电路,最简单最常用并最具代表性的时序电路是D触发器,它是现代数字系统中最基本和典型的时序单元和底层文件。故以它们的VHDL表述与设计为例,引出相关的VHDL结构、语句表述、数据规则和语法特点,并加以说明。
组合电路二选一多路选择器的VHDL设计
二选一多路选择器的VHDL描述
其VHDL的完整描述如下:
LIBRARY IEEE;
USE ;
ENTITY mux21a IS
PORT ( a,b:IN BIT;
s:IN BIT;
y:OUT BIT );
END ENTITY mux21a;
ARCHITECTURE one OF mux21a IS
BEGIN
y<=a WHEN s= '0' ELSE b;
END ARCHITECTURE one;
语句结构和语法说明
(1)以关键词ENTITY引导,END ENTITY mux21a结尾的语句部分,称为实体。其中的ENTITY、IS、PORT和END ENRTITY都是描述实体的关键词,在实体描述中必须包含这些关键词。在编辑中,关键词不区分大写和小写。
(2)“mux21a”是实体名,是标记符,具体取名由设计者自定。由于实体名表达的是该设计电路的器件名,所以最好根据相应电路功能来确定,如四位二进制计数器的实体名可取为coun4b。但应注意,不应用数字或中文名定义实体名,也不应用与EDA工具库中已定义好的元件名作为实体名,如or2a
、latch等,且不能用数字起头的实体名。
(3)以关键词ARCHITECTURE引导,END ARCHITECTURE one结尾的语句部分,称为结构体。一般的,一个可综合的、完整的VHDL程序有比较固定的结构。
通过仿真测试可得mux21a 功能时序波形如下图所示:
时序电路D触发器的VHDL设计
D触发器的VHDL描述:
LIBRARY IEEE;
USE ;
ENTITY DFF1 IS
PORT ( CLK:IN STD_LOGIC;
D:IN STD_LOGIC;
Q:OUT STD_LOGIC );
END ;
ARCHITECTURE bhv OF DFF1 IS
SIGNAL Q1:STD_LOGIC;
BEGIN
PROCESS ( CLK,Q1 )
BEGIN
IF CLK'EVENT AND CLK='1'
THEN Q1 <= D;
END IF;
END PROCESS;
Q <= Q1