数字电路与系统 VHDL语言
29
ENTITY rsff IS PORT (set,reset: IN BIT;q,qb:BUFFER BIT); END rsff ; ARCHITECTURE netlist OF rsff IS COMPONENT nand2 PORT ( a,b:IN BIT;c:OUT BIT) END COMPONENT; BEGIN U1: nand2 PORT MAP(a=>set,b=>qb,c=>q); U2: nand2 PORT MAP(a=>reset,b=>q,c=>qb); END netlist;
实体(Entity)、构造体(Architecture)、配
置(Configuration)、包集合(Package)、 和库(Library)5部分。 ※实体:描述所设计的系统的外部接口信号; ※构造体:描述系统内部的结构和行为,即电路 的具体描述; ※包集合:存放各设计模块都能共享的数据类型、 常数和子程引脚的名称,通常用一
个或几个英文字母,或者用英文字母加数字命
名。如d0,d1,sel等。 ②模式:定义外部引脚的信号方向是输入、输出 等。
21
端口模式
模 式 IN OUT 含 义 输入 输出(构造体内部不能再使用)
INOUT BUFFER
LINKAGE
双向 输出(构造体内部可再使用)
(1)并发描述(CONCURRENT)语句 ①进程(PROCESS)语句
②块(BLOCK)语句※ ③赋值语句
例11.6.7 四选一数据选择器的实现。
例11.6.8 四选一数据选择器的实现。 ④生成(GENERATE)语句※
5
(2)顺序描述(SEQUENTIAL)语句
①条件(IF)语句 用IF 语句实现例11.6.8 四选一数据选择器。 ②开关(CASE)语句 用CASE 语句实现例11.6.8 四选一数据选择器。
31
4.包集合(Package) 用来单纯地罗列VHDL语言中所要用到的信号、常 数、数据类型、元件语句、函数和过程等。它 是一个可编译的设计单元。 PACKAGE 包集合名 IS [说明语句] END [包集合名] ;-- 包头 PACKAGE BODY 包集合名 IS [说明语句] END [包集合名] ;--包体
q <=(d0 AND sel) OR ( NOT sel AND d1); END dataflow;
28
3.配置(Configuration) 配置语句描述层与层之间的连接关系以及实体与 构造体之间的连接关系。常用于仿真。 CONFIGURATION 配置名 OF 实体名 IS 语句说明
END [配置名];
2
2.构造体(Architecture) 例3 ARCHITECTURE behaviorOF mux IS 例4 ENTITY mux2 IS 3.配置(Configuration) 例11.6.3 关于RS触发器的实例。 4.包集合(Package) 例11.6.4 关于包集合的实例。 5.库(Library) 例5 LIBRARY IEEE;
11
在行为描述阶段并不真正考虑实际的操作、算法、
用什么逻辑电路来实现,其目的是通过对系 统行为描述的仿真来发现设计中存在的问题, 检查该数学模型能否达到系统设计规格书的 要求。 2.RTL描述(寄存器传输描述或数据流描述)
系统只有采用RTL方式进行描述,才能导出系
统的逻辑表达式,才能进行逻辑综合,从 而得到具体的逻辑器件。
17
BEGIN
IF(clr=‘0’)THEN
i:=0; ELSE IF( clk’EVENT AND clk=‘1’)THEN IF (i=15)THEN i:=0; ELSE i:=i+1; END IF; END IF;
18
END IF; q<=CONV_STD_LOGIC_VECTOR(i,4);
3
五、子程序(Subprogram)
1.函数(Function) 例11.6.5 函数举例--返回两数中的较小数。 2.过程(Procedure)
例11.6.6 过程举例—向量转换成整数类型。
六、VHDL编程基础
1.VHDL中预定义的基本词法元素 2.数据对象和数据类型 3.预定义属性
4
4.运算符(Operator) 5.VHDL常用语句
END logic;
33
PACKAGE BODY logic IS FUNCTION Invert (input:three_level_logic) RETURN three_level_logic IS BEGIN CASE input IS WHEN „0‟ => RETURN „1‟; WHEN „1‟ => RETURN „0‟; WHEN „Z‟ => RETURN „Z‟; END CASE; END Invert; END logic;
10
二、VHDL的发展概况
1.IEEE1076-1987(VHDL-87) 2.IEEE1164-1993(VHDL-93) VHDL-93相对于VHDL-87没有什么大变化,主要是 增加了针对VHDL模型的新的VHDL命令和属性。
三、用VHDL设计硬件电路的过程
1.行为描述 :对整个系统的 数学模型进行描述。
[构造体说明]
BEGIN 构造体语句 END [构造体名]; (1)构造体名的命名:通常用behavior(行为), dataflow(数据流)、rtl(寄存器传输)或者
structural(结构)命名 。
26
(2)构造体说明:用于对构造体内部所使用的信号、
常数、数据类型和函数等进行定义。
例3 ARCHITECTURE behavior OF mux IS
不指定方向,无论哪一个方向都可连接, 只用在文档中。
注:OUT允许对应多个信号,而BUFFER只允许 对应一个信号。
22
③类型指定:在逻辑电路设计中,常用BIT和
BIT_VECTOR两种。
例2 用VHDL描述一个二选一数据选择器。
d0
&
1 &
≥1
q
d1
sel
二选一数据选择器的电原理图
23
ENTITY mux2 IS GENERIC (m:TIME:=1ns); PORT(d0,d1,sel:IN BIT; q:OUT BIT); END mux2; --实体。 ARCHITECTURE connect OF mux2 IS SIGNAL temp:BIT; BEGIN PROCESS (d0,d1,sel) VARIABLE temp1,temp2,temp3:BIT;
32
例11.6.4 关于包集合的实例。
PACKAGE logic IS
TYPE three_level_logic IS („0‟,‟1‟,‟Z‟);
CONSTANT Unknow_value:three_level_logic:=„0‟;
FUNCTION Invert (input: three_level_logic) RETURN three_level_logic ;
七、VHDL语言构造体的描述方式
1.行为描述方式
2.寄存器传输(RTL)描述方式(数据流描述方式) 例11 PROCESS (clk1,clk2)
例12 PROCESS (clk)
7
3.结构化描述方式 例13 用VHDL描述一个二选一数据选择器。
八、用VHDL设计电路
1.编码器和译码器 (1)3位二进制编码器 (2)8-3线优先编码器74148 (3)2-4线译码器 2. 数据选择器 3. 加法器
12
3.逻辑综合 利用逻辑综合工具,将RTL描述的程序转换成用
基本逻辑元件(宏单元)表示的文件(门级
网表、原理图)。即把布尔函数转换为门并
实现最小化。
13
规格设计
行为级描述 行为级仿真
RTL级描述
RTL级仿真 逻辑综合
门级仿真、定时检查
输出门级网表
用VHDL设计系统硬件的过程
14
四、VHDL的基本构件
END PROCESS; END ttl; --构造体。
19
1.实体(Entity) ENTITY 实体名 IS [类属参数说明] 端口说明 END [实体名]; (1)类属参数说明:用于指定参数。
(2)端口说明
PORT([SIGNAL]信号名{,信号名}:[模式] 类型指定;
[SIGNAL]信号名{,信号名}:[模式] 类型指定);
34
LIBRARY IEEE;--打开STD_LOGIC_1164包所在的库 USE IEEE.STD_LOGIC_1164.ALL;
--调用包中的所有项 USE WORK.logic.Unknow_value; --使用包中的Unknow_value项 USE WORK.logic.ALL; --使用包中的所用项
南京邮电大学
数字电路与系统
光电工程学院 电子电路教学中心
1
第六节 VHDL语言
一、硬件描述语言(HDL) 二、VHDL的发展概况 三、用VHDL设计硬件电路的过程 四、VHDL的基本构件
例1 用VHDL描述一个具有异步清零的4位计数器。
1.实体(Entity) 例2 用VHDL描述一个二选一数据选择器。
SIGNAL sel : BIT;
… …
27
BEGIN
END behavior; 因为信号是供内部连接用的,故没有也不需要方 向的说明。
(3)构造体语句:在构造体内的语句都是并发执行 的。 例4 ENTITY mux2 IS PORT(d0,d1,sel:IN BIT; q:OUT BIT); END mux2; ARCHITECTURE dataflow OF mux2 IS BEGIN
vhdl基本语法 ifdef
VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统。
它是由美国国防部(DOD)于20世纪80年代初期的VHSIC(Very High Speed Integrated Circuits)项目中开发的。
VHDL的基本语法包括一些常用的关键字和结构,其中ifdef是其中之一。
ifdef是VHDL中的一个条件编译指令,用于根据给定的条件来判断是否包含某段代码。
在VHDL中,ifdef语句的基本语法如下:```vhdl`ifdef condition-- code to be included if condition is true`else-- code to be included if condition is false`endif```在上面的代码中,condition是一个条件表达式,可以是一个参数、宏定义或者其他已经定义过的条件。
如果condition为真,则会编译`ifdef和`endif之间的代码;如果condition为假,则会编译`else和`endif之间的代码。
使用ifdef可以让我们根据不同的条件来控制代码的编译和包含,这在一些复杂的项目中非常有用。
下面是使用ifdef的一个简单示例:```vhdl`ifdef DEBUGreport "Debug mode is enabled";`elsereport "Debug mode is disabled";`endif```在上面的代码中,如果DEBUG宏被定义了,那么report语句"Debug mode is enabled"将被编译进去;否则将编译进去"Debug mode is disabled"。
除了`ifdef语句外,VHDL还提供了一些其他的条件编译指令,如`ifndef(如果给定条件为假则编译)、`elsif(如果前面的条件为假则继续判断下一个条件)、`elsif和`endif。
VHDL语言介绍
VHDL语言介绍VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路的结构和行为。
它是一种高级编程语言,用于描述数字系统中的硬件功能。
VHDL是一种被广泛应用于数字系统设计的硬件描述语言,它可以用于描述数字系统的结构和功能,并且允许进行仿真、综合和验证。
VHDL最初是由美国国防部(DoD)为了应对不同供应商生产的不同硬件之间互通性的问题而开发的。
它提供了一种用于描述数字电路的方法,可以在不同供应商的工具之间进行交换。
VHDL已成为一种行业标准,在数字系统设计领域被广泛应用。
VHDL的语法类似于Ada编程语言,它使用关键字、运算符和数据类型来描述数字系统中的硬件元素。
VHDL中的关键概念包括实体(entity)、架构(architecture)和过程(process)。
实体描述了数字系统的接口和功能,架构描述了数字系统的内部结构和行为,而过程描述了数字系统中的操作和控制。
VHDL主要有两种用途,一是用于模拟和验证数字系统的功能,二是用于综合数字系统的设计,生成实际的硬件电路。
在模拟和验证阶段,设计师可以使用VHDL描述数字系统的功能,并通过仿真工具对其进行验证。
在综合阶段,设计师可以使用VHDL描述数字系统的结构,并通过综合工具生成对应的硬件电路。
VHDL的优点在于其强大的表达能力和灵活性。
设计师可以使用VHDL描述各种复杂的数字系统,包括处理器、通信接口、存储器等。
VHDL还提供了丰富的数据类型和运算符,使设计师可以轻松地描述数字系统中的各种操作。
除了描述数字系统的结构和行为,VHDL还提供了丰富的标准库和模块化编程的方法。
设计师可以使用标准库中提供的各种功能模块来加速开发过程,并且可以将自己设计的模块封装成库以便重复使用。
VHDL还支持面向对象的设计方法,设计师可以使用面向对象的技术来组织和管理复杂的数字系统。
通过使用面向对象的方法,设计师可以将数字系统分解成多个模块,每个模块都有自己的接口和功能,并且可以通过继承和复用来简化设计过程。
vhdl语言
VHDL语言VHDL(VHSIC Hardware Description Language)是用于描述数字电路和系统的硬件描述语言,是一种标准化的硬件描述语言,广泛应用于数字电路设计和电子系统设计领域。
VHDL语言是一种强大的工具,可以帮助工程师描述复杂的数字电路,并进行仿真和综合。
它可以描述电路的结构、功能和时序行为,是一种形式化的语言,能够准确地描述电路的行为特性,有助于工程师在设计阶段发现和解决问题。
VHDL语言的基本概念实体(Entity)•实体描述了电路的接口和功能,可以看作是一种抽象的模块。
•实体中定义了输入输出端口,以及对应的信号类型和位宽。
•实体可以包含多个体系结构(Architecture)。
体系结构(Architecture)•体系结构描述了实体的具体实现,定义了实体的行为。
•体系结构中包含了处理逻辑、时序行为以及信号的赋值。
•体系结构可以描述电路的功能和行为。
信号(Signal)•信号是VHDL语言中的基本数据类型,用于在电路中传递信息。
•信号可以是标量(Scalar)或矢量(Vector),可以是时序或组合。
•信号的赋值可以是同步的或异步的。
过程(Process)•过程描述了VHDL中的行为,通常用于描述组合逻辑或时序逻辑。
•过程中可以包含逻辑运算、条件语句、循环语句等。
•过程中的代码在仿真或综合时会被执行。
VHDL语言的应用VHDL语言主要用于数字电路设计、电子系统设计、FPGA设计等领域。
工程师可以使用VHDL语言描述数字电路的结构和行为,进行仿真和综合,快速验证设计的正确性。
VHDL语言的应用领域包括但不限于:•数字电路设计•通信系统设计•控制系统设计•图像处理系统设计•嵌入式系统设计VHDL语言在电子设计领域具有广泛的应用前景,可以帮助工程师快速高效地设计数字电路系统,并满足不同应用场景的需求。
总结VHDL语言是一种强大的硬件描述语言,可以帮助工程师描述数字电路的结构和行为,进行仿真和综合,快速验证设计的正确性。
VHDL语言实现数字电路设计
VHDL语言实现数字电路设计数字电路是由逻辑门、寄存器以及其他数字组件组成的电子系统,用于处理和传输数字信号。
VHDL(Very High-Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统。
通过使用VHDL语言,我们可以实现数字电路的设计,从而满足各种需求。
VHDL语言提供了一种结构化的设计方法,允许设计者描述硬件电路的结构、功能以及时序行为。
以下是一些常见的数字电路设计任务,以及如何使用VHDL语言来实现它们。
1. 门电路设计门电路是最简单的数字电路之一,由逻辑门组成。
使用VHDL语言,我们可以通过描述逻辑门的输入和输出来实现门电路的设计。
例如,我们可以使用VHDL语言描述一个与门:```vhdlentity AND_gate isport (A, B : in bit;Y : out bit);end entity AND_gate;architecture dataflow of AND_gate isbeginY <= A and B;end architecture dataflow;```在这个例子中,我们定义了一个输入端口A和B,以及一个输出端口Y。
在architecture部分,我们使用VHDL语言描述了Y的逻辑值为A和B的逻辑与。
2. 时序逻辑电路设计时序逻辑电路是根据时钟信号进行操作和状态转换的电路。
使用VHDL语言,我们可以描述时序逻辑电路的行为和状态变化。
例如,我们可以使用VHDL语言描述一个触发器:```vhdlentity D_flip_flop isport (D, CLK : in bit;Q : out bit);end entity D_flip_flop;architecture behavior of D_flip_flop issignal Q_temp : bit;beginprocess(CLK)beginif CLK'event and CLK = '1' thenQ_temp <= D;end if;end process;Q <= Q_temp;end architecture behavior;```在这个例子中,我们定义了一个输入端口D和CLK,以及一个输出端口Q。
VHDL
1.3 VHDL的作用
HDL打破软、硬件的界限 传统的数字系统设计分为:
硬件设计(硬件设计人员)
软件设计(软件设计人员) 是硬件设计者和 EDA工具之间的界面
EDA工具及 HDL的流行,使电子系 统向集成化、大规模和高速度等方向发 展。 美国硅谷约有80%的 ASIC和 FPGA/CPLD已采用 HDL进行设计。
一般情况下 USE定义区的格式写成
LIBRARY IEEE; USE IEE.STD_LOGIC_1164.ALL; USE IEE.STD_LOGIC_ARITH.ALL; USE IEE.STD_LOGIC_UNSIGNED.ALL;
2.2 实体声明
实体声明:定义系统的输入输出端口
语法:
ENTITY <entity_name> IS Generic Declarations(类属表); Port Declarations(端口表); END <entity_name>; (1076-1987 version) END ENTITY <entity_name> ; ( 1076-1993 version)
子类型声明;常量声明。
END <包名> ; (1076-1987) END PACKAGE BODY <包名> ; (1076-1993)
例:程序包声明
2、 库
含义:存放预先完成的程序包和数据集合体 的仓库,包含了包或包的汇集 格式:LIBRARY 库名; 种类: STD 库(默认库) IEEE库 WORK库(默认库) 面向ASIC的库 用户定义库
硬件描述语言VHDL
1 概述
1.1 什么是VHDL(HDL)?
VHDL与Verilog语言
VHDL与Verilog语言VHDL(VHSIC hardware description language)和Verilog是用于电子系统设计的硬件描述语言(HDL)。
这两种语言被广泛应用于数字逻辑设计和仿真,以及硬件描述、验证和综合。
1. VHDL(VHSIC hardware description language)VHDL是一种结构化的硬件描述语言,最初由美国国防部高速集成电路计划办公室(VHSIC,Very High Speed Integrated Circuits)开发。
VHDL以其强大的功能和灵活性而闻名,并被广泛用于数字系统的设计和验证。
VHDL的编写包括实体(Entity)和体(Architecture)两个主要部分。
实体部分描述了数字系统的输入输出接口、信号和组件的声明,而体部分描述了实体的内部结构、信号处理和逻辑功能。
VHDL具有丰富的数据类型、运算符和控制结构,可以方便地描述数字电路的行为和结构。
它还提供了强大的仿真和验证功能,使设计人员能够在开发和测试阶段快速迭代和调试设计。
2. VerilogVerilog是一种硬件描述语言,最初由Gateway Design Automation公司(现在是Cadence Design Systems的一部分)开发。
Verilog以其简洁的语法和易学易用的特性而受到广泛欢迎,并成为工业界标准。
Verilog的设计由模块(Module)组成,每个模块描述了一个黑盒子,包含输入和输出端口以及内部的逻辑功能。
模块可以进行层次化组合,从而实现较复杂的系统级设计。
Verilog的语法类似于C语言,具有类似的数据类型、运算符和控制结构。
它还提供了时序建模的能力,使设计人员能够描述数字电路的时序行为。
3. VHDL与Verilog的比较VHDL和Verilog在语法和功能上有一些区别,但它们都可以用于数字电路的设计和仿真。
以下是它们之间的一些比较:3.1 语法风格VHDL采用结构化的编程风格,需要明确的体、过程和信号声明,可以更好地控制和描述系统的结构和行为。
vhdl 组合逻辑电路
vhdl 组合逻辑电路VHDL组合逻辑电路VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统级电路的行为和结构。
VHDL可以用于设计、仿真和验证电子系统。
在数字电路设计中,组合逻辑电路是一种重要的电路类型,本文将重点介绍VHDL中的组合逻辑电路。
一、组合逻辑电路简介组合逻辑电路是由输入端、输出端和逻辑门构成的电路。
它的输出仅取决于当前的输入,而与过去的输入无关。
组合逻辑电路的主要特点是没有存储元件,也就是说输出只与输入有关,不受时间的影响。
二、VHDL语言描述组合逻辑电路1. 实体声明在VHDL中,组合逻辑电路可以通过实体声明来描述。
实体声明包括实体头和实体体两部分。
实体头部分定义了实体名称、输入端口和输出端口,并且可以定义参数和模式等信息。
例如:实体名称:AND2输入端口:A, B输出端口:Y实体体部分定义了实体的行为,使用逻辑表达式来描述输出与输入之间的关系。
例如:实体体部分:Y <= A AND B;2. 架构声明架构声明用于描述实体的具体实现。
在架构声明中,可以使用信号、变量、常数、函数等来描述电路的行为。
例如:架构声明:架构 Behavioral of AND2 is开始信号 temp: bit;开始temp <= A AND B;Y <= temp;结束 Behavioral;三、VHDL组合逻辑电路的应用举例1. 与门(AND)与门是最基本的逻辑门之一,它的输出为输入信号的逻辑与运算结果。
在VHDL中,可以通过以下代码来实现一个2输入与门:实体声明:实体名称:AND2输入端口:A, B输出端口:Y实体体部分:Y <= A AND B;2. 或门(OR)或门是另一种基本的逻辑门,它的输出为输入信号的逻辑或运算结果。
在VHDL中,可以通过以下代码来实现一个2输入或门:实体声明:实体名称:OR2输入端口:A, B输出端口:Y实体体部分:Y <= A OR B;3. 非门(NOT)非门是最简单的逻辑门,它的输出为输入信号的逻辑非运算结果。
vhdl语言
VHDL语言简介VHDL(VHSIC Hardware Description Language)即可高速集成电路硬件描述语言,是一种用于描述数字系统和电路的硬件描述语言。
它在1981年由美国国防部的高速集成电路联合委员会(VHSIC)开发,用于设计大规模集成电路。
VHDL是一种面向对象的语言,可以用于描述各种数字系统,从简单的逻辑门到复杂的处理器。
它提供了丰富的语法和语义,使得设计人员可以准确地描述他们的电路和系统。
VHDL的优势VHDL作为一种硬件描述语言,在数字系统设计中具有许多优势。
1.可重用性:VHDL允许设计人员创建可重用的模块和子系统,这些模块和子系统可以在不同的项目中重复使用,提高了设计效率和可维护性。
2.仿真和验证:VHDL具有强大的仿真和验证能力,可以在设计之前对系统进行全面的仿真和验证。
这有助于检测和纠正潜在的问题,并确保系统在硬件实现之前达到预期的功能。
3.抽象级别:VHDL允许设计人员在不同的抽象级别上描述系统,从高级的行为级别到底层的结构级别。
这使得设计人员可以根据需要在不同的级别上工作,并且可以更容易地进行系统级别的优化。
4.灵活性和可扩展性:VHDL支持灵活的设计方法和工作流程,并允许设计人员在设计过程中进行迭代和修改。
它还可以与其他常用的设计工具和方法集成,以满足特定的需求。
VHDL语言的基本结构VHDL语言由模块、实体、架构以及信号和过程等基本元素组成。
模块(Module)模块是VHDL中描述数字系统的最基本单位。
一个模块可以包含多个实体和架构,并通过连接信号进行通信。
每个模块都有一个顶层实体和一个或多个架构。
实体(Entity)实体是描述模块的接口和行为的抽象。
它定义了输入输出端口,以及模块对外部环境的接口。
一个实体可以有一个或多个架构。
架构(Architecture)架构描述模块的具体行为和内部结构。
它定义了模块的内部信号和过程,以及对外部信号和过程的接口。
数字电路设计实验vhdl语言实验报告
实验一秒表计数器的设计实验目的:本实验通过设计四种频率可选的数字时钟系统, 以达到熟悉VHDL 语言编程语法、设计思路和熟练掌握Quartus II 开发软件的目的。
二、实验内容:该数字时钟的显示格式如下所示: HH: MM: SS, 其中HH表示时计数的两位, MM表示分计数的两位, SS表示秒计数的两位。
本系统输入信号分别为复位信号rst(高有效)、sel(两位信号, 分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节, 譬如当时间为08:59:30时, 时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。
该时钟系统可以通过Sel信号时钟运行的快慢。
三、实验流程:通过对实验内容的分析: 可以考虑时钟系统的可由三部分组成: 1.分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现, 同学可以回想一下实验1中是如何实现计数器电路的设计), 该模块主要产生2.4.8、16分频的时钟信号;2.多路选择器:在VHDL中多路选择器为组合逻辑, 可以有多种实现方法, 在这里主要选用了case语句来实现。
该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3.时钟控制器:该模块比较复杂, 主要实现功能是实现一个24小时的计时。
当时间为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00, 计时中多数计数为加1操作, 有几个特殊状态需要重点考虑:当时间产生分进数时, 譬如上例。
当时间产生时进数时, 譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时, 譬如00:59:59是个的下一个状态为01:00:00。
当时间产生天进数时, 譬如23:59:59的下一个状态为00:00:00。
四、仿真要求:1、本次试验的结果全部采用功能仿真分析:在结果图中能够看到让复位信号rst为有效的情况下, 所有的输出为00:00:00;2.当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2.4.8、16倍clk_in的时钟周期;3.可以看到完整的计时周期00:00:00->23:59:59->00:00:00。
VHDL硬件描述语言与数字逻辑电路设计 第1章
图1-2 六进制约翰逊计数器原理图
12
与六进制计数器模块设计一样,系统的其它模块也按此 方法进行设计。在所有硬件模块设计完成以后,再将各模块 连接起来,进行调试。如有问题,则进行局部修改,直至整 个系统调试完毕为止。
由上述设计过程可以看到,系统硬件的设计是从选择具 体元器件开始的,并用这些元器件进行逻辑电路设计,完成 系统各独立功能模块的设计,然后将各功能模块连接起来, 完成整个系统的硬件设计。上述过程从最底层开始设计,直 至最高层设计完毕,故将这种设计方法称为自下至上的设计 方法。
26
第二层次是RTL方式描述。这一层次称为寄存器传输描 述(又称数据流描述)。如前所述,用行为方式描述的系统结 构的程序其抽象程度高,是很难直接映射到具体的逻辑元件 结构用硬件来实现的。要想得到硬件的具体实现,必须将行 为方式描述的VHDL语言程序改写为RTL方式描述的VHDL 语言程序。也就是说,系统采用RTL方式描述,才能导出系 统的逻辑表达式,才能进行逻辑综合。当然,这里所说的可 以进行逻辑综合是有条件的,它是针对某一特定的逻辑综合 工具而言的。
16
传统的硬件电路设计方法已经沿用了几十年,是目前广 大电子工程师所熟悉和掌握的一种方法。但是,随着计算机 技术、大规模集成电路技术的发展,这种传统的设计方法已 大大落后于当今技术的发展。一种崭新的、采用硬件描述语 言的硬件电路设计方法已经兴起,它的出现给硬件电路设计 带来了一次重大的变革。
17
1.2 利用硬件描述语言的硬件电路 设计方法
5
要设计一个六进制计数器,其方案是多种多样的,但是 摆在设计者面前的一个首要问题是如何选择现有的逻辑元器 件构成六进制计数器。设计六进制计数器首先从选择逻辑元 器件开始。
第一步,选择逻辑元器件。由数字电路的基本知识可知, 可以用与非门、或非门、D触发器、JK触发器等基本逻辑元 器件来构成一个计数器。设计者根据电路尽可能简单、价格 合理、购买和使用方便等原则及各自的习惯来选择构成六进 制计数器的元器件。本例中选择JK触发器和D触发器作为构 成六进制计数器的主要元器件。
