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