《EDA技术及其应用》
实 训 报 告
班 级 姓 名 学 号 指导教师
目 录
一 设计要求 ......................................2
1.0 设计目的及意义 .................................2 1.1 设计要求 .......................................2
二 设计流程: ....................................2
2.0 原理框图 .......................................2 2.1 VHDL设计思路 ...................................3
三 VHDL程序 ......................................3
3.0 天计数模块 ......................................6 3.1 月计数模块 .....................................7 3.2 年计数模块 ......................................9 3.3 调时控制模块 ..................................11 3.4 译码模块 ......................................12 3.5 扫描模块........................................12
四 心得体会 .....................................14 4.0 ................................................14 五 附录...........................................15 5.0 顶层文件 ......................................15
一、设计目的及意义
1.0 设计目的及意义
在掌握EDA理论知识的基础上进一步了解EDA开发软件QuartusII的使
- 1
entity tian is port(clk:in std_logic; pan:in std_logic_vector(1 downto 0); T1:out std_logic_vector(6 downto 0); cout:out std_logic); end tian;
architecture one of tian is
signal q1:std_logic_vector(3 downto 0); signal q2:std_logic_vector(2 downto 0); signal ab:std_logic_vector(1 downto 0); begin
proce(clk,pan)
begin
if clk\'event and clk=\'1\'
then q1
if q1=9 then q1
end if; case pan is when \"00\"=> if q2=3 and q1=1 then q2
end if; when \"01\"=> if q2=3 and q1=0 then q2
end if; when \"10\"=> if q2=2 and q1=8 then q2
end if; when \"11\"=> if q2=2 and q1=9 then q2
end if; when others=>null; end case; end if; end proce; T1(3 downto 0)
- 3
when others=>null; end case; end if; Y1(3 downto 0)
3.2 年计数模块
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity nian is port(clk :in std_logic; n1:out std_logic_vector(6 downto 0);
run:out std_logic); end entity;
architecture one of nian is signal q1,q3:std_logic_vector(3 downto 0); signal q2:std_logic_vector(2 downto 0);
begin proce(clk)
begin if clk\'event and clk=\'1\' then
q1
if q1=9 then q2
if q1=9 and q2
end if; end proce;
- 5
sel:out std_logic_vector(2 downto 0)); end seltime; architecture fun of seltime is signal count:std_logic_vector(2 downto 0); begin sel=\"101\")then countdaoutdaout(3)daoutdaout(3)daoutdaout(3 downto 2)
3.5 译码模块
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity led is port( ledi:in std_logic_vector(3 downto 0); ledo:out std_logic_vector(6 downto 0));
- 7
次万年历实训我们是四个人作为一个团队,在实训过程中,有时候一个人在编写程序时出现一点很小的错误(例如:程序中少了一个分号或者少了一个字母)就会导致整个程序编译不能通过,而四个人在一起,出现错误时一起去寻找,总会有一个人及时发现错误的,发现后及时纠正错误,然后继续开展下面的工作。这样三个人互相协作,共同努力,各自发挥自身的优势,这样工作便能顺利的进行下去,如果是一个人单独去完成,在出现错误的时候自己要想发现错误便需要很长的时间才能发现,这样很浪费时间,浪费时间的结果就是直接导致工作效率低。而在如今的社会工作中,许多公司企业都要求应聘者要有很好的团队合作精神,工作时要有高效的工作效率。因此,在这次实训中我也切身体会到了团队合作的重要性。
实训是对每个学生综合能力的检验是让我们能够更好的巩固专业知识,积累工作经验,掌握工作技能。通过这次实训,让我深深的体会到要想做好每一件事情,除了自己平时要有一定的专业知识外,还需要一定的实践动手能力,操作能力,说实话,这次实训让我学到了很多东西,也明白了很多事情。在此还要感谢王老师耐心、认真的指导。谢谢薛老师!
五、附录
5.0 顶层文件
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity nianli is port(clk,clkdsp:in std_logic; k1,k2:in std_logic; dpout,d10,d20:out std_logic; ledout :out std_logic_vector(6 downto 0); sel1:out std_logic_vector(2 downto 0));
end entity; architecture one of nianli is component tian port(clk:in std_logic; pan:in std_logic_vector(1 downto 0); T1:out std_logic_vector(6 downto 0); cout:out std_logic); end component; component yue port(clk,run:in std_logic; cout:out std_logic; pan:out std_logic_vector(1 downto 0);
- 910 -