VHDL
VHDL课件

2) 半加器的逻辑描述 LIBRARY IEEE; -- IEEE库的使用说明 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS --实体h_adder的说明 PORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE art2 OF h_adder IS -- 实体h_adder的结构体art2的说明 BEGIN so<=(a OR b) AND (a NAND b); co<=NOT (a NAND b); END ARCHITECTURE art2;
(5) 在结构体art3中,COMPONENT→END COMPONENT 语句结构对所要调用的或门和半加器两元件 作了声明(COMPONENT DECLARATION),并由SIGNAL 语句定义了三个信号d、e和f,作为中间信号转存点,以利于 几个器件间的信号连接。 “PORT MAP( )”语句称为元件例化语句(COMPONENT INSTANTIATION)。所谓例化,在电路板上,相当于往上 装配元器件;在逻辑原理图上,相当于从元件库中取了一个 元件符号放在电路原理图上,并对此符号的各引脚进行连线。 例化也可理解为元件映射或元件连接,MAP是映射的意思。 例如,语句“U2:h_adder PORT MAP(a=>e,b=>cin, co=>f,so=>sum)”表示将实体h_adder描述的元件U2的 引脚信号a、b、co和so分别连向外部信号e、cin、f和sum。 符号“=>”表示信号连接。
3.1.3 VHDL程序设计约定 为了便于程序的阅读和调试,对VHDL程序设计特作如下约 定: (1) 语句结构描述中方括号“[ ]”内的内容为可选内容。 (2) 对于VHDL的编译器和综合器来说,程序文字的大小 写是不加区分的。 (3) 程序中的注释使用双横线“--”。在VHDL程序的任何 一行中,双横线“--”后的文字都不参加编译和综合。 (4) 为了便于程序的阅读与调试,书写和输入程序时,使 用层次缩进格式,同一层次的对齐,低层次的较高层次的缩 进两个字符。 (5) 考虑到MAX+plusII要求源程序文件的名字与实体名 必须一致,因此为了使同一个VHDL源程序文件能适应各个 EDA开发软件上的使用要求,建议各个源程序文件的命名均 与其实体名一致。
vhdl 十进制表示数值

vhdl 十进制表示数值摘要:1.VHDL简介2.十进制表示法概述3.VHDL中十进制数值的表示方法4.实例演示5.总结与建议正文:【提纲】1.VHDL简介VHDL(VHSIC硬件描述语言)是一种硬件描述语言,用于描述数字电路和模拟混合信号电路。
它在电子设计自动化(EDA)领域具有广泛的应用。
在VHDL中,数值通常用二进制、十六进制或十进制表示。
本文将重点介绍如何在VHDL中表示十进制数值。
2.十进制表示法概述十进制表示法是一种数值表示方法,基于10个基本数字(0-9)。
在计算机系统中,十进制数可以通过位权展开式表示,位权值为10的幂。
例如,数值123可以表示为:1 * 10^2 + 2 * 10^1 +3 * 10^03.VHDL中十进制数值的表示方法在VHDL中,可以使用整数类型(INTEGER)表示十进制整数。
例如,定义一个十进制整数变量:INTEGER :: a = 123;此外,还可以使用STD_LOGIC_VECTOR类型表示十进制数。
通过分配位权值,可以将十进制数转换为二进制表示。
以下是一个例子:INTEGER :: b = 123;STD_LOGIC_VECTOR (3 downto 0) :: binary_b =TO_STD_LOGIC_VECTOR(b);4.实例演示假设我们要设计一个简单的加法器,输入两个十进制整数a和b,输出它们的和。
首先,定义两个整数类型变量a和b:INTEGER :: a, b, sum;然后,使用STD_LOGIC_VECTOR表示法将十进制数转换为二进制:STD_LOGIC_VECTOR (4 downto 0) :: binary_a =TO_STD_LOGIC_VECTOR(a);STD_LOGIC_VECTOR (4 downto 0) :: binary_b =TO_STD_LOGIC_VECTOR(b);接下来,实现加法器逻辑:process (binary_a, binary_b)beginsum = binary_a + binary_b;end process;最后,将二进制和转换回十进制:INTEGER :: sum_decimal = TO_INTEGER(sum);5.总结与建议本文介绍了如何在VHDL中表示十进制数值,并通过一个实例演示了如何使用STD_LOGIC_VECTOR表示法进行十进制与二进制的转换。
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是⼀种硬件描述语⾔,它可以对电⼦电路和系统的⾏为进⾏描述。
制定了ieee.1164库。
使⽤VHDL语⾔描述的电路,可以进⾏综合和仿真。
VHDL代码3个基本组成部分:库(library)声明、实体(entity)和构造体(architecture)。
库(library)声明:列出了当前设计中需要⽤到的所有⽂件,如ieee,std,work等。
实体(entity):定义了电路的输⼊和输出引脚。
构造体(architecture):所包含的代码描述了电路要实验的功能。
1、库声明库(library)的建⽴和使⽤有利于设计重⽤和代码共享,同时可以使代码结构更加清晰。
2、库的种类在VHDL设计中有3个常⽤的库:ieee库,std库和work库。
在ieee库中有⼀个ieee正式认可的标准std_logic_1164.all。
ieee库包含了许多包集。
⽐如:std_logic_1164:定义了std_logic(8值)和std_ulogic(9值)多值逻辑系统。
std_logic_arith:定义了signal(有符号)和unsigned(⽆符号)数据类型和相关算术运算和⽐较运算操作。
它包含许多数据类型转换函数,这种函数可以实现数据类型的转换。
常⽤的数据类型转换函数包括conv_integer(p),conv_unsigned(p,b),conv_signed(p,b)和conv_std_logic_vector(p,b).std_logic_signed:内部包含⼀些函数,这些函数可以使std_LOGIC_vector类型的数据像signed类型的数据⼀样进⾏运算操作。
std_logic_unsigned:内部包含⼀些函数,这些函数可以使std_logic_vector类型的数据类型像unsigned类型的数据⼀样操作。
std库std库是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(VHSIC Hardware Description Language)即可高速集成电路硬件描述语言,是一种用于描述数字系统和电路的硬件描述语言。
它在1981年由美国国防部的高速集成电路联合委员会(VHSIC)开发,用于设计大规模集成电路。
VHDL是一种面向对象的语言,可以用于描述各种数字系统,从简单的逻辑门到复杂的处理器。
它提供了丰富的语法和语义,使得设计人员可以准确地描述他们的电路和系统。
VHDL的优势VHDL作为一种硬件描述语言,在数字系统设计中具有许多优势。
1.可重用性:VHDL允许设计人员创建可重用的模块和子系统,这些模块和子系统可以在不同的项目中重复使用,提高了设计效率和可维护性。
2.仿真和验证:VHDL具有强大的仿真和验证能力,可以在设计之前对系统进行全面的仿真和验证。
这有助于检测和纠正潜在的问题,并确保系统在硬件实现之前达到预期的功能。
3.抽象级别:VHDL允许设计人员在不同的抽象级别上描述系统,从高级的行为级别到底层的结构级别。
这使得设计人员可以根据需要在不同的级别上工作,并且可以更容易地进行系统级别的优化。
4.灵活性和可扩展性:VHDL支持灵活的设计方法和工作流程,并允许设计人员在设计过程中进行迭代和修改。
它还可以与其他常用的设计工具和方法集成,以满足特定的需求。
VHDL语言的基本结构VHDL语言由模块、实体、架构以及信号和过程等基本元素组成。
模块(Module)模块是VHDL中描述数字系统的最基本单位。
一个模块可以包含多个实体和架构,并通过连接信号进行通信。
每个模块都有一个顶层实体和一个或多个架构。
实体(Entity)实体是描述模块的接口和行为的抽象。
它定义了输入输出端口,以及模块对外部环境的接口。
一个实体可以有一个或多个架构。
架构(Architecture)架构描述模块的具体行为和内部结构。
它定义了模块的内部信号和过程,以及对外部信号和过程的接口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【目的】(1)掌握HDL语言设计数字逻辑电路(2)学会运用MAX+PLUSII软件进行仿真,以检验设计的准确性。
【理论知识】一、使用HTL的硬件设计方法所谓硬件描述语言,就是利用一种人和计算机都能识别的语言来描述硬件电路的功能,信号连接关系及定时关系,它可以比电原理图更能表示硬件电路的特性。
该方法有如下特征:(1)支持自顶向下的设计方法(2)采用大量的ASIC芯片(3)早期仿真以确定系统的可行性(4)使设计更容易,只需写出系统的HDL源程序文件,其它由计算机去做(5)全部设计文件就是HDL源程序文件二、 VHTL硬件设计语言当前ASIC制造商都自己开发了HDL语言,但是都不通用,只有美国国防部开发的VHDL 语言成为了IEEE. STD_1076标准,并在全世界得到了承认。
该语言集成了各种HDL语言的优点,使数字系统设计更加简单和容易VHDL语言通常包含实体(Entity),构造体(Architecture),配置(Configuration),包集合(Package),和库(Library)五部分.其中实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;建立输入和输出之间的关系;配置语句安装具体元件到实体—结构体对,可以被看作是设计的零件清单;包集合存放各个设计模块共享的数据类型、常数和子程序等;库是专门存放预编译程序包的地方。
1、基本设计单元VHDL的基本设计单元就是实体,无论数字电路复杂还是简单,都是由实体和构造体组成。
(1)实体说明实体说明有如下结构:ENTITY 实体名 IS[端口说明]END 实体名;(VHDL语言中不分大小写字母)其中:端口说明是对设计实体中输入和输出借口进行描述,格式如下:PORT(端口名(,端口名):方向数据类型名;::端口名(,端口名):方向数据类型名);端口名是赋予每个系统引脚的名称,一般用几个英文字母组成。
端口方向是定义引脚是输入还是输出,见下表:常用的端口数据类型有两种:BIT和BIT_VECTOR,当端口被说明为BIT时,只能取值“1”或“0”,当端口被说明为BIT_VECTOR时,它可能是一组二进制数。
(2) 构造体构造体是实体的一个重要部分,每一个实体都有一个或一个以上的构造体。
1) 一般说明构造体格式如下:ARCHITECTURE 构造体名 OF 实体名 IS[定义语句] 内部信号,常数,数据类型,函数等的定义BEGIN[并行处理语句]END 构造体名;2.函数函数的格式:FUNCTION函数名(参数1,参数2。
)RETURN数据类型名IS[定义变量语句]BEGIN[顺序处理语句]RETURN [返回变量名];END函数名;在VHDL 语言中函数的参数都是输入信号2、包、库和配置(1)库库是经编译后的数据的集合,它存放包定义、实体定义、构造定义和配置定义。
在设计单元内的语句可以使用库中的结果,所以,库的好处就是设计者可以共享已经编译的设计结果,在VHDL中有很多库,但他们相互独立。
(2)包通常在一个实体中对数据类型、常量等进行的说明只可以在一个实体中使用,为使这些说明可以在其它实体中使用,VHDL提供了程序包结构,包中罗列VHDL中用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义,它是一个可编译的设计单元,也是库结构中的一个层次,使用包时可以用USE语句说明,例如:USE IEEE.STD_LOGIC_1164.ALL(2)配置用于在多构造体中的实体中选择构造体,例如,在做RS触发器的实体中使用了两个构造体,目的是研究各个构造体描述的RS触发器的行为性能如何,但是究竟在仿真中使用哪一个构造体的问题就是配置问题。
配置语句格式:CONFIGURATION 配置名 OF 实体名 IS[说明语句]END 配置名;例:最简单的配置CONFIGURATION 配置名 OF 实体名 ISFOR 被选构造体名END FOR;END 配置名;3、时序电路设计1. 时钟信号和复位信号1) 时钟信号的描述* 若进程的敏感信号是时钟信号,这时时钟信号出现在PROCESS后的括号中.例: process (clock_signal)beginif (clock_edge_condition) thensignal_out<=signal_in:其它语句:end if;end process;时钟的边沿描述描述时钟一定要指明是上升沿还是下降沿上升沿到来的条件:IF clk=’1’ AND clk’LAST_V ALUE=’0’ AND clk’EVENT下降沿到来的条件:IF clk=’0’ AND clk’LAST_V ALUE=’1’ AND clk’EVENT关于时钟信号的总结:IF clock_signal=current_value ANDclock_signal’LAST ANDclock_siganl’EVENT可以简单写为:IF clock_signal=clock_siganl’EVENT AND current_value2.可预置数的六十进制计数器管脚定义:clk 时钟bcd1wr 个位预置数控制bcd10wr 十位预置数控制datain 预置数据cin 进位输入(计数脉冲)co 进位输出bcd1p 个位数据输出bcd10p 十位数据输出library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60 isport(clk,bcd1wr,bcd10wr,cin: in std_logic;co: out std_logic;datain: in std_logic_vector(3 downto 0);bcd1p: out std_logic_vector(3 downto 0);bcd10p: out std_logic_vector(2 downto 0);end count60;architecture behave of mycounter60 issignal bcd1n:std_logic_vector(3 downto 0);signal bcd10n:std_logic_vector(2 downto 0);beginbcd1p<=bcd1n;bcd10p<=bcd10n;kk1: process(clk,bcd1wr)beginif (bcd1wr=’1’) thenbcd1n<=datain;elsif(clk’event and clk=’1’) thenif (cin=’1’) thenif(bcd1n=”1001”) thenbcd1n<=”0000”;elsebcd1n<=bcd1n+’1’;end if;end if;end if;end process kk1;kk2: process(clk,bcd10wr)beginif (bcd10wr=’1’) thenbcd10n<=datain(2 downto 0);elsif(clk’event and clk=’1’) thenif (cin=’1’) and (bcd1n=”1001”) thenif(bcd10n=”101”) thenbcd10n<=”000”;elsebcd10n<=bcd10n+’1’;end if;end if;end if;end process kk2;kk3: process(bcd10n,bcd1n,cin)beginif(cin=’1’ and bcd1n=”1001”and bcd10n=”101”) thenco<=’1’;elseco<=’0’;end if;end process kk3;end behave;三、 MAX+PLUSII软件MAX+PLUSII软件是一个功能强大,容易使用的软件包,它可以以图形方式、文字输入方式(AHDL、VHDL和VERILOG)、和波形方式输入设计文件,可以编译并形成各种能够下装到EPROM和各种ALTERA器件的文件,还可以进行仿真以检验设计的准确性该软件可以完成输入设计文件、指定器件和管脚、编译,仿真和下载(需要硬件)全过程。
若无硬件除下载不能进行外,其它步骤都可以进行【实践内容】用VHDL语言设计一个带复位的31进制计数器,并用MAX+plus Ⅱ对其进行编译、仿真。
设计过程1、用VHDL语言设计的程序如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mycounter31 isport( clk,reset: in std_logic;a,b,c,d,e: out std_logic);end mycounter31;architecture behave of mycounter31 issignal count_5:std_logic_vector(4 downto 0);begina<=count_5(0);b<=count_5(1);c<=count_5(2);d<=count_5(3);e<=count_5(4);process(clk,reset)beginif(reset='0') thencount_5<="00000";else if(clk'event and clk='1') thenif(count_5="11110") thencount_5<="00000";elsecount_5<=count_5+'1';end if;end if;end if;end process;end behave;2、使用文本编辑器设计第一步:进入MAX+PLUSⅡ运行环境在file中选New,出现如下新建文件类型对话框,然后选择第三项Text Editor file 使用文本设计方法,选OK,出现标题为Text Editor Untitled的窗口。
完成本例的文本输入后,文本编辑框的效果图如下:将此文件保存为mycounter31.vhd。
第二步:新建一个项目选择File/Project/Name 显示如下对话框(图3.2.1)将目录directories 选择项目文件所在的文件夹,再在左边的“Files”框里选中要建立项目的VHDL文件名,此时在“Project Name”框内将显示要建立项目的VHDL文件名,再点击OK。