EDA课程设计 EDA MAXPLUSIIWord文档下载推荐.docx
《EDA课程设计 EDA MAXPLUSIIWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA课程设计 EDA MAXPLUSIIWord文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
当CNT_EN高电平时允许计数;
低电平时停止计数,并保持所计数的脉冲数。
在停止计数期间,首先需要个锁存信号LOAD的上跳沿将计数器在前一秒钟的计数值锁存进锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。
设置锁存器的好处是数据显示稳定,不会由于周期性的清零信号而不断闪烁。
锁存信号后,必须有一清零信号RST_CNT对计数器进行清零,为下一秒的计数器操作做准备。
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
学生签名:
( )
2009年12月22日
课程设计评阅意见
评阅人 职称
2009年12月30日
目 录
第1章课程设计任务书.......................................2
第2章程序设计目的.......................................5
第3章程序实现思路.......................................5
第4章程序清单.......................................6
第5章课程设计心得.......................................9
第6章参考文献......................................10
第2章程序设计目的
实验目的:
设计8位十六位进制频率计,学习较复杂的数字系统设计方法。
第3章程序实现思路
实验内容1:
分别仿真测试模块程序1、程序2和程序3,再结合程序4完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。
8个数码管以十六进制形式显示测频输出;
待测频率输入FIN由CLOCKO输入;
1HZ测频控制信号CLK1HZ可与CLOCK2输入。
注意,这时8个数码管的测频显示值是十六进制的。
实验内容2:
将频率计改为8位十进制频率计,注意此设计电路的计数器必须是8个4位的十进制计数器,而不是1个。
此外注意在测频速度上给予优化。
实验内容3:
用LPM模块取代程序2和程序3,在完成同样的设计任务。
第4章程序清单
程序1
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFTCTRLIS
PORT(CLKK:
INSTD_LOGIC;
CNT_EN:
OUTSTD_LOGIC;
RST_CNT:
Load:
OUTSTD_LOGIC);
ENDFTCTRL;
ARCHITECTUREbehavOFFTCTRLIS
SIGNALDiv2CLK:
STD_LOGIC;
BEGIN
PROCESS(CLKK)
BEGIN
IFCLKK'
EVENTANDCLKK='
1'
THEN
Div2CLK<
=NOTDiv2CLK;
ENDIF;
ENDPROCESS;
PROCESS(CLKK,Div2CLK)
IFCLKK='
0'
ANDDiv2CLK='
THENRST_CNT<
='
;
ELSERST_CNT<
='
Load<
CNT_EN<
=Div2CLK;
ENDbehav;
程序2
ENTITYREG32BIS
PORT(LK:
DIN:
INSTD_LOGIC_VECTOR(31DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(31DOWNTO0));
ENDREG32B;
ARCHITECTUREbehavOFREG32BIS
BEGIN
PROCESS(LK,DIN)
IFLK'
EVENTANDLK='
THENDOUT<
=DIN;
程序3
ENTITYCOUNTER32BIS
PORT(FIN:
GLR:
ENABL:
DOUT:
ENDCOUNTER32B;
ARCHITECTUREbehavOFCOUNTER32BIS
SIGNALCQI:
STD_LOGIC_VECTOR(31DOWNTO0);
PROCESS(FIN,CLR,ENABL)
IFCLR='
THENCQI<
=(OTHERS=>
'
);
ELSIFFIN'
EVENTANDFIN='
IFENABL='
=CQI+1;
ENDIF;
DOUT<
=CQI;
程序4
ENTITYFREQTESTIS
PORT(CLK1HZ:
FSIN:
OUTSTD_LOGIC_VECTOR(31DOWNTO0));
ENDFREQTEST;
ARCHITECTUREstrucOFFREQTESTIS
COMPONENTFTCTRL
PORT(CLKK:
CNT_EN:
RST_CNT:
Load:
ENDCOMPONENT;
COMPONENTCOUNTER32B
PORT(FIN:
CLR:
COMPONENTREG32B
PORT(LK:
DIN:
SIGNALTSTEN1:
SIGNALCLR_CNT1:
SIGNALLoad1:
SIGNALDTO1:
SIGNALCARRY_OUT1:
STD_LOGIC_VECTOR(6DOWNTO0);
U1:
FTCTRLPORTMAP(CLKK=>
CLK1HZ,CNT_EN=>
TSTEN1,
RST_CNT=>
CLR_CNT1,Load=>
LOAD1);
U2:
REG32BPORTMAP(LK=>
Load1,DIN=>
DTO1,DOUT=>
DOUT);
U3:
COUNTER32BPORTMAP(FIN=>
FSIN,CLR=>
CLR_CNT1,
ENABL=>
TSTEN1,DOUT=>
DTO1);
ENDstruc;
第5章 课程设计心得
这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
特别是当每一个子模块编写调试成功时,心里特别的开心。
但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:
在设定输入的时钟信号后,数字秒表开始计数,但是始终看不到秒和小时的循环计数。
后来,在数十次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。
经过屡次调试,终于找到了比较合适的输入数值:
时钟周期设置在15秒左右比较合适。
另外,Endtime的值需要设置的长一点:
500us左右,这样就可以观察到完整的仿真结果。
其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的数字秒表还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。
最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
第6章 参考文献
[1]苏金明,周建斌.用VB.NET和VC#.NET开发交互式CAD系统[M].北京:
电子工业出版社,2004
[2]普悠玛.VB.NET程序设计示例导学[M].北京:
科海电子出版社,2003
[3]李万红,段恒勇.VB.NET实用培训教程[M].北京:
清华大学出版社,2002
[4]李万红,梁靓.VB.NET程序设计入门[M].北京:
[5]刘斌文.精通VisualBasic.NET中文版[M].北京:
机械工业出版社,2004