EDA实习报告_eda实习报告

2020-02-28 实习报告 下载本文

EDA实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“eda实习报告”。

贵州师范大学学生

实习报告

科目:EDA实习

专业: 电气工程及其自动化 班级: 10电气

姓名: 李启应

学号: 101401010202

实验项目名称:数字电子钟的设计 实验项目性质:普通试验 所属课程名称:VHDL程序设计

一、实验目的学习 VHDL语言的一些基本特点。2 掌握VHDL程序的基本结构。3掌握VHDL程序设计方法。要能够用vhdl语言读懂并编写eda程序,对eda设计的总体框架能有较好的把握,掌握各模块的调用方式。

二、实验内容和要求

设计一个数字时钟,显示时(2位),分(2位),秒(2位),具体要求是:具有时分秒计数显示功能,以24小时循环计时;数码管动态显示时,分,秒;具有清零功能。

在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。

三、实验主要仪器设备和材料

计算机,开发环境MAX-PLUSII,ZY11EDA实验系统,VHDL语言。

四、实验方法、步骤及结果测试

1、设计思路:

数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分位60进制计数器,小时为24进制计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码显示电路。

根据实验要求,将设计分为5个主要部分,时功能模块、分功能模块、秒功能模块、扫描仪功能模块和7段LED功能模块。在时、分、秒模块中,包括复位和预置数,其主要思路如下:

秒钟的模块:设计一个60进制的计数器,以clk为其时钟信号,每60个clk后产生一个进位信号CF给分钟模块,作为分钟进程的响应信号。秒钟模块VHDL程序见附录1: 仿真波形如下:

封装如下图:

分钟的模块:同理于秒钟的模块,设计一个60进制的计数器,以CFM为其时钟信号,每60个CFM后产生一个进位信号CFM给小时模块,作为小时模块进程的响应信号。分钟模块VHDL程序见附录二: 仿真波形如下:

封装如下图:

小时的模块:为24进制计数器,在分的进位信号CFM的激发下计数,从0到23的时候产生一个信号CFH,全部清0,重新开始计时。小时模块VHDL程序见附录三: 仿真波形如下:

封装如下图:

扫描仪模块:在扫描仪内部,有一个3-8译码器的片选信号,当3-8译码器的片选信号为000时,片选信号选中7段LED模块中的秒的个位,当3-8译码器的片选信号为001时,片选信号选中7段LED模块中的秒的十位,当3-8译码器的片选信号为010时,片选信号选中7段LED模块中的分的个位,当3-8译码器的片选信号为011时,片选信号选中7段LED模块中的分的十位,当3-8译码器的片选信号为100时,片选信号选中7段LED模块中的时的个位,当3-8译码器的片选信号为101时,片选信号选中7段LED模块中的时的十位,就这样动态扫描,当输入的时钟信号频率很高的时候,就形成了我们的时钟。

扫描仪模块VHDL程序见附录四: 仿真波形如下:

封装如下图:

7段LED模块:根据动态扫描仪的片选信号来依次点亮我们所需的时间。7段LED模块VHDL程序见附录五: 仿真波形如下:

封装如下图:综合以上5大模块,把它们用线连接起来就得到我们的总的电路图:如下图所示: 其工作原理为:扫描仪3-8译码器的片选信号根据时分秒的输入选中7段LED模块,然后再由时分秒中产生的3位BCD码来输出秒的个位,十位、时的个位,十位、小时的个位,十位。

4.总结:

在实验这两周的时间里,我们做过DC触发器、DQ触发器、3-8译码器、二选一电路和四选一电路等,最后综合做了数字时钟电路,通过这次实习,我对用VHDL来编程有了更深的了解,在要编程的时候,我学会了分模块进行,因为一开始的时候设计一个时钟系统比较麻烦,没有分模块之前总是会有差错,而之后思路就会比较清晰,有明确的方案,在对照书本里的编程规则与语句,就完成了这次的设计,总之就是获益良多。附录1:秒钟模块VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second is port(clk,reset:in std_logic;cf:out std_logic;second1_out:out std_logic_vector(3 downto 0);second10_out:out std_logic_vector(2 downto 0));end entity second;architecture one of second is signal second1n:std_logic_vector(3 downto 0);signal second10n:std_logic_vector(2 downto 0);begin second1_out

附录二:分钟模块VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute is port(clk,reset:in std_logic;cf:out std_logic;minute1_out:out std_logic_vector(3 downto 0);minute10_out:out std_logic_vector(2 downto 0));end entity minute;architecture one of minute is signal minute1n:std_logic_vector(3 downto 0);signal minute10n:std_logic_vector(2 downto 0);begin minute1_out

minute1n

附录三:小时模块VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour is port(clk,reset:in std_logic;hour1_out:out std_logic_vector(3 downto 0);hour10_out:out std_logic_vector(1 downto 0));end entity hour;architecture one of hour is signal hour1n:std_logic_vector(3 downto 0);signal hour10n:std_logic_vector(1 downto 0);begin hour1_out

if(hour10n=“10”)then hour10n

附录四:扫描仪模块VHDL程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity saomiaoyi is port(clk:in std_logic;reset:in std_logic;second1,minute1,hour1:in std_logic_vector(3 downto 0);second_10,minute_10:in std_logic_vector(2 downto 0);hour_10:in std_logic_vector(1 downto 0);dataout:out std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0));end entity saomiaoyi;architecture one of saomiaoyi is signal count:std_logic_vector(2 downto 0);begin sel

if count>=“101” then countdataoutdataoutdataoutdataoutdataoutdataout

附录五:7段LED模块VHDL程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY led_7 IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END entity led_7;ARCHITECTURE one OF led_7 IS BEGIN PROCESS(A)BEGIN CASE A(3 DOWNTO 0)IS WHEN “0000” => LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL;END CASE;END PROCESS;END ARCHITECTURE one;

《EDA实习报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
EDA实习报告
点击下载文档
相关专题 eda实习报告 实习报告 EDA eda实习报告 实习报告 EDA
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文