VHDL硬件描述语言基础 ●简介 ●基本结构 ●基本数据类型 ●设计组合电路 设计时序电路 ●设计状态机 ●大规模电路的层次化设计 e Function and procedure
VHDL硬件描述语言基础 ⚫ 简介 ⚫ 基本结构 ⚫ 基本数据类型 ⚫ 设计组合电路 ⚫ 设计时序电路 ⚫ 设计状态机 ⚫ 大规模电路的层次化设计 ⚫ Function and Procedure
简介一一背景 ●传统数字电路设计方法不适合设计大规模的系 统。工程师不容易理解原理图设计的功能。 ●众多软件公司开发研制了具有自己特色的电路 硬件描述语 Hardware Description Language, HDL),存在着很大的差异,工程师 旦选用某种硬件描述语言作为输入工具,就 被束缚在这个硬件设计环境之中。因此,硬件 设计工程师需要一种强大的、标准化的硬件描 述语言,作为可相互交流的设计环境
简介--背景 ⚫ 传统数字电路设计方法不适合设计大规模的系 统。工程师不容易理解原理图设计的功能。 ⚫ 众多软件公司开发研制了具有自己特色的电路 硬 件 描 述 语 言 ( Hardware Description Language,HDL),存在着很大的差异,工程师 一旦选用某种硬件描述语言作为输入工具,就 被束缚在这个硬件设计环境之中。因此,硬件 设计工程师需要一种强大的、标准化的硬件描 述语言,作为可相互交流的设计环境
简介一一背景 ●美国国防部在80年代初提出了ⅤHSC(Very High Speed Integrated Circuit)计划,其目标之 是为下一代集成电路的生产,实现阶段性的 工艺极限以及完成10万门级以上的设计,建立 项新的描述方法。1981年提出了一种新的 HDL,称之为 VHSIC Hardware Description Language,简称为ⅤHDL,这种语言的成就有 两个方面: ●描述复杂的数字电路系统 ●成为国际的硬件描述语言标准
简介--背景 ⚫ 美国国防部在80年代初提出了VHSIC(Very High Speed Integrated Circuit)计划,其目标之 一是为下一代集成电路的生产,实现阶段性的 工艺极限以及完成10万门级以上的设计,建立 一项新的描述方法。1981年提出了一种新的 HDL,称之为VHSIC Hardware Description Language,简称为VHDL,这种语言的成就有 两个方面: ⚫ 描述复杂的数字电路系统 ⚫ 成为国际的硬件描述语言标准
VHDL的优点 ●用于设计复杂的、多层次的设计。支持设计库 和设计的重复使用 ●与硬件独立,一个设计可用于不同的硬件结构, 而且设计时不必了解过多的硬件细节 有丰富的软件支持VHDL的综合和仿真,从而 能在设计阶段就能发现设计中的Bug,缩短设 计时间,降低成本 ●更方便地向ASIC过渡 VHDL有良好的可读性,容易理解
VHDL的优点 ⚫ 用于设计复杂的、多层次的设计。支持设计库 和设计的重复使用 ⚫ 与硬件独立,一个设计可用于不同的硬件结构, 而且设计时不必了解过多的硬件细节。 ⚫ 有丰富的软件支持VHDL的综合和仿真,从而 能在设计阶段就能发现设计中的Bug,缩短设 计时间,降低成本。 ⚫ 更方便地向ASIC过渡 ⚫ VHDL有良好的可读性,容易理解
VHDL与计算机语言的区别 运行的基础 计算机语言是在CPU+RAM构建的平台上运行 VHDL设计的结果是由具体的逻辑、触发器组成的 数字电路 ●执行方式 计算机语言基本上以串行的方式执行 VHDL在总体上是以并行方式工作 ●验证方式 计算机语言主要关注于变量值的变化 VHDL要实现严格的时序逻辑关系
VHDL与计算机语言的区别 ⚫ 运行的基础 – 计算机语言是在CPU+RAM构建的平台上运行 – VHDL设计的结果是由具体的逻辑、触发器组成的 数字电路 ⚫ 执行方式 – 计算机语言基本上以串行的方式执行 – VHDL在总体上是以并行方式工作 ⚫ 验证方式 – 计算机语言主要关注于变量值的变化 – VHDL要实现严格的时序逻辑关系
VHDL大小写不敏感 eqcomp4 vhd 文件名和实体 名一致 库 eqcomp4 is a four bit equality comparator Library ieee 包 use IEEE. td logic 1164.a f: 实体一 entity egcomp4is port(a, b: in std logic vector(3 downto 0) 每行;结尾 equal out std logic) end egcomp4 关键字end后跟 实体名 构造体一 architecture dataflow of eqcomp44is begin 关键字 begin equal <-=1 when a=b else 0 End dataflow 关键字end后跟 构造体名
--eqcomp4 is a four bit equality comparator Library IEEE; use IEEE.std_logic_1164.all; entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0); equal :out std_logic); end eqcomp4; architecture dataflow of eqcomp4 is begin equal <= ‘1’ when a=b else ‘0’; End dataflow; VHDL 大小写不敏感 eqcomp4.vhd 包 实体 构造体 文件名和实体 名一致 每行;结尾 关键字begin 关键字end后跟 实体名 关键字end后跟 构造体名 库
实体( Entity ●描述此设计功能输入输出端口(Port) ●在层次化设计时,Pot为模块之间的接口 ●在芯片级,则代表具体芯片的管脚 Entity eqcomp4 is port(a, b: in std logic vector(3 downto 0) equal: out std logic end egcomp4 A[3.0 equa B[3.0]
实体(Entity) ⚫ 描述此设计功能输入输出端口(Port) ⚫ 在层次化设计时,Port为模块之间的接口 ⚫ 在芯片级,则代表具体芯片的管脚 A[3..0] B[3..0] equal Entity eqcomp4 is port(a, b: in std_logic_vector(3 downto 0); equal:out std_logic ); end eqcomp4;
实体一一端口的模式 ●输入( Input) ●输出( Output) ●双向( Inout):可代替所有其他模式, 但降低了程序的可读性,一般用于与 CPU的数据总线接口 ●缓冲( Buffer):与 Output类似,但允许 该管脚名作为一些逻辑的输入信号
实体--端口的模式 ⚫ 输入(Input) ⚫ 输出(Output) ⚫ 双向(Inout):可代替所有其他模式, 但降低了程序的可读性,一般用于与 CPU的数据总线接口 ⚫ 缓冲(Buffer):与Output类似,但允许 该管脚名作为一些逻辑的输入信号
Out与 Buffer的区别 ● Entity testl is ● Entity test2 is port(a: in std logic port(a: in std logic b.c: out std logic b: buffer std logic c Out std logic end testl end test2 architecture a of test l is begin architecture a of test2 is b<= not(a) begin c<= b:--Error b<=not(a) end a C<=b end a
Out与Buffer的区别 ⚫ Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b <= not(a); c <= b;--Error end a; ⚫ Entity test2 is port(a: in std_logic; b : buffer std_logic; c: out std_logic ); end test2; architecture a of test2 is begin b <= not(a); c <= b; end a;
结构体( Architecture) ●描述实体的行为 ●结构体有三种描述方式 为描述( behaviora) 数据流描述( dataflow) 结构化描述( structural)
结构体(Architecture) ⚫ 描述实体的行为 ⚫ 结构体有三种描述方式 – 行为描述(behavioral) – 数据流描述(dataflow) – 结构化描述(structural)