ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:778.97KB ,
资源ID:7405304      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7405304.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA 技术及应用 实验报告.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

EDA 技术及应用 实验报告.docx

1、EDA 技术及应用 实验报告一、任务:基于CPLD实现数字钟的实验 要求:(一)接通5V电源可实现数字钟的基本功能 (二)可通过按键调整分钟和时钟位的数值二、设计框图(框图说明)整个数字时钟的大体分为CPLD模块、数码管模块、时钟模块、按键电源模块等四个模块。CPLD在时钟信号、电源、按键的作用下控制数码管的输出显示。三、CPLD内部原理图CPLD内部原理图由控制秒钟的CNT10、CNT6,控制分钟的CNT10M、CNT6,控制时钟的CNT10H,译码器DEC6G,D触发器,1000分频的F1000等模块组成。其中ENA端为清零重置端,D1、D2端通过D触发器控制分别控制分钟位和时钟位的增加调

2、整。1M为时钟的输入。Sel7.0控制数码管的功能端,led7s7.0控制数码管的码段显示。四、CPLD内部原理图各模块相应的程序代码 -F1000的逻辑描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f1000 IS PORT (CLK: IN STD_LOGIC; q1000: OUT STD_LOGIC);END f1000;ARCHITECTURE one OF f1000 ISSIGNAL X:STD_LOGIC;BEGIN PROCESS(CLK) variable CNT:INTEGER RANGE 0 TO 499; BEGI

3、N IF CLKEVENT AND CLK=1then IF CNT499 THEN CNT:=CNT+1; ELSE CNT:=0; X=NOT X; END IF; END IF; q1000=X; END PROCESS;END ONE;-秒钟的十进制的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk:in std_logic; ena:in std_logic; cq:out std_logic_vector(3 downto 0);

4、 carry_out:out std_logic);end entity cnt10;architecture one of cnt10 is signal cqi:std_logic_vector(3 downto 0); begin process(clk,ena) is begin if ena=1 then cqi=0000; elsif clkevent and clk=1 then if cqi=1001 then cqi=0000; else cqi=cqi+1; end if; end if; end process; process(cqi) is begin if cqi=

5、0000then carry_out=1; else carry_out=0; end if; end process; cq=cqi;end architecture one;-秒钟、分钟的六进制的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 is port(clk:in std_logic; ena:in std_logic; cq:out std_logic_vector(3 downto 0); carry_out:out std_logic);end e

6、ntity cnt6;architecture one of cnt6 is signal cqi:std_logic_vector(3 downto 0); begin process(clk,ena) is begin if ena=1 then cqi=0000; elsif clkevent and clk=1 then if cqi=0101 then cqi=0000; else cqi=cqi+1; end if; end if; end process; process(cqi) is begin if cqi=0000then carry_out=1; else carry_

7、out=0; end if; end process; cq=cqi;end architecture one;-分钟的十进制逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10M is port(clk:in std_logic; clr:in std_logic; add:in std_logic; cq:out std_logic_vector(3 downto 0); carry_out:out std_logic);end entity cnt10M;arch

8、itecture one of cnt10M is signal cqi:std_logic_vector(3 downto 0); signal gclk:std_logic; begin gclk=clk or add; process(gclk,clr) is begin if clr=1 then cqi=0000; elsif gclkevent and gclk=1 then if cqi=1001 then cqi=0000; else cqi=cqi+1; end if; end if; end process; process(cqi) is begin if cqi=000

9、0then carry_out=1; else carry_out=0; end if; end process; cq=cqi;end architecture one;-小时的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10h is port(clk:in std_logic; clr:in std_logic; add:in std_logic; cq3:out std_logic_vector(3 downto 0); cq4:out std_logic_v

10、ector(3 downto 0);end entity cnt10h;architecture one of cnt10h is signal sum:integer range 0 to 11; signal gclk:std_logic; signal cq1:std_logic_vector(3 downto 0); signal cq2:std_logic_vector(3 downto 0); begin gclk=clk or add; process(gclk,clr) is begin if clr=1 then cq1=0000;sum=0; elsif gclkevent

11、 and gclk=1 then if sum=11 then sum=0; else sumcq1=0000;cq2cq1=0001;cq2cq1=0010;cq2cq1=0011;cq2cq1=0100;cq2cq1=0101;cq2cq1=0110;cq2cq1=0111;cq2cq1=1000;cq2cq1=1001;cq2cq1=0000;cq2cq1=0001;cq2=0001; end case; end process; cq3=cq1;cq4=7 then sum=0; else sumsel=11111110;msel=11111101;msel=11111011;msel

12、=11110111;msel=11101111;msel=11011111;msel=10111111;msel=01111111;mled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sNULL; end case; end process;end one;-D触发器的逻辑描述library ieee;use ieee.std_logic_1164.all;entity dff isport(d:in std_logic; clk:in std_logic; q:out std_logic);end entity dff;-archit

13、ecture dd of dff isbegintt:process(clk) isbegin if (clkevent and clk=1) then q=d; end if;end process tt;end architecture dd;五、CPLD内部结构各模块图与各自仿真图1、为DEC6G模块图与之仿真图Maxplus中设置:END TIME=480ns,Grid size=15ns;时钟周期为30ns;在时钟信号的控制下,a3.0、b3.0、c3.0、d3.0、e3.0、f3.0端使输入,相应SEL7.0控制相应的数码管,LED7.0在相应的数码管上产生相应的断码。实现译码器的

14、功能。2、为小时模块与之仿真图Maxplus 设置:END TIME=480ns;Grid size=10ns;clk周期为20ns;clr低电平有效,在时钟信号的作用下,cq3330产生脉冲,当cq3330达到9时,cq4340产生一个脉冲,add按键在按下时也达到了加速的目的,仿真图可见可以实现其功能。3、为分钟十进制模块与之仿真图Maxplus设置:END TIME=480ns; Grid size=15ns;clk周期为30ns;仿真图可知当clr=0时有效;add上升沿有效;当clk=0时,cq3.0有输出,carry_out=0,当cq3.0产生十个脉冲时,carry_out产生一

15、个脉冲,add按键按下时时间延长,达到了设计的功能要求。 4、为秒位、分位六进制模块图与之仿真图Maxplus 设置:END TIME=480ns, Grid size=15ns,周期T=30ns,仿真实现CNT6功能:当ena=0,clk上升沿时cq3.0实现六进制 cq3.0到6时 carry_out产生一个脉冲;5、为秒位十进制模块图与之仿真图Maxpius 设置:END TIME=480ns,Grid size=15ns,周期T=30ns,仿真实现功能:当ena=0 and clk上升沿时cq3.0输出十进制 当cq3.0到达9时 carry_out产生一个脉冲;6、为1000分频模块

16、图与之仿真图1000分频在maxplus 中波形仿真中设置END TIME =20us, Grid size=10ns;可见在CLK 499个脉冲的时候,q1000产生一个脉冲,占空比=50%。7、为D触发器模块图与之仿真图Maxplus 设置:END TIME=480ns,Grid size=10ns,clk周期T=20ns, d 的周期Td=60ns,仿真图实现功能 当clk上升沿到来时 q=d;六、实验设计结果合理运用CPLD个端口的功能,下面图表为CPLD上各相应得端口连接此程序所用芯片如下图所示为EPM7128SLC84-18实验焊接成功正常工作正面图实验焊接成功正常工作反面图七、总

17、结在这整个数字钟的设计过程,不仅可以体现个人的细心度,而且还有对整个电路的了解,因为整个数字钟电路的设计不是说照着老师的直接焊接就行了,还得考虑电路是如何工作的,在理解的基础上,再去焊接就会达到事半功倍的效果,这也充分展示了个人的思维能力。整个数字钟大体可以分为数码管模块、CPLD模块、晶振模块、电源模块等四个大的模块,数码管要理解它的工作原理,在理解的情况下再去焊接。经过这次数字钟的设计,深刻体会到一个数字钟的实现不能光看CPLD里程序的设计,还得认真的理清思路,将模块先在草稿纸上规划一下,板子的焊接不光看它的实用性,还得考虑它的规划。第一次设计时钟电路难免会出错。板子如果焊的很有条理性,这

18、对电路的排错检查是很有帮助的。 我花了一天的时间将板子完完全全的焊完,但是不能只追求时间的进度,这样难免出错,我没有检查一遍就直接去调试,结果很明了-失败, 后来经过自己的排错、检查,居然检查出三个模块的错误,分别是晶振模块、下载端口模块、数码管模块,由于自己的疏忽之前没有检查出来,导致第一次下载调试不成功,然后自己只能逐一排查,首先是数码管的功能端没有核对好,这就会导致数码管的显示顺序出现问题,还好只需对CPLD中程序sel7.0的锁脚顺序改变一下就可以很好的解决这个问题了。其次是晶振的接地端没有连对,这直接导致整个时钟电路没有时钟的支持,即使其他电路模块正确,电路也不会正常工作的,解决的方

19、法很简单,这只需要将晶振的接地端认真核对再重新焊接,这样就把电路的两大问题解决了,装上芯片可以显示数字,当然用别人的芯片,芯片里面是别人的代码,由于锁脚不同,数码管显示乱码。连接下载线,准备下载程序,结果没法下载,借用别人的板子下载我自己的程序,然后将芯片装入我的板子,时钟电路板子正常工作了,很显然我的板子还存在一个很大的问题在下载端口处,仔细检查了一遍我的下载端口的焊接,发现一个致命的错误下载端口焊反了,这直接导致下载端口和下载线上的端口不对应,从而无法正常下载程序,没办法,只好重新焊接。经过将下载端口的重新焊接,最后终于可以程序下载入芯片,这样就将整个时钟电路设计完毕。时钟电路可以正常的工作了。这次时钟电路的最终设计成功,让我深深的了解了时钟电路的工作原理,更学会了MAXPLUS软件的基本应用。在成功的完成之后,也让我学到了很多,学会了自己动手设计,遇到问题自己排查,这充分的锻炼了我。八、参考书(文章)1谭会生 张昌凡.EDA技术及应用M.西安:电子科技大学出版社,2004

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

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