eda实习报告封皮(五篇模版)

时间:2019-05-12 19:07:10下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《eda实习报告封皮》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《eda实习报告封皮》。

第一篇:eda实习报告封皮

青岛农业大学

电子设计自动化课程设计报告

2013——2014学年 第1学期

实习题目:数字式竞赛抢答器

姓名 :

学号 :

专业班级:

指导老师:

2013年8月26日

第二篇:EDA实习报告

EDA实验报告

系别:

班级:

姓名:

学号:

目录

1.EDA介绍

2.Quartus II软件介绍

3.实习任务

4.封装引脚图

5.设计程序

6.结果显示

7.实习心得

1.EDA介绍

EDA是电子设计自动化(Electronic Design Automation)缩写。EDA技术是以计算机为工具,根据硬件描述语言HDL(Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL[1]。

几乎所有适于大学生做的数字逻辑电路实验都可以在计算机上利用EDA(Electronic Design Automatic—电子设计自动化)软件进行设计、仿真,只有极少量外部配件不能在计算机上进行仿真。因此,在实验前期阶段,即实验预习阶段的主要应用工具是EDA软件,利用EDA软件可以设计、仿真实验课题,进行虚拟实验。通过虚拟实验使实验者在进入真实实验前就能对预做的实验有相当的了解,甚至可以预测到实验的结果。这样在实际做实验时,可以把许多设计型实验的难度降低,同时能有更多的时间让实验者动手做实验,研究问题,提高实验效率。当前数字电路设计已由计算机辅助设计进入到以计算机为主的设计时代。

2.Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。

此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。

3.1 设计信号发生器使其能在仪器上显示正弦、三角、方波、锯齿波(其中的两种波形)

2设计频率计使其能测出制定波形的频率

4.波形发生器封装引脚图

5.波形发生器程序(正弦波,方波)

Boxing4

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY boxing4 IS PORT(RIN:in std_logic;

clk: IN std_logic;SINT:in std_logic_VECTOR(1 downto 0);--set:in std_logic;--_vector;--(1 downto 0);rs,rw,en,lcdon,lcdbon : OUT STD_LOGIC;YOUT:out std_logic_vector(7 downto 0);data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END boxing4;ARCHITECTURE fwm OF boxing4 IS

TYPE states IS(clear_display,set_initial,set_cgram,write_cgram,set_addram1,diaplay_cgram,set_addram2,diaplay_cgrom);--clear_display-清屏;--set_initial-初始化设置;--set_cgram-设置 cgram 地址;--write_cgram-字模写入 cgram;--set_addram1-设置显示 cgram 字符的 addram 地址;--diaplay_cgram-显示 cgram 字符;--set_addram2-设置显示 cgrom 字符的 addram 地址;--diaplay_cgrom-显示 cgrom 字符 SIGNAL state:states;TYPE ram_array0 IS ARRAY(0 TO 7)OF STD_LOGIC_VECTOR(7 DOWNTO 0);--定义 ram_array0 为二维数组

TYPE ram_array1 IS ARRAY(0 TO 7)OF ram_array0;--定义 ram_array1 为三维数组 SIGNAL lcd_clk : STD_LOGIC;SIGNAL data1,data2,data3:INTEGER RANGE 0 TO 9;--signal n:std_logic;SIGNAL net1,net2:std_logic_vector(7 downto 0);--signal net3:std_logic;

COMPONENT choice4_1

PORT(s:in std_logic_vector(1 downto 0);

d1,d2: in std_logic_vector(7 downto 0);

y: out std_logic_vector(7 downto 0));END COMPONENT;COMPONENT fangbo PORT(clkf,rf:in std_logic;

qf:out std_logic_vector(7 downto 0));END COMPONENT;COMPONENT sin PORT(clksin,rsin:in std_logic;

da:out std_logic_vector(7 downto 0));END COMPONENT;BEGIN u1: fangbo PORT MAP(clkf=>CLK,rf=>RIN,qf=>net1);u2: sin PORT MAP(clksin=>CLK,rsin=>RIN,da=>net2);u3: choice4_1 PORT MAP(s=>SINT,d1=>net1,d2=>net2,y=>YOUT);en <=lcd_clk;rw<= '0';lcdon<='1';lcdbon<='1';data1<=1;data2<=2;data3<=5;

PROCESS(clk)

CONSTANT m : INTEGER:=50000;--50M 分频到 1kHz。

VARIABLE cout : INTEGER RANGE 0 TO 50000000:=0;BEGIN

IF clk'EVENT AND clk='0' THEN cout:=cout+1;

IF cout<=m/2 THEN lcd_clk<='1';

ELSIF cout

ELSE cout:=0;

END IF;

END IF;

END PROCESS;

PROCESS(lcd_clk)CONSTANT cgram : ram_array1:=(--自定义 8 个 5*8 字符的字模(X“00”,X“0E”,X“00”,X“0E”,X“00”,X“1F”,X“00”,X“00”),--SAN(X“04”,X“1F”,X“04”,X“07”,X“05”,X“09”,X“13”,X“01”),--FANG(X“00”,X“1f”,X“04”,X“04”,X“17”,X“14”,X“14”,X“1f”),--ZHENG(X“0E”,X“02”,X“0E”,X“08”,X“08”,X“0e”,X“02”,X“0e”),--ZUO XIAN(X“04”,X“1E”,X“04”,X“08”,X“1e”,X“04”,X“09”,X“1f”),--YOU XIAN(X“00”,X“13”,X“0A”,X“03”,X“1a”,X“02”,X“0a”,X“13”),--ZUO BO(X“08”,X“1F”,X“09”,X“1E”,X“14”,X“08”,X“14”,X“03”),--YOU BO(X“18”,X“18”,X“07”,X“08”,X“08”,X“08”,X“07”,X“00”)--℃字符数据存储器);

VARIABLE datacnt:INTEGER RANGE 0 TO 15;

VARIABLE cnt: STD_LOGIC_VECTOR(7 DOWNTO 0);

VARIABLE num:INTEGER RANGE 0 TO 7;BEGIN--wait until net3='0';RISING_EDGE(lcd_clk);

IF RISING_EDGE(lcd_clk)THEN

--if sint=“00”then

case sint is

when “11”=>

CASE state IS

WHEN clear_display=> rs<='0';data<=“00000001”;state<=set_Initial;--清屏

WHEN set_initial=>

IF datacnt<3 THEN rs<='0';data<=“00111000”;datacnt:=datacnt+1;--设置功能:8 位,两行,5×8/每字符,重复 3 次

ELSIF datacnt=3 THEN rs<='0';data<=“00000110”;datacnt:=datacnt+1;--显示模式:完成一个字符码传送后,AC 自动加 1;显

ELSIF datacnt=4 THEN rs<='0';data<=“00001100”;datacnt:=datacnt+1;--显示控制:显示开,光标关,光标不闪烁

ELSE rs<='0';datacnt:=0;state <= set_cgram;

END IF;

WHEN set_cgram=>rs<='0';--设置 CGRAM 字符地址

data<=“01000000”+cnt;state<=write_cgram;--设置 CGRAM 字符地址 000

IF num <8 THEN cnt:=cnt+“00001000”;--设置 CGRAM 字符地址加 1

END IF;

WHEN write_cgram=> rs<='1';--在 指 定 的--CGRAM 字符地址写入对应的 8 个 5*8 字符字模

data <= cgram(num)(datacnt);datacnt:=datacnt+1;state <= write_cgram;--写入 CGRAM 字符地址 000 的 5*8--字符字模

IF datacnt=8 THEN num:=num+1;datacnt:=0;state <= set_cgram;--写入下一个自定义--的 5*8 字符字模

IF num =7 THEN num:=0;cnt:=“00000000”;state<=set_addram1;--8 个 5*8 字符字模写--入完成

END IF;

END IF;

WHEN set_addram1=>rs<='0';--设置 ADDRAM 地址 1

data<=“10000000”;state<=diaplay_cgram;

WHEN diaplay_cgram=>rs<='1';--显示 ADDRAM 地址对应的 CGRAM 字符

--if sint=“00”then

IF datacnt=0 THEN data<=X“02”;datacnt:=datacnt+1;

ELSIF datacnt=1 THEN data<=X“03”;datacnt:=datacnt+1;

ELSIF datacnt=2 THEN data <= X“04”;datacnt:=datacnt+1;

ELSIF datacnt=3 THEN data<=X“05”;datacnt:=datacnt+1;

ELSIF datacnt=4 THEN data<=X“06”;datacnt:=datacnt+1;

ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=7 THEN data<=X“46”;datacnt:=datacnt+1;

ELSIF datacnt=8 THEN data<=X“3a”;datacnt:=datacnt+1;

ELSIF datacnt=9 THEN data<=X“31”;datacnt:=datacnt+1;

ELSIF datacnt=10 THEN data<=X“30”;datacnt:=datacnt+1;

ELSIF datacnt=11 THEN data<=X“4d”;datacnt:=datacnt+1;

ELSIF datacnt=12 THEN data<=X“48”;datacnt:=datacnt+1;

ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;--显示 cgrom 中指定的

ELSIF datacnt=14 THEN data<=X“5a”;datacnt:=datacnt+1;

ELSE data<=X“20”;datacnt:=0;state <= set_addram2;

END IF;

WHEN set_addram2=>rs<='0';--设置 ADDRAM 地址 2

data<=“11000000”;state<=diaplay_cgrom;

WHEN diaplay_cgrom=>rs<='1';

IF datacnt=0 THEN data<=X“4A”;datacnt:=datacnt+1;

ELSIF datacnt=1 THEN data<=X“41”;datacnt:=datacnt+1;

ELSIF datacnt=2 THEN data<=X“43”;datacnt:=datacnt+1;

ELSIF datacnt=3 THEN data<=X“4B”;datacnt:=datacnt+1;

ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=7 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=8 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=9 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=10 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=11 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;

ELSIF datacnt=12 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data2+48,8);datacnt:=datacnt+1;

ELSIF datacnt=14 THEN data<=CONV_STD_LOGIC_VECTOR(data1+48,8);datacnt:=datacnt+1;

ELSE data<=X“56”;datacnt:=0;state <= set_addram1;

END IF;

END CASE;

--end if;

when “01”=>

--elsif sint =“01”then

CASE state IS

WHEN clear_display=> rs<='0';data<=“00000001”;state<=set_Initial;--清屏

WHEN set_initial=>

IF datacnt<3 THEN rs<='0';data<=“00111000”;datacnt:=datacnt+1;--设置功能:8 位,两行,5×8/每字符,重复 3 次

ELSIF datacnt=3 THEN rs<='0';data<=“00000110”;datacnt:=datacnt+1;--显示模式:完成一个字符码传送后,AC 自动加 1;显

ELSIF datacnt=4 THEN rs<='0';data<=“00001100”;datacnt:=datacnt+1;--显示控制:显示开,光标关,光标不闪烁

ELSE rs<='0';datacnt:=0;state <= set_cgram;

END IF;

WHEN set_cgram=>rs<='0';--设置 CGRAM 字符地址

data<=“01000000”+cnt;state<=write_cgram;--设置 CGRAM 字符地址 000

IF num <8 THEN cnt:=cnt+“00001000”;--设置 CGRAM 字符地址加 1

END IF;

WHEN write_cgram=> rs<='1';--在 指 定 的--CGRAM 字符地址写入对应的 8 个 5*8 字符字模

data <= cgram(num)(datacnt);datacnt:=datacnt+1;state <= write_cgram;--写入 CGRAM 字符地址 000 的 5*8--字符字模

IF datacnt=8 THEN num:=num+1;datacnt:=0;state <= set_cgram;--写入下一个自定义--的 5*8 字符字模

IF num =7 THEN num:=0;cnt:=“00000000”;state<=set_addram1;--8 个 5*8 字符字模写--入完成

END IF;

END IF;

WHEN set_addram1=>rs<='0';--设置 ADDRAM 地址 1

data<=“10000000”;state<=diaplay_cgram;

WHEN diaplay_cgram=>rs<='1';--显示 ADDRAM 地址对应的 CGRAM 字符

--if sint=“00”then

IF datacnt=0 THEN data<=X“01”;datacnt:=datacnt+1;

ELSIF datacnt=1 THEN data<=X“05”;datacnt:=datacnt+1;

ELSIF datacnt=2 THEN data <= X“06”;datacnt:=datacnt+1;

ELSIF datacnt=3 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=7 THEN data<=X“46”;datacnt:=datacnt+1;

ELSIF datacnt=8 THEN data<=X“3a”;datacnt:=datacnt+1;

ELSIF datacnt=9 THEN data<=X“31”;datacnt:=datacnt+1;

ELSIF datacnt=10 THEN data<=X“30”;datacnt:=datacnt+1;

ELSIF datacnt=11 THEN data<=X“4d”;datacnt:=datacnt+1;

ELSIF datacnt=12 THEN data<=X“48”;datacnt:=datacnt+1;

ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;--显示 cgrom 中指定的

ELSIF datacnt=14 THEN data<=X“5a”;datacnt:=datacnt+1;

ELSE data<=X“20”;datacnt:=0;state <= set_addram2;

END IF;

WHEN set_addram2=>rs<='0';--设置 ADDRAM 地址 2

data<=“11000000”;state<=diaplay_cgrom;

WHEN diaplay_cgrom=>rs<='1';

IF datacnt=0 THEN data<=X“4A”;datacnt:=datacnt+1;

ELSIF datacnt=1 THEN data<=X“41”;datacnt:=datacnt+1;

ELSIF datacnt=2 THEN data<=X“43”;datacnt:=datacnt+1;

ELSIF datacnt=3 THEN data<=X“4B”;datacnt:=datacnt+1;

ELSIF datacnt=4 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=5 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=6 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=7 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=8 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=9 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=10 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=11 THEN data<=CONV_STD_LOGIC_VECTOR(data3+48,8);datacnt:=datacnt+1;

ELSIF datacnt=12 THEN data<=X“20”;datacnt:=datacnt+1;

ELSIF datacnt=13 THEN data<=CONV_STD_LOGIC_VECTOR(data2+48,8);datacnt:=datacnt+1;

ELSIF datacnt=14 THEN data<=CONV_STD_LOGIC_VECTOR(data1+48,8);datacnt:=datacnt+1;

ELSE data<=X“56”;datacnt:=0;state <= set_addram1;

END IF;

END CASE;

--end if;

when others =>null;

end case;

END IF;end process;END fwm;

Choice4-1

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

--程序包 entity choice4_1 is

--定义实体 port(s:in std_logic_vector(1 downto 0);

--信号选择端口s d1,d2: in std_logic_vector(7 downto 0);--d1d2d3d4分别连接四个波形发生模块

y: out std_logic_vector(7 downto 0));--定义输出信号端口 end choice4_1;architecture behav of choice4_1 is

--结构体 begin

process(s)

begin

case s is

--case when语句进行信号位的选择

when “01”=>y<=d1;

when “11”=>y<=d2;

when others=>null;

end case;end process;

--进程结束 end behav;

--结构体结束

fangbo

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fangbo is port(clkf,rf:in std_logic;qf:out std_logic_vector(7 downto 0));end entity;architecture behav of fangbo is signal a:bit;begin process(clkf,rf)--计数分频

variable cnt:integer range 0 to 256;begin if(rf='0')then a<='0';elsif clkf'event and clkf='1' then if cnt<255 then--进行分频 cnt:=cnt+1;else cnt:=0;a<=not a;end if;end if;end process;process(clkf,a)--信号输出 begin if clkf'event and clkf='1' then if a='1' then qf<=“11111111”;else

qf<=“00000000”;end if;end if;end process;end behav;

sin

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sin is port(clksin,rsin:in std_logic;da:out BIT_vector(7 downto 0));end entity;architecture behav of sin is signal a:bit;begin process(clksin,rsin)--计数分频 variable cnt:integer range 0 to 256;begin if(rsin='0')then a<='0';elsif clksin'event and clksin='1' then if cnt<4 then--进行分频 cnt:=cnt+1;else cnt:=0;a<=not a;end if;end if;end process;--process(clksin,a)process(a)

variable tmp:std_logic_vector(7 downto 0);variable d:BIT_vector(7 downto 0);begin--if a='0' then--d:=“00000000”;--elsif clksin'event and clksin='1' then if a'event and a='1' then if tmp=“00111111” then tmp:=“00000000”;else tmp:=tmp+1;end if;case tmp is when “00000000”=>d:=“11111111”;when “00000001”=>d:=“11111110”;when “00000010”=>d:=“11111100”;when “00000011”=>d:=“11111001”;when “00000100”=>d:=“11110101”;when “00000101”=>d:=“11101111”;when “00000110”=>d:=“11101001”;when “00000111”=>d:=“11100001”;when “00001000”=>d:=“11011001”;when “00001001”=>d:=“11001111”;when “00001010”=>d:=“11000101”;when “00001011”=>d:=“10111010”;when “00001100”=>d:=“10101110”;when “00001101”=>d:=“10100010”;when “00001110”=>d:=“10010110”;when “00001111”=>d:=“10001010”;when “00010000”=>d:=“01111100”;when “00010001”=>d:=“01100000”;when “00010010”=>d:=“01100011”;when “00010011”=>d:=“01010111”;when “00010100”=>d:=“01001011”;when “00010101”=>d:=“01000000”;when “00010110”=>d:=“00110101”;when “00010111”=>d:=“00101011”;when “00011000”=>d:=“00100010”;when “00011001”=>d:=“00011010”;when “00011010”=>d:=“00010011”;when “00011011”=>d:=“00001101”;when “00011100”=>d:=“00001000”;when “00011101”=>d:=“00000001”;when “00011110”=>d:=“00000001”;when “00011111”=>d:=“00000000”;when “00100000”=>d:=“00000000”;when “00100001”=>d:=“00000001”;when “00100010”=>d:=“00000001”;when “00100011”=>d:=“00001000”;when “00100100”=>d:=“00001101”;when “00100101”=>d:=“00010011”;when “00100110”=>d:=“00011010”;when “00100111”=>d:=“00100010”;when “00101000”=>d:=“00101011”;when “00101001”=>d:=“00110101”;when “00101010”=>d:=“01000000”;when “00101011”=>d:=“01001011”;when “00101100”=>d:=“01010111”;when “00101101”=>d:=“01100011”;when “00101110”=>d:=“01100000”;when “00101111”=>d:=“01111100”;when “00110000”=>d:=“10001001”;when “00110001”=>d:=“10010110”;when “00110010”=>d:=“10100010”;when “00110011”=>d:=“10101110”;when “00110100”=>d:=“10111010”;when “00110101”=>d:=“11000101”;when “00110110”=>d:=“11011001”;when “00110111”=>d:=“11011001”;when “00111000”=>d:=“11100001”;when “00111001”=>d:=“11101001”;when “00111010”=>d:=“11101111”;when “00111011”=>d:=“11110101”;when “00111100”=>d:=“11111001”;when “00111101”=>d:=“11111100”;when “00111110”=>d:=“11111110”;when “00111111”=>d:=“11111111”;when others=>null;end case;end if;da<=d SRL 1;--幅度调整 end process;end behav;

频率计

1、频率产生器: library ieee;use ieee.std_logic_1164.all;library lpm;use lpm.lpm_components.all;entity lpm_counter0 is port(clock: in std_logic;q: out std_logic_vector(26 downto 0));end lpm_counter0;architecture syn of lpm_counter0 is signal sub_wire0 : std_logic_vector(26 downto 0);component lpm_counter generic(lpm_direction : string;

lpm_port_updown : string;lpm_type : string;lpm_width : natural);port(clock : in std_logic;

q : out std_logic_vector(26 downto 0));end component;begin q <= sub_wire0(26 downto 0);lpm_counter_component : lpm_counter generic map(lpm_direction => “up”,lpm_port_updown => “port_unused”,lpm_type => “lpm_counter”,lpm_width => 27)port map(clock => clock,q => sub_wire0);end syn;

2、测频控制信号发生器 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testpl is port(clk:in std_logic;--1Hz信号

tsten:out std_logic;--计数器使能信号 clr_cnt:out std_logic;--计数器清零信号 load:out std_logic);--锁存器输出控制信号 end testpl;architecture art of testpl is signal div2clk:std_logic;begin process(clk)begin if clk'event and clk='1'then div2clk<=not div2clk;--div2clk为0.5Hz end if;end process;process(clk ,div2clk)begin if(clk='0'and div2clk='0')then clr_cnt<='1';--当div2clk与clk同时为零时计数器清零 else clr_cnt<='0';--当div2clk处于的高电平时计数器计数 end if;end process;load<=not div2clk;--锁存器输出与计数器使能信号反相 tsten<=div2clk;end art;

3、有时钟使能的十进制计数器 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk,clr,en: in std_logic;--clk:计数器时钟,clr:清零信号,en:计数使能信号

q: out std_logic_vector(3 downto 0);--q:4位计数结果输出 c10: out std_logic);--计数进位 end cnt10;architecture art of cnt10 is signal cqi: std_logic_vector(3 downto 0);begin process(clk,clr)begin if clr='1' then cqi<=“0000”;--当输入的clr_cnt为低电平1时清零 elsif clk'event and clk='1' then if en='1' then--当输入的tesen为高电平1时允许计数 if(cqi<9)then cqi<=cqi+1;else cqi<=“0000”;--等于9则计数器清零 end if;--当输入的tesen为低电平0时禁止计数,锁定计数值 end if;end if;end process;--产生进位

process(cqi)begin if cqi=“1001” then c10<='1';--当加的9时产生进位输出 else c10<='0';end if;end process;q<=cqi;end art;4、16位锁存器 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg16b is port(load: in std_logic;--输出锁存控制信号 din: in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0));end reg16b;architecture art of reg16b is begin process(load,din)begin if load'event and load='1'then--load为高电平时teten为低电平,计数器禁止 dout<=din;--锁存输入的数据 end if;end process;end art;

5、数码管控制器 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ledcom is port(clk:in std_logic;--数码管扫描频率

datain: in std_logic_vector(15 downto 0);--锁存器输入的16位信号 dataout: out std_logic_vector(3 downto 0);-输出至译码器的4位信号 com: out std_logic_vector(3 downto 0));--输出数码管选择信号 end ledcom;architecture art of ledcom is signal comclk: std_logic_vector(1 downto 0);begin--comclk同扫描频率clk循环变化 process(clk)begin if rising_edge(clk)then if comclk>=3 then

comclk <=“00”;

else comclk<=comclk+1;end if;end if;end process;--数码管选择

process(comclk)begin case comclk is when “00” => com<=“1000”;when “01” => com<=“0100”;when “10” => com<=“0010”;when “11” => com<=“0001”;when others =>NULL;end case;end process;--对应数码管的输出

process(comclk,datain)begin case comclk is when “11”=> dataout<=datain(3 downto 0);when “10”=> dataout<=datain(7 downto 4);when “01”=> dataout<=datain(11 downto 8);when “00”=> dataout<=datain(15 downto 12);when others =>NULL;end case;end process;end art;

6、七段数码管的译码器 library IEEE;use IEEE.std_logic_1164.all;entity ymq is port(d_in: in std_logic_vector(3 downto 0);--数码管控制器输入四位信号

d_out: out std_logic_vector(7 downto 0));--输出8位信号 end ymq;--第8位d_out[7]为逗号 architecture art of ymq is begin process(d_in)begin case d_in is--第8位为1高电平逗号不显示 when “0000” => d_out<=“11000000”;--0 when “0001” => d_out<=“11111001”;--1 when “0010” => d_out<=“10100100”;--2 when “0011” => d_out<=“10110000”;--3 when “0100” => d_out<=“10011001”;--4 when “0101” => d_out<=“10010010”;--5 when “0110” => d_out<=“10000010”;--6 when “0111” => d_out<=“11111000”;--7 when “1000” => d_out<=“10000000”;--8 when “1001” => d_out<=“10010000”;--9 when others =>NULL;end case;end process;end art;

7、元件声明及例化将各个元器件依据设计相连 library ieee;use ieee.std_logic_1164.all;entity lx is port(clk: in std_logic;led: out std_logic_vector(7 downto 0);ledc: out std_logic_vector(3 downto 0));end lx;architecture art of lx is component lpm_counter0--待调用的频率生成器端口定义 PORT(clock: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(26 DOWNTO 0));end component;--十进制计数器

component cnt10--待调用的有时钟使能的十进制计数器端口定义

port(clk,clr,en: in std_logic;q: out std_logic_vector(3 downto 0);c10: out std_logic);end component;--16位锁存器

component reg16b--待调用的32位锁存器端口定义 port(load: in std_logic;din: in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0));end component;--测频控制器

component testpl--待调用的测频控制信号发生器端口定义 port(clk:in std_logic;tsten:out std_logic;clr_cnt:out std_logic;load:out std_logic);end component;--数码管选择器

component ledcom--待调用的数码管选择器端口定义 port(clk:in std_logic;datain: in std_logic_vector(15 downto 0);dataout: out std_logic_vector(3 downto 0);com: out std_logic_vector(3 downto 0));end component;--译码器

component ymq--待调用的译码器端口定义 port(d_in: in std_logic_vector(3 downto 0);d_out: out std_logic_vector(7 downto 0));end component;signal clk1,clk2,clk3: std_logic;--clk1为1Hz信号,clk2为被测信号,clk3为数码管扫描信号

signal tsten,clr,load: std_logic;signal c1,c2,c3,c4: std_logic;signal qout,rout: std_logic_vector(15 downto 0);signal datao: std_logic_vector(3 downto 0);begin u0:testpl port map(clk1,tsten,clr,load);u1:cnt10 port map(clk2,clr,tsten,qout(3 downto 0),c1);u2:cnt10 port map(c1,clr,tsten,qout(7 downto 4),c2);u3:cnt10 port map(c2,clr,tsten,qout(11 downto 8),c3);u4:cnt10 port map(c3,clr,tsten,qout(15 downto 12),c4);u5:reg16b port map(load,qout(15 downto 0),rout);u6:ledcom port map(clk3,rout,datao,ledc);u8:ymq port map(datao,led);u9:lpm_counter0 port map(clk,q(25)=>clk1,q(15)=>clk2,q(17)=>clk3);end art;

6.结果显示

7.实习心得

第三篇: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<=second1n;second10_out<=second10n;process(clk,reset)begin if(reset='1')then second1n<=“0000”;second10n<=“000”;elsif(clk' event and clk='1')then if(second1n=“1001”)then 7 second1n<=“0000”;if(second10n=“101”)then second10n<=“000”;cf<='1';else second10n<=second10n+1;end if;else second1n<=second1n+1;end if;end if;end process;end architecture one;附录二:分钟模块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;minute10_out<=minute10n;process(clk,reset)begin if(reset='1')then minute1n<=“0000”;minute10n<=“000”;elsif(clk' event and clk='1')then if(minute1n=“1001”)then minute1n<=“0000”;if(minute10n=“101”)then minute10n<=“000”;cf<='1';else minute10n<=minute10n+1;end if;else minute1n<=minute1n+1;end if;end if;end process;end architecture one;附录三:小时模块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<=hour1n;hour10_out<=hour10n;process(clk,reset)begin if(reset='1')then hour1n<=“0000”;hour10n<=“00”;elsif(clk' event and clk='1')then if(hour1n=“1001”or(hour1n=“0011”and hour10n=“0010”))then hour1n<=“0000”;if(hour10n=“10”)then hour10n<=“00”;else hour10n<=hour10n+1;end if;else hour1n<=hour1n+1;end if;end if;end process;end architecture one;附录四:扫描仪模块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<=count;process(clk,reset)begin if(reset='1')then dataout<=“0000”;elsif(clk'event and clk='1')then if count>=“101” then count<=“000”;else count<=count+1;end if;end if;case count is when“000”=>dataout<=second1;when“001”=>dataout<='0'& second_10;when“010”=>dataout<=minute1;when“011”=>dataout<='0'& minute_10;when“100”=>dataout<=hour1;when others =>dataout<=“00”& hour_10;end case;end process;end architecture one;

附录五: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 <= “0111111”;--X“3F” 0 WHEN “0001” => LED7S <= “0000110”;--X“06” 1 WHEN “0010” => LED7S <= “1011011”;--X“5B” 2 WHEN “0011” => LED7S <= “1001111”;--X“4F” 3 WHEN “0100” => LED7S <= “1100110”;--X“66” 4 WHEN “0101” => LED7S <= “1101101”;--X“6D” 5 WHEN “0110” => LED7S <= “1111101”;--X“7D” 6 WHEN “0111” => LED7S <= “0000111”;--X“07” 7 WHEN “1000” => LED7S <= “1111111”;--X“7F” 8 WHEN “1001” => LED7S <= “1101111”;--X“6F” 9 WHEN OTHERS => NULL;END CASE;END PROCESS;END ARCHITECTURE one;

第四篇:EDA实习报告

电子设计自动化技术EDA实习报告

目录

引 言

(1)EDA简介

(2)EDA的设计流程 第一章

实训目的

第二章 实训内容

一、EDA 开发软件Max+plus II 或Quartus II

1.1基本原理

1.2条件要求

1.3主要内容

1.4实践步骤与结果分析

(一)设计原理图或VHDL源程序

1)原理图

2)VHDL源程序

(二)器件及管脚逻分配图

1)调试编译与仿真波形

2)时序分析图

1.5项目一的结论

二、4位全加器设计

2.1基本原理

2.2条件要求

2.3主要内容

2.4方案及实现方法

2.5实践步骤与结果分析

(一)设计1 位全加器

1)1 位全加器原理图

2)1位全加器仿真波形

(二)四位全加器设计

1)四位全加器原理图

2)器件及管脚逻分配图

3)调试编译与仿真波形

4)时序分析图

(三)项目二的结论

三、8 线-3 线优先编码器

3.1基本原理

1、管脚

2、真值表

3.2条件要求

3.3主要内容

3.4方案及实现方法

3.5实践步骤与结果分析

(一)原理图和VHDL程序

203130705岳慧慧

电子设计自动化技术EDA实习报告

1)3-8译码器的原理图

2)VHDL程序

(二)器件及管脚逻分配图

(三)调试编译与仿真波形

1、调试编译

2、仿真波形

(四)时序分析图

(五)项目三的结论

四、10 进制计数器设计

4.1基本原理

1、管脚

2、真值表

4.2条件要求

4.3主要内容

4.4方案及实现方法

4.5实践步骤与结果分析

(一)原理图和VHDL程序

1)10 进制计数器

2)VHDL程序

(二)器件及管脚逻分配图

(三)调试编译与仿真波形

1、调试编译

2、仿真波形

(四)时序分析图

(五)项目四的结论

五、8 位循环移位寄存器

5.1基本原理

1、管脚

2、真值表

5.2条件要求

5.3主要内容

5.4方案及实现方法

5.5实践步骤与结果分析

(一)原理图和VHDL程序

1)8 位循环移位寄存器

2)VHDL程序

(二)器件及管脚逻分配图

(三)调试编译与仿真波形

1、调试编译

2、仿真波形

(四)时序分析图

(五)项目三的结论

第三章 结 论

203130705岳慧慧

电子设计自动化技术EDA实习报告

(1)EDA简介

电子技术的迅猛发展,高新技术日新月异。传统的电子技术设计方法,以不能帮助我们更好的、高效的完成设计任务。所以我们需要更好的工具来帮助我们完成设计任务。

EDA技术是指以计算机为工作平台,融合应用电子技术、计算机技术、信息处理及智能化技术,进行电子产品自动化设计的一门新技术。

EDA技术作为现代电子设计技术的核心,依赖于计算机,在EDA工具软件平台上,对以硬件描述语言为逻辑描述手段完成设计文件,自动地完成逻辑编译、逻辑化简、逻辑综合、布局布线,以及逻辑优化和仿真测试,直至实现既定的电子电路的功能。

在硬件方面,EDA技术融合了大规模集成电路制造技术、集成电路板图设计技术、可编程器件编程技术、自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计、计算机辅助制造、计算机辅助测试、计算机辅助分析、计算机辅助工程技术以及多种计算机语言的设计概念;在现代电子学方面容纳了诸如计算机设计技术、电子线路设计理论、数字信息处理技术、数字系统建模和优化技术以及基于微波技术的长线技术理论。

可以说,EDA技术打破了软件设计和硬件设计间的壁垒,是一门综合性学科,一种多方位技能技术。它将设计效率和产品性能合二为一,代表了电子设计技术和电子应用技术的发展方向。

(2)EDA的设计流程

编辑输入

1)文本输入。在EDA工具软件的文本编辑见面上,输入用某种硬件语言表

述的电路设计文本。

2)原理图输入。在EDA工具软件的图形编辑界面上,绘制能完成预定功能的电路原理图。

3)状态图输入。依据电路的控制条件和状态转换的因果关系,在EDA工具软件的状态图编辑界面上绘制时序电路的状态流程图。

 波形图输入

在EDA工具软件的波形图编辑界面上,绘制电路输入输出信号间的波形关系,然后由EDA编译器据此完成电路设计。

综合

综合是将由硬件描述语言表述的电路行为表述转换为低级的、与可编程逻辑器件基本结构相映射的网表文件或电路连接图。

适配

适配是为了将综合器产生的网表文件装配于指定的目标器中,而产生最终的编程文件。

 功能仿真与时序仿真

1)功能仿真是指针对文本设计、原理图设计及其它设计方法的逻辑功能进 2)行测试模拟,以便了解所设计电路实现的功能是否符合要求。

3)时序仿真的结果接近真实器件的运行特性。

编程下载

把适配后生成的编程文件通过编程器或编程电缆载入目标可编程逻辑器件,以便进行硬件验证。

 硬件测试

对含有载入了编程文件的可编程逻辑器件的硬件系统进行统一的测试。

203130705岳慧慧

电子设计自动化技术EDA实习报告

第一章 实训目的

1)掌握MAX+PLUSⅡ或Quartus II 的安装与使用方法,EDA 的开发流程及相关分析综合方法。2)复习加法器的原理,掌握加法器的设计实现方法,设计实现数字系统设计中常用的4位全加器,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II 软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。

3)复习编码器的原理,掌握编码器的设计实现方法,设计实现数字系统设计中常用的8线-3 线优先编码器,逐步学会熟练运用MAX+PLUSⅡ或Quartus II 软件,熟悉EDA 的VHDL程序设计方法、学习掌握组合逻辑电路的VHDL 描述方法,进一步掌握应用EDA 常用工具进行组合逻辑电路的设计、分析、综合、仿真等的技巧。

4)复习计数器的原理,掌握计数器的设计实现方法,设计实现数字系统设计中常用的10进制计数器,逐步学会熟练运用MAX+PLUSⅡ或Quartus II 软件,熟悉EDA 的VHDL 程序设计方法、学会使用信号升沿、降沿、VHDL 的敏感量表等内容,掌握时序逻辑电路的VHDL描述方法,步掌握应用EDA 常用工具软件进行时序逻辑电路的设计、分析、综合、仿真等的方法与技巧。

5)复习循环移位寄存器的原理与功能,学习掌握循环移位寄存器的设计实现方法,设计实现数字系统设计中常用的8 位循环移位寄存器,逐步学会熟练运用MAX+PLUSⅡ或QuartusII 软件,熟悉EDA 的VHDL 程序设计方法、学会使用信号升沿、降沿、VHDL 的敏感量表等内容,掌握时序逻辑电路的VHDL 描述方法,掌握应用EDA 常用工具软件进行时序逻辑电路的设计、分析、综合、仿真等的方法与技巧。

6)初步掌握VHDL语言和原理图的设计输入,编译,仿真和调试过程,理解VHDL语言的基本特点包括结构、语法、数据类型等。

第二章 实训内容

一、EDA 开发软件Max+plus II 或Quartus II 1.1基本原理

根据EDA 的设计流程:设计输入→编译→器件选择→管脚分配→设计仿真→时序分析→编程下载,在熟悉EDA 开发软件Max+plus II 或Quartus II 界面操作基础上,使用软件提供的编辑、编译、仿真等工具,分析所设计的系统。

1.2条件要求

1)计算机及操作系统

2)MAX+Plus II 或Quartus II 软件 3)编程电缆(可选)

1.3主要内容

1.设计输入方法,包括图形输入、文本输入等 2.设计编译

3.器件选择及管脚分配 4.设计仿真 5.时序分析 6.编程下载

1.4实践步骤与结果分析

(一)设计原理图或VHDL源程序

203130705岳慧慧

电子设计自动化技术EDA实习报告

1)原理图

我设计了一个半加器,A和B是输入端,C是进位输出,D是加法输出

以上为采用图形输入法完成的一个二输入半加器电路 2)VHDL源程序

O<=A XOR B;//A与B异或 C<=A AND B;//A与B相与

(二)器件及管脚逻分配图203130705岳慧慧 5

电子设计自动化技术EDA实习报告

与门的两个输入A 和B 分配给管脚3 与2,输出C分配给管脚44,输出O分配给管脚43,所选器件为EPM3032ALC44-4。

(三)调试编译与仿真波形 1)调试编译

203130705岳慧慧 6

电子设计自动化技术EDA实习报告

编译结果正确,无错误,但是有一个警告。

2)仿真波形

此处,我设计A输入信号为100ns/每格的时钟脉冲,B输入信号为300ns/每格的时钟脉冲。

仿真波形如下图所示:

从仿真波形可以看出,输入输出结果满足表达式O=A XOR B、C=A AND B,亦即所设203130705岳慧慧

电子设计自动化技术EDA实习报告

计电路功能达到设计要求。

(四)时序分析图

此处,我进行Classic Timing Analyzer 时序分析,可以得到A、B、C、D四个波形的信号到达时间都是3.5ns,所以仿真波形图上不存在毛刺,很完美。

1.5项目一的结论

我掌握了MAX+PLUSⅡ或Quartus II 的安装与使用方法,EDA 的开发流程及相关分析综合方法,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II 软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。同时复习加法器的原理,掌握加法器的设计实现方法,我完成的主要工作是设计了数字系统设计中常用的一个半加器。A和B是半加器输入,C是半加器的进位输出,D是A加B的结果输出,并且利用波形仿真验证VHDL程序和原理图的正确性。得出的结论是根据波形图结果,波形符合逻辑关系,无毛刺,十分完美地实现二输入半加器。

二、4位全加器设计

2.1基本原理 位全加器的管脚如下图所示:

其中CIN 表示输入进位位,COUT 表示输出进位位,输入A 和B 分别表示加数和被加数。输出SUM=A+B+CIN,当SUM 大于255 时,COUT 置‘1’。

4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。其中,其中C1表示输入进位位,C0表示输出进位位,输入A和B分别表示加数和被加数。S为输出和,其功能可用布尔代数式表示为:

S=A+B+C1

203130705岳慧慧

电子设计自动化技术EDA实习报告

首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。将4个1位全加器级联构成四位全加器。

2.2条件要求

1.计算机及操作系统

2.MAX+Plus II 或Quartus II 软件 3.编程电缆(可选)

2.3主要内容

根据所学相关知识,运用MAX+PLUS II 或Quartus II 软件的图形输入方法,实现4位全加器设计。首先给出设计原理并提出实现方案,经指导教师同意后,通过设计输入、编译综合、仿真验证等过程完成并验证设计。

1.设计输入方法,包括图形输入、文本输入等 2.设计编译

3.器件选择及管脚分配 4.设计仿真 5.时序分析 6.编程下载

2.4方案及实现方法

设计过程中可以首先采用基本逻辑门设计1 位全加器,而后通过多个1 位全加器级联实现4 位全加器,也可以根据输出与输入的逻辑关系写出其布尔代数式,根据布尔代数式用基本逻辑门实现全加器。

2.5实践步骤与结果分析

(一)设计1 位全加器 1)1 位全加器原理图

我设计了一位全加器,A和B是输入端,C1是进位输入端,C0是进位输出端,S是全加器输出端。

203130705岳慧慧

电子设计自动化技术EDA实习报告

以上为采用图形输入法完成的一个一位全加器电路。

2)1位全加器仿真波形

仿真结果如图,1位全加器设计成功。

(二)四位全加器设计

与门的两个输入A 和B 分配给管脚3 与2,输出C分配给管脚44,输出O分配给管脚43,所选器件为EPM3032ALC44-4。

1)四位全加器原理图

203130705岳慧慧

电子设计自动化技术EDA实习报告

2)器件及管脚逻分配图

203130705岳慧慧

电子设计自动化技术EDA实习报告

管脚分配情况如图,所选器件为EPM3032ALC44-4。

3)调试编译与仿真波形 1.调试编译

编译结果正确,无错误,但是有一个警告。

分析可得,通过二输入与门,非门,或门,输出的S为两者之和,C0为输出进位。仿真结果与全加器真值表相同,四位全加器设计成功。

2.仿真波形

仿真波形如下图所示:

203130705岳慧慧

电子设计自动化技术EDA实习报告

当A3A2A1A0=0000,B3B2B1B0=0000时,S3S2S1S0=0000 ;当A3A2A1A0=0101,B3B2B1B0=1100时,S3S2S1S0=0001,其他时刻波形也与全加器功能相符,全加器设计成功。

从仿真波形可以看出,输入输出结果满足表达式O=A XOR B、C=A AND B,亦即所设计电路功能达到设计要求。

4)时序分析图

203130705岳慧慧

电子设计自动化技术EDA实习报告

此处,我进行Classic Timing Analyzer 时序分析,可以得到A、B、C1、C0、S五个端口的信号到达时间,同步逻辑性能分析后可知仿真波形图上不存在毛刺,满足四位全加器的设计要求。

(三)项目二的结论

我掌握了EDA 的开发流程及相关分析综合方法,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II 软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。同时复习加法器的原理,掌握加法器的设计实现方法,我完成的主要工作是设计了数字系统设计中常用的一个半加器。A和B是全加器加数和被加数,C1是全加器的进位输入,C0是全加器的进位输出,S是A加B的结果输出,并且利用波形仿真验证原理图的正确性。得出的结论是根据波形图结果,波形符合逻辑关系,无毛刺,十分完美地实现一位全加器。

三、8 线-3 线优先编码器

3.1基本原理

1、管脚 线-3 线优先编码器的管脚如图:

其中IN 表示输入编码位,Sel 为片选信号,Y 表示输出编码值,YS 与YEX 表示器件状态,“11”表示器件未选中,“01”表示无键按下,“10”表示器件工作态。

2、真值表

8-3 编码器的真值表如下:

3.2条件要求

1.计算机及操作系统

2.MAX+Plus II 或Quartus II 软件 3.编程电缆(可选)

203130705岳慧慧

电子设计自动化技术EDA实习报告

3.3主要内容

1.根据所学相关知识,运用MAX+PLUS II 或Quartus II 软件的文本文件输入方法,编写VHDL 程序,实现8-3 优先编码器的设计。首先给出设计原理并提出实现方案论证,经指导教师同意后,通过设计输入、编译综合、仿真验证等过程完成并验证设计。设计输入方法,包括图形输入、文本输入等

2.设计编译

3.器件选择及管脚分配 4.设计仿真 5.时序分析 6.编程下载

3.4方案及实现方法

8-3 优先编码器的VHDL 描述有多种方法,设计过程中可以根据真值表采用case„when语句、with„select 语句、if„then 结构等多种手段实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8-3 优先编码器,详细方案与方法略。

3.5实践步骤与结果分析

(一)原理图和VHDL程序 1)3-8译码器的原理图

203130705岳慧慧

电子设计自动化技术EDA实习报告

以上为采用图形输入法完成的一个3-8优先译码器。

2)VHDL程序

8-3优先编码器的VHDL描述有多种方法,设计过程中可以根据真值表采用case„when语句、with„select语句、if„then结构等多种手段实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8-3优先编码器。本实验中,我根据真值表用if-then结构实现8-3优先编码器。

203130705岳慧慧

电子设计自动化技术EDA实习报告

(二)器件及管脚逻分配图

管脚分配情况如图,所选器件为EPM3032ALC44-4。

(三)调试编译与仿真波形

1、调试编译

编译结果正确,无错误,但是有两个警告。

203130705岳慧慧

电子设计自动化技术EDA实习报告

2、仿真波形

8线-3线优先编码器的仿真波形如下图所示:

当3-8译码器的片选信号为000时,片选信号选中输出的个位,当3-8译码器的片选信号为001时,片选信号选中输出的十位,当3-8译码器的片选信号为010时,片选信号选中输出的个位,当3-8译码器的片选信号为011时,片选信号选中输出的十位,当3-8译码器的片选信号为100时,片选信号选中输出的个位,当3-8译码器的片选信号为101时,片选信号选中输出的十位,就这样动态扫描,当输入的时钟信号频率很高的时候,就形成了我们的时钟。

从仿真波形可以看出,输入输出结果满足所设计电路功能,符合前文真值表,3-8优先编码器达到设计要求。

(四)时序分析图

203130705岳慧慧 18

电子设计自动化技术EDA实习报告

此处,我进行Classic Timing Analyzer 时序分析,可以得到输入输出端口的信号到达时间都是4.5ns,同步逻辑性能分析后可知仿真波形图上不存在毛刺,满足3-8优先编码器的设计要求。

(五)项目三的结论

我掌握了EDA 的开发流程及相关分析综合方法,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II 软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。同时复习加法器的原理,掌握加法器的设计实现方法,我完成的主要工作是设计了数字系统设计中常用的一个3-8优先编码器,并且利用波形仿真验证VHDL程序和原理图的正确性。得出的结论是根据波形图结果,波形符合逻辑关系,无毛刺,十分完美地实现3-8优先编码器的功能。

我发现用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

附:参考程序 LIBRARY IEEE;ENTITY ENCODER IS USE IEEE.STD_LOGIC_1164.ALL;PORT(I:IN STD_LOGIC_VECTOR(7 USE IEEE.STD_LOGIC_UNSIGNED.ALL;DOWNTO 0);203130705岳慧慧

电子设计自动化技术EDA实习报告

SEL: IN STD_LOGIC;Y : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);YS,YEX : INOUT STD_LOGIC);END ENCODER;ARCHITECTURE sample OF ENCODER IS BEGIN P1:PROCESS(I,SEL)BEGIN if SEL='1' then Y <=“111”;YS <='1';YEX<='1';elsif I(7)='0' then Y <=“000”;YS <='1';YEX<='0';elsif I(6)='0' then Y<=“001”;YS <='1';YEX<='0';elsif I(5)='0' then Y<=“010”;YS <='1';YEX<='0';elsif I(4)='0' then Y<=“011”;

YS <='1';YEX<='0';

elsif I(3)='0' then Y<=“100”;YS <='1';YEX<='0';

elsif I(2)='0' then Y<=“101”;YS <='1';YEX<='0';

elsif I(1)='0' then Y<=“110”;YS <='1';YEX<='0';

elsif I(0)='0' then Y<=“111”;YS <='1';YEX<='0';

elsif I=“11111111” then Y<=“111”;YS <='0';YEX<='1';else

Y<=“ZZZ”;end if;

END PROCESS P1;END sample;

四、10 进制计数器设计

4.1基本原理

1、管脚 进制计数器的管脚如图:

其中IN 表示输入编码位,Sel 为片选信号,Y 表示输出编码值,YS 与YEX 表示器件状态,“11”表示器件未选中,“01”表示无键按下,“10”表示器件工作态。

2、真值表

203130705岳慧慧

电子设计自动化技术EDA实习报告 进制计数器的真值表如下:

计数开始,计数器从计数初值开始做加计数或减计数。加计数时,计数到‘9’后,再来一个计数脉冲,计数器从‘0’开始。重新启动加计数;减计数时,计数到‘0’后,再来一个计数脉冲,计数器从‘10’开始,重新启动减计数。

4.2条件要求

1.计算机及操作系统

2.MAX+Plus II 或Quartus II 软件 3.编程电缆(可选)

4.3主要内容

① 根据所学相关知识,运用MAX+PLUS II 或Quartus II 软件的文本文件输入方法,编写VHDL 程序,实现10 进制计数器的设计。首先给出设计原理并提出实现方案论证,经指导教师同意后,通过设计输入、编译综合、仿真验证等过程完成并验证设计。设计编译

② 器件选择及管脚分配 ③ 设计仿真 ④ 时序分析 ⑤ 编程下载

4.4方案及实现方法 进制计数器的VHDL 描述有多种方法,设计过程中可以采用计数脉冲CP 作为敏感量,CP 的每个上升沿,计数值Q 加‘1’或减‘1’,加到‘9’后回‘0’或减到‘0’后回‘9’,语句可采用case„when、with„select、if„then 以及加减运算等多种结构实现。也可以首先设计基本的触发器、锁存器等元件,而后通过元件的互联实现,详细方案与方法略。

4.5实践步骤与结果分析

(一)原理图和VHDL程序 1)10 进制计数器

203130705岳慧慧

电子设计自动化技术EDA实习报告

以上为采用图形输入法完成的一个3-8优先译码器。

2)VHDL程序

8-3优先编码器的VHDL描述有多种方法,设计过程中可以根据真值表采用case„when语句、with„select语句、if„then结构等多种手段实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8-3优先编码器。本实验中,我根据真值表用if-then结构实现8-3优先编码器。

203130705岳慧慧

电子设计自动化技术EDA实习报告

(二)器件及管脚逻分配图

管脚分配情况如图,所选器件为EPM3032ALC44-4。

(三)调试编译与仿真波形

1、调试编译

203130705岳慧慧

电子设计自动化技术EDA实习报告

编译结果正确,无错误,但是有一个警告。

2、仿真波形 进制计数器的仿真波形如下图所示:

从仿真波形可以看出,输入输出结果满足所设计电路功能,符合前文真值表,10 进制计数器达到设计要求。

(四)时序分析图

203130705岳慧慧

电子设计自动化技术EDA实习报告

203130705岳慧慧

电子设计自动化技术EDA实习报告

此处,我进行Classic Timing Analyzer 时序分析,可以得到输入输出端口的信号到达时间都是3.0ns,同步逻辑性能分析后可知仿真波形图上不存在毛刺,满足10 进制计数器的设计要求。

(五)项目四的结论

我熟练掌握了EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。我完成的主要工作是设计了数字系统设计中常用的一个10 进制计数器,并且利用波形仿真验证VHDL程序和原理图的正确性。得出的结论是根据波形图结果,波形符合逻辑关系,无毛刺,十分完美地实现10 进制计数器的功能。

我发现用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

附:参考程序

LIBRARY IEEE;if UD='0' then USE IEEE.STD_LOGIC_1164.ALL;if TMP=“1001” then USE IEEE.STD_LOGIC_UNSIGNED.ALL;TMP<=“0000”;ENTITY counter IS c<='1';PORT(D : IN STD_LOGIC_VECTOR(3 else DOWNTO 0);TMP<=TMP+1;UD : IN STD_LOGIC;c<='0';LD : IN STD_LOGIC;end if;CP : IN STD_LOGIC;elsif UD='1' then STA: IN STD_LOGIC;if TMP=“0000” then C : OUT STD_LOGIC;TMP<=“1001”;Q : OUT STD_LOGIC_VECTOR(3 DOWNTO c<='1';0));else END counter;TMP<=TMP-1;ARCHITECTURE sample OF counter IS c<='0';SIGNAL TMP:STD_LOGIC_VECTOR(3 end if;DOWNTO 0);end if;BEGIN elsif STA='1' then P1:PROCESS(CP,STA,LD,UD)TMP<=TMP;BEGIN end if;if LD='0' then end if;TMP<=D;END PROCESS P1;elsif CP'EVENT AND CP='0' then Q<=TMP;if STA='0' then END sample;

五、8 位循环移位寄存器

5.1基本原理

1、管脚 位循环移位寄存器的管脚如图:

203130705岳慧慧

电子设计自动化技术EDA实习报告

其中D 表示输入的初始值,Sta 为开始移位信号,DOUT 表示当前数值;LD 表示预设计数值,LD 为“1”,初始计数值打入器件;LR 表示移位方向,LR 为‘0’,循环右移位,LR 为‘1’,循环左移位;CP 为移位脉冲。

2、真值表 位循环移位寄存器的真值表如下:

移位开始,循环左移时,CP 上每来一个脉冲升沿,寄存器从输出从低位开始依次左移一位,同时最高位给最低位。相反,循环右移时,从高位开始依次右移一位,同时最低位给最高位。

5.2条件要求

1.计算机及操作系统

2.MAX+Plus II 或Quartus II 软件 3.编程电缆(可选)

5.3主要内容

① 根据所学相关知识,运用MAX+PLUS II 或Quartus II 软件的文本文件输入方法,编写VHDL 程序,实现8 位循环移位寄存器的设计。首先给出设计原理并提出实现方案论证,经指导教师同意后,通过设计输入、编译综合、仿真验证等过程完成并验证设计。

② 器件选择及管脚分配 ③ 设计仿真 ④ 时序分析 ⑤ 编程下载

5.4方案及实现方法 位循环移位寄存器的VHDL 描述有多种方法,设计过程中可以首先设计D 触发器,而后通过D 触发器的互联实现8 位循环移位寄存器;也可采用计数脉冲CP 作为敏感量,CP 的每个上升沿,输出量Q 的每一位赋给左边一位或右边一位。同时循环左移时,最高位赋给最低位,循环右移时,最低位赋给最高位,语句可采用case„when、with„select、if„then以及加减运算等多种结构实现,详细方案与方法略。

5.5实践步骤与结果分析

203130705岳慧慧

电子设计自动化技术EDA实习报告

(一)原理图和VHDL程序 1)8 位循环移位寄存器

以上为采用图形输入法完成的一个8 位循环移位寄存器

2)VHDL程序 位循环移位寄存器的VHDL描述有多种方法,设计过程中可以根据真值表采用case„when、with„select、if„then以及加减运算等多种结构实现,也可以根据真值表分析输入输出间的逻辑关系,根据逻辑关系写出其布尔表达式,根据布尔代数式调用基本逻辑门元件实现8 位循环移位寄存器。

本实验中根据真值表,通过VHDL语言的if-then结构实现8位循环移位寄存器。首先根据前文所述,对照真值表203130705岳慧慧

电子设计自动化技术EDA实习报告 的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。

(二)器件及管脚逻分配图

管脚分配情况如图,所选器件为EPM3032ALC44-4。

203130705岳慧慧

电子设计自动化技术EDA实习报告

(三)调试编译与仿真波形

1、调试编译

编译结果正确,无错误,但是有一个警告。

2、仿真波形 位循环移位寄存器的仿真波形如下图所示:

203130705岳慧慧 30

电子设计自动化技术EDA实习报告

从仿真波形可以看出,输入输出结果满足所设计电路功能,符合前文真值表,8 位循环移位寄存器达到设计要求。

(四)时序分析图

203130705岳慧慧

电子设计自动化技术EDA实习报告

上述时间分析可以得到,输出信号存在的时间延迟,它主要与器件速度、表达逻辑的合理性有关,选用速度更高器件、优化设计可以使该值降低。

此处,我进行Classic Timing Analyzer 时序分析,可以得到输入输出端口的信号到达时间都是3.0ns,同步逻辑性能分析后可知仿真波形图上不存在毛刺,满足8 位循环移位寄存器的设计要求。

(五)项目五的结论

本次实验我收获到了很多移位寄存器的相关知识,虽然期间我遇到了很多无法解决的问题,但最终都通过查阅资料,询问同学,一一得到了解决。实验中我们完成了1个器件的编写:我使用了VHDL代码的方法。通过资料我知道了74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件203130705岳慧慧

电子设计自动化技术EDA实习报告 的信息才能被输入。时钟控制发生在时钟输入由低电平到高电平的跃变上。为了减小传输线效应,所有输入端均采用二极管钳位。每组实验我们都编写了他们的源代码,并且通过时序仿真和功能仿真不同的仿真方式让我对加法器这个逻辑学电子元件有了更深层次的了解。很多问题最终在老师同学和自己的不懈努力中得以解决。其中我遇到了一些代码上的书写错误问题,编译无法运行问题,以及时序仿真时出现的问题。不过最后在查阅相关资料后明白了自己是少了一些过程。

我发现用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

我采用图形编程法实现了8位循环移位寄存器的设计,并完成了电路的设计编译、综合、逻辑仿真、时间分析,结果表明采用ALTRA的CPLD器件设计的8位循环移位寄存器,时间延迟为3ns。

附:参考程序

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cyreg IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);LD : IN STD_LOGIC;LR : IN STD_LOGIC;CP : IN STD_LOGIC;DOUT: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0));END cyreg;ARCHITECTURE sample OF cyreg IS BEGIN P1:PROCESS(CP,LD)BEGIN if LD='0' then DOUT<=D;elsif CP'EVENT AND CP='0' then if LR='1' then DOUT<=DOUT(6 DOWNTO 0)&DOUT(7);elsif LR='0' then DOUT<=DOUT(0)&DOUT(7 DOWNTO 1);end if;end if;END PROCESS P1;END sample;

203130705岳慧慧

电子设计自动化技术EDA实习报告

第三章 结 论

首先,通过对这门课程相关理论的学习,我掌握EDA的一些基本的的知识,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快。实现这种进步的主要原因就是微电子技术和电子技术的发展。前者以微细加工技术为代表,目前已进入超深亚微米阶段,可以在几平方厘米的芯片上集成几千万个晶体管;后者的核心就是电子设计自动化EDA(lectronic Design Automatic)技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

其次,通过对课程的实验的学习,让我感觉收获颇多,我对EDA的学习和理解有了更深刻的认识和体会,对数字逻辑与数字电路有初步的了解,而EDA是在数字电路发展到一定阶段的产物,因此学习起来也很费力。在这一周的实训中我们不仅巩固了以前学过的知识,而且还学到了怎样运用EDA设计VHDL程序、电路、波形的整个过程和思路,更加强了我们动手能力,同时也提高了我们的思考能力的锻炼,我们在写程序的同时还要学会要改程序,根据错误的地方去修改程序。

在此次实训的过程中,我了解到,我们需要加强培养动手能力,要明白理论与实践结合的重要性,只有理论知识也是不够的,只有把所学的理论知识和实践相结合,才能真正提高我们的实际动手能力与独立思考的能力。

我虽然碰到了很多困难和问题,到最后还是靠自己的努力与坚持独立的完成了任务。当遇到了自己无法解决的困难与问题的时候,要有耐心,要学会一步步的去找问题的根源,才能解决问题,还请教老师给予指导和帮助。这次实训给我最深的印象就是扩大自己的知识面,知道要培养哪些技能对我们的专业很重要。最终我成功地完成了这次的实践课程,包括时序仿真和 硬件测试仿真,都取得了较好地效果。还要在今后的课本理论知识学习过程中要一步一个脚印的扎实学习,灵活的掌握和运用专业理论知识这样才能在以后工作的实践过程中有所成果。

通过这次课程设计,我进一步熟悉了verilog hdl语言的结构,语言规则和语言类型。对编程软件的界面及操作有了更好的熟悉。在编程过程中,我们虽然碰到了很多困难和问题,到最后还是靠自己的努力与坚持独立的完成了任务。当遇到了自己无法解决的困难与问题的时候,要有耐心,要学会一步步的去找问题的根源,才能解决问题,还请教老师给予指导和帮助。这次实训给我最深的印象就是扩大自己的知识面,知道要培养哪些技能对我们的专业很重要。通过这次课程设计,培养了我们共同合作的能力。但是此次设计中参考了其他程序段实际思想,显示出我们在程序设计方面还有不足之处。

在此次实训的过程中,我了解到了要加强培养动手能力,要明白理论与实践结合的重要性,只有理论知识也是不够的,只有把理论知识和实践相结合,才能真正提高我们的实际动手能力与独立思考的能力。通过用VHDL语言设计,统领整个教学内容,让我们在学习过程中得到反复性的思维训练,加深了对教学内容的理解和运用,增强了我们对EDA技术应用性的熟悉和理解。

致 谢

非常感谢张老师这一学期来的指导与教诲,感谢老师在学习上给予的指导,老师平常的工作也很忙,但是在我们学习的过程中,从来没有耽搁过,我们遇到问题问他,他重来都是很有耐心,不管问的学生有多少,他都细心的为每个学生讲解,学生们遇到的不能解决的,他都配合同学极力解决。

感谢学院给我们提供这次实训的机会,感谢张老师对我们的指导,他是为了教会我们如何运用所学的知识去解决实际的问题,此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

本次设计过程中得到我们老师们的悉心指导。屈老师多次询问设计进程,并为我们指点迷津,帮助我们理顺设计思路,精心点拨、热忱鼓励。老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,并将积极影响我今后的学习和工作。在此诚挚地向老师们致谢,祝愿们老师身体健康,203130705岳慧慧

电子设计自动化技术EDA实习报告

全家幸福。

参考文献

[1]黄正瑾.CPLD系统设计技术入门与应用.北京:电子工业出版社,2003

[2]宋万杰,罗丰等.CPLD技术及其应用.西安:西安电子科技大学出版社,1999 [3]新编数字逻辑电路.北京邮电大学出版社.江国强.2006.12

[4]EDA技术与应用.电子工业出版社.江国强.2010.4

[5]数字电路EDA入门---VHDL程序实例集.北京邮电大学出版社.张亦华

[6]谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2012.6 [7]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2008.8

203130705岳慧慧 35

第五篇:实习报告 封皮

实习报告

院、系:电子与计算机科学技术学院

专业:电子科学技术

学号:0806044145

姓名:

时间:地点:河南洛阳牡丹通信有限公司

牡丹通信有限公司实习报告

洛阳牡丹通讯股份有限公司是以洛阳巨龙通信集团有限公司为投资主体的股份制企业。致力于向国内外客户提供DSL宽带接入系统、HA998系列IC卡公用付费电话系统、HA998系列智能卡公用电话系统、HR998系列无线公用电话系统(GSM、CDMA、PHS)、NGN端对端解决方案及MD系列智能热量表等高科技产品。公司多次被评为河南省高新技术企业,洛阳高新技术开发区纳税十强企业。

公司有员工330人,其中专业技术人员156人,生产面积6860平方米,注册资本5000万元,总资产9000万元,净资产约6000万元。生产设备精良、开发工具先进、检测仪表齐全,已通过了ISO9000-2000质量体系认证。公司下属的技术开发中心负责各种新产品的开发及技术支持。其中IC卡公话及管理系统为国内首创,被国家科委列为98年国家级火炬计划项目,2003年更被评为优秀火炬计划实施项目。

随着我国加入WTO世界贸易组织,市场竞争日趋激烈,“跨出通讯行业,形成多元化产品支撑”成为我公司的主导战略方针。凭借强大的电子产品研发实力、丰富的计量设备设计经验以及精良的生产设备、齐全的检测仪表、先进的开发工具,于2000年我公司开始涉足民用热计量器具领域。

迄今为止,我公司已经完成户用小口径热量表(DN15、DN20、DN25)和楼宇大口径热量表(DN40-DN200)以及手持抄表设备及其计费管理系统的开发,形成了三大类多系列产品,满足了各种市场和对热计量设备的需求。同时于2004年3月和6月分别取得了“计量器具样机试验合格证书”和“中华人民共和国制造计量器具许可证”,成为河南省首家获得该资质的企业。

我们始终贯彻“最佳产品、最佳服务”的经营思想,为了更好的服务于社会,我们借股份改制为契机,积极推进现代企业制度,完善企业管理,推行体制、机制、技术创新,以市场为导向,以用户为中心,密切合作,不懈努力、开拓进取,竭诚为您提供个性化的、完整可靠的解决方案

通过一个星期的电子实习,使我对电子元件及温度计的装机与调试有一定的感性和理性认识,打好了日后学习电子技术课的入门基础。同时实习使我获得了温度计机的实际生产知识和装配技能,培养了我理论联系实际的能力,提高了我分析问题和解决问题的能力,增强了独立工作的能力。最主要的是培养了我与其他同学的团队合作、共同探讨、共同前进的精神。在一周的实习过程中最挑战我动手能力的一项训练就是焊接。焊接是金属加工的基本方法之一。其基本操作“五步法”准备施焊,加热焊件,熔化焊料,移开焊锡,移开烙铁(又“五步法”)看似容易,实则需要长时间练习才能掌握。刚开始的焊点只能用“丑不忍睹”这四个字来形容,但焊接考核逼迫我们用仅仅一天的时间完成考核目标,可以说是必须要有质的飞跃。于是我耐下心思,戒骄戒躁,慢慢来。在不断挑战自我的过程中,我拿着烙铁的手不抖了,送焊锡的手基本能掌握用量了,焊接技术日趋成熟。当我终于能用最短时间完成一个合格焊点时,对焊接的恐惧早已消散,取而代之的是对自己动手能力的信心。在这一过程当中深深的感觉到,看似简单的,实际上可能并非如此。在对焊接实习的过程中我学到了许多以前我不知道的东西,比如,像实习前我只知道有电烙铁,不知道它还有好多种类,有单用式、两用式、调温式、恒温式、直热式、感应式、内热式和外热式,种类这么多。还有就是在挂锡以前不能用松香去擦拭电烙铁,这样会加快它的腐蚀并且减少空气污染,等等。但是我也遇到了很多不明白的地方,1.为什么要对焊接物进行挂锡,是为了防止氧化吗,只要我将被焊接元件的表面清洗干净不就可以了吗,不明白;2.待电烙铁加热完全后,到底是先涂助焊剂还是先挂锡,我采用后者,有人采用前者。都焊出来了,但我在焊接的过程中经常出现焊不化的状况,而采用后者不是加快它的腐蚀并且减少空气污染吗,不明白。焊接挑战我得动手能力,那么印制电路板图的设计则是挑战我的快速接受新知识的能力。在我过去一直没有接触过印制电路板图的前提下,用一个下午的时间去接受、消化老师讲的内容,不能不说是对我的一个极大的挑战。在这过程中主要是锻炼了我与我与其他同学的团队合作、共同探讨、共同前进的精神。因为我对电路知识不是很清楚,可以说是模糊。但是当我有什么不明白的地方去向其他同学请教时,即使他们正在忙于思考,也会停下来帮助我,消除我得盲点。当我有什么想法告诉他们的时候,他们会不因为我得无知而不采纳我得建议。在这

个实习整个过程中,我虽然只是一个配角,但我深深的感受到了同学之间友谊的真挚。在实习过程中,我熟悉了印制电路板的工艺流程、设计步骤和方法。可是我未能独立完成印制电路板图的设计,不能不说是一种遗憾。这个实习迫使我相信自己的知识尚不健全,动手设计能力有待提高。

经过两个星期的电工电子实习,我们学会了基本的焊接技术,温度计的检测与调试,知道了电子产品的装配过程,我们还学会了电子元器件的识别及质量检验,知道了整机的装配工艺,这些都我们的培养动手能力及严谨的工作作风,也为我们以后的工作打下了良好的基础。最基本一点:以前学习《模拟电子技术》课时,总觉得老师讲的太抽象,通过这次学习,又重新明白了很多东西。而且这在我们以后的专业课学习中应该也是很有用的,就我们自己的专业来言我们也是要系统学习电力电子技术、自动检测技术及信号与系统方面的知识,而这次我们在温度计的安装及调试过程中我们都用到了。总之,在实习过成中,要时刻保持清醒的头脑,出现错误,一定要认真的冷静的去检查分析错误!在最后终于用我们自己做出来的温度计测出了温度,真的很高兴,总算觉得自己的努力还没有白费!

下载eda实习报告封皮(五篇模版)word格式文档
下载eda实习报告封皮(五篇模版).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    实习报告封皮

    题目:甘肃广播电视大学职业技术学院实习报告 学生姓名:学生学号: 专业:会计电算化办学单位:导师姓名、职称: 毕业实习时间:2012年 4 月2012年 9 月 毕业实习单位:......

    实习报告封皮

    计算机与信息工程系2009届毕业生 毕业实习报告书班级 姓名 专业 实习单位 指导教师......

    实习报告封皮格式

    实习报 告专业:机械设计制造及其自动化性质:生产实习学年:2010~2011班级:机制08-2班姓名:兰锋学号:05号指导教师姓名:刘老师实习起止日期:2011年10月10日—2011年10月28日机械工程......

    实习报告封皮

    实习报告习人: : 系: : 2009.3-2009.6许淼 兴安盟邮政局 教育系实实习单位院实习时间......

    实习报告封皮

    天津电大武清分校 “开放教育本科”生产实习报告姓名: 学号: 专业方向:土木工程内部资料:生产实习日记 生产实习报告 实习单位评语(盖章)光盘天津广播电视大学武清分校......

    材料金工实习报告封皮

    中国石油大学胜利学院金工实习报告学生姓名: 学号: 专业班级: 2010级材料成型与控制技术专业×班 指导教师:赵义明2011年7月25日......

    2010实习报告(带封皮)(范文模版)

    吉林大学 本科生实习报告学院管 理 学 院 实习名称管理业务认识实习专 业 工程管理 班 级461103 姓 名 代必霞 学 号 46110328 2013年的暑假很快就过去了,在这个暑假......

    生产实习报告封皮2013范文

    生产实习总结报告 评语: 1.实习动员大会 通过生产实习,使我们学习和了解机器从原材料到成品批量生产的全过程以及生产组织管理等知识,培养学生树立理论联系实际的工作作风,以......