EDA课程设计基于VHDL语言的定时器设计.docx

上传人:b****7 文档编号:16299852 上传时间:2023-07-12 格式:DOCX 页数:12 大小:374.79KB
下载 相关 举报
EDA课程设计基于VHDL语言的定时器设计.docx_第1页
第1页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第2页
第2页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第3页
第3页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第4页
第4页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第5页
第5页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第6页
第6页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第7页
第7页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第8页
第8页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第9页
第9页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第10页
第10页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第11页
第11页 / 共12页
EDA课程设计基于VHDL语言的定时器设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA课程设计基于VHDL语言的定时器设计.docx

《EDA课程设计基于VHDL语言的定时器设计.docx》由会员分享,可在线阅读,更多相关《EDA课程设计基于VHDL语言的定时器设计.docx(12页珍藏版)》请在冰点文库上搜索。

EDA课程设计基于VHDL语言的定时器设计.docx

EDA课程设计基于VHDL语言的定时器设计

基于VHDL语言的定时器设计

一、EDA技术简介

1.电子技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。

EDA技术已有30年的发展历程,大致可分为三个阶段。

70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。

80年代为计算机辅助工程(CAE)阶段。

与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。

CAE的主要功能是:

原理图输人,逻辑仿真,电路分析,自动布局布线,PCB后分析。

90年代为电子系统设计自动化(EDA)阶段。

  

2.EDA技术的基本特征

EDA代表了当今电子技术的最新发展方向,它的基本特征是:

设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子技术。

2.VHDL在定时器中的应用

传统的定时器硬件连接比较复杂,可靠性差,而且计时时间短,难以满足需要。

本设计采用可编程芯片和VHDL语言进行软硬件设计,不但可使硬件大为简化,而且稳定性也有明显提高。

由于可编程芯片的频率精度可达到50MHz,因而计时精度很高。

完全可以满足用户的需要,使用也更为方便。

三.系统设计

1.

11秒倒计数

系统设计框图

1Hz时钟信号

译码显示

分频器

七段共阴数码管显示

1kHz时钟信号

图1

2.减法器既实现11秒倒计时功能

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt10is

port(clk,rst,en:

instd_logic;

cq:

outstd_logic_vector(3downto0);

count:

outstd_logic);

end;

Architecturearchofcnt10is

begin

process(clk,rst,en)

Variablecqi:

std_logic_vector(3downto0);

begin

Ifrst='1'thencqi:

="1010";

Elsifclk'eventandclk='1'then

Ifen='1'then

Ifcqi>"0000"thencqi:

=cqi-1;

Elsecqi:

="1010";

endif;

endif;

endif;

Ifcqi="0000"thencount<='1';

Elsecount<='0';

Endif;

Cq<=cqi;

endprocess;

endarch;

仿真波形

图2.1

 

图2.2

如上图可见,当en为高电平,rst为低电平,实现了从10到0的倒数,即11秒倒计时功能。

每当到0时count就会进位变为一,否则就为0.。

从图中可见,出现了毛刺现象。

综合结果

图2.3

3.共阴七段数码管显示

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYdelIS

PORT(key:

INSTD_LOGIC_VECTOR(3DOWNTO0);

legda:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITY;

ARCHITECTUREoneOFdelIS

BEGIN

PROCESS(key)

BEGIN

CASEkeyIS

WHEN"0000"=>legda<="0111111";

WHEN"0001"=>legda<="0000110";

WHEN"0010"=>legda<="1011011";

WHEN"0011"=>legda<="1001111";

WHEN"0100"=>legda<="1100110";

WHEN"0101"=>legda<="1101101";

WHEN"0110"=>legda<="1111101";

WHEN"0111"=>legda<="0000111";

WHEN"1000"=>legda<="1111111";

WHEN"1001"=>legda<="1101111";

WHENOTHERS=>legda<="0000000";

ENDCASE;

ENDPROCESS;

END;

 

仿真波形

图3

当输入信号为"0000"时,对应的输出为0111111,即为七段数码管显示为0.共阴,高电平有效。

综合结果

图4

4.分频器设计(实现1khz信号变为1hz信号)

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

Entityfenis

port(clk:

instd_logic;

Q:

outstd_logic);

Endfen;

architectureoneoffenis

begin

process(clk)

variablecount:

integerrange0to999;

variableclk1:

std_logic;

begin

ifclk'eventandclk='1'then

ifcount=999thenclk1:

=notclk1;count:

=0;

elsecount:

=count+1;

endif;

endif;

Q<=clk1;

endprocess;

endone;

仿真波形

图5

 

综合结果

图6

5.11秒定时顶层文件

libraryieee;

useieee.std_logic_1164.all;

entitydsis

port(clk,en,rst:

instd_logic;

co:

outstd_logic;

xzout1,xzout2:

outstd_logic_vector(6downto0));

endds;

architectureoneofdsis

componentcnt10

PORT(en,rst,clk:

instd_logic;

count:

outstd_logic;

cq:

outstd_logic_vector(3downto0));

endcomponent;

componentfen

port(clk:

instd_logic;

q:

outstd_logic);

endcomponent;

componentdel

port(key:

instd_logic_vector(3downto0);

Ledga:

outstd_logic_vector(6downto0));

endcomponent;

signald,g:

std_logic_vector(3downto0);

signals,s1:

std_logic;

begin

u2:

fenportmap(clk=>clk,q=>s);

u1:

cnt10portmap(en=>en,rst=>rst,clk=>s,count=>s1,cq=>d);

u3:

cnt10portmap(en=>en,rst=>rst,clk=>s1,count=>co,cq=>g);

u4:

delportmap(key=>d,ledga=>xzout1);

u5:

delportmap(key=>g,ledga=>xzout2);

endone;

 

仿真波形

图7

综合结果

;图8

4.心得体会:

这次的课程设计真的是一次很难忘的经历,可以用废寝忘食来形容觉得也不过分。

从最开始安装软件说起,就遇到了困难,在安装完软件后需要破解,这个过程中就遇到了困难,怎么也不能破解成功。

在破解了好几次后才意识到,原来license文件改错了。

在改正后终于可以学着去使用这款软件,具体什么仿真,生成电路图。

在具体设计中遇到的困难真的很多很多,曾好几次想有过放弃不做的想法。

因为当时的心情真的很郁闷,总有种想把鼠标甚至电脑摔了的想法。

但是当过一会,缓解下心情,在慢慢的做下去,就好多了。

在将vhdl语言代码编译运行这一过程中,真的需要强大的耐心,与信心。

如果不信心,就不能找出某些语法上的小错误,比如遗漏标点符号,某些地方写错字等等。

如果没有强大的耐心,也不可能运行出正确的代码,因为一旦出现错误,有时,只改一次是不能完全清除错误的,很可能再运行2次,3次甚至更多次。

最有挑战的是,调试一个程序差不多会弄一下午,因为不仅会有语法错误,也会有很多逻辑错误,不能正确实现功能等等。

这真的是一个艰难的过程。

一定要沉住气,不可浮躁。

一旦浮躁,就更不利于解决问题。

当程序运行正确后,进行仿真波形也一样充满挑战。

因为设置endtime和设置周期都是需要一定技巧的。

一旦参数设计不合理,就不会出现正确的仿真波形,往往也会进行修改好多次才能出现仿真的波形。

在这次的课程设计中,真的收获了好多。

遇到问题和室友一起商量,有时也会求助于她们的帮忙。

体会到了人多力量大的好处。

最主要的是更磨练了我做事要坚持到底,不能随便放弃。

还有遇到问题,独立解决问题的能力,同时在这一过程中,也会翻阅一些书籍,学到了很多知识,这些都是最宝贵的财富,值得我去回味和珍惜。

 

参考文献

[1]朱正伟.EDA技术及应用.清华大学出版社.2005.

[2]潘松.黄继业.EDA技术实用教程.第二版.科学出版社.北京.2004.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2