- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA课程设计-基VHDL语言的定时器设计
基于VHDL语言的定时器设计
一、EDA技术简介
1. 电子技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。EDA技术已有30年的发展历程,大致可分为三个阶段。70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。80年代为计算机辅助工程(CAE)阶段。与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。CAE的主要功能是:原理图输人,逻辑仿真,电路分析,自动布局布线,PCB后分析。90年代为电子系统设计自动化(EDA)阶段。 EDA技术的基本特征EDA代表了当今技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的技术 传统的定时器硬件连接比较复杂,可靠性差,而且计时时间短,难以满足需要。本设计采用可编程芯片和VHDL语言进行软硬件设计,不但可使硬件大为简化,而且稳定性也有明显提高。由于可编程芯片的频率精度可达到50 MHz,因而计时精度很高。完全可以满足用户的需要,使用也更为方便。
系统设计框图
图1
减法器既实现11秒倒计时功能
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt10 is
port (clk,rst,en : in std_logic;
cq: out std_logic_vector(3 downto 0);
count : out std_logic);
end ;
Architecture arch of cnt10 is
begin
process(clk, rst, en)
Variable cqi: std_logic_vector(3 downto 0);
begin
If rst= 1 then cqi:=1010;
Elsif clkevent and clk=1 then
If en=1 then
If cqi 0000 then cqi:=cqi-1;
Else cqi:=1010;
end if;
end if;
end if;
If cqi= 0000 then count = 1 ;
Else count = 0;
End if;
Cq = cqi;
end process;
end arch;
仿真波形
图2.1
图2.2
如上图可见,当en为高电平,rst为低电平,实现了从10到0的倒数,即11秒倒计时功能。每当到0时count就会进位变为一,否则就为0.。从图中可见,出现了毛刺现象。
综合结果
图2.3
共阴七段数码管显示
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY del IS
PORT(key: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
legda: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END ENTITY;
ARCHITECTURE one OF del IS
BEGIN
PROCESS(key)
BEGIN
CASE key IS
WHEN 0000=legda=0111111;
WHEN 0001=legda=0000110;
WHEN 0010=legda=1011011;
WHEN 0011=legda=1001111;
WHEN 0100=legda=1100110;
WHEN 0101=legda=1
文档评论(0)