EDA课程设计.doc
上传人:yy****24 上传时间:2024-09-09 格式:DOC 页数:5 大小:123KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

EDA课程设计.doc

EDA课程设计.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

EDA课程设计课题:三分频器班级:姓名:学号:2011年4月29日设计任务与要求设计实现一个占空比可调的三分频器,占空比可调节为1比3(即脉冲宽度:周期=1:3)和1比2,时钟信号输入为clk,使能输入控制信号为enable,输出信号分别为clk1和clk2,对后两种占空比信号频率设计实体命名为div.vhd.问题分析由实验要求可以画出clk和clk1、clk2的关系大体为:三分频器,按要求就是产生一个周期是输入时钟信号3倍的时钟信号,输入信号的三个周期对应输出信号的一个周期,由此可以联想到用计数的方式来实现。可以用输入的信号作为时钟脉冲设计一个3进制的计算器,对于占空比为1比3,可以令计算器在数值等于0时,输出为高电平(1);数值为1和2时,输出为低电平(0)。而对于占空比为1比2时,由上图可以看出,clk2在计算器等于0和3时与clk1相同,在计算器等于1时,其值可以由clk1与clk相或来产生,但是,在clk的上升沿clk1会产生一个尖峰,如下图所示。对此可以先将clk值赋给一个变量,产生延时后再进行或运算。程序代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDIVISPORT(CLK:INSTD_LOGIC;--时钟信号输入ENABLE:INSTD_LOGIC;--使能信号CLK1:OUTSTD_LOGIC;--三分频1/3占空比CLK2:OUTSTD_LOGIC);--三分频1/2占空比ENDENTITYDIV;ARCHITECTUREARTOFDIVISSIGNALCOUNT:STD_LOGIC_VECTOR(1DOWNTO0);--3进制计数器SIGNALDN,CN:STD_LOGIC;BEGINCN<=CLK;--赋值产生延时PROCESS(CLK,ENABLE)ISBEGINIF(ENABLE='0')THENCOUNT<="00";ELSEIF(CLK'EVENTANDCLK='1')THEN--3进制计数器IFCOUNT=2THENCOUNT<="00";ELSECOUNT<=COUNT+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(COUNT)ISBEGINCASECOUNTISWHEN"00"=>CLK1<='1';DN<='1';CLK2<='1';WHEN"01"=>CLK1<='0';DN<='0';CLK2<=CNORDN;WHEN"10"=>CLK1<='0';DN<='0';CLK2<='0';WHENOTHERS=>NULL;--三分频,占空比1/3,1/2ENDCASE;ENDPROCESS;ENDARCHITECTUREART;仿真结果为各输入信号指定波形,ENABLE值为1,CLK为周期50ns的时钟信号,进行时序仿真得到仿真波形为:ENABLE为1时开始工作,CLK1、CLK2为CLK的三分频输出,其占空比分别为1/2和1/3.心得体会通过这次课程设计是我对EDA这门课有了一个全新的认识,特别是在VHDL语言编程方面,我深刻认识到VHDL与之前学过的C语言之间的差异。在整个的设计过程中,发现自己对VHDL语言很多细节上理解掌握的不够深刻,比如在使用时钟信号时会产生毛刺,还有在程序中的各种输出和中间变量的应用上,按照C语言的思想去解决就会出现错误。总之,在设计过程中遇到了很多问题,但同时也是我有了更全面的学习,是我认识到理论联系实际的重要性,提高了自己的实际动手能力和独立思考能力,通过这次课程设计,使我学到了不少知识。