VHDL语言编程

基于VHDL语言译码器的设计

基于V H D L语言译码 器的设计 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

《EDA技术》课程实验报告 学生姓名:黄红玉 所在班级:电信100227 指导教师:高金定老师 记分及评价: 一、实验名称 实验4:3-8译码器的设计 二、任务及要求 【基本部分】4分 1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语 言程序,完成3-8译码器的设计并进行时序仿真。 2、设计完成后生成一个元件,以供更高层次的设计调用。 3、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列 EP1K30TC144-3。 【发挥部分】1分 修改设计,完成3-6译码器的设计,并进行时序仿真。 三、实验程序 library ieee;

use use entity decoder is port(en:in std_logic; a,b,c:in std_logic; y:out bit_vector(7 downto 0)); end entity decoder; architecture art4 of decoder is signal sr:std_logic_vector(2 downto 0); begin sr<=c&b&a; process(sr)is begin case sr is when"000"=>y<="00000001"; when"001"=>y<="00000010"; when"010"=>y<="00000100"; when"011"=>y<="00001000"; when"100"=>y<="00010000"; when"101"=>y<="00100000"; when"110"=>y<="01000000"; when"111"=>y<=""; when others=>y<="00000000"; end case;

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

VHDL语言快速入门必读

一·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 IS PORT(); END ENTITY fp; 3.结构体,具体功能的实现 ARCHITECTURE a OF fp IS BEGIN END 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.逻辑电平有哪些?

基于VHDL语言的简易洗衣机控制器

电子课程设计 ——简易洗衣机控制器设计 学院: 班级: 姓名: 学号: 指导老师: 2013年12月

目录 第一部分:设计任务与要求 (1) 第二部分:总体框图 (1) 第三部分:选择器件 (2) 第四部分:功能模块 (3) 4.1时间预置编码寄存模块(settime) (3) 4.2减法计数器模块(counter) (4) 4.3数码管显示模块(showtime) (7) 4.4时序电路模块(analyse) (9) 4.5译码器模块(move)……………………………………… 1 1 第五部分:总体设计电路图 (13) 5.1总体(顶层)设计电路图 (13) 5.2顶层文件仿真 (13) 5.3管脚分配图 (14) 5.4硬件实验效果图 (14) 第六部分:课程设计心得体会 (15)

简易洗衣机控制器设计 一、设计任务与要求 设计一个洗衣机洗涤程序控制器,控制洗衣机的电动机按下图所示的规律运 转: 时间到 用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED 表示电动机的正、反转,如果定时时间到,则停机并发出音响信号。 二、总体框图 RUN REV PAUSE time_over clk K5 start K6 load K1 K2 K3 K4 各个部分的具体功能描述如下: (一)预设时间和编码电路(settime ):接受用户通过按钮预置的时间信息,编码 译码驱动模块(move) clk out_1 out_2 start 时序电路模块(analyse) clk time_over start 十进制减法计数器模块(counter) 洗涤预置时间编码寄存电路模块(settime) 报警信号 时间显示模块(showtime ) 定时启动 停止 正转 暂停 反转 暂停

基于VHDL语言的秒表综合设计

设 计 报 告 课程名称 _______ 设计题目 _______ 指导老师 _______ 学 生 _______ 学 号 ___ 现代电子技术综合实验 数字式秒表设计与实现

目录 1 引言…….......................................................................................... 1.1课程设计的内容及要求.................................................................. 2 VHDL简介…….............................................................................. 2.1硬件描述语言——VHDL……...................................................... 2.1.1 VHDL语言的特点……............................................................. 2.1.2 VHDL语言的设计流程……..................................................... 3 秒表设计过程……............................................................................ 3.1原理框图…….................................................................................. 3.2设计思路模块化….......................................................................... 3.3模块的功能简述……...................................................................... 3.3.1分频器…..................................................................................... 3.3.2计数器……................................................................................. 3.3.3数据锁存器…….......................................................................... 3.3.4显示译码模块….......................................................................... 3.3.5控制模块…….............................................................................. 3.3.6按键消抖模块……...................................................................... 3.3.7顶层文件…….............................................................................. 4 模块电路仿真……................................................................................ 4.1 分频器 4.2计数器

基于VHDL语言38译码器

3-8译码器的设计 1 设计目的与要求 随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。由此,计算机对我们的社会对我们每个人都是很重要的。所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。 1.1 设计的目的 本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设

计能力,提高分析、解决计算机技术实际问题的独立工作能力。也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。 1.2 设计要求 根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。译码器由三-八译码器为实例代表。 关键词:输入、输出、译码 2 VHDL的简单介绍 2.1 VHDL的简介 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。 VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在我过的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部

vhdl基本语法

VHDL 基础语法篇——VHDL VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN S <= A XOR B XOR Ci; Co <= (A AND B) OR (A AND Ci) OR (B AND Ci); END addstr; 从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成: 第一部分是程序包,程序包是用VHDL语言编写的共享文件,定义在设计结构体和实体

基于VHDL语言的VGA程序

library ieee; use ieee.std_logic_1164.all; entity vgactr is port( c lk:in std_logic; rst:in std_logic; red:out std_logic; green:out std_logic; blue:out std_logic; H_Sync:out std_logic; V_Sync:out std_logic); end vgactr; architecture behavioral of vgactr is signal cnt_H:integer range 0 to 799; signal cnt_V:integer range 0 to 520; signal clk_H:std_logic:='0'; signal clk_V:std_logic:='0'; signal colorbuf:std_logic_vector(0 to 2); begin red<=colorbuf(0); green<=colorbuf(1); blue<=colorbuf(2); --50MHz分频为25MHz,作为水平扫描信号的时钟process(clk) variable n:integer range 0 to 1; begin if rising_edge(clk)then clk_H<=not clk_H; end if; end process; --水平扫描计数,并产生竖直扫描计数的时钟 process(clk_H,Rst) begin if rst='1' then cnt_H<=0; clk_V<='1'; elsif rising_edge(clk_H)then if cnt_H=799 then cnt_H<=cnt_H+1; end if;

VHDL语言的基本知识点罗列

VHDL语言的基本知识点罗列 1 VHDL语言的标识符 VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如下法则: a)标识符由字母(A…Z;a…z)、数字和下划线字符组成。 任何标识符必须以英文字母开头。λ 末字符不能为下划线。λ b)不允许出现两个连续下划线。 标识符中不区分大小写字母。λ VHDL定义的保留子或称关键字,不能用作标识符。λ c) VHDL中的注释由两个连续的短线(--)开始,直到行尾。 以下是非法标识符: -Decoder —起始不能为非英文字母 3DOP —起始不能为数字 Large#number —“#”不能成为标识符的构成符号 Data__bus —不能有双下划线 Copper_ —最后字符不能为下划线 On —关键字不能用作标识符。 注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。 标识符表示的几种数据对象的详细说明如下: 1) 常数(Constant ) 常数是一个固定的值,主要是为了使设计实体中的常数更容易阅读和修改。常数一被赋值就不能在改变。一般格式: CONSTANT 常数名:数据类型:=表达式; 例:CONSTANT Vcc: REAL: =5.0; —设计实体的电源电压指定 常数所赋得值应与定义的数据类型一致。 常量的使用范围取决于它被定义的位置。程序包中定义的常量具有最大的全局化特性,可以用在调用此程序包的所有设计实体中;设计实体中某一结构体中定义的常量只能用于此结构体;结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。 2) 变量(Variable) 变量是一个局部变量,它只能在进程语句、函数语句和进程语句结构中使用。用作局部数据存储。在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量常用在实现某种算法的赋值语句中。 一般格式: VARIABLE 变量名数据类型约束条件:=表达式; 例:VARIABLE x,y:INTEGER; —定义x,y为整数变量 VARIABLE count: INTEGER RANGE0 TO255:=10; —定义计数变量范围 变量的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外,必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。 变量赋值语句的语法格式如下:

#基于VHDL语言的数据采集系统

用VHDL语言设计数据采集系统 摘要 随着计算机技术的发展和普及,数字设备正越来越多地取代模拟设备,将模拟信号 转换成数字信号以及将数字信号转换成模拟信号就成了重要环节。本系统以多路数据的 采集及监测为例,介绍了可编程逻辑器件在模数转换、数模转换及数据监控及处理中的 设计方法。实现数据采集的方法有很多,如单片机、CPLD、C语言等,但相比各种方法,运用VHDL硬件描述语言开发的数据采集系统具有具有设计方便高效、体积小、功耗低、可靠性高、易于修改、设计周期短等特点。VHDL硬件描述语言采用自顶而下的设计方法 可以对模型进行及时修改,以改进系统或子系统的功能,更正设计错误,从而提高目标 系统的工作速度,减小面积耗用,降低功耗和成本等。本文介绍了基于Altera公司的 集成开发环境MaxplusII,使用VHDL设计开发数据采集系统的基本方法。 [关键词] VHDL ADC0809 DAC0832 EDA 数据采集; Abstract With the development of computer technology and popularization, Digital devices are increasingly replacing analog equipment,and converted the analog signals into digital signals, as well as digital signal into analog signal will become an important link.for example,this syestem depend on one multi-channel data acquisition and monitoring,introduce a programmable logic device in the analog-digital conversion, digital-analog conversion and data monitoring with handling methods in the design. There are many ways to collect data, such as SCM, CPLD, C language,and so on. But compared with various methods,using the VHDL hardware description language to design the data acquisition system is the best. Because of its facilitate ,efficient, small size, low power consumption, high reliability, easy to modify, and shorter design cycle characteristics. VHDL hardware description language using the top-down design method ,that can be the model for timely changes to improve the system or subsystem functions, design error correction, so as to enhance the work of the target system’s speed, reducing the area of cons umption, and lower the power consumption costs. In this paper,we introduce a integrated development environment which based on Altera's MaxplusII,and the basic method to develop a data acquisition system design by using VHDL language. [Key words]:VHDL EDA ADC0809 DAC0832 Data Acquisition 目录 前言 (1) 1 EDA技术及开发环境 (3) 1.1 EDA技术 (3) 1.2 VHDL (4)

VHDL语言的基本要素(大全)

VHDL语言的基本要素 一、数据对象 VHDL语言的主要数据对象有信号,变量,常量。 信号—信号是电路中的物理量,对应于电路的连线、节点;信号说明全局量,用于描述中的构造体(Architecture), 实体(Intity),程序包(package)。 变量—变量是程序运算中的中间量,并不对应电路中的物理量。变量说明局部量,用于进程语句(process), 函数(Function), 过程(procedure)。 常量—常数也不对应电路中的物理量,当常量说明全局量,在构造体(Architecture), 实体(Intity),程序包(package),进程语句(process), 函数(Function), 过程(procedure)中均可使用。数据对象的定义格式: signal 信号名:数据类型,约束条件,表达式 Variable 变量名:数据类型,约束条件:=表达式 Constant 常量名:数据类型,约束条件:=表达式 例如:Variable count:INTEGER RANGE 0 TO 255:=10 Constant Daly:Time:=100ns 信号代入和变量赋值的区别:两者形式不同,操作过程也不相同。变量赋值符“:=”,信号的代入符“<=”。 在变量的赋值语句中,该语句一当执行,其值立即将赋予变量;而信号的代入,其语句执行后不会立即使信号发生代入,在下条语句

执行时,仍使用原来的信号值,如进程语句中的敏感表的信号代入就是如此。 二、数据类型 VHDL语言中的数据类型,一般而言可分为:标量类型和组合类型。在实际使用中,也可分成予定义类型和用户定义类型。VHDL语言是强类型的语言,主要可按如下分类和变换处理。 ①标准数据类型 ⑴整数⑵实数(浮点数)-1.0E+38~+1.0E38 ⑶位bit (0,1) ⑷位矢量⑸布尔量,“假”,“真”⑹字符(ASCⅡ)字符 ⑺时间 ⑻错误等级⑼自然数(大于等于0的整数)⑽字符串 (字符矢量) ②用户定义的数据类型 TYPE 数据类型名{数据类型名} 数据类型定义 ⑴枚举类型⑵整数类型⑶实数类型⑷数组类型 ⑸存取类型⑹文件类型⑺记录类型⑻时间类型③用户定义子类型 SUBTUPE 子类型名IS 数据类型名[范围] 例:SUBTYPE digit is INTEGER RANGE 0 TO 9 ④数据类型转换 数据类型的变换函数通常由“STD_LOGIC_1164”,

#基于VHDL语言的数字钟设计

一.程序代码及其仿真: 1.cnt60子模块代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY V_cnt60 IS PORT ( clk :IN std_logic; Q0,Q1,Q2,Q3,Q4,Q5,Q6,QC :OUT std_logic); END V_cnt60; ARCHITECTURE func OF V_cnt60 IS SIGNAL count1 :std_logic_vector(3 downto 0); SIGNAL count2 :std_logic_vector(3 downto 0); SIGNAL carryin:std_logic; BEGIN Q0 <= count1(0); Q1 <= count1(1); Q2 <= count1(2); Q3 <= count1(3); Q4 <= count2(0); Q5 <= count2(1); Q6 <= count2(2); QC <= carryin; process(clk) BEGIN if (clk'event AND clk='1') then carryin<='0'; if(count1="1001")then count1<="0000"; count2<=count2+1; else count1<=count1+1; END if; if(count2="0101"AND count1="1001")then count2<="0000"; count1<="0000"; carryin<='1'; END if; END if; END process; END func; cnt60仿真波形:

03 第三章 VHDL语言基础 习题答案

填空题 1、一个标准的VHDL语言程序由库、实体和结构体组成。 2、个完整的VHDL语言描述是以对一个功能元件的完整描述为基础的 3、实体相当于电路图中一个器件符号。 4、端口说明(PORT)是对设计实体与外部接口的描述,也可以说是设计实体的外部引脚的名称,它为实体与外部环境的动态通信提供通道 5、缓冲(BUFFER)端口描述模式和INOUT双向模式的区别在于只能接受一个驱动源,不允许多重驱动。 6、VHDL语言的结构体的这些子结构互相之间是并行的。 7、将VHDL语言的行为描述语句转换为门级描述由VHDL开发工具自动完成,是VHDL语言综合器的任务。 8、数据流描述也称为RTL(寄存器传输级)描述方式,它类似于布尔方程,它既表示某种行为,又隐含结构信息,主要指非结构化的并行语句描述。 9、在结构描述中,元件间的连接是通过定义的端口界面来实现的。 10、结构描述的缺点是程序表示的是电路的结构连接关系,不能直观的得到设计电路的逻辑功能。 综述题 1、写出实体的结构。 答案: ENTITY 实体名IS [GENERIC(类属表);] [PORT(端口表);] END ENTITY 实体名; 2、在IEEE库中定义了哪四种VHDL语言的端口模式? 答案: ●IN:输入。 ●OUT:输出。 ●INOUT:双向,输入输出。 ●BUFFER:缓冲,其实质也是双向的,但是只能接受一个驱动源。 3、写出结构体的结构。

?2 ? 答案: ARCHITECTURE 结构体名OF 实体名IS [说明语句] BEGIN [功能描述语句] END ARCHITECTURE 结构体名; 4、写出结构体的功能性描述语句的5种子结构。 答案: 块语句、进程语句、子程序调用语句、信号赋值语句和元件例化语句。 5、VHDL有哪四种描述风格? 答案: 行为描述、数据流描述、结构描述以及由前三种组合的混合描述。 实验题 实验【一】编写一个实体 实验目的:熟悉实体的编写方法。 实验任务:在Quartus II中建立一个VHDL语言文件,编写一个实体,该实体要求如下: 实体名:TEST。 输入端口:INPUTA,INPUTB,数据类型为BIT。 输出端口:OUTPUT,数据类型为BIT。 没有类属说明。 答案: ENTITY TEST IS --实体 PORT( INPUTA,INPUTB: in bit; --2个输入引脚,类型BIT OUTPUT: out bit); --1个输出引脚,类型BIT END TEST; 实验【二】编写一个结构体 实验目的:熟悉结构体的编写方法。

基于VHDL语言的电子表

基于VHDL语言的电子表

1.上述三题任选一题,采用标准的作业考核类封面,A4打印。 2.第一题40分,液晶+3分,个性化界面+3分。 3.第二题45分,幅度调整+3分,频率测量及显示+5分。 4.第三题48分,频率分段设置+3分,频率微调+5分,频率范围酌情加分。 5.雷同的程序和算法满分值只计原题分值的三分之二,将依据设计报告 的质量和实验结果的描述计分。设计上的创新会酌情加分,实现上的 偏离会酌情扣分。 6.本门课程成绩中,实验操作和实验报告占50%,本次作业考核占50%。

目录 一、设计要求 (1) 二、设计思路 (1) 三、程序设计 (2) 1.置数还是计数 (2) 2.在哪一位置数 (2) 3.计数单位 (2) 4.秒 (3) 5.分 (4) 6.时 (4) 7.数码管显示 (5) 四、仿真结果 (6) 五、实验结果 (8) 1.连线 (8) 2.设计结果 (8) 六、实验心得 (9) 电子表源程序 (10)

设计制作电子表 一、设计要求 利用VHDL语言设计一个电子时钟,可以显示时、分、秒,具有时间设置功能,要求走时误差不大于每天10秒。可采用数码管或液晶显示,最好设计出个性化显示界面。 二、设计思路 电子表其实质为计数器,计数单位为1秒。由秒,分,时组成,秒和分是60进制,用十进制和六进制组成,时是24进制,直接设计一个24进制计数器即可。要让结果显示出来,则用七段式数码管输出显示计数值。此电子表需要有置数功能,加一个控制开关,当开关为低电平时计数,当开关为高电平时置数。设计思路如下图所示:

三、程序设计 1.置数还是计数 电子表有计数和指数两种状态,工作时执行计数还是执行置数则由一控制使能端EN决定,当EN为低电平时,电子表计数,当EN为高电平时,电子表置数。 2.在哪一位置数 该电子表有秒低位,秒高位,分低位,分高位,时低位,时高位组成,共有六位,置数由位选决定给哪一位置数。设置一个三位的二进制开关p2,p1,p0,通过编码电路实现选择置数位。 ①当p2p1p0为“000”时,不选择任何位,此时电子表只是停止计数, 不置数。 ②当p2p1p0为“001”时,秒低位置数。 ③当p2p1p0为“010”时,秒高位置数。 ④当p2p1p0为“011”时,分低位置数。 ⑤当p2p1p0为“100”时,分高位置数。 ⑥当p2p1p0为“101”时,时低位置数。 ⑦当p2p1p0为“110”时,时高位置数。 关键程序: if t'event and t='1' then if en='0' then 计数语句 elsif en='1' and p="001" then s0<=num; end if; end if; 3.计数单位 首先脉冲频率要足够大,提供一个较快的扫描频率,时数码管稳定地显示计数值。计数单位为1秒,对脉冲clk 进行分频,得到周期为1秒的计数单位t。

基于VHDL语言的数字钟设计

信息与通信工程学院 数字电路与逻辑设计 实验题目:基于VHDL语言的数字钟设计 班级: 姓名: 学号: 日期: 指导教师:

一.摘要 数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的基本功能是计时,计时周期为24小时,显示满刻度23时59分59秒;或者计时周期为12小时并配有上下午指示,显示满刻度为11时59分59秒,通过六个七段数码管显示出来。 本实验主要在理论分析和具体的软硬件实现上,基于VHDL语言编写源代码,使用软件Quartus II 进行处理,再配合具体电路连接,实现一个多功能的数字钟。 关键词:数字钟;VHDL语言;七段数码管 二.设计任务要求 设计实现一个数字钟。 1.24小时制,显示刻度从0:0:0到23:59:59 。 2.12小时制,显示刻度从0:0:0到11:59:59 。 3.12/24小时制可切换,12小时制下上下午有不同显示(上午发光二极管不亮, 下午发光二极管亮)。 4.可手动校对时间,能对时和分进行校正。 5.整点报时功能。 6.闹铃功能,可设置闹铃时间,当计时到预定时间时,蜂鸣器发出闹铃信号, 闹铃时间为5秒,可提前终止闹铃。 7.可认为设置时间为倒计时模式 8.可切到屏保模式,六个数码管显示为“supper”字样。 三.设计思路和总体设计框图 1.设计思路 程序设计主要分为四个模块,第一部分,做分频器,分出一秒的时钟用来计数,再分出一个中频时钟用来扫描显示数码管,我选择的频率是50kHZ;第二部分,做计数器,秒随时钟沿计数进1,分钟随着秒计数60次进一,而小时,由于有12/24小时制的切换,时的计数有两个信号来进行,一个信号hour1是分60进一在0到23循环计数,另一个信号hour2是分60进一在0到11循环计数;第三部分,做扫描显示六个七段数码管,通过选通信号6矢量cat来依次使六个数码管亮,数码管每两位对应相应的时分秒;第四部分,其他输入输出单元,比如数字钟的时间修正,闹铃等,这些都是基于前三个部分,做起来难度不大。 设计的关键是做好计数器和数码管显示,这是本实验最核心的部分。

基于VHDL语言38译码器的设计

《EDA技术》课程实验报告 学生姓名:黄红玉 所在班级:电信100227 指导教师:高金定老师 记分及评价: 一、实验名称 实验4:3-8译码器的设计 二、任务及要求 【基本部分】4分 1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成3-8 译码器的设计并进行时序仿真。 2、设计完成后生成一个元件,以供更高层次的设计调用。 3、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。 【发挥部分】1分 修改设计,完成3-6译码器的设计,并进行时序仿真。 三、实验程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity decoder is port(en:in std_logic; a,b,c:in std_logic; y:out bit_vector(7 downto 0)); end entity decoder; architecture art4 of decoder is signal sr:std_logic_vector(2 downto 0); begin sr<=c&b&a; process(sr)is begin case sr is when"000"=>y<="00000001"; when"001"=>y<="00000010";

when"010"=>y<="00000100"; when"011"=>y<="00001000"; when"100"=>y<="00010000"; when"101"=>y<="00100000"; when"110"=>y<="01000000"; when"111"=>y<="10000000"; when others=>y<="00000000"; end case; end process; end architecture art4; en A B C Y[7..0] en138 inst 四、仿真及结果分析 用三位拨码开关代表译码器的输入端a、b、c,将之分别与EP1K30TC144-3芯片的相应管脚相连;用LED灯来表示译码器的输出,将D0...D7对应的管脚分别与8只LED灯相连。 从图中可见,首先判断使能端口en状态,当满足高电平时,判断三个输入端口A、B、C的状态;来决定八个输出的状态。输入en和A、B、C需要独立可变的输入激励,所以最好选择开关,独立可变,易于控制;译码器输出为8位数据,使用独立显示各个数据位的设备较好,故选用8个LED知识灯来表示。具体引脚分配见下表。 五、硬件验证 1、选择模式:模式6 2、引脚锁定情况表:

相关文档
最新文档