1、(4) 分频器 9(5) 控制器 10(6) 译码器 113. 系统仿真 12(1) 六进制计数器 12 (2) 十进制计数器 13(3) 蜂鸣器 13 (4) 分频器 13(5) 控制器 13(6) 译码器 13四、 实验心得 14五、 参考资料 14一、综合实践的目的1. 了解各种器件的基本结构,掌握MAX+PLUSII的使用方法。2. 用图形输入法和VHDL语言完成完成一个数字系统设计题的设计、仿真、下载。3通过课程设计使我们能熟练掌握MAX+PLUSII的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。4. 培养我们分析、寻找和排除电子电路中常见故障的能力。二、综合实践理论基
2、础和核心内容1.理论基础使用VHDL语言描述一个秒表电路,利用MAX+PLUSII软件进行源程序设计、编译、仿真,最后形成下载文件下载至装有FPGA芯片的实验箱,进行硬件测试,要求实现秒表功能。2.核心内容秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器和6进制计数器组成。在整个秒表中最关键的是如何获得一个精确的1MHZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。秒有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器(七段数码管驱动译
3、码器)的连接,当计时达30分钟后,蜂鸣器鸣响10声。四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;分频器:用来产生1MHZ计时脉冲;显示译码器:完成对显示的控制。选定实验箱产生的频率送入分频器,输出1MHz频率,驱动显示百分秒的十进制计数器,此计数器进位端接显示时分秒的十进制计数器。依次接下去,分别是秒,十秒,分,十分。最后设计一个驱动蜂鸣器的模块三、综合实践具体内容和记录1系统组成框图及原理图2各模块的原理及其程序(1)六进制计数器library ieee;use ieee.std_logic_1164.all;use
4、ieee.std_logic_unsigned.all;entity count6 is port (clk,clr,start:in std_logic; daout:out std_logic_vector(3 downto 0); cout:out std_logic );end count6;architecture behave of count6 is signal temp:std_logic_vector(3 downto 0);beginprocess(clk,clr) begin if clr=1 then temp=0000; cout0101 else temp=tem
5、p+1; end if; end process;daout=temp; end behave;(2)十进制计数器use ieee.std_logic_arith.all;entity count10 isport( clr,start,clk:out std_logic;buffer std_logic_vector(3 downto 0);end count10;architecture behave of count10 isprocess(clr,start,clk)if clr= then daout elsif ( clk) then if daout=1001cout else
6、daout=daout+1;end if;end process;end behave;(3)蜂鸣器entity alarm isport(clk,I: q:out std_logic );end alarm;architecture ar of alarm issignal n:integer range 0 to 20;signal q0:std_logic;process(clk)begin if clkif i= then q0n=0;elsif n=19 and i=q0=not q0;=n+1;else q0q=q0;end ar;(4)分频器entity FENPIN100 is
7、port (clr,clk:in std_logic ;buffer std_logic);end FENPIN100;architecture one of FENPIN100 issignal counter:integer range 0 to 12499;process (clr,clk)if(clk counter elsif counter =12499 then q=not q; else =counter+1;end one;(5)控制器entity seltime is port(clr,clk: in bit; dain0,dain1,dain2,dain3,dain4,d
8、ain5: in std_logic_vector(3 downto 0); sel: out std_logic_vector(2 downto 0); out std_logic_vector(3 downto 0);end seltime;architecture a of seltime is signal temp:integer range 0 to 5; process(clk) if (clr=) then daout sel000 temp elsif (clk=and clkevent) then if temp=5 then tempsel001=dain1; when
9、2=010=dain2; when 3=011=dain3; when 4=100=dain4; when 5=101=dain5; end case;end a;(6)译码器 entity deled is port(num:in std_logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0);end deled ;architecture a of deled is process(num) begin case num is when=led00000003.系统仿真(1)六进制(2)十进制四、实验心得整个设计过程中遇
10、到很多问题。一个问题就是发现秒走得太快,不符合实际。发现是分频器有问题。分频器的频率对秒表的准确度至关重要!一是在教学实验箱上的硬件连接错误导致的,二是语言上的语言逻辑错误。避免这些错误需要认真仔细的检查对逻辑错误逐步排错!通过本次课设,我不仅学到了关于EDA的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。另外,与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系也可以扩展自己的思维。通过思考、发问、自己解惑并动手、改进的过程,才能真正的完成课题。经过这次课程设计的过程,我相信在以后的课程设计中我们会吸取经验教训,做出更好的设计来。五、参考资料1 可编程器件EDA技术与实践李国洪 沈明山著 机械工业出版社2 EDA技术与数字系统设计 尹常永著 西安电子科技大学出版社3 EDA工程实践技术 付家才著 化学工业出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1