学号:20082653 电子0801
EDA数字钟设计
郑文韬
2011-07-01
1 课程设计报告
目录
一、引言
1、EDA简介 2、VHDL简介 三、课程设计题目 四、课程设计要求: 五、课程设计思路 六、相关VHDL程序
1、屏幕切换模块 2、显示切换程序 3、置数操作模块 4、秒显示模块 5、分显示模块 6、小时显示模块
7、日显示模块(已加入闰年判断功能) 8、月显示模块 9、年显示模块 七、实验心得
1 1 2 3 3 4 5 5 6 7 9 9 10 11 12 13 13
一、引言
随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。可编程逻辑器件和相应的设计技术体现在三个主要方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。在本实验中采用了集成度较高的FPGA 可编程逻辑器件, 选用了VHDL硬件描述语言和MAX + p lusⅡ开发软件。VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色。由于采用了具有多层次描述系统硬件功能的能力的“自顶向下”( Top - Down)和基于库(L ibrary - Based)的全新设计方法,它使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短 了产品的研制周期。MAX + p lusⅡ是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。
二、相关知识简介
1、EDA简介
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
1
2、VHDL简介
硬件描述语言HDL(HardwareDescriptionLanguage)诞生于19xx年。HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与SDL(SoftwareDescriptionLanguage)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。
VHDL翻译成中文就是超高速集成电路硬件描述语言,他诞生于19xx年。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。19xx年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。19xx年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,(即IEEE标准的1076-1993版本)主要是应用在数字电路的设计中。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 目前,它在中国的应用多数是用FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
2.1 VHDL的特点
应用VHDL进行系统设计,有以下几方面的特点。
(一)功能强大
VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。
(二)可移植性
VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。
(三)独立性
VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。
(四)可操作性
由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。
(五)灵活性
VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。
2.2 VHDL的设计结构
VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可相似,但包含了许多与硬件有特殊关系的结构。 见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设计的VHDL是十分重要的。
外部的实体名或连接由实体声明Entity来描述。而内部的实体算法或实现则由结构体Architecture来描述。结构体可以包含相连的多个进程process或者组建component等其他并行结构。需要说明的是,它们在硬件中都是并行运行的。
2.3 VHDL的设计步骤
采用VHDL的系统设计,一般有以下6个步骤。
1)要求的功能模块划分;
2)VHDL的设计描述(设计输入);
3)代码仿真模拟(前仿真);
4)计综合、优化和布局布线;
5)布局布线后的仿真模拟(后仿真);
6)设计的实现(下载到目标器件)。
三、课程设计题目
设计并实现具有一定功能的数字小系统(数字钟)
四、课程设计要求:
1、该数字钟可以实现3个功能:计时功能、整点报时功能和重置时间功能,因此有3个功能:计时、重置时间、复位。
2、对所有设计的小系统能够正确分析;
3、基于VHDL语言描述系统的功能;
4、在quartus 2环境中编译通过;
5、仿真通过并得到正确的波形;
6、给出相应的设计报告。
五、课程设计思路
其中计时模块有4部分构成:秒计时器(second)、分计时器(minute)、时计时器(hour)、
日计时器(date)、月计时器(mouth)、年计时器(year)
1) 秒计时器(second)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;set 为置数信号,当set为0时,秒计时器置数,置s1的值。clk为驱动秒计时器的时钟,sec为秒计时器的输出,ensec为秒计时器的进位信号,作为下一级的时钟输入信号。
2)分计时器(minute)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;set 为置数信号,当set为0时,分计时器置数,置m1的值。 clkm为驱动分计时器工作的时钟,与ensec相连接;min为分计时器的输出;enmin为分计时器的进位信号,作为下一级的时钟输入信号。
3)时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。
其中reset为清0信号,当reset为0时,时计时器清0;set 为置数信号,当set为0时,时计时器置数,置h1的值。 clkh为驱动时计时器工作的时钟,与enmin相连接;hour为
时计时器的输出;enhour为时计时器的进位信号,作为下一级的时钟输入信号。
4)日计时器( date1)是由一个60进制的计数器构成的,具有清0、置数和计数功能。
其中reset为清0信号,当reset为0时,星期计时器清0;set 为置数信号,当set为0时,星期计时器置数,置d1的值。 clkd为驱动星期计时器工作的时钟,与enhour相连接;date为日计时器的输出,endate为分计时器的进位信号,作为下一级的时钟输入信号,由于月份的天数存在天数不同,闰年2月的天数为28天等情况,还设计了一个润年判别器,准确显示时间。
5)月计时器(mouth)是由一个60进制的计数器构成的,具有清0、置数和计数功能。
其中reset为清0信号,当reset为0时,星期计时器清0;set 为置数信号,当set为0时,星期计时器置数,置mou1的值,clkmou为驱动星期计时器工作的时钟,与enday相连接;mou为日计时器的输出,enmou为分计时器的进位信号,作为下一级的时钟输入信号。
6)计时器(year)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其
中reset为清0信号,当reset为0时,星期计时器清0;set 为置数信号,当set为0时,星期计时器置数,置y1的值,clky为驱动星期计时器工作的时钟,与enmou相连接;year为日计时器的输出。
六、相关VHDL程序
1、屏幕切换模块
运用状态机进行屏幕切换,分别显示年月日,以及时分秒
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity mux3 is
Port ( clk,Reset,sel : in std_logic;
int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-- rst must
a1,a2,a3,a4,a5,a6: out std_logic_vector(3 downto 0));
end mux3;
architecture Behavioral of mux3 is
TYPE states IS (st0, st1, st2, st3, st4, st5, st6, st7);
SIGNAL STX: states ;
begin
COM1 : PROCESS(STX,int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12) BEGIN --决定转换状态的进程
CASE STX IS
WHEN st0 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6; WHEN st1 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12; WHEN st2 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12; WHEN st3 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12; WHEN st4 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12; WHEN st5 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6; WHEN st6 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6; WHEN st7 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6; WHEN OTHERS => NULL;
END CASE ;
END PROCESS COM1;
REG: PROCESS (clk,Reset,sel) --主控时序进程
BEGIN
IF Reset = '1' THEN STX<= st0; --异步复位 ELSIF clk='1' AND clk'EVENT THEN
if sel='1' then
CASE STX IS
WHEN st0=>STX<=st1;
WHEN st1=>STX<=st2;
WHEN st2=>STX<=st3;
WHEN st3=>STX<=st4;
WHEN st4=>STX<=st5;
WHEN st5=>STX<=st6;
WHEN st6=>STX<=st7;
WHEN st7=>STX<=st0;
END CASE;
END IF;
END if;
END PROCESS;
2、显示切换程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity mux1 is
Port ( clk,ina,inb,sel,Reset : in std_logic;
result : out std_logic);
end mux1;
architecture Behavioral of mux1 is
TYPE state IS(st0,st1,st2,st3,st4,st5,st6,st7);
SIGNAL STX:state;
begin
REG1: PROCESS(ina,inb,STX)
BEGIN
CASE STX IS
WHEN st0=>result<=ina;
WHEN st1=>result<=ina;
WHEN st2=>result<=inb;
WHEN st3=>result<=inb;
WHEN st4=>result<=inb;
WHEN st5=>result<=inb;
WHEN st6=>result<=inb;
WHEN st7=>result<=inb;
END CASE;
END PROCESS;
REG2:PROCESS(clk,sel,Reset)
BEGIN
IF(Reset='1') THEN
STX<=st0;
ELSIF(clk'EVENT AND clk='1')THEN
if sel='1' then
CASE STX IS
WHEN st0=>STX<=st1;
WHEN st1=>STX<=st2;
WHEN st2=>STX<=st3;
WHEN st3=>STX<=st4;
WHEN st4=>STX<=st5;
WHEN st5=>STX<=st6;
WHEN st6=>STX<=st7;
WHEN st7=>STX<=st0;
END CASE;
END IF;
end if;
END PROCESS REG2;
end Behavioral;
3、置数操作模块
运用状态机,进行置数操作
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM;
--use UNISIM.VComponents.all;
entity mux is
Port ( clk,ina,inb,sel,Reset : in std_logic;
r1,r2,r3,r4,r5,r6 : out std_logic);
end mux;
architecture Behavioral of mux is
TYPE state IS(st0,st1,st2,st3,st4,st5,st6,st7); SIGNAL STX:state;
begin
PROCESS(ina,inb,STX)
BEGIN
CASE STX IS
WHEN st0=>r1<=ina;r2<='0';r3<='0';r4<='0';r5<='0';r6<='0'; WHEN st1=>r1<=ina;r2<='0';r3<='0';r4<='0';r5<='0';r6<='0'; WHEN st2=>r1<='0';r2<='0';r3<='0';r4<='0';r5<='0';r6<=inb; WHEN st3=>r1<='0';r2<='0';r3<='0';r4<='0';r5<=inb;r6<='0'; WHEN st4=>r1<='0';r2<='0';r3<='0';r4<=inb;r5<='0';r6<='0'; WHEN st5=>r1<='0';r2<='0';r3<=inb;r4<='0';r5<='0';r6<='0'; WHEN st6=>r1<='0';r2<=inb;r3<='0';r4<='0';r5<='0';r6<='0'; WHEN st7=>r1<=inb;r2<='0';r3<='0';r4<='0';r5<='0';r6<='0'; END CASE;
END PROCESS;
PROCESS(clk,sel,Reset)
BEGIN
IF(Reset='1') THEN
STX<=st0;
ELSIF(clk'EVENT AND clk='1')THEN
if sel='1' then
CASE STX IS
WHEN st0=>STX<=st1;
WHEN st1=>STX<=st2;
WHEN st2=>STX<=st3;
WHEN st3=>STX<=st4;
WHEN st4=>STX<=st5;
WHEN st5=>STX<=st6;
WHEN st6=>STX<=st7;
WHEN st7=>STX<=st0;
END CASE;
END IF;
end if;
END PROCESS;
end Behavioral;
end Behavioral;
4、秒显示模块
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity secute1 is
Port ( clkm,set,reset : in std_logic;
sec2,sec1 : inout std_logic_vector(3 downto 0);
ensec : out std_logic);
end secute1;
architecture Behavioral of secute1 is
begin
Process(clkm,reset,set)
Begin
If reset='1' then sec2<="0000";sec1<="0000";
Elsif set='1' then sec2<="0101";sec1<="1000";
Elsif (clkm'event and clkm='1') then
if sec2="0101" AND sec1="1001" then sec2<="0000";sec1<="0000";ensec<='1'; elsif sec1="1001" then sec2<=sec2+'1';sec1<="0000";ensec<='0';
else sec1<=sec1+'1';ensec<='0';
end if;
end if;
End process;
end Behavioral;
5、分显示模块
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity minute1 is
Port ( clkm,set,reset : in std_logic;
min2,min1 : inout std_logic_vector(3 downto 0);
enmin : out std_logic);
end minute1;
architecture Behavioral of minute1 is
begin
Process(clkm,reset,set)
Begin
If reset='1' then min2<="0000";min1<="0000";
Elsif set='1' then min2<="0101";min1<="1000";
Elsif (clkm'event and clkm='1') then
if min2="0101" AND min1="1001" then min2<="0000";min1<="0000";enmin<='1'; elsif min1="1001" then min2<=min2+'1';min1<="0000";enmin<='0';
else min1<=min1+'1';enmin<='0';
end if;
end if;
End process;
end Behavioral;
6、小时显示模块
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity hour1 is
Port ( clkh,set,reset: in std_logic;
hor2,hor1 : inout std_logic_vector(3 downto 0);
enhour : out std_logic);
end hour1;
architecture Behavioral of hour1 is
begin
Process(clkh,reset,set)
Begin
If reset='1' then hor2<="0000";hor1<="0000";
Elsif set='1' then hor2<="0010";hor1<="0011";
Elsif (clkh'event and clkh='1') then
if hor2="0010" AND hor1="0011" then hor2<="0000";hor1<="0000";enhour<='1'; elsif hor1="1001" then hor2<=hor2+'1';hor1<="0000";enhour<='0';
else hor1<=hor1+'1';enhour<='0';
end if;
end if;
End process;
end Behavioral;
7、日显示模块(已加入闰年判断功能)
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity date1 is
Port ( clkd,set : in std_logic;
dat2,dat1 : inout std_logic_vector(3 downto 0);
endate : out std_logic);
end date1;
architecture Behavioral of date1 is
begin
Process(clkd,set)
Begin
if set='1' then dat2<="0010";dat1<="1000";
Elsif (clkd'event and clkd='1')then
if dat2="0011" AND dat1="0000" then dat2<="0000";dat1<="0001";endate<='1';
elsif dat1="1001" then dat2<=dat2+'1';dat1<="0000";endate<='0';
else dat1<=dat1+'1'; endate<='0';
end if;
end if;
End process;
end Behavioral;
8、月显示模块
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity month1 is
Port ( clkn,set: in std_logic;
mon2,mon1 : inout std_logic_vector(3 downto 0);
enmon : out std_logic);
end month1;
architecture Behavioral of month1 is
begin
Process(clkn,set)
Begin
if set='1' then mon2<="0000";mon1<="0110";
Elsif (clkn'event and clkn='1') then
if mon2="0001" AND mon1="0010" then mon2<="0000";mon1<="0001";enmon<='1'; elsif mon1="1001" then mon2<=mon2+'1';mon1<="0000";enmon<='0';
else mon1<=mon1+'1'; enmon<='0';
end if;
end if;
End process;
9、年显示模块
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity yearth1 is
Port ( clkn,set: in std_logic;
year2,year1 : inout std_logic_vector(3 downto 0);
enyear : out std_logic);
end yearth1;
architecture Behavioral of yearth1 is
begin
Process(clkn,set)
Begin
if set='1' then year2<="0001";year1<="0001";
Elsif (clkn'event and clkn='1') then
if year2="1001" AND year1="1001" then year2<="0000";year1<="0001"; elsif year1="1001" then year2<=year2+'1';year1<="0000";enyear<='0';
else year1<=year1+'1'; enyear<='0';
end if;
end if;
end Behavioral;
七、实验心得
感谢老师对我的教育培养,你平时对我的细心指导,课程设计的过程是对所学的电子技术基本理论知识的综合运用,对三年专业知识的一次综合应用、扩充和深化,也是对我们理论运用于实际设计的一次锻炼。通过课程设计,我不仅温习了以前在课堂上学习的专业知识,同时我也得到了老师和同学的帮助,学习和体会到了电子技术的基本技能和思想。
在这段时间里,我学到了很多知识也有很多感受。当然在做的过程中也遇到过很多的麻烦,一些没有接触过的元件,它们的封装需要自己去书籍、网上搜索,在更新的时候会有一些错误,自己很难改正,只得求助老师,最后得以解决。和老师的沟通交流更使我对设计有了新的认识也对自己提出了新的要求,这对我能力的提高大有好处。这个课题设计的过程让我学习、工作的思路有了更为明朗的认识:它是站在一定高度上去工作的,眼界要放宽,思路要开阔,内容要饱满。
非常感谢学院能给我们提供这样的一个可以自己动脑、动手进行设计的机会,同时也大大加强了同学之间的沟通,以及学生与老师之间的交流,这是一个放飞自我的平台,也是我们理想与实际结合的升华,我想学院给我们提供的这些,教会我们的这些不仅仅在现在有用,对于我们今后步入社会也是同样有用的。我在工作中不怕失败,在失败中总结经验,为成功积累素材;学着自我超越,敢于尝试,在尝试中进步,这对我能力的提高大有好处。 也坚信这次课程设计将成为我一辈子的财富,其中收获到的东西将伴随我一生。
电子时钟课程设计电子时钟课程设计报告班级文通0741姓名学号20xx905121共页第页电子时钟课程设计多功能数字钟课程设计报告一…
湖北民族学院信息工程学院课程设计报告书题目多功能数字钟课程电子线路课程设计专业电子信息科学与技术班级0310411学号031041…
单片机课程设计报告基于单片机的数字钟班级姓名学号设计时间单片机课程设计正文一引言现代社会科技飞速发展人们生活节奏加快时间就是金钱时…
数电课程设计报告1前言22设计任务23方案论证34系统结构441系统结构框图442系统各方框图的作用55整机电路设计651总电路图…
号学线名姓业专化封动自其及气电级7002院密学院学工课程设计专用封面设计题目所修课程名称电子课程技术课程设计修课程时间20xx年1…
课程设计报告VHDL语言实现数字钟的设计班级电子0901学号XXXXXXXX姓名XXXXXXXXX指导教师XXXXXXXXX设计时…
附仿真文件下载地址detailzhj88619xx4061213EDA课程设计报告课题名称姓名班级日期指导老师一设计要求说明设计并…
目录摘要21设计目的22设计内容221设计任务222扩展23系统方案及设计原理331方案选择332数字钟的基本工作原理333底层元…
EDA课程设计报告设计课题数字钟综合实验专业班级电子101学生姓名岳杨指导教师刘宏设计时间20xx62420xx75数字钟综合实验…
EDA课程设计报告数字钟设计班级20xx级学号姓名陶庆权一设计任务设计一台能显示时分秒的数字钟具体要求如下1由实验箱上的时钟信号经…
设计报告课程名称任课教师设计题目班级姓名学号日期在系统编程技术合肥学院课程设计报告目录摘要1关键词数字钟EDAVHDL语言1一设计…